2008-03-06 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
2
3         * assembly.c (build_assembly_name): Fix a warning.
4
5 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
6
7         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
8         the called function takes an object type argument. Fixes storing or
9         valuetypes across remoting as well as reducing memory usage.
10         * image.c, metadata-internals.h: remove now unused ldfld_remote and
11         stfld_remote wrapper caches.
12
13 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
14
15         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
16         is not found.
17
18         * reflection.c (mono_image_register_token): New helper function to save
19         a token->object mapping.        
20
21         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
22         managed code.
23
24         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
25         one dimension arrays. Fixes #367670.
26         (mono_reflection_get_type_internal): Ditto.
27
28 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
29
30         * marshal.c: mono_load_remote_field_new() always returns object.
31         so use the proper signature (fixes bug #366445).
32
33 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
34         
35         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
36         add an 'inline_failure' flag instead.
37
38 2008-03-04  Mark Probst  <mark.probst@gmail.com>
39
40         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
41         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
42         contains the location of "this", used for exception handling.
43
44 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
45
46         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
47         their size on all platforms for perf reasons.
48
49 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
50
51         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
52         object-internal.h
53
54         * object-internal.h: Same.
55
56 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
57
58         * reflection.h: Fix the build I just broke.
59
60 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
61
62         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
63         Test if a token is valid, this remove explicit usage of 
64         MonoDynamicImage::tokens from the verifier code.
65
66         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
67
68         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
69         instead of direct access to MonoDynamicImage::tokens.
70
71 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
72
73         * verify.c (token_bounds_check): Fix the build I just broke.
74
75 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
76
77         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
78
79         * verify.c (verifier_load_method): Fixed the errors message.
80
81         * verify.c (mono_method_verify): Fixed a debug message.
82
83 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
84
85         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
86         mono-perfcounters.h, class-internals.h: support for predefined
87         writable counters, query of categories and counters, bugfixes.
88
89 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
90
91         * verify.c (do_refanytype): Verify the refanytype opcode.
92
93         * verify.c (mono_method_verify): Use do_refanytype.
94
95 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
96
97         * verify.c (do_mkrefany): Verify the mkrefany opcode.
98
99         * verify.c (mono_method_verify): Use do_mkrefany.
100
101 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
102
103         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
104         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
105         implementation.
106
107 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
108
109         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
110         the type load exception.
111
112 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
113
114         * verify.c: Added a few FIXME for method signatures
115
116         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
117         of mono_method_get_signature and get vararg call working. Removed unused
118         checks for return value.
119
120         * verify.c (do_refanyval): Verify the refanyval opcode.
121
122         * verify.c (mono_method_verify): Implemented verification of arglist and
123         use do_refanyval.
124
125 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
126
127         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
128         vtypes to marshal.c.
129
130         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
131         it works for AOT as well.
132
133 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
134
135         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
136         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
137         the system time is adjusted.
138
139 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
140
141         * icall.c, icall-def.h: use the new time functions (fixes the
142         non-monotonic behaviour of TickCount).
143
144 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
145
146         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
147         it breaks the build.
148         
149         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
150         cattr is not finished yet.
151
152 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
153
154         * verify.c: Proper token validation for field, method and type.
155
156 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
157
158         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
159
160         * loader.c (method_from_memberref): Generate type load error instead of method missing
161         if the type is not found.
162
163 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
164
165         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
166         some of the conversions caused the generation of a marshal directive exception.
167
168 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
169
170         verify.c: Report which exception should be thrown by the JIT.
171         Added a lot of FIXME notes.
172
173 2008-02-22  Mark Probst  <mark.probst@gmail.com>
174
175         * generic-sharing.c: Runtime generic context slots are not
176         instantiated on init anymore.  Instead, provide function to do the
177         instantiating on demand.
178
179         * class-internals.h: Added vtable to runtime generic context.
180         Macros for encoding direct and indirect slot offsets in one
181         guint32.
182
183 2008-02-21  Mark Probst  <mark.probst@gmail.com>
184
185         * object.c, generic-sharing.c: Moved some generic sharing code
186         from object.c to generic-sharing.c.
187
188         * generic-sharing.c: Added support for extensible runtime generic
189         context.
190
191         * metadata-internals.h: Two new hash tables in MonoImage for
192         extensible runtime generic context support.
193
194         * domain.c: Unregister generic vtables upon domain unloading.
195
196         * image.c: Destroy new hash tables upon image unloading.
197
198         * metadata.c: Unregister generic subclasses upon image unloading.
199
200         * class-internals.h: New data structure for runtime generic
201         context template.  New fields in the runtime generic context for
202         extensible part.
203
204         * Makefile.am: Added generic-sharing.c.
205
206 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
207
208         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
209         there is a pending loader exception, raise it.
210
211         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
212         same.
213
214         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
215         same.
216
217         Fixes #363450.
218
219 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
220
221         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
222
223         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
224         
225         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
226         ref-only requests for compatibility with MS.
227
228 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
229
230         * reflection.c (mono_custom_attrs_from_method): Don't silently
231         return an empty list for generic method instances.
232         (mono_custom_attrs_from_param): Likewise.
233
234 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
235             Raja R Harinath  <harinath@hurrynot.org>
236
237         Fix #354757
238         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
239         * class.c (mono_class_inflate_generic_method_full): Initialize it
240         when a fully-open method is instantiated.
241         * metadata.c (inflated_method_equal, inflated_method_hash): Update
242         to new field.
243         * reflection.c (inflate_mono_method): Don't create a temporary context.
244
245 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
246
247         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
248         Compute correct value, to prepare for imethod->reflection_info going away.
249
250 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
251
252         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
253
254 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
255
256         * verify.c: Implement skip visibility flag.
257
258 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
259
260         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
261         which contains an extra field to tell the kind of exception that should be thrown.
262
263         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
264
265 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
266
267         * loader.c (mono_method_get_param_names): Initialize 'klass' after
268         'method' is updated.
269
270 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
271
272         * class.c (mono_class_layout_fields): Set class->min_align for classes using
273         explicit layout as well. Fixes #360375.
274
275 2008-02-11  Geoff Norton  <gnorton@novell.com>
276
277         * loader.c: Guard and dereference against inflated generic methods
278
279 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
280
281         * class.c: Include Retargetable spec in assembly name.
282         * assembly.c: Always include PublicKeyToken spec in assembly name
283         (with value "null" if assembly is not signed), and include
284         Retargetable spec.
285         * icall-def.h: Added icall for Assembly.get_fullname.
286         * icall.c: Added icall returning the fullname of an assembly.
287
288 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
289
290         * class.c (mono_class_setup_vtable_general): Add a missing call to
291         mono_class_setup_methods () which is needed in the AOT case.
292
293 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
294
295         * verify.c (mono_type_get_stack_name): Added. Return the name for the
296         stack type of the given MonoType.
297
298         * verify.c (verify_type_compatibility_full): Handle the void type.
299
300         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
301         way stack merging works.
302
303         * verify.c (store_local): Improved verification message.
304
305         * verify.c (do_branch_op): If the merging is invalid, the method
306         is unverifiable and not invalid. Improved error message.
307
308         * verify.c (merge_stacks): Properly merge a boxed valuetype and
309         a reference type diferent than System.Object. Improved error
310         message.
311
312 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
313
314         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
315
316         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
317         type of an enum even if the argument is byref.
318
319         * verify.c: Replace all explicit uses of enumtype and enum_basetype
320         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
321
322         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
323
324         *verify.c (verify_type_compatibility_full): Make enum types
325         compatible with their base types.
326
327         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
328         types are compatible for the special case of a boxed valuetype and
329         System.Object.
330
331         * verify.c (verify_stack_type_compatibility): The function
332         is_compatible_boxed_valuetype was extracted from here.
333
334         * verify.c (push_arg): Only set ctx->has_this_store if the method
335         is not static.
336
337         * verify.c (do_ldelem): Fixed a typo in an error message and added
338         strict check for mixing int32 and native int as the array type
339         and ldelem type.
340
341         * verify.c (merge_stacks): Consider boxed valuetypes in the
342         compatibility checks.
343
344 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
345         * profiler.h: (MonoGCEvent): Added start-stop the world events.
346
347 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
348         *class.c: use_new_interface_vtable_code: renamed the env var to have
349         a "MONO_" prefix, and fix the logic to enable it by default.
350
351 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
352         *class.c:
353         mono_class_setup_vtable_general: rewrote the way in which interface
354         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
355         makes the code more maintainable.
356         For now the old code is still there, and can be activated setting
357         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
358
359 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
360
361         * verify.c: guarded some debug functions around and #ifdef.
362
363         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
364
365 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
366
367         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
368         changes for now since they seem to break too many things.
369
370 2008-02-05  Mark Probst  <mark.probst@gmail.com>
371
372         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
373         mono_marshal_find_nonzero_bit_offset): Added macro and function
374         for finding the byte- and bit-offset of a bitfield within a
375         struct.
376
377 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
378
379         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
380         (mono_marshal_get_struct_to_ptr): Ditto.
381
382         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
383         cctor_signature.
384
385 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
386
387         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
388         between methods for non-corlib types.
389
390 2008-02-02  Geoff Norton  <gnorton@novell.com>
391
392         * loader.c (mono_method_get_param_names): Populate the parameter name for 
393         generic parameters as well. (Fixes #342536)
394
395 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
396
397         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
398
399         * verify.c (do_invoke_method): Fix for calling with byref structs.
400
401         * verify.c (do_cast): push a boxed value type based on the type token and not
402         the type of stack.
403
404 2008-01-31  William Holmes  <billholmes54@gmail.com>
405
406         * process.c (process_module_string_read): Check the size returned form 
407           VerQueryValue to avoid out of memory exception. 
408
409 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
410
411         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
412         Handle properly modules which are not in the moduleref table. Fixes
413         #356938.
414
415 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
416
417         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
418         the dynamic case which is now in managed code.
419         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
420
421         * marshal.c (mono_string_to_bstr): Fix a warning.
422         (init_com_provider_ms): Ditto.
423
424         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
425
426         * exception.c (mono_get_exception_out_of_memory): New helper function.
427
428 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
429
430         * marshal.c: Add support for BSTR marshalling
431         using other COM systems.
432
433         Code is contributed under MIT/X11 license.
434
435 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
436
437         * object.c (mono_runtime_invoke_array): reverted previous
438         commit as it breaks the build.
439
440 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
441
442         * object.c (mono_runtime_invoke_array): Verify arguments for
443         invalid types. Fixes #348522.
444
445 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
446
447         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
448         non-final virtual calls using call. 
449
450         * verify.c (do_invoke): fixed some TODOs.
451
452         * verify.c (push_arg): set has_this_store for "ldarga 0".
453
454 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
455
456         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
457         which belong to an inflated class. Fixes #356531.
458
459 2008-01-26  Robert Jordan  <robertj@gmx.net>
460
461         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
462         which resort to FindFirstFile when a certain error condition
463         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
464         Code is contributed under MIT/X11 license.
465
466 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
467
468         * marshal.c (emit_marshal_string): Fix out string marshalling
469         to use specified encoding. Fixes #323900.
470
471         Code is contributed under MIT/X11 license.
472
473 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
474
475         * class.c (mono_class_inflate_generic_method_full): Don't modify
476         iresult->context after cache check.
477
478 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
479
480         * class.c (mono_class_inflate_generic_method_full): Change the
481         struct assignments to memcpy for better visibility and add some comments.
482
483 2008-01-23  Dick Porter  <dick@ximian.com>
484
485         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
486         procedure, and make it work on windows.
487
488 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
489
490         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
491         a MonoReflectionTypeBuilder since it is always of that type.
492
493         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
494
495         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
496
497         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
498         
499         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
500
501         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
502
503         * reflection.c (mono_reflection_create_runtime_class): Remove already created
504         instantiations from the type cache.
505
506 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
507
508         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
509
510         * verify.c (do_unbox_value): push a controled mutability managed pointer.
511
512 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
513
514         * verify.c (do_ldstr): added, verifies if the #US token is valid.
515
516         * verify.c (mono_method_verify): removed old TODO
517
518 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
519
520         * verify.c (do_newobj): add visibility check.
521
522 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
523
524         * verify.c (do_load_function_ptr): add visibility check.
525
526 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
527         *class.c:
528         mono_generic_class_get_class: hook profiler events.
529         mono_field_get_offset: added to support heap-shot in the new profiler.
530         *class.h: exported mono_field_get_offset.
531         * reflection.c:
532         mono_reflection_setup_internal_class: hook profiler events.
533
534 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
535
536         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
537         argument here too and use it to avoid checking for pending exceptions if 
538         possible.
539
540 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
541
542         * assembly.c (build_assembly_name): add arg for passing the assembly
543         flags. Do not consider a PublicKey with value "null" valid.
544         (mono_assembly_name_parse_full): added boolean argument that will be
545         set if the assembly name contains a PublicKeyToken spec. Added support
546         for the Retargetable spec for which only Yes or No are allowed as valid
547         value. Consider assembly name invalid if Retargetable spec is set, but
548         either version, culture or public key (token) are not specified.
549         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
550         with implementation in assembly.c.
551         * icall.c (fill_reflection_assembly_name): also copy assembly flags
552         from MonoAssemblyName.
553         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
554         introduced argument for mono_assembly_name_parse_full to know if the
555         assembly name has a PublicKeyToken spec, and if it has instruct
556         fill_reflection_assembly_name to use default value for keyToken (if
557         PublicKeyToken is null).
558
559 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
560
561         * verify.c (mono_method_verify): fixed ovf ops with
562         float values. They are unverifiable now.
563
564 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
565
566         * class.c (set_failure_from_loader_error): add BadImageException to the
567         list of exceptions that can cause a type to fail to load.
568
569         * class.c (mono_class_get_exception_for_failure): same.
570
571 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
572
573         * verify.c (in_any_exception_block): added, check if offset
574         is part of any exception handling clause.
575
576         * verify.c (get_stack_type): added VAR and MVAR types.
577
578         * verify.c (do_stobj): better error messages.
579
580         * verify.c (do_cpobj): added, check cpobj.
581
582         * verify.c (do_initobj): added, check initobj.
583
584         * verify.c (do_sizeof): added, check sizeof.
585
586         * verify.c (do_localloc): added, check localloc.
587
588         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
589
590 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
591
592         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
593         save_lmf/restore_lmf opcodes.
594
595         * threads.c (mono_threads_install_notify_pending_exc): New function to
596         install a callback notifying the JIT there is a pending exception on a thread.
597         (mono_thread_request_interruption): Call the new callback.
598         (mono_thread_get_and_clear_pending_exception): New function to return the
599         exception pending on a thread.
600
601         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
602         to turn off checking for pending exceptions.
603         (mono_marshal_get_native_wrapper): Ditto.
604
605 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
606
607         * threads-types.h: Get rid of the unnecessary extern declarations.
608
609 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
610
611         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
612         return field from parent class if not private.
613         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
614         returns fields from parent class if they are not private.
615         (method_nonpublic): added function to determine if a given method
616         should be considered non-public. Returns false for private methods
617         on parent class, and internal methods from parent on the 1.0 profile.
618         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
619         use method_nonpublic function to determine whether method should be
620         returned.
621         (property_accessor_public): use newly introduced method_nonpublic
622         function to determine whether accessor is non-public. 
623         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
624         event from parent class if not private. Only return static event if
625         Static flag is set, and only return static event from parent class if
626         FlattenHierarchy flag is set.
627         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
628         include non-private events from parent class.
629
630 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
631
632         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
633         warning.
634
635 2008-01-16  Wade Berrier <wberrier@novell.com>
636
637         * security.c: Add assembly.h header to appease some warnings
638
639 2008-01-16  Dick Porter  <dick@ximian.com>
640
641         * process.c (process_module_string_read): Remove trailing null
642         when saving string.
643
644 2008-01-16  Mark Probst  <mark.probst@gmail.com>
645
646         * class-internals.h: A new data structure describing the layout of
647         a runtime generic context (MonoRuntimeGenericContextTemplate).
648
649         * metadata-internals.h: Added a hash table to MonoDomain that maps
650         from open generic classes to their runtime generic context
651         templates.
652
653         * object.c: Building of the runtime generic context, including
654         proper handling of generic type arguments of superclasses.
655         Building of the runtime generic context according to the template.
656
657 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
658
659         * class.c (mono_class_setup_fields): Set field.count for generic instances.
660         Fixes #350856.
661
662         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
663         mono_portability_find_file (). Fixes #325466.
664         (mono_image_get_public_key): Fix a warning.
665
666 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
667
668         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
669         Fixes #353550.
670         (mono_class_from_name_case): Ditto.
671
672 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
673
674         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
675           common storage for the tables used in the System/NumberFormatter class.
676
677 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
678
679         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
680
681 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
682
683         * verify.c (get_boxable_mono_type): check if the token is valid.
684
685         * verify.c (set_stack_value): changed to add an error if an
686         invalid type is set on stack. Changed all callers due to signature change.
687
688         * verify.c (do_stobj): implement stobj validation.
689
690 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
691
692         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
693         set container->is_method, it was set earlier.
694
695         * metadata.c (type_in_image): Handle MVARs which belong to not finished
696         generic methods.
697
698         * reflection.c (mono_reflection_initialize_generic_parameter): Set
699         is_method of the generic container to TRUE for methods.
700
701 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
702
703         * metadata.c (type_in_image): Handle type parameters properly.
704
705         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
706         memory ownership of this structure.
707
708 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
709
710         * verify.c (get_boxable_mono_type): make typedref types been just
711         unverifiable. check for void type.
712
713         * verify.c (do_unbox_any): added, verify opcode unbox.any.
714
715         * verify.c (do_load_function_ptr): accept method spec tokens.
716
717 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
718
719         * marshal.c (mono_class_native_size): Always set *align even if this is called
720         recursively.
721
722 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
723
724         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
725         out-of-date.
726
727 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
728
729         * verify.c: removed some old unused tables. A huge bunch of small fixes
730         to things found while testing the verifier with mono basic.
731
732         * verify.c (dump_stack_value): dump null literal flag to.
733
734         * verify.c (verify_type_compatibility_full): fix comparison
735         for types that have a generic super type.
736
737         * verify.c (verify_stack_type_compatibility): fix compatibility
738         between null literals and reference types. fix compatibility between
739         boxed valuetypes and object. fix corner case test for enums.
740
741         * verify.c (do_cmp_op): proper verification of cgt.un in case
742         of reference types.
743
744         * verify.c (do_invoke_method): fix error message.
745
746         * verify.c (do_store_indirect
747
748         * verify.c (check_is_valid_type_for_field_ops): proper verification
749         of managed pointers to valuetypes and boxed valuetypes. proper verification
750         of null literals.
751
752         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
753         allow token to be a reference type.
754
755         * verify.c (do_cast): proper handling of boxes valuetypes.
756
757         * verify.c (do_stelem): proper handling of storing a boxed valuetype
758         in object[].
759
760         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
761         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
762         fixed the decoding of unbox_any
763
764 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
765
766         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
767
768 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
769
770         * verify.c (do_newobj): do delegate verification.
771
772         * verify.c (verify_delegate_compatibility): perform delegate
773         verification.
774
775         * verify.c (verify_ldftn_delegate): perform tests related to
776         ldftn delegates.
777
778         * verify.c (mono_delegate_signature_equal): perform the
779         slightly diferent signature comparison required by delegates.
780
781         * metadata.c (mono_metadata_type_equal_full): added and exported
782         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
783         allows signature only comparison.
784
785         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
786         as MONO_INTERNAL.
787
788 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
789
790         * verify.c: added a bunch of stack_slot_* functions to
791         make access to stack slot type easier. This is required to
792         allow optional flags, like null literal, boxed value and
793         this pointer.
794         All access paths to IlStackDesc::stype have been changed 
795         to use these new funcions.
796         Removed a bunch of unused functions and cleared all warnings.
797         This patch introduces the usage of the this pointer and 
798         boxed value flags.
799
800 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
801
802         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
803
804 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
805
806         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
807         match managed version.
808
809         * appdomain.c: Bump corlib version.
810         
811         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
812         argument.
813
814 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
815
816         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
817         Set public key token to zero-length byte array if assembly is not
818         strongnamed.
819
820 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
821
822         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
823         writing a vtype array elem.
824
825 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
826
827         * assembly.c (build_assembly_name): return FALSE if length of token is
828         not 16 (if not "null").
829         (mono_assembly_name_parse_full): return FALSE if value of version,
830         culture, token or key is 0.
831         * icall.c (fill_reflection_assembly_name): add boolean arguments to
832         specify whether public key and public key token must be set to default
833         value (zero-length byte array) if not available. Set versioncompat to
834         SameMachine. If public key is available or the default is set, then
835         set PublicKey flag.
836         (ves_icall_System_Reflection_Assembly_FillName): if no public key
837         is available, use empty byte array as default value. On the 2.0
838         profile, use default value for public key token if not set.
839         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
840         profile, use default value for public key if not set. On the 2.0
841         profile, use default value for public key token if not set.
842         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
843         default values for public key and public key token.
844
845 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
846
847         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
848         field to keep it in synch with the managed object.
849
850         * marshal.c (emit_marshal_object): Add support for byref marshalling of
851         delegates. Fixes #351520.
852
853         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
854         contains defined memory.
855         
856         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
857
858         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
859         
860         * sgen-gc.c (check_consistency): New helper function to do a consistency check
861         of the GC data structures.
862
863         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
864
865         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
866         
867         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
868         barrier.
869         (mono_array_clone_in_domain): Ditto.
870         (mono_array_clone_in_domain): Ditto.
871
872         * threads.c (start_wrapper): Register the thread start argument as a GC root.
873         (cache_culture): Use a write barrier.
874
875         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
876         (ves_icall_get_property_info): Ditto.
877
878         * object.h (MONO_STRUCT_SETREF): New macro.
879
880         * class-internals.h (MonoStats): Add some GC statistics.
881
882         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
883
884 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
885
886         * exception.c (mono_exception_from_name_two_strings):
887         Break from loop after method is found.
888
889 2008-01-04  Dick Porter  <dick@ximian.com>
890
891         * process.c (process_module_string_read): Rename variable to
892         reflect correct usage, after fixing bug 345972.
893
894 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
895
896         * verify.c (mono_type_create_fnptr_from_mono_method): 
897         created a MonoType function pointer instance to be used during
898         verification. The verifier releases this memory at end.
899
900         * verify.c (mono_method_is_constructor): extracted repeated
901         checks for constructor into a single class.
902
903         * verify.c (do_push_field): use new extracted method
904         for constructor check.
905
906         * verify.c (do_newobj): same.
907
908         * verify.c (do_ldftn): renamed to do_load_function_ptr
909         and make it verify ldvirtftn too.
910
911         * verify.c (mono_method_verify: proper verification
912         of ldvirtftn. release created MonoMethod instances.
913
914 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
915
916         * verify.c (token_bounds_check): added.
917
918         * verify.c (do_ldftn): added.
919
920         * verify.c (mono_method_verify): proper verificartion of ldftn.
921
922 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
923
924         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
925         than the table row count. It's the resposibility of the caller to
926         make the bounds check and raise the correct error.
927
928         * metadata.c (mono_metadata_decode_row_col): Same.
929
930         * loader.c (mono_get_method_from_token): perform bounds check
931         on token for methoddef table.
932
933 2007-12-29  Miguel de Icaza  <miguel@novell.com>
934
935         * icall.c
936         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
937         assert into a negative result, the managed code already coped with
938         that.
939
940         Some folks on Windows reported this error. 
941
942 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
943
944         * appdomain.c: Bump corlib version.
945         * icall.c:
946         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
947         CultureInfo.CreateCulture to create CultureInfo for name.
948         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
949         create CultureInfo for name. Fixes bug #347174.
950
951 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
952
953         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
954         flags.
955
956         * verify.c (is_valid_branch_instruction): allow branching to the
957         first instruction of the protected block.
958
959         * verify.c (is_valid_cmp_branch_instruction): same.
960
961         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
962         avoid double initialization.
963
964         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
965         detect which cases the eval stack should just be copied.
966
967         * verify.c (mono_method_verify): check if the eval stack
968         is empty when entering a protected block.
969
970 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
971
972         * verify.c: added is_clause_in_range, is_clause_inside_range,
973         is_clause_nested and verify_clause_relationship. They perform
974         the verifications stated in P1 12.4.2.7.
975
976         * verify.c (mono_method_verify): remove some unused variables,
977         add the new exception clause checks, add instruction border
978         checks for protected block start/end, improved some error 
979         messages and fixed a bug in the way invalid instruction access
980         is detected.
981
982 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
983
984         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
985         from GC 7.0 if available.
986
987         * object.c: Remove an unused define.
988         
989         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
990
991         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
992
993         * null-gc.c (mono_gc_make_descr_for_array): Implement.
994
995         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
996
997         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
998         to take the same arguments as the other make_descr functions.
999
1000         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
1001
1002         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
1003         directly.
1004
1005         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
1006         mini.c.
1007
1008         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
1009         call to boehm-gc.c.
1010
1011         * boehm-gc.c (mono_gc_register_root): Fix a warning.
1012
1013         * null-gc.c (mono_gc_register_root): Fix a warning.
1014
1015         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
1016
1017         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
1018         (mono_gc_base_init): Call GC_init ().
1019
1020         * null-gc.c: Define mono_gc_register_root () as a no-op.
1021
1022         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
1023
1024 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
1025
1026         * verify.c: add prototype for merge_stacks at top
1027
1028         * verify.c (do_switch): added.
1029
1030         * verify.c (merge_stacks): on some cases the stack merging
1031         was not happening properly. Unequal stack sizes at merge
1032         points should be invalid.
1033
1034         * verify.c (mono_method_verify): added more debug info on stack state.
1035         verify switch properly.
1036
1037 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
1038
1039         * method-builder.h: New file, moved the mono_mb_ declarations here from 
1040         marshal.h.
1041
1042         * boehm-gc.c marshal.c: Include method-builder.h.
1043
1044         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
1045
1046         * marshal.c: Remove some code which is now in method-builder.c.
1047
1048 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
1049
1050         * method-builder.c: New file, extraction of the method builder functionality 
1051         from marshal.c.
1052
1053         * marshal.c: Move the mb functions into method-builder.c.
1054
1055         * marshal.h marshal.c: Export some mono_mb_... functions.
1056
1057         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
1058
1059         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
1060         the caller.
1061
1062         * class.c (mono_class_get_full): Check the token type in the dynamic case.
1063
1064         * loader.c (mono_field_from_token): Ditto.      
1065
1066         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
1067         type as well.
1068         
1069         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
1070         Fixes #342565.
1071
1072         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
1073         a helper function for setting it.
1074
1075         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
1076
1077         
1078         * assembly.c: Significally simplify code now that referenced assemblies are 
1079         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
1080
1081         * threads.h: Don't include  the internal threads-types.h header file. Fixes
1082         #349952.
1083
1084 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
1085
1086         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
1087         instructions that were target of branches or are at protected block boundaries.
1088
1089         * verify.c (in_same_block): handle filter clauses.
1090
1091         * verify.c (is_valid_branch_instruction): added. checks the target of
1092         instructions br or brtrue/false.
1093
1094         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
1095         binary branch instructions such as beq and bge.
1096
1097         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
1098         and made it pin the instruction as been part of the exception block.
1099
1100         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
1101         of in_same_block.
1102
1103         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
1104         of in_same_block.
1105
1106         * verify.c (do_ret): ret from a protected block is unverifiable and
1107         not invalid.
1108
1109         * verify.c (do_static_branch): verify br and br.s instructions.
1110
1111         * verify.c (merge_stacks): add extra param to support detection
1112         of branches in the middle of instructions.
1113         
1114         * verify.c (mono_method_verify): verify branches and exception blocks
1115         that target the middle of instructions. Proper verification of br and br.s.
1116
1117 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
1118
1119         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
1120         skip_visibility field.
1121         (reflection_methodbuilder_from_dynamic_method): Ditto.
1122
1123         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
1124         registrations. Fixes #348193.
1125
1126         * threads.h: Move the internal mono_thread_get_pending_exception () to
1127         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
1128
1129 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
1130
1131         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
1132         icall registration. Fixes #348193.
1133
1134         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
1135         for corlib classes into object. Fixes #349621.
1136
1137 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
1138
1139         * icall.c (property_accessor_nonpublic): new function to determine
1140         whether an accessor allows a property to be considered non-public.
1141         Returns false for private accessor(s) from parent class, and internal
1142         accessor(s) from parent on 2.0 profile (and higher).
1143         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
1144         to determine whether property should be included if NonPublic flag
1145         is set. Fixes bug #349078.
1146
1147 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
1148
1149         * verify.c (init_stack_with_value): added.
1150
1151         * verify.c (mono_method_verify): extracted common
1152         code for exception initialization into init_stack_with_value.
1153
1154         * verify.c (mono_method_verify): initialize the exception
1155         for handler clauses as well.
1156
1157         * verify.c (mono_method_verify): fix the exception clause
1158         ordering rules, it should use handler end offset and not
1159         start offset.
1160
1161 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
1162
1163         * rawbuffer.c: remove useless warning.
1164
1165 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
1166
1167         * threads.h, threads-types.h: move functions to the correct header
1168         (fixes bug#349952).
1169
1170 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1171
1172         * verify.c (mono_method_verify): proper verification
1173         of exception handling clauses ranges and fallthru in
1174         and out of protected blocks.
1175
1176 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1177
1178         * verify.c (mono_method_verify): fixed compilation issue.
1179
1180 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1181
1182         * verify.c (mono_method_verify): a printf slipped in, changed
1183         to use verifier debug macro.
1184
1185 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
1186
1187         * verify.c (is_correct_leave): check for filter clauses.
1188
1189         * verify.c (do_filter): added.
1190
1191         * verify.c (mono_method_verify): property verification of leave.
1192
1193
1194 2007-12-18  Mark Probst  <mark.probst@gmail.com>
1195
1196         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
1197         Win32 build, until we figure out how to do the proper thing on
1198         Win32.
1199
1200 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
1201
1202         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
1203         by the previous patch.
1204         
1205         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
1206         the assembly resolve handler for refonly assemblies.
1207
1208 2007-12-17  Mark Probst  <mark.probst@gmail.com>
1209
1210         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
1211         Make sure only one thread is allowed to commence shutdown, and
1212         don't allow new threads to be started once shutdown is in
1213         progress.
1214
1215 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
1216
1217         * verify.c (is_correct_endfilter): added.
1218
1219         * verify.c (is_unverifiable_endfilter): added.
1220
1221         * verify.c (do_endfilter): added.
1222
1223         * verify.c (mono_method_verify): property verification of endfilter
1224         and fixed a corner case or endfinally.
1225
1226 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
1227
1228         * verify.h: new flags to support fail fast of unverifiable code and
1229         do non-strict verification. Non-strict verification is required to
1230         have MS runtime compatibility. There are a huge amount of unverifiable
1231         code that it accepts as verifiable. The strict mode verifies the code
1232         as the specs says.
1233         Non-strict mode will be required in cases where code needs to be
1234         accepted as verifiable but fails under strict mode.
1235
1236         * pedump.c: added support to fail fast and non-strict verification.
1237
1238         * verify.c: added support for both fail fast and non-strict verification.
1239
1240 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
1241
1242         * verify.c (is_correct_endfinally): added.
1243
1244         * verify.c (mono_method_verify): property verification of endfinally.
1245
1246 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
1247
1248         * verify.c (in_any_block): check for filter clauses.
1249
1250         * verify.c (is_correct_rethrow): added.
1251
1252         * verify.c (mono_method_verify): property verification of rethrow.
1253
1254         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
1255
1256 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
1257
1258         * verify.c (do_throw): added.
1259
1260         * verify.c (mono_method_verify): property verification of throw
1261
1262 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
1263
1264         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
1265         assemblies. Fixes #346425.
1266
1267 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
1268
1269         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
1270         FieldBuilders.
1271
1272         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
1273
1274         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
1275         prevent asserts when this is called with a token which might not be valid.
1276
1277         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
1278         lookup_dynamic_token_class with valid_token == FALSE.
1279
1280         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
1281
1282         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
1283
1284         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1285         
1286 2007-12-10  Mark Probst  <mark.probst@gmail.com>
1287
1288         * gc.c: Don't delay threadpool thread finalization unless Mono is
1289         shutting down.
1290
1291 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1292
1293         * threads.c: turn an assert into a non-fatal warning.
1294
1295 2007-12-09  Robert Jordan  <robertj@gmx.net>
1296
1297         * icall.c (GetVirtualMethod): Add missing argument validation.
1298
1299 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1300
1301         * verify.c (do_cast): added.
1302
1303         * verify.c (mono_method_verify): property verification of castclass and isinst.
1304
1305
1306 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1307
1308         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
1309
1310         * verify.c (do_stelem): added.
1311
1312         * verify.c (mono_method_verify): property verification of stelem.X.
1313
1314 2007-12-07  Mark Probst  <mark.probst@gmail.com>
1315
1316         * class.c, class-internals.h: Introduce an environment variable
1317         (MONO_GENERIC_SHARING) through which the extent of generic code
1318         sharing can be controlled (share all classes, share only corlib
1319         classes, or share nothing).
1320
1321         * object.c: Only create runtime generic context for classes for
1322         which sharing is enabled.
1323
1324 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1325
1326         * verify.c (do_ldelem): refactor it to work with ldelem.any.
1327
1328         * verify.c (mono_method_verify): property verification of ldelem.any.
1329
1330 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1331
1332         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
1333         added ldelem.X opcodes.
1334
1335         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
1336
1337         * verify.c: proper verification of ldelem.X 
1338
1339 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
1340
1341         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
1342
1343 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
1344
1345         * verify.c (mono_method_verify): null literal requires special handling,
1346         the value pushed on stack need to be flagged as so.
1347
1348         * verify.c (do_ldelema): Verify ldelema properly.
1349
1350 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
1351
1352         * verify.c: Verify ldlen properly.
1353
1354 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
1355
1356         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
1357         to the target object's type. Fixes #346160.
1358
1359 2007-12-05  Dick Porter  <dick@ximian.com>
1360
1361         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
1362         Solaris needs the same workaround as BSD-derived systems.  Fixes
1363         bug 323524, patch by Burkhard Linke
1364         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
1365
1366 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
1367
1368         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
1369         handle to use when error dialog is shown; otherwise, update mask
1370         to show no error dialog when an error occurs.
1371
1372 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
1373
1374         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
1375
1376         * class.c (mono_class_get_field_default_value): New helper function to initialize
1377         field->def_type and field->data.
1378
1379 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
1380
1381         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
1382         the general one.
1383
1384         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
1385
1386         * marshal.c: Avoid depending on delegate->method_info being set.
1387
1388         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
1389         
1390         * object.c (mono_delegate_ctor): Set delegate->method.
1391
1392         * object-internals.h (struct _MonoDelegate): Add 'method' field.
1393
1394         * appdomain.c: Bump corlib version.
1395
1396 2007-11-27  Raja R Harinath  <harinath@gmail.com>
1397
1398         * metadata.c (mono_generic_inst_equal_full): Short-circuit
1399         equality check if we're comparing canonicalized MonoGenericInsts.
1400
1401 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
1402
1403         * class.c (generic_array_methods): Call mono_class_setup_methods () before
1404         accessing class->methods.
1405
1406 2007-11-22  Dick Porter  <dick@ximian.com>
1407
1408         * threads.c: Ensure that the synch_cs is set before trying to use
1409         it.
1410
1411 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
1412
1413         * profiler.c: r89126 broke the statistial profiler, unbreak.
1414
1415 2007-11-22  Martin Baulig  <martin@ximian.com>
1416
1417         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
1418
1419         * mono-debug.c
1420         (mono_debug_debugger_version): Bump to 3.
1421         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
1422         -> mono_debugger_class_initialized().
1423
1424         * mono-debug-debugger.c
1425         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
1426
1427         * class.c
1428         (mono_debugger_start_class_init_func): Removed.
1429         (mono_debugger_class_loaded_methods_func): Added.
1430         (mono_class_setup_methods): Call it here.
1431
1432 2007-11-22  Martin Baulig  <martin@ximian.com>
1433
1434         * mono-debug.c
1435         (mono_debug_add_delegate_trampoline): New public method.
1436         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
1437
1438         * mono-debug.h
1439         (MonoSymbolTable): Added `global_data_table'.
1440         (MonoDebuggerTypeKind): Removed.
1441
1442 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
1443
1444         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
1445         these methods.
1446
1447         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1448         
1449 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1450
1451         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
1452
1453 2007-11-20  Martin Baulig  <martin@ximian.com>
1454
1455         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
1456
1457         * mono-debug-debugger.c
1458         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
1459         (mono_debugger_remove_breakpoint): Likewise.
1460         (mono_debugger_check_breakpoints): Likewise.
1461         (mono_debugger_register_class_init_callback): New public method.
1462         (mono_debugger_remove_class_init_callback): Likewise.
1463         (mono_debugger_add_type): Likewise.
1464
1465         * mono-debug-debugger.h
1466         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
1467
1468 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
1469
1470         * class.c: more interface implementations needed for the
1471         array enumerator (fixes bug #341112).
1472
1473 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
1474
1475         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
1476         fix ParamName of ArgumentNullExceptions.
1477
1478 2007-11-17  Miguel de Icaza  <miguel@novell.com>
1479
1480         * reflection.c (mono_reflection_encode_sighelper): Generate the
1481         modopts and modreqs.   I have a useless test that crashes monodis,
1482         but that shows the code working.
1483
1484 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
1485
1486         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
1487         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
1488
1489 2007-11-15  Dick Porter  <dick@ximian.com>
1490
1491         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
1492         When joining a thread, it's the thread that's calling Join that
1493         gets WaitSleepJoin state not the target.  Fixes the standalone
1494         test case in bug 334740, and hopefully the whole bug too.
1495
1496 2007-11-15  Dick Porter  <dick@ximian.com>
1497
1498         * process.c: Read file version info from the files pointed at by
1499         process modules, not the current process.  Fixes bug 315969.
1500
1501         Use windows typedef names in some places to fix warnings on the
1502         windows build.
1503
1504 2007-11-15  Mark Probst  <mark.probst@gmail.com>
1505
1506         * image.c, metadata-internals.h: Added a generic_class_cache hash
1507         to MonoImage for looking up generic classes when sharing generics.
1508
1509 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1510
1511         * sgen-gc.c: warning cleanups.
1512
1513 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
1514
1515         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
1516         inherited properties.
1517
1518 2007-11-14  Mark Probst  <mark.probst@gmail.com>
1519
1520         * object.c, class-internals.h: Added more information to the
1521         runtime generic context.
1522
1523 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
1524
1525         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
1526         instead of just the target method. Generalize the abstract method handling to
1527         handle any non-static method.
1528
1529         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1530         mono_marshal_get_delegate_invoke () signature change.
1531
1532 2007-11-13  Mark Probst  <mark.probst@gmail.com>
1533
1534         * class.c, class-internals.h: Made
1535         mono_type_get_basic_type_from_generic () public.  Fixed member
1536         access check for shared generics.
1537
1538         * loader.c: Don't insert field into field cache if it's part of a
1539         non-inflated generic class.
1540
1541         * domain.c, domain-internals.h: The generic sharing context is now
1542         part of the jit info data structure.  Added two accessor
1543         functions.
1544
1545 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
1546
1547         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
1548         the array Get/Set/Address methods, since the JIT inlines them.
1549
1550         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
1551
1552         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
1553         (mono_image_init): Initialize runtime_invoke_direct_cache.      
1554
1555         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1556         mono_marshal_get_delegate_invoke signature change.
1557
1558         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
1559         an additional argument. Add support for invoking abstract methods.
1560
1561         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
1562
1563         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
1564
1565 2007-11-09  Mark Probst  <mark.probst@gmail.com>
1566
1567         * class.c: Do field layout for open generic classes as well.
1568
1569 2007-11-09  Mark Probst  <mark.probst@gmail.com>
1570
1571         * gc.c, gc-internal.h: Don't finalize threadpool threads with
1572         other objects, because the threadpool is still around.  Put them
1573         in a list instead and after finalizing all other objects in the
1574         root domain shut down the thread pool and then finalize the
1575         threads.  Fixes bug #337383.
1576
1577         * threads.c, thread-types.h: New mono_thread_create_internal()
1578         function for marking a thread with the threadpool flag before it
1579         started.  Set synch_cs to NULL after freeing it.
1580
1581         * threadpool.c: Mark threadpool threads before they start.
1582
1583 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1584
1585         * reflection.h, reflection.c: don't export random functions
1586         and lazy load dbnull and missing objects.
1587
1588 2007-11-07  Jonathan Chambers <joncham@gmail.com>
1589
1590         * class.c: Initialize COM types if COM interfaces
1591         are present (not just COM classes).
1592         
1593         Code is contributed under MIT/X11 license.
1594
1595 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
1596         * reflection.c:
1597         create_dynamic_mono_image: hook module profiler events (dynamic case).
1598         mono_image_basic_init: hook assembly profiler events (dynamic case).
1599
1600 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
1601         * profiler.c:
1602         simple_appdomain_unload: completely terminate the profiler
1603         instead of only processing the statistical samples.
1604         simple_shutdown: make sure this is really called exactly once,
1605         even in multithreaded applications, and always listen to
1606         appdomain events.
1607         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
1608         here, the "[un]load" functions will do it.
1609         Fixes bugs #333791 and #325261.
1610
1611 2007-11-07  Geoff Norton  <gnorton@novell.com>
1612
1613         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
1614         rather than depend on __APPLE__.
1615
1616 2007-11-07  Mark Probst  <mark.probst@gmail.com>
1617
1618         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
1619
1620 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
1621
1622         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
1623         UTF16 MonoString. Fix the crash from bug #335488
1624
1625 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
1626
1627         * marshal.c: Correct (for non-Win32 OS) length != size in 
1628         mono_string_from_bstr. Fix #339530.
1629
1630 2007-11-06  Geoff Norton  <gnorton@novell.com>
1631
1632         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
1633         to succeed
1634
1635 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
1636
1637         * process.c: Added run-time GetProcessId API detection for Windows.
1638
1639 2007-11-04  Miguel de Icaza  <miguel@novell.com>
1640
1641         * reflection.c  (mono_param_get_objects): If a parameter has the
1642         attribute [System.Runtime.InteropServices.Optional] we should
1643         set the DefaultValue of the ParameterInfo to be
1644         System.Reflection.Missing instead of DBNull.
1645
1646         See bug #339013.
1647
1648         (mono_get_reflection_missing_object): New method,
1649         returns the System.Reflection.Missing.Value singleton instance.
1650
1651 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
1652
1653         * culture-info-table.h : regenerated.
1654
1655 2007-11-02  Jonathan Chambers <joncham@gmail.com>
1656
1657         * icall.c: Use GetEnvironmentStrings on windows
1658         so we are using the same environment block as 
1659         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
1660         #333740.
1661         
1662         Code is contributed under MIT/X11 license.
1663
1664 2007-10-31  Martin Baulig  <martin@ximian.com>
1665
1666         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
1667
1668         * mono-debug-debugger.h
1669         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
1670
1671 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
1672
1673         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
1674         classes.
1675
1676 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
1677
1678         * culture-info-table.h : regenerated.
1679
1680 2007-10-30  Robert Jordan  <robertj@gmx.net>
1681
1682         * icall-def.h, icall.c:
1683         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
1684
1685         Code is contributed under MIT/X11 license.
1686
1687 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
1688
1689         * class.c (mono_class_setup_vtable): Find the inflated methods in the
1690         inflated class instead of inflating them again.
1691         
1692         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
1693         dynamic case.
1694
1695         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
1696         Call setup_supertypes () after klass->parent is set.
1697         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
1698
1699         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
1700         for inflated instances of not yet created dynamic generic classes.
1701         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
1702         times from inflated_method.
1703         (methodbuilder_to_mono_method): Ditto.
1704
1705 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1706
1707         * gc.c: code cleanup and removed old untested option of not creating the
1708         finalizer thread.
1709
1710 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
1711
1712         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
1713         creating a jump trampoline for dynamic methods.
1714
1715 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
1716
1717         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
1718         generic TypeBuilders when called from another method of the same type (bug #335131).
1719
1720
1721 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
1722
1723         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
1724         doesn't seem to work perfectly.
1725         
1726         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
1727         called multiple times.
1728         (methodbuilder_to_mono_method): Ditto.
1729         (resolve_object): Inflate FieldBuilder's.
1730
1731 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1732
1733         * string-icalls.c, string-icalls.h, appdomain.c: patch from
1734         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
1735         RemoveEmptyEntries in the string.Split implementation (bug #322375).
1736
1737 2007-10-26  Dick Porter  <dick@ximian.com>
1738
1739         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
1740         Thread initialisation changes
1741
1742 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
1743
1744         * verify.c: fix compatibility check between arrays and System.Array
1745
1746 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
1747
1748         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
1749         too. Fixes #336999.
1750
1751 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
1752
1753         * object.c (mono_value_box): Use typed allocation here.
1754
1755 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
1756
1757         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
1758         trampoline instead of compiling the method right away.
1759
1760         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
1761
1762 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
1763
1764         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
1765         related fields for dynamic classes. Fixes #334493.
1766
1767 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
1768
1769         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
1770         
1771         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
1772
1773         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
1774         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
1775
1776         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
1777
1778         * reflection.c (create_generic_typespec): Initialize klass->generic_container
1779         if needed.
1780         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
1781
1782 2007-10-18  Jonathan Chambers <joncham@gmail.com>
1783
1784         * marshal.c: Use correct key when removing item
1785         from ccw_hash.
1786         
1787         Code is contributed under MIT/X11 license.
1788
1789 2007-10-17  William Holmes  <billholmes54@gmail.com>
1790
1791         *marshal.c: Adding a case to marshal booleans to U1
1792
1793         Code is contributed under MIT/X11 license.
1794
1795 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
1796
1797         * class.c (mono_class_from_name): Search the modules compromising dynamic
1798         assemblies. Fixes #331601.
1799
1800 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
1801
1802         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
1803         exception if the type name contains an assembly component. Fixes #334203.
1804
1805         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
1806         modules inside dynamic assemblies. Fixes #334200.
1807         
1808         * reflection.c: Set image->public_key and image->public_key_length;
1809
1810         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
1811         fields.
1812
1813         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
1814         
1815 2007-10-16  Mark Probst  <mark.probst@gmail.com>
1816
1817         * metadata.c: Implemented correct comparing of generic classes.
1818         An inflated generic class can be equal to a non-inflated one if it
1819         is inflated with generic type variables as type arguments.  Fixes
1820         bug #333798.
1821
1822 2007-10-15  Dick Porter  <dick@ximian.com>
1823
1824         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
1825         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
1826         81646.
1827
1828         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
1829         instead of a monitor lock.  This means that monitor_try_enter and
1830         co can set the thread state safely.
1831         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
1832         thread_interrupt_requested, so interrupt actually works.
1833
1834         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
1835         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
1836         state accessor function
1837
1838 2007-10-15  Martin Baulig  <martin@ximian.com>
1839
1840         * mono-debug.h
1841         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
1842         the debugger with the current runtime.
1843
1844 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
1845
1846         * object.c, object-internals.h: added the ability to set a single
1847         trampoline for all the slots in a vtable.
1848
1849 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1850
1851         * marshal.c: deal with a possible race condition during multicast
1852         delegate invocation.
1853
1854 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1855
1856         * class.c: ensure value type methods don't have the synchronized
1857         flag set.
1858
1859 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
1860
1861         * string-icalls.c, string-icalls.h: reverted unapproved patch that
1862         breaks the build.
1863
1864 2007-10-11  Joel Reed  <joelwreed@comcast.com>
1865
1866         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
1867         to take an options parameter so that empty entries can be removed during
1868         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
1869
1870 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
1871
1872         * marshal.c: make sure we don't store the signature from a dynamic
1873         method into the runtime invoke cache (bug #327189).
1874
1875 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1876
1877         * marshal.c: make sure the wrapper methods are properly initialized.
1878
1879 2007-10-11  Mark Probst  <mark.probst@gmail.com>
1880
1881         * metadata.c, metadata-internals.h: Generalized
1882         mono_type_stack_size() to mono_type_stack_size_internal() which
1883         takes an additional argument specifying whether it allows open
1884         types.
1885
1886 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
1887
1888         * verify.c (do_invoke_method): handle typedbyref params
1889         correctly and check for unverifiable return values.
1890
1891         * verify.c (do_newobj): fix a warning.
1892
1893 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
1894
1895         * verify.c: don't tread typedbyref as allways unverifable,
1896         so uses, like (ld/st)loc.0 are valid. verify for the cases
1897         that it matters, like boxing related operations.
1898
1899 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
1900
1901         * verify.c: add verification of the newobj opcode. verification
1902         of delegate instantation still missing due ldftn and virldftn not
1903         pushing the function type on stack
1904
1905 2007-10-08  Mark Probst  <mark.probst@gmail.com>
1906
1907         * class-internals.h: Runtime generic context data structure
1908         definition.
1909
1910         * object.c: Initialization of runtime generic context at runtime
1911         vtable creation time.
1912
1913 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
1914         * class.c (mono_class_create_from_typedef,
1915         mono_class_from_generic_parameter, mono_ptr_class_get,
1916         mono_fnptr_class_get, mono_bounded_array_class_get)
1917         * domain.c (mono_domain_create, mono_domain_free)
1918         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
1919         * image.c (do_mono_image_load, mono_image_close):
1920         Hooked up load-unload profiler events.
1921
1922 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
1923
1924         * domain.c: track statistics about the actual amount of native code
1925         allocated.
1926
1927 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
1928
1929         * class.c: the valuetype enumerators don't have the additional
1930         supertypes interfaces.
1931
1932 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1933
1934         * class.c: need more interfaces setup for the IEnumerator<T>
1935         object created for arrays (tests/ienumerator-interfaces.2.cs).
1936
1937 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
1938
1939         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
1940
1941 2007-10-05  Alp Toker  <alp@atoker.com>
1942
1943         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1944         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1945         #315863.
1946
1947 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
1948
1949         * verify.c (verify_type_compatibility_full): verification of
1950         compatibility improved, validates correctly non-strict checks between
1951         native int and I4 types different than (unsigned)int32.
1952
1953         * verify.c (do_store_indirect): added, do all verification of
1954         ldind.X opcodes. 
1955
1956         * verify.c (get_load_indirect_mono_type): renamed to
1957         get_indirect_op_mono_type, as it now returns the MonoType for 
1958         ldind.X and stind.X opcodes.
1959
1960 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
1961
1962         * reflection.c: Fix the encoding of generic type definition for
1963         TypeBuilders.
1964
1965         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
1966         mono_image_typedef_or_ref but allows to specify if typespec lookups should
1967         be made. Typespec check is done prior to typeref cache lookup.
1968
1969         * reflection.c (mono_image_typedef_or_ref): now just delegate to
1970         mono_image_typedef_or_ref_full.
1971
1972         * reflection.c (encode_generic_class): encode the generic class
1973         directly instead of calling encode_type.
1974
1975         * reflection.c (encode_type): encode the generic type definition
1976         MonoClass as a generic instantiation.
1977
1978         * reflection.c (create_typespec): cache typespec tokens in
1979         the assembly->typespec cache. Don't create typespec for a generic
1980         instance MonoClass. Create typespec for the generic type defintion.
1981
1982         * reflection.c (create_generic_typespec): encode the generic
1983         class directly instead of calling encode_type.
1984
1985         * reflection.c (mono_image_create_token): encode the generic
1986         type definition not using a typespec for MonoType instances.
1987
1988
1989 2007-10-04  Raja R Harinath  <rharinath@novell.com>
1990
1991         Fix #328812
1992         * class.c (mono_image_init_name_cache): Don't return nested
1993         'protected internal' classes.
1994         (mono_class_from_name_case): Likewise.
1995
1996 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
1997
1998         * icall-def.h, icall.c : get_bundled_machine_config() is now the
1999           common function used by both DefaultConfig in System.dll and
2000           InternalConfigurationHost in System.Configuration.dll.
2001
2002 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2003
2004         * class.c: automatically add to vectors only a few essential explicit
2005         generic interfaces. The rest of the interfaces that arrays should
2006         provide are currently implicitly added (but still not lazily, see the
2007         design in the discussion of bug#325495 for the details of what is
2008         needed for that). Additionally, implicit interfaces are assigned the
2009         same vtable slot as the explicit interfaces (as they are compatible):
2010         this enables huge memory savings since we don't need to instantiate
2011         as many memthods and as large vtables anymore. Also, Since
2012         GetEnumerator<T> returns an instance of a type that is required to
2013         support a similarly large set of interfaces as arrays, we add
2014         implicit interfaces and interface offset sharing support to those
2015         types, too. This change adds all the required interfaces so that
2016         the anonarray.cs test case in the bug report works (we don't add
2017         all the interfaces to arrays of arrays 3-level deep and more because
2018         of the memory requirements explained in the bug and since they are much
2019         less common: the lazy-loading support will enabled them to work, too).
2020
2021 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
2022
2023         * verify.c (merge_stacks): major clean up, all type compatibility
2024         checks are done by verify_type_compatibility. This fix my earlier lack
2025         of understanding of the CLR type system and merge_stacks no longer looks
2026         scary.
2027
2028         * verify.c: fixed some bad spelling.
2029
2030 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
2031
2032         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
2033         a given stack slock.
2034         
2035         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
2036         verify_type_compatibility_full. This removed a near indentical function and fixed
2037         handling of Int32 and IntPtr across all opcodes.
2038
2039 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2040
2041         * class.c: only vectors have the additional generic interfaces.
2042
2043 2007-10-01  Jonathan Chambers <joncham@gmail.com>
2044
2045         * mono-config.c: Use g_strcasecmp instead of
2046         strcasecmp like everywhere else to fix
2047         compilation with MSVC.
2048         
2049         Code is contributed under MIT/X11 license.
2050
2051 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2052
2053         * object.c, object-internals.h: refactored the IMT code to enable
2054         building a single slot at a time and lazily creating the IMT trampolines
2055         and thunks.
2056
2057 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
2058
2059         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
2060
2061         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
2062         Fixes #328501.
2063         
2064 2007-09-29  Raja R Harinath  <harinath@gmail.com>
2065
2066         * loader.c (method_from_methodspec): Rearrange to avoid
2067         un-necessary exposition.  Don't assert out if the method's
2068         declaring type is a generic type definition.
2069
2070 2007-09-28  Martin Baulig  <martin@ximian.com>
2071
2072         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
2073
2074 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
2075
2076         * class-internals.h: optimize field layout of MonoClass to
2077         requires less cachelines at runtime and save a few bytes on 64 bit
2078         systems.
2079
2080 2007-09-28  Jb Evain  <jbevain@novell.com>
2081
2082         * reflection.c: when encoding type names in custom attributes,
2083         if the type is a closed generic type, its generic arguments
2084         have to be serialized as AssemblyQualifiedName, so that when
2085         they are deserialized, it's possible to re-create them properly.
2086         Fixes #329450.
2087
2088
2089 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2090
2091         * object.c, class-internals.h: added delegate-creation counter.
2092
2093 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
2094
2095         * class.c: cleanup of the code that synthetizes interfaces for
2096         arrays in 2.0: saves quit a bit of corlib mempool memory.
2097         Code to fix bug #325495 ifdeffed out for now until the issues
2098         with memory usage and O(n^2) behaviour are fixed.
2099
2100 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2101
2102         * marshal.c: when possible, do not duplicate the name of the methods
2103         in the method builder and in the generated MonoMethod.
2104
2105 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
2106         * verify.c: added support for type checking ldind_* opcodes.
2107
2108 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
2109
2110         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
2111         which is used to distinguish the fully open instantiation of a TypeBuilder
2112         with the rest. This temporary hack is required to restore the property that
2113         the fully open instantiation is the same type of the generic type definition.
2114
2115         * class-internals.h (mono_generic_class_is_generic_type_definition):
2116         new function as part of the internal API.
2117
2118         * class.c (inflate_generic_type): return NULL when the generic inst is
2119         fully open. The fully open generic type is now the same as the generic type
2120         definition for non TypeBuilder types.
2121
2122         * class.c (mono_generic_class_get_class): removed assert since it is
2123         no longer valid, gklass->cached_class can point to the generic type definition.
2124
2125         * class.c (mono_generic_class_is_generic_type_definition): new.
2126
2127         * metadata.c (mono_generic_class_hash): added is_tb_open field
2128         to the hash calculation.
2129
2130         * metadata.c (free_generic_class): if the generic class is associated
2131         with the generic type definition, its field will come from the mempool and
2132         must not be freed.
2133
2134         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
2135         new, this function identifies the corner case of a TypeBuilder fully open
2136         instantiation.
2137
2138         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
2139         for lookup. Set gclass->cached_class to be the container class in case of
2140         the fully open instantiation of non TypeBuilder types.
2141
2142         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
2143         to compare generic classes.
2144
2145         * reflection.c (method_encode_methodspec): remove assert that
2146         no longer is valid.
2147
2148         * reflection.c (mono_reflection_generic_class_initialize): add
2149         an aditional assert to ensure the proper type is used.
2150
2151 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
2152
2153         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
2154         to enjoy it.
2155
2156 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
2157
2158         * verify.c (push_arg): Fixed support for ldarga
2159         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
2160         MonoType used as first arg in case of instance calls.
2161
2162 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
2163
2164         * verify.c: Support for verifying VAR and MVAR types, 
2165
2166 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
2167
2168         * icall.c (ves_icall_get_property_info): Set the reflected type of the
2169         accessors correctly.
2170
2171 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
2172
2173         * threads.c: support OSX and other systems in
2174         mono_thread_get_stack_bounds (bug #328026).
2175
2176 2007-09-25  Martin Baulig  <martin@ximian.com>
2177
2178         * mono-debug.h
2179         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
2180
2181 2007-09-24  Martin Baulig  <martin@ximian.com>
2182
2183         * mono-debug.h
2184         (MonoDebugClassEntry): Moved the definition of this struct into
2185         mono-debug.c to make it private.
2186
2187         * mono-debug.c
2188         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
2189         type table per symbol file, we don't need to store the symfile id
2190         any longer.
2191
2192 2007-09-24  Martin Baulig  <martin@ximian.com>
2193
2194         Create one type table per symbol file, since a `MonoClass *' gets
2195         invalid when its image is unloaded.
2196
2197         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
2198         (MonoDebugHandle): Added `type_table'.
2199
2200 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
2201
2202         * mempool.c, mempool.h: added mono_mempool_new_size () API
2203         to be able to specify a smaller initial size for the pool.
2204         Adjusted the code to slowly increase pool size before using
2205         the previous default size.
2206         * image.c: use a small initial size for image mempools.
2207
2208 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
2209
2210         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
2211         Fixes ##320990.
2212
2213         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
2214         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
2215
2216 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
2217
2218         * metadata.c (mono_type_create_from_typespec): Remove an invalid
2219         free. Fixes #327438.
2220
2221 2007-09-21  Raja R Harinath  <harinath@gmail.com>
2222
2223         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
2224         generic instantiations, etc.
2225         <MONO_TYPE_ARRAY>: Likewise.
2226
2227 2007-09-21  Martin Baulig  <martin@ximian.com>
2228
2229         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
2230         these structs were never defined.
2231         (MonoDebugHandle): Removed the `_priv' field, it was never used.
2232
2233 2007-09-21  Martin Baulig  <martin@ximian.com>
2234
2235         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
2236
2237 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
2238
2239         * image.c: removed the guid hash tables: we can get the same info
2240         without the additional memory usage hit (partially fixes also bug #327052).
2241
2242 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2243
2244         * profiler.h, profiler-private.h, profiler.c: add a new profiler
2245         event to handle unloading methods. After the event is called, the
2246         corresponding MonoMethod* must be considered invalid.
2247         * loader.c (mono_free_method): call the new mono_profiler_method_free
2248         event.
2249
2250 2007-09-20  Mark Probst  <mark.probst@gmail.com>
2251
2252         * domain-internals.h: New flag in MonoJitInfo which marks shared
2253         generic methods.  New hash table (shared_generics_hash) in
2254         MonoDomain to keep track of shared generic methods.  Prototypes
2255         for functions to register and lookup shared generic methods.
2256
2257         * domain.c: Support for registering and looking up shared generic
2258         methods via a hash table (shared_generics_hash) in MonoDomain.
2259
2260         * class-internals.h: New exception to signal failure of shared
2261         compilation of a generic method.  New counters for generics
2262         sharing in MonoStats.
2263
2264 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
2265
2266         * image.c, metadata-internals.h: don't keep a file descriptor open
2267         for loaded assemblies (bug#325988).
2268
2269 2007-09-19  Raja R Harinath  <rharinath@novell.com>
2270
2271         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
2272         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
2273         use the corresponding datatypes.
2274         (type_in_image): Update to changes.
2275         (CleanForImageUserData): Simplify.
2276         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
2277         Avoid quadratic behaviour in handling the "stolen" list by
2278         separating the filter predicate out, and by prepending the stolen
2279         items rather than appending them.
2280         (steal_ginst_in_image): Likewise.
2281         (mono_metadata_clean_for_image): Update to changes.
2282
2283 2007-09-19  Martin Baulig  <martin@ximian.com>
2284
2285         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
2286
2287 2007-09-19  Martin Baulig  <martin@ximian.com>
2288
2289         * mono-debug.c (mono_debug_cleanup): Don't call
2290         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
2291
2292 2007-09-19  Raja R Harinath  <harinath@gmail.com>
2293
2294         Fix crash on 'make run-test' in mcs/errors
2295         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
2296         Avoid more potential allocations in mono_class_from_mono_type.
2297         (ginst_in_image): Update to changes.
2298         (gclass_in_image): Rearrange slightly.
2299
2300 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
2301
2302         * class.c (mono_class_init): Move the code that sets up class->methods to 
2303         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
2304
2305         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
2306         canonical instance of an inflated generic signature.
2307         (mono_type_create_from_typespec): Remove an invalid free.
2308
2309         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
2310
2311 2007-09-18  Marek Habersack  <mhabersack@novell.com>
2312
2313         * domain-internals.h: added a declaration of the
2314         mono_assembly_load_full_nosearch internal function.
2315
2316         * assembly.c (mono_assembly_load_with_partial_name): use
2317         mono_try_assembly_resolve return value properly.
2318         (mono_assembly_load_full_nosearch): copied the function body from
2319         mono_assembly_load_full, without the code to invoke assembly
2320         search hooks.
2321         (mono_assembly_load_full): calls the above new function and if the
2322         assembly is not resolved, invokes the search hooks.
2323
2324         * appdomain.c (mono_runtime_init): restore the global postload
2325         assembly search handlers.
2326
2327 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
2328
2329         * class.c (mono_class_init): Make sure class->methods and class->properties
2330         are never NULL in the generics case.
2331
2332         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
2333
2334 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
2335
2336         * metadata.c (free_generic_class): Disable some code to fix the build.
2337
2338         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
2339
2340         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
2341         from the image mempool.
2342
2343         * metadata.c (free_generic_class): Free more data from the inflated class.
2344
2345         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
2346
2347         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
2348         mempool.
2349         (mono_type_create_from_typespec): Ditto.
2350
2351         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
2352         MonoImage to the caller.
2353         (mono_init_internal): Save the opened image in a global variable.
2354         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
2355
2356         * reflection.c (resolve_object): Fix a leak.
2357
2358         * metadata.c: Fix the freeing of data in the generics caches.
2359         
2360         * metadata.c (free_generic_inst): Comment this out to fix the build.
2361         (free_generic_class): Ditto.
2362
2363         * metadata.c: Free cached generic methods, instantinations and classes when
2364         they are removed from the caches.
2365         (mono_metadata_free_type): Free the type itself.
2366
2367         * class.c: Free the result of mono_class_inflate_generic_type () in a few
2368         places.
2369
2370 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2371
2372         * boehm-gc.c: restrict managed allocs to __thread supporting
2373         architectures.
2374
2375 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
2376
2377         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
2378         (mono_generic_class_get_class): Fix a leak.
2379
2380         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
2381         mono_metadata_free_type ().
2382         (mono_metadata_inflate_generic_inst): Fix a leak.
2383
2384 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2385
2386         * mono-debug.c (free_header_data): Fix a leak missed earlier.
2387
2388         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
2389         mempool.
2390
2391         * mono-debug.c (mono_debug_close_image): Fix call to 
2392         g_hash_table_remove ().
2393
2394 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2395
2396         * icall-def.h: redirect all the string ctor to the managed
2397         CreateString () methods.
2398         * string-icalls.c, string-icalls.h: removed dead code for string
2399         ctors and icalls.
2400
2401 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2402
2403         * mono-debug.c: Fix memory leaks.
2404
2405 2007-09-14  Jonathan Chambers <joncham@gmail.com>
2406
2407         * threads-types.h: Implement mono_hazard_pointer_set and 
2408         mono_hazard_pointer_clear macros using do/while(0) to fix
2409         compilation with MSVC.
2410         
2411         Code is contributed under MIT/X11 license.
2412
2413 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2414
2415         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
2416         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
2417
2418 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2419
2420         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
2421         icalls.
2422
2423 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2424
2425         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
2426         managed-code allocated as well.
2427
2428 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
2429
2430         * class.c (mono_class_is_assignable_from): Add support for generic variance.
2431
2432 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
2433
2434         * boehm-gc.c: fixed the build after the AOT changes.
2435
2436 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
2437
2438         * wrapper-types.h: Add an ALLOC wrapper type.
2439
2440         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
2441         reference managed allocator methods.
2442
2443 2007-09-12  Marek Safar  <marek.safar@gmail.com>
2444
2445         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
2446         of Type array and not MonoType, a fix suggested by Hari.
2447         
2448 2007-09-12  Jonathan Chambers <joncham@gmail.com>
2449
2450         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
2451         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
2452         
2453         Code is contributed under MIT/X11 license.
2454
2455 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2456
2457         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
2458
2459 2007-09-12  Marek Habersack  <mhabersack@novell.com>
2460
2461         * image.c (do_mono_image_open): if assembly file fails to open and
2462         MONO_IOMAP is in effect, try to find the path in a
2463         case-insensitive way.
2464
2465         * appdomain.c (mono_runtime_init): do not install postload hooks -
2466         tests show that MS.NET doesn't use anything of that sort to
2467         trigger the AppDomain.AssemblyResolve event.
2468         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
2469         made non-static.
2470         (mono_runtime_init): init portability helpers here.
2471
2472         * assembly.c (mono_assembly_load_with_partial_name): if other   
2473         attempts fail, trigger the AppDomain.AssemblyResolve event handler
2474         to resolve the assembly.
2475
2476         * domain-internals.h: added mono_try_assembly_resolve and marked
2477         it as internal.
2478
2479 2007-09-11  Jb Evain  <jbevain@novell.com>
2480
2481         * object-internals.h (MonoReflectionDynamicMethod): add
2482         a `MonoReflectionType *owner` field. The owner is used
2483         * reflection.c:
2484         (mono_reflection_create_dynamic_method): use the owner of the dynamic
2485         method as the class declaring the dynamic method.
2486         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
2487         dynamic method to the declaring type of the methodbuilder.
2488
2489 2007-09-11  Mark Probst  <mark.probst@gmail.com>
2490
2491         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
2492         rules for calling methods via reflection.
2493
2494 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
2495
2496         * reflection.c (resolve_object): Add support for MonoGenericClass. 
2497         Inflate MonoType's.
2498
2499 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
2500
2501         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
2502         provide a managed method that does fast allocations without needing
2503         a managed->unmanaged transition. Boehm GC implementation currently
2504         enabled for ptrfree objects on sane architectures.
2505
2506 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2507
2508         * marshal.c, marshal.h: exported a couple of useful functions and
2509         added mono_mb_get_label () to easily handle backward branches.
2510
2511 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
2512
2513         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
2514
2515 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2516
2517         * loader.c (find_method): Fixed the regression introduced while
2518         fixing bug #81466.
2519
2520 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
2521
2522         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
2523         well.
2524         
2525         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
2526         icall.c reflection.c: Pass a MonoGenericContext argument to 
2527         mono_lookup_dynamic_token ().
2528
2529         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
2530         #82744.
2531         
2532 2007-09-09  Robert Jordan  <robertj@gmx.net>
2533
2534         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
2535         for generic methods.
2536
2537         * object.c (mono_object_get_virtual_method): Handle generic methods.
2538         Fixes bug #78882.
2539
2540         Code is contributed under MIT/X11 license.
2541
2542 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
2543
2544         * image.c: fix locking in mono_image_load_file_for_image ().
2545
2546 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
2547
2548         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
2549         used only as a cache: added an icall to fill it.
2550
2551 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
2552
2553         * reflection.h: exposed mono_reflection_free_type_info
2554         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
2555         since mono_reflection_bind_generic_parameters makes a copy of it.
2556         * reflection.c (free_type_info): subinfos should be freed.
2557         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
2558         made non static.
2559         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
2560         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
2561         this fixes #82695 and #81726.
2562    
2563
2564 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
2565
2566         * process.h, process.c:  added support for user profile/info in
2567           ProcessStartInfo. For now only Windows works.
2568
2569 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2570
2571         * metadata.c: consider the generic arguments when comparing
2572         signatures (bug #82614).
2573
2574 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2575
2576         * cil-coff.h, image.c: updated assembly loader to cope with the
2577         PE32+ 64 bit file format.
2578
2579 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2580
2581         * assembly.c, class.c, domain.c, loader.c: remove useless
2582         inclusion of cil-coff.h.
2583
2584 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
2585
2586         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
2587         if interface is marked with CoClassAttribute. 
2588    
2589         Code is contributed under MIT/X11 license.
2590
2591 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2592
2593         * sgen-gc.c: ensure no object from the to space is copied again or finalized
2594         if it's seen twice in major collections.
2595
2596 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2597
2598         * sgen-gc.c: big objects are not copied to the gray area, but they
2599         need to be considered for scanning, too, if they are brought alive
2600         by an object ready for finalizations or a survived one.
2601
2602 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2603
2604         * sgen-gc.c: properly account the number of disappearing links when
2605         they are nullified.
2606
2607 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2608
2609         * sgen-gc.c: share the code to scan the registered roots between the
2610         different types of collections.
2611
2612 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
2613
2614         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
2615
2616 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
2617
2618         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
2619         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
2620
2621 2007-08-28  Mark Probst  <mark.probst@gmail.com>
2622
2623         * security-manager.c (mono_security_manager_get_methods):
2624         LinkDemandSecurityException now has 2 arguments instead of 3.
2625
2626 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
2627
2628         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
2629         platforms which need it.
2630
2631 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2632
2633         * sgen-gc.c: unregister thread data structures with a pthread_key_t
2634         dtor.
2635
2636 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2637
2638         * threads.c: free the thread static data on thread exit.
2639
2640 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
2641
2642         * class.c: walk the hierarchy to find the generic definition for
2643         a class (fixes runtime part of bug #82498).
2644
2645 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
2646
2647         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
2648         ...
2649
2650         * image.c (mono_image_close): Here. Hopefully fixes #82510.
2651
2652 2007-08-24  Mark Probst  <mark.probst@gmail.com>
2653
2654         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
2655
2656 2007-08-24  Robert Jordan  <robertj@gmx.net>
2657
2658         * appdomain.c: don't perform the ':'->';' substitution on Win32.
2659
2660 2007-08-24  Jb Evain  <jbevain@novell.com>
2661
2662         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
2663         for byref types.
2664
2665 2007-08-24  Mark Probst  <mark.probst@gmail.com>
2666
2667         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
2668         #82286.
2669
2670 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
2671
2672         * assembly.c: Fix a warning.
2673         
2674 2007-08-23  Marek Habersack  <mhabersack@novell.com>
2675
2676         * appdomain.c: parse the <runtime> section looking for the probing
2677         element with the 'privatePath' attribute, which sets additional
2678         directories in which the runtime should look for assemblies.
2679
2680 2007-08-23  Robert Jordan  <robertj@gmx.net>
2681
2682         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
2683         Fixes #82499.
2684
2685 2007-08-23  Martin Baulig  <martin@ximian.com>
2686
2687         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
2688         _mono_debug_init_corlib() and remove it from the header file.
2689
2690 2007-08-23  Martin Baulig  <martin@ximian.com>
2691
2692         * mono-debug-debugger.c
2693         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
2694         don't notify the debugger about it.
2695
2696         * mono-debug-debugger.h
2697         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
2698
2699 2007-08-23  Robert Jordan  <robertj@gmx.net>
2700
2701         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
2702         Code is contributed under MIT/X11 license.
2703
2704 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2705
2706         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
2707
2708 2007-08-22  Martin Baulig  <martin@ximian.com>
2709
2710         * mono-debug.c: Store debugging info on a per-domain basis and
2711         free it on domain unload.  Add support for unloading symbol files.
2712
2713         * mono-debug.h
2714         (MonoDebugList): New typedef.
2715         (MonoSymbolTable):
2716         - add `data_tables and `type_table'.
2717         - replace 'symbol_files' and `num_symbol_files' with a
2718           `MonoDebugList *'.
2719         (mono_debug_data_table): Removed.
2720         (mono_debug_list_add): New public function.
2721         (mono_debug_list_remove): New public function.
2722         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
2723         (mono_debug_init_2_memory): Renamed into
2724         mono_debug_open_image_from_memory().
2725         (mono_debug_close_image): New public function.
2726         (mono_debug_domain_create): Likewise.
2727         (mono_debug_domain_unload): Likewise.
2728         (MONO_DEBUGGER_VERSION): Bump to 60.
2729
2730         * mono-debug-debugger.h
2731         (MonoDebuggerEvent):
2732         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
2733         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
2734         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
2735         - rename `THREAD_CREATED' and `THREAD_EXITED' into
2736           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
2737         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
2738           meaning.
2739         (mono_debugger_add_symbol_file): Removed.
2740         (mono_debugger_add_type): Removed.
2741         (mono_debugger_lookup_type): Removed.
2742         (mono_debugger_lookup_assembly): Removed.
2743
2744         * domain.c
2745         (mono_domain_create): Call mono_debug_domain_create().
2746         (mono_init_internal): Call mono_debug_init_corlib().
2747
2748         * assembly.c
2749         (mono_assembly_close): Call mono_debug_close_image().
2750
2751 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
2752
2753         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
2754         mmap call.
2755
2756 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
2757
2758         * sgen-gc.c: ensure section->pin_queue_end is initialized
2759         correctly when non pinning objects in the section have been found.
2760
2761 2007-08-22  Marek Habersack  <mhabersack@novell.com>
2762
2763         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
2764         containing a list of directories separated by ':'. MSDN docs say
2765         the directories should be separated with ';'. Part of a bugfix for
2766         bug #81446
2767
2768 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
2769
2770         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
2771         it should MonoType and not MonoClass.
2772
2773 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
2774
2775         * culture-info-table.h : regenerated.
2776
2777 2007-08-20  William Holmes  <billholmes54@gmail.com>
2778
2779         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
2780          to call ReplaceFile Kernel32 on windows or in io-layer.
2781         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
2782         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
2783          as an internal call.
2784
2785         Code is contributed under MIT/X11 license.
2786
2787 2007-08-20  Jb Evain  <jbevain@novell.com>
2788
2789         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
2790         and MONO_EXCEPTION_FIELD_ACCESS.
2791
2792         * debug-helpers.[c|h]: new mono_field_full_name function.
2793
2794 2007-08-20  Mark Probst  <mark.probst@gmail.com>
2795
2796         * class.c: Removed class_security_level() and moved it to
2797         security-core-clr.c.
2798
2799         * security-core-clr.c, security-core-clr.h: class_security_level()
2800         is now public and renamed to mono_security_core_clr_class_level().
2801         It also looks for security attributes in the classes a class is
2802         nested in.
2803
2804 2007-08-20  Mark Probst  <mark.probst@gmail.com>
2805
2806         * security-core-clr.c, security-core-clr.h: CoreCLR security
2807         utility functions.
2808
2809         * Makefile.am: Added security-core-clr.[ch].
2810
2811         * security-manager.c, security-manager.h: Functions and enum for
2812         setting and getting the security mode.
2813
2814         * class.c: CoreCLR security checks.
2815
2816 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
2817
2818         * icall-def.h, process.c, process.h: implemented icall to get
2819         user/system processor times.
2820
2821 2007-08-17  Mark Probst  <mark.probst@gmail.com>
2822
2823         * domain.c, threads.c, class-internals.h, domain-internals.h: New
2824         reader-lock-free jit_info_table.
2825
2826 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
2827
2828         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
2829
2830         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
2831
2832         * object-internals.h (MonoException): Add missing _data member.
2833
2834 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
2835
2836         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
2837         checking that only methods with matching qname or fqname are picked
2838         from implemented interfaces.
2839
2840 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2841
2842         * verify.c (do_newarr):added, do type verification of
2843         newarr ops, push the right value on the eval stack.
2844         * verify.c (mono_method_verify): use do_newarr
2845
2846
2847 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2848
2849         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
2850         factored the common code into get_boxable_mono_type, which
2851         is now using mono_type_get_full, this fixed byref related tests.
2852
2853 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2854
2855         * class.c: added mono_type_get_full, this function has the same
2856         behavior of mono_class_get_full but the returned MonoType has
2857         all metadata of the associated token in case of a typespec token.
2858         * class.c: added mono_type_retrieve_from_typespec, used by 
2859         mono_type_get_full to retrieve the token type.
2860         * class.c (mono_class_create_from_typespec): changed to use
2861         mono_type_retrieve_from_typespec.
2862         * class.c (mono_ldtoken): changed to use mono_type_get_full
2863         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
2864         * class-internals.h: exported mono_type_get_full for internal use.
2865
2866 2007-08-16  Jb Evain  <jbevain@novell.com>
2867
2868         * domain.c (supported_runtimes): add entry for
2869         the 'moonlight' runtime version.
2870
2871 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2872
2873         * verify.c (mono_method_verify): small typo sliped in.  
2874
2875 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2876
2877         * verify.c (do_unbox_value): added, do type verification of
2878         unboxing ops
2879         * verify.c (mono_method_verify): use do_unbox_value
2880
2881
2882 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2883
2884         * verify.c (dump_stack_value): fixed typo, was printing string
2885         instead of object on stack.
2886         * verify.c (do_box_value): moved the byref check up as it leads
2887         to invalid code and should be done earlier.
2888         * verify.c: improved error messages for and ldobj
2889
2890 2007-08-15  William Holmes  <billholmes54@gmail.com>
2891
2892         * marshal.c (emit_marshal_custom): Omit the call to 
2893           marshal_native_to_managed when calling native to managed 
2894           and the argument is specified as an out argument.
2895
2896         Code is contributed under MIT/X11 license.
2897
2898 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2899
2900         * verify.c: fixed the type checks for generics, function pointers and vectors.
2901         Added type verification for ldobj and ldtoken. The verifier
2902         would segfault if header or signature of a method contained references
2903         to non-existant types.
2904
2905 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
2906
2907         * marshal.c (cominterop_get_ccw): Patch from
2908         Bill Holmes to no walk up interface hierarchy. 
2909         All parent methods should be present in the interface for COM.
2910    
2911         Code is contributed under MIT/X11 license.
2912
2913 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
2914
2915         * marshal.c (emit_marshal_com_interface): Patch from
2916         Bill Holmes to handle COM Interfaces as return values
2917         for native->managed calls.
2918    
2919         Code is contributed under MIT/X11 license.
2920
2921 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
2922
2923         * marshal.c (cominterop_get_idispatch_for_object): Implement
2924         for runtime callable wrappers.
2925    
2926         Code is contributed under MIT/X11 license.
2927
2928 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
2929
2930         * pedump.c (main): changed from mono_init to mono_init_from_assembly
2931         so 2.0 types are accessible
2932
2933
2934 2007-08-13  Miguel de Icaza  <miguel@novell.com>
2935
2936         * domain.c (mono_init_internal): Call mono_assembly_load_friends
2937         once we load mscorlib.   Due to the order in which we initialize,
2938         the mono_assembly_load_full routine that loads mscorlib did not
2939         load friends.   We now load it once we load the
2940         mono_defaults.internals_visible_class class. 
2941
2942         * assembly.c: Expose the mono_load_friend_assemblies method.
2943
2944 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
2945
2946         * verify.c: improved the handling of boxing, better
2947         type checking for unary ops and conversion. Fix bug
2948         regarding managed pointer compatibility checking
2949
2950 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
2951
2952         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
2953
2954         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
2955
2956 2007-08-09  Raja R Harinath  <rharinath@novell.com>
2957
2958         * reflection.c (dup_type): Remove.
2959         * class.c (dup_type): Remove.
2960         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
2961         instead of the dodgy 'dup_type'.
2962         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
2963         handle the case where 'dup_type' needed the second argument.
2964
2965 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
2966
2967         * domain.c: Fix a warning.
2968
2969 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
2970
2971         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
2972         checking that methods with the same fqname are not overridden
2973         with a method from an ancestor.
2974
2975 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
2976
2977         * threads.c (free_thread_static_data_helper): Avoid a crash if
2978         thread->static_data is not yet set.
2979
2980 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
2981
2982         * marshal.c: Use correct image when emitting
2983         native wrapper for COM calls.
2984    
2985         Code is contributed under MIT/X11 license.
2986
2987 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
2988
2989         * icall-def.h, security.c, security.h :
2990           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
2991
2992 2007-08-07  Martin Baulig  <martin@ximian.com>
2993
2994         * mono-debug-debugger.h
2995         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
2996
2997         * domain.c (mono_domain_free): Call
2998         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
2999
3000 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
3001
3002         * verify.c (check_underflow, check_overflow): error message now returns IL offset
3003         * verify.c (in_same_block): code should test if either offset is inside the clauses
3004         * verify.c (mono_method_verify): push the exception into the eval stack of exception
3005         and filter blocks
3006
3007 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
3008
3009         * image.c (mono_image_close): Fix a leak.
3010
3011         * object.c (mono_runtime_invoke_array): Avoid using alloca.
3012
3013         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
3014
3015 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
3016
3017         * domain.c, threads.c, threads-types.h: fix memory retention issue
3018         with thread static variables not being cleared on domain unload.
3019         Reuse thread static slots after domain unload.
3020
3021 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
3022
3023         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
3024         nullable type.
3025
3026         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
3027         now done in mono_runtime_invoke_array.
3028
3029         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
3030         receiver is a nullable type.
3031
3032         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
3033         generic parameter.
3034
3035 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
3036
3037         * marshal.c: Implement COM Objects as return type for 
3038         managed->unmanaged calls. Added Release calls for COM Object
3039         out/return values in managed->unmanaged calls.
3040
3041         Code is contributed under MIT/X11 license.
3042
3043 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
3044
3045         * threads.h, threads-type.h: move the hazard pointer declarations
3046         to the private header.
3047
3048 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
3049
3050         * file-io.c, appdomain.c: memory leak fixes.
3051
3052 2007-08-02  Dick Porter  <dick@ximian.com>
3053
3054         * socket-io.c
3055         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
3056         SO_REUSEADDR setting into io-layer/sockets.c.
3057
3058 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
3059
3060         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
3061         from Object when called on a generic parameter. Fixes #82211.
3062
3063 2007-08-01  Dick Porter  <dick@ximian.com>
3064
3065         * file-io.c (convert_share): Test FileShare values bit-by-bit.
3066         Fixes bug 79250 yet again.
3067
3068 2007-07-30  Martin Baulig  <martin@ximian.com>
3069
3070         Merged the `debugger-dublin' branch.
3071
3072         * mono-debug.h
3073         (MonoDebugDataTable): New typedef.
3074         (MonoDebugMethodAddressList): New typedef.
3075         (MonoDebugWrapperData): Removed.
3076         (MonoDebugSymbolTable): Removed `current_data_table',
3077         `current_data_table_size', `current_data_table_offset'.
3078         (MonoDebugDataItemType): Moved into mono-debug.c.
3079         (MonoDebugMethodJitInfo): Remove `address'.
3080         (mono_debug_data_table): New global variable.
3081         (mono_debug_lookup_method_addresses): New public function.
3082         (mono_debug_find_method): Take a `MonoMethod *', not a
3083         `MonoDebugMethodInfo *'.
3084
3085         * mono-debug.c: Drop support for the old symbol tables.
3086
3087 2007-06-28  Martin Baulig  <martin@ximian.com>
3088
3089         * mono-debug.c (mono_debug_debugger_version): New public variable.
3090
3091 2007-07-31  William Holmes  <billholmes54@gmail.com>
3092
3093         * metadata.c Changed mono_type_create_from_typespec to not insert
3094           the type into the hash map until after
3095           do_mono_metadata_parse_type has completed.
3096         Fixes Bug #82194
3097         Code is contributed under MIT/X11 license.
3098
3099 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
3100
3101         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
3102         generic parameter. Fixes #82211.
3103
3104 2007-07-27  Jb Evain  <jbevain@novell.com>
3105
3106         * pedump.c (dump_metadata, dump_metadata_header): dump
3107         versions contained in the metadata header.
3108
3109 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3110
3111         * threads.c: register small_id_table with the GC.
3112
3113 2007-07-27  Mark Probst  <mark.probst@gmail.com>
3114
3115         * threads.c, threads.h, class-internals.h, object-internals.h:
3116         Hazard pointers, to be used by lock-free parallel algorithms.
3117
3118 2007-07-26  Dick Porter  <dick@ximian.com>
3119
3120         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
3121         routine on non-windows platforms, as I've not managed to think of
3122         a non-kludgy way of doing this.  Finishes off bug 78739.
3123
3124 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
3125
3126         * object.c: properly setup interface_bitmap in proxy vtables.
3127
3128 2007-07-25  Marek Habersack  <mhabersack@novell.com>
3129
3130         * appdomain.c (get_shadow_assembly_location): do not use TickCount
3131         to create unique shadow copy target directories, use the domain's
3132         serial number instead. Each domain gets a unique target directory
3133         that way.
3134
3135         * domain.c (mono_domain_create): added code to increment domain
3136         shadow copy serial number and cache the value in the current
3137         domain structure.
3138
3139         * domain-internals.h (struct _MonoDomain): added a new field -
3140         shadow_serial to hold the serial number used in generation of
3141         shadow-copy directories. This is to make sure that the directory
3142         name is unique for each and every domain created. We avoid a race
3143         condition with overriding assemblies already in use by other app
3144         domains.
3145
3146 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
3147
3148         * class.c (mono_bounded_array_class_get): fixed memory leak when 
3149         binding generic parameters.
3150
3151 2007-07-24  Raja R Harinath  <rharinath@novell.com>
3152
3153         * metadata.c (do_mono_metadata_parse_generic_class): Use
3154         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
3155         error.
3156
3157 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
3158
3159         * loader.c, class-internals.h, reflection.c: removed the per-method
3160         generics hashtable: we use the global one through the call of
3161         mono_class_inflate_generic_method ().
3162
3163 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
3164
3165         * class.c, metadata.c, class-internals.h: introduce yet another
3166         generics global cache for inflated methods (fixes 98% of the perf
3167         issue in bug #81806).
3168
3169 2007-07-23  Raja R Harinath  <rharinath@novell.com>
3170
3171         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
3172         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
3173         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
3174         return a MonoGenericInst containing (a copy) of those types.
3175         (mono_metadata_inflate_generic_inst): Update to changes.
3176         (mono_metadata_parse_generic_inst): Likewise.
3177         (mono_get_shared_generic_inst): Likewise.
3178         * reflection.c (mono_class_bind_generic_parameters): Likewise.
3179         (mono_reflection_bind_generic_method_parameters): Likewise.
3180         * metadata-internals.h: Likewise.
3181         * icall.c (free_generic_context): Kill.
3182         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
3183
3184         * reflection.c (reflection_methodbuilder_to_mono_method): Use
3185         mono_metadata_type_dup.
3186         * marshal.c (mono_mb_create_method): Likewise.
3187
3188         * metadata.c (mono_metadata_type_dup): Rename from
3189         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
3190         MonoImage.  Handle a few more cases, esp. when no mempool is given.
3191         * marshal.c, metadata-internals.h: Update to changes.
3192
3193 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3194
3195         * class.c: fixed a small leak for array classes and removed warning.
3196
3197 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
3198
3199         * loader.c (mono_method_get_param_token): Make this work on generic methods.
3200         Return 0x8000000 for return parameters. Fixes #82161.
3201
3202 2007-07-21  Marek Habersack  <grendello@gmail.com>
3203
3204         * appdomain.c (get_shadow_assembly_location): append the current
3205         ticks value to the path. Avoids overwriting the same assemblies by
3206         several threads at the same time.
3207
3208 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3209         and Raja R Harinath  <rharinath@novell.com>
3210
3211         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3212         Simplify slightly.
3213         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
3214         property for testing if a method is a generic method definition.
3215
3216 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3217
3218         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
3219
3220 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3221
3222         * verify.c: used function from private branch, reverted to the one in class.h 
3223
3224 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3225
3226         * verify.c: a typo slipped in and the code wont compile
3227
3228 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3229
3230         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
3231         disabled box instruction as it is doing the wrong thing
3232         improved stack dump messages, now it is easier to debug type related issues
3233
3234
3235 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
3236
3237         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
3238
3239 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3240
3241         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
3242         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
3243         grouped with class and valuetype. This change will simply 
3244         the code as it should be handled just like unmanaged pointers.
3245
3246 2007-07-19  Mark Probst  <mark.probst@gmail.com>
3247
3248         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
3249
3250 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3251
3252         * verify.c: several stack merge issues fixed, reference comparisons now
3253         check the type size. strict type check now works correctly.
3254         added more uses of IS_MANAGED_POINTER macro.
3255         fixed issues pointed by running the test suite against .net.
3256         
3257
3258 2007-07-19  Mark Probst  <mark.probst@gmail.com>
3259
3260         * class.c, loader.c, class-internals.h: Removed the
3261         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
3262         defines.
3263
3264         * icall.c: Better error checking in some internal reflection
3265         methods.
3266
3267 2007-07-18  William Holmes  <billholmes54@gmail.com>
3268
3269         * filewatcher.c : removed unused variable 'filename' in 
3270           ves_icall_System_IO_FSW_SupportsFSW
3271
3272 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
3273
3274         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
3275         obsolete, removed.
3276
3277 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
3278
3279         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
3280         
3281         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
3282
3283 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
3284
3285         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
3286         Implement generics support.
3287         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3288
3289         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
3290         type_args and method_args arguments.
3291         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
3292         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3293         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
3294
3295 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
3296
3297         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
3298           It adds a rootimage parameter to mono_reflection_get_type_internal,
3299           adds new function mono_reflection_get_type_with_rootimage and use
3300           the rootimage to resolve the types instead of the current image
3301
3302 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3303
3304         * culture-info-table.h: Forgot to update after r78304.
3305
3306 2007-07-13  Raja R Harinath  <rharinath@novell.com>
3307
3308         * class.c (mono_class_is_open_constructed_type)
3309         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
3310
3311 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
3312
3313         * class.c (mono_bounded_array_class_get):  method fails if used with
3314         an incomplete TypeBuilder enum (no basetype field), fixed it by 
3315         avoiding calculating the size for such array as it cannot be instantiated.
3316         Fix bug #82015
3317
3318 2007-07-12  Raja R Harinath  <rharinath@novell.com>
3319
3320         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
3321         field.
3322         * metadata.c, reflection.c: Update to changes.
3323
3324 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
3325
3326         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
3327         mono_class_is_valid_enum, they are used to valide a enum when loading.
3328         * reflection.c: used new functions to throw TypeLoadException when and
3329         invalid enum is build with TypeBuilder. Fixes #82018
3330   
3331 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
3332
3333         * object.c: forgot commit of mono_class_setup_methods () to access
3334         iface->methods.
3335         * object-internals.h: added a few more handy fields to
3336         MonoIMTCheckItem.
3337
3338 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
3339
3340         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
3341         iface->methods.
3342
3343 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
3344
3345         * class-internals.h, object-internals.h, object.c: IMT-based
3346         interface invocation core from Massimiliano Mantione
3347         (massi@ximian.com) with a reworked arch-specific interface,
3348         bsearch implementation and a few bugfixes and memory savings by me.
3349
3350 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
3351
3352         * class.c (mono_class_create_from_typedef): mono would segfault if 
3353         an enum did not have a __value field. It now throws a TypeLoadException
3354         for such cases. Fix bug #82022
3355
3356 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
3357
3358         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
3359
3360 2007-07-09  Mark Probst  <mark.probst@gmail.com>
3361
3362         * class.c (mono_class_init): If a class is already inited but has
3363         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
3364
3365 2007-07-09  Mark Probst  <mark.probst@gmail.com>
3366
3367         * class.c: Properly handle the case of an unimplemented interface
3368         method.  Fixes: 81673.
3369
3370 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
3371
3372         * class-internals.h, object.c: cleanup patch from massi: use
3373         MonoVTable->interface_bitmap since the vtable interfaces offset array
3374         is going away.
3375
3376 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
3377
3378         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
3379         GetMDStreamVersion icall instead.
3380
3381 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
3382
3383         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
3384         not use mono_dl_build_path() with a full library name: makes
3385         fallbacks to libgaim and libfam work.
3386
3387 2007-07-06  William Holmes  <billholmes54@gmail.com>
3388
3389         * assembly.c: Added a continue statement in probe_for_partial_name when
3390          parse_assembly_directory_name fails.  Fixes : 82002
3391
3392 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
3393
3394         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
3395         and added a verification  for TYPEDBYREF.
3396         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
3397         make native int interchangeable with int32 and some small cleanup and formating.
3398         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
3399         handle byref of byref.
3400         * verify.c (push_local): handle byref of byref.
3401         * verify.c (do_binop): invalid mix of values is unverifiable
3402         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
3403         added visibility checks
3404         * verify.c (field related method): added visibility checks
3405         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
3406
3407 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
3408
3409         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
3410         string.
3411
3412 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
3413
3414         * profiler.c (mono_profiler_load): Fix an off-by-one error.
3415
3416         * marshal.c (emit_marshal_string): When returning a string from managed code,
3417         allways make a copy even for unicode strings. Fixes #81990.
3418
3419 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
3420
3421         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
3422         of byref generic inst types (bug #81997).
3423
3424 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
3425
3426         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
3427         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
3428
3429 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
3430
3431         * marshal.c (emit_marshal_string): Add support for unicode strings in
3432         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
3433
3434 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
3435
3436         * verify.c: field load/store are now verified, missing only access checks now
3437
3438 2007-06-28  Martin Baulig  <martin@ximian.com>
3439
3440         * mono-debug.c (mono_debug_debugger_version): New public variable.
3441
3442 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
3443
3444         * locales.c: When constructing DateTimeFormat or NumberFormat for
3445         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
3446         MonoCultureInfo contructed from the current locale is always
3447         read-only and has UseUserOverride set to true. All MonoCultureInfo
3448         instances returned for GetCultures have both IsReadOnly and
3449         UseUserOverride set to true. Fixes part of bug #81930.
3450
3451 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
3452
3453        * icall-def.h: Update System.__ComObject icalls
3454        * marshal.c: Avoid managed transition (and object creation)
3455        when looking up COM interface in RCW.
3456        * marshal.h: Ditto.
3457        
3458        Code is contributed under MIT/X11 license.
3459
3460 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
3461
3462         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
3463         to avoid crashes during assembly unloading.
3464
3465 2007-06-22  Raja R Harinath  <rharinath@novell.com>
3466
3467         Fix MethodInfo.IsGenericMethodDefinition
3468         * reflection.c (mono_reflection_bind_generic_method_parameters):
3469         Rearrange code to ensure we always uses a generic method definition.
3470         * class.c (mono_class_inflate_generic_method_full): Set
3471         'generic_container' field only for generic method definitions.
3472         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3473         Use presense of 'generic_container' field as indication of being a
3474         generic method definition.
3475
3476 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
3477
3478         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3479
3480         * object-internals.h: Reflect changes in the layout of the managed Delegate
3481         class.
3482         
3483         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
3484         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
3485         runtime memory used by the dynamic method. Fixes #77146.
3486
3487 2007-06-21  Dick Porter  <dick@ximian.com>
3488
3489         * file-io.h: 
3490         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
3491         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
3492         81767.
3493
3494 2007-06-21  Raja R Harinath  <rharinath@novell.com>
3495
3496         * reflection.c (method_encode_methodspec): Add a tripwire.
3497         * class.c (inflate_generic_type): The fully open generic type is
3498         not the same as the generic type definition.
3499
3500 2007-06-21  Martin Baulig  <martin@ximian.com>
3501
3502         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
3503
3504         * mono-debug-debugger.h
3505         (MonoDebuggerBreakpointInfo): Removed.
3506         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
3507         (mono_debugger_remove_breakpoint): Likewise.
3508         (mono_debugger_breakpoint_callback): Likewise.
3509         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
3510
3511 2007-06-21  Raja R Harinath  <rharinath@novell.com>
3512
3513         * metadata.c (mono_metadata_lookup_generic_class): The fully open
3514         generic type is not the same as the generic type definition.
3515         * class.c (mono_generic_class_get_class): Likewise.
3516
3517 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
3518
3519         * icall.c: The second argument to 
3520         System.Reflection.MethodBase.GetMethodFromHandleInternalType
3521         is a MonoType not a MonoClass.
3522
3523 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
3524
3525         * verify.c: support for function pointers in the verifier
3526
3527 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
3528
3529         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
3530
3531 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
3532
3533         * assembly.c: removed Mono.Data.SqliteClient from the list of
3534         forward-compatible assemblies as it breaks the ABI (bug #81899).
3535
3536 2007-06-19  Raja R Harinath  <rharinath@novell.com>
3537
3538         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
3539         lookup/update with the loader lock.
3540         * reflection.c (mono_class_bind_generic_parameters): No need to
3541         protect mono_metadata_lookup_* with the loader lock.
3542         * class.c (inflate_generic_type): Likewise.
3543         
3544         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
3545         on a generic instantiated type.
3546
3547 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
3548
3549         *verify.c: produce meanfull error messages on verification error
3550         *verify.c: fixed some cases of verification errors reported as validation errors
3551         *pedump.c: fixed the error name array, now it shows validation errors properly
3552         *verify.h: fixed the contant that should be used for verification errors
3553
3554 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
3555
3556         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
3557         for bug #77596, 81858 and 80743 (generics data structures on domain
3558         unload).
3559
3560 2007-06-15  Raja R Harinath  <rharinath@novell.com>
3561
3562         Avoid allocating 'MonoGenericContext' on the heap.
3563         * class-internals (_MonoMethodInflated::context): Make field
3564         inline, not a pointer.
3565         * loader.c (method_from_methodspec): Allocate 'new_context' on the
3566         stack.  Use the context embedded within the inflated method as the
3567         hash key, rather than 'new_context'.
3568         * class.c (inflate_generic_context): Simplify.  Return a struct
3569         rather than allocating on the heap.
3570         (mono_class_inflate_generic_method_full): Update to changes.  Now,
3571         doesn't salt away a copy of the context -- simplifying the
3572         lifetime rules of a 'MonoGenericContext *'.
3573         (mono_method_get_context): Return pointer to embedded context.
3574         (setup_generic_array_ifaces): Allocate temporary context on stack.
3575         * reflection.c (inflate_mono_method): Likewise.
3576         (mono_reflection_bind_generic_method_parameters): Likewise.
3577         Use the context embedded within the inflated method as the hash key.
3578
3579         Avoid a source of allocation of 'MonoGenericContext'.
3580         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
3581         and 'cached_context' fields into embedded 'MonoGenericContext' field.
3582         * class.c: Update to changes.
3583         (mono_generic_class_get_context): Simplify drastically.  Now just
3584         returns a pointer to the field.
3585         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
3586         argument as a const pointer.
3587         (mono_metadata_generic_context_equal): Likewise.
3588         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
3589         Update to changes.
3590
3591 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
3592
3593         * verify.c improved the handling of brtrue/brfalse, factored out common code
3594
3595 2007-06-14  Raja R Harinath  <rharinath@novell.com>
3596
3597         Kill MonoGenericMethod.
3598         * class-internals.h (MonoGenericContext::method_inst): Rename from
3599         'gmethod' and convert to a MonoGenericInst.
3600         (MonoGenericMethod): Remove.
3601         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
3602         * loader.c (method_from_methodspec): Update to changes.  Use a
3603         MonoGenericContext as the key to the hashtable.
3604         * metadata.c (mono_metadata_generic_context_equal): Rename from 
3605         'mono_metadata_generic_method_equal' and take MonoGenericContext.
3606         (mono_metadata_generic_context_hash): Likewise from
3607         'mono_metadata_generic_method_hash'.  Change hash function.
3608         (mono_metadata_load_generic_params): Update to changes.
3609         (mono_get_shared_generic_method): Remove.
3610         * metadata-internals.h (mono_get_shared_generic_method): Remove.
3611         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
3612         (inflate_generic_context): Likewise.
3613         (mono_class_inflate_generic_method_full): Likewise.
3614         (setup_generic_array_ifaces): Likewise.
3615         (mono_class_create_from_typespec): Likewise.
3616         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
3617         (method_encode_methodspec): Update callsite.
3618         (reflection_methodbuilder_to_mono_method): Update to changes.
3619         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
3620         MonoGenericContext as the key to the hashtable.
3621         (inflate_mono_method): Update to changes.
3622
3623         * class-internals.h (MonoGenericMethod::container): Remove.
3624         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
3625
3626 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
3627
3628         * profiler-private.h, profiler.c, profiler.h: added API to profile
3629         exception events.
3630
3631 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
3632
3633         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
3634
3635 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
3636
3637         * verify.c: method invocation is now validated, now we verify parameter types on stack.
3638         Fixed overflow and underflow not aborting the verification process.
3639
3640 2007-06-13  Mark Probst  <mark.probst@gmail.com>
3641
3642         * class-internals.h (MonoStats): Added stats entries for dynamic
3643         code allocations.
3644
3645 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
3646
3647         * loader.c (mono_free_method): Free header->locals and header->clauses.
3648
3649         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
3650         dynamic case.
3651
3652         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
3653
3654         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
3655
3656 2007-06-12  Raja R Harinath  <rharinath@novell.com>
3657
3658         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
3659         the tables.
3660
3661 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3662
3663         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
3664
3665 2007-06-11  Raja R Harinath  <harinath@gmail.com>
3666
3667         MonoGenericMethod on a diet
3668         * class-internals.h (_MonoMethodInflated::reflection_info): Move
3669         here ...
3670         (_MonoGenericMethod::reflection_info): ... from here.
3671         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
3672         Update to changes.
3673         * reflection.c (inflate_mono_method): Likewise.
3674         (mono_reflection_bind_generic_method_parameters): Likewise.
3675
3676 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3677
3678         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
3679         *verify.c: factored long ldarg forms to share code with short forms
3680
3681 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3682
3683         *verify.c: fixed code formating factored some duplicate code
3684         into a new function
3685
3686         *verify.h: fixed binary incompatibility introduced earlier
3687
3688         *pedump.c: fixed formating
3689
3690 2007-06-11  Raja R Harinath  <harinath@gmail.com>
3691
3692         Fix assertion when disassembling Mono.C5.dll
3693         * loader.c (method_from_methodspec): Avoid inflating a method
3694         twice with the same context.  If the methodref is inflated, use
3695         the declaring method instead.
3696
3697         * class.c (mono_class_from_generic_parameter): Fix case similar to
3698         bug #81830 handled below, but for method containers.
3699
3700 2007-06-10  Raja R Harinath  <harinath@gmail.com>
3701
3702         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
3703         get_shared_generic_class.  Directly inflate the instance.
3704         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
3705         (inflate_generic_class): Delete.
3706         (get_shared_generic_class): Delete.  Move setting of
3707         'cached_class' and 'cached_context' ...
3708         * metadata.c (mono_metadata_lookup_generic_class): ... here.
3709
3710         * metadata.c (mono_metadata_lookup_generic_class): Change
3711         signature to take the components of a MonoGenericClass rather than
3712         an allocated MonoGenericClass.  Change semantics to be intern-like.
3713         * reflection.c (mono_class_bind_generic_parameters): Update to
3714         changes.  Make locking region tighter.
3715         * class.c (inflate_generic_class): Update to changes.
3716         (get_shared_generic_class): Likewise.
3717         * metadata-internals.h: Likewise.
3718
3719         * reflection.c (mono_class_bind_generic_parameters): Take and
3720         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
3721         (mono_reflection_bind_generic_parameters): Use
3722         'mono_class_bind_generic_parameters' rather than duplicate the code.
3723         * class.c (mono_bounded_array_class_get): Update to changes.
3724         * object-internals.h: Likewise.
3725
3726         * reflection.c (mono_class_bind_generic_parameters): Only support
3727         parameterizing generic type definitions.  Remove support for other
3728         open types.
3729
3730 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
3731
3732         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
3733
3734         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
3735         in the dynamic case.
3736
3737 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
3738
3739         * threads.c: When cleaning up thread, reset the Background bit.
3740         Fixes bug #81720.
3741
3742 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
3743
3744        * metadata.c: Move variable declarations to top of scope.
3745        * verify.c: Move variable declarations to top of scope.
3746
3747        Code is contributed under MIT/X11 license.
3748
3749 2007-06-08  Raja R Harinath  <rharinath@novell.com>
3750
3751         * reflection.c (mono_class_bind_generic_parameters): Replace
3752         open-coded loop with mono_metadata_inflate_generic_inst.
3753
3754         * class.c (get_shared_generic_class): Don't call
3755         mono_get_shared_generic_inst.  Use the container's own
3756         'class_inst'.
3757
3758         * metadata.c (mono_metadata_load_generic_params): Move
3759         initialization of 'context' field here from ...
3760         * class.c (mono_class_create_from_typedef): ... here, and ...
3761         * loader.c (mono_get_method_from_token): ... here.
3762
3763         * class.c (get_shared_generic_class): Rename from
3764         mono_get_shared_generic_class and make static.
3765         (mono_get_shared_generic_inst): Move to metadata.c.
3766         * loader.c (mono_get_shared_generic_method): Likewise.
3767         * class-internals.h, metadata-internals.h: Update to changes.
3768
3769         Fix #81830
3770         * class.c (mono_class_from_generic_parameter): Don't assume a
3771         generic container owner exists.  Generic containers from monodis
3772         don't have any.
3773
3774 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
3775
3776         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
3777         * verify.h: new typedefs to returns the non-verifiable status
3778         * verify.c: initial implementation of generics, stack merging and object compatibility check
3779
3780 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3781
3782         * class.c, image.c, class-internals.h (MonoImage): class_cache is
3783         a MonoInternalHashTable again (fixed bug in internal hash table
3784         code).
3785
3786 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3787
3788         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
3789         MonoInternalHashTable again (fixed bug in internal hash table
3790         code).
3791
3792 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3793
3794         * class.c, image.c, class-internals.h, domain.c,
3795         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
3796         changes.  Have to figure out what makes them break the SWF
3797         regression.
3798
3799 2007-06-04  Mark Probst  <mark.probst@gmail.com>
3800
3801         * class.c, image.c, class-internals.h (MonoImage): class_cache is
3802         a MonoInternalHashTable now.
3803
3804 2007-06-04  Mark Probst  <mark.probst@gmail.com>
3805
3806         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
3807         MonoInternalHashTable now.
3808
3809 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
3810
3811         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
3812         invoke_impl code.
3813
3814         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
3815
3816         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
3817         dependent trampoline.
3818
3819         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3820
3821         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
3822
3823 2007-05-29  Robert Jordan  <robertj@gmx.net>
3824
3825         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
3826
3827 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
3828
3829         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
3830
3831 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
3832
3833        * marshal.c: Fix interface lookup loops for
3834        cominterop_get_com_slot_for_method and 
3835        cominterop_get_method_interface. Only need to lookup
3836        if type is a class, else use interface type method is on.
3837
3838        Code is contributed under MIT/X11 license.
3839
3840 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
3841
3842         * reflection.c: HasSecurity can be present even if no specially 
3843         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
3844         SecurityAttribute). Fix CAS regression tests on buildbot.
3845
3846 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
3847
3848        * appdomain.c: Add configure checks for header files.
3849        * image.c: Add configure checks for header files.
3850        * file-io.c: Add configure checks for header files.
3851        * debug-mono-symfile.c: Add configure checks for header files.
3852        * threadpool.c: Add configure checks for header files.
3853        * console-io.c: Add configure checks for header files.
3854        * profiler.c: Add configure checks for header files.
3855        * rawbuffer.c: Add configure checks for header files.
3856        * icall.c: Add configure checks for header files.
3857        * rand.c: Add configure checks for header files.
3858        * socket-io.c: Add configure checks for header files.
3859
3860        Code is contributed under MIT/X11 license.
3861
3862 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
3863
3864         * reflection.c (mono_custom_attrs_from_builders): Remove the 
3865         assertion as it breaks the build.
3866         
3867         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
3868
3869         * reflection.c (lookup_custom_attr): Make a copy here too.
3870
3871         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
3872         dynamic images.
3873
3874         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
3875         images.
3876
3877         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
3878         info.
3879
3880 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
3881
3882         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
3883         (load_cattr_value): Ditto.
3884
3885 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
3886
3887         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
3888
3889 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
3890
3891         * threads.c: In "start_wrapper", set apartment_state to MTA if
3892         apartment_state is Unknown and we're running on 2.0 profile or
3893         higher.
3894         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
3895         to main method, then set apartment_state to Unknown on 1.0 profile,
3896         and MTA on 2.0 profile.
3897
3898 2007-05-16  Jb Evain  <jb@nurv.fr>
3899
3900         * class-internals.h (MonoDefaults): Add an attribute_class and
3901           customattribute_data_class.
3902         * domain.c (mono_init_internal): Populate them.
3903         * reflection.c: Use them to remove duplicates. Make a vew
3904         MonoClass variables `static'.
3905
3906 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
3907
3908         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
3909         step in implementing IMT, so that all isinst checks now can go
3910         through the bitmap.
3911         This was needed because vtables for TransparentProxy need to look
3912         like the vtable of the "target" class, so they need to point to
3913         its interface bitmap directly.
3914
3915         * object.c: inside "mono_class_create_runtime_vtable" and
3916         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
3917
3918 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
3919
3920         * object-internals.h
3921           culture-info.h : added territory field in MonoCulture and
3922           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
3923         * locales.c : fill territory field above too.
3924         * culture-info-table.h : regenerated.
3925
3926 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
3927
3928         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
3929         Fixes #81599.
3930
3931 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
3932
3933         * object.c: Always initialize apartment, even if 
3934         there is no custom attributes on entry point.
3935         
3936         Code is contributed under MIT/X11 license.
3937
3938 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
3939
3940         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
3941         * metadata.c: If no encoding is set, check for unicode
3942         on class.
3943         
3944         Code is contributed under MIT/X11 license.
3945
3946 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
3947
3948         * threads.c: Handle if mono_thread_current returns NULL 
3949         
3950         Code is contributed under MIT/X11 license.
3951
3952 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
3953
3954         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
3955         in start_wrapper. Added mono_thread_init_apartment_state and
3956         mono_thread_cleanup_apartment_state.
3957         * object.c: Initialize thread apartment state on main thread
3958         by checking for STAThreadAttribute on entry point.
3959         * object-internals.h: Add apartment_state field to MonoThread.
3960         * threads-types.h: Add unmanaged definition of 
3961         System.Threading.ApartmentState, MonoThreadApartmentState.
3962         
3963         Code is contributed under MIT/X11 license.
3964         
3965 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
3966
3967         * class.c: Fix windows build.
3968         * class-internals.h: Fix windows build.
3969         
3970         Code is contributed under MIT/X11 license.
3971
3972 2007-05-08  Robert Jordan  <robertj@gmx.net>
3973
3974         * process.c (CreateProcess_internal):
3975         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
3976         .CreateNoWindow was specified. Fixes #81496.
3977
3978 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
3979
3980         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
3981         step in implementing IMT, replaced it with two compact arrays
3982         (interfaces_packed and interface_offsets_packed) and a bitmap that
3983         is used for isinst checks (interface_bitmap).
3984
3985         * class.c: (compare_interface_ids): compare function to pass to
3986         bsearch when looking for an interface with a given id.
3987         (mono_class_interface_offset): reimplemented using bsearch on
3988         interfaces_packed, getting the offset from interface_offsets_packed.
3989         (print_implemented_interfaces): utility debugging function.
3990         (setup_interface_offsets): reworked to initialize interfaces_packed,
3991         interface_offsets_packed and interface_bitmap.
3992
3993         * object.c: replaced all accesses to "MonoClass.interface_offsets"
3994         with uses of interfaces_packed and interface_offsets_packed.
3995
3996 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
3997
3998         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
3999         mono_class_interface_offset prototype to wrap all accesses to
4000         "MonoClass.interface_offsets".
4001
4002         * class.c: Implemented mono_class_interface_offset, and wrapped all
4003         accesses to "MonoClass.interface_offsets".
4004
4005         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
4006         "MonoClass.interface_offsets".
4007
4008 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
4009
4010         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
4011         GetMethodFromHandle overloads (bug #78637).
4012
4013 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
4014
4015         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
4016         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
4017
4018 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
4019
4020         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
4021         #81498.
4022
4023         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
4024         gracefully.
4025         (mono_custom_attrs_from_index): Ditto.
4026
4027         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
4028         Fixes #81501.
4029
4030 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
4031
4032         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
4033         is now allocated from a mempool.
4034
4035 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
4036
4037         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
4038         caller holds threads_lock, leading to deadlocks. Fixes #81476.
4039
4040 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
4041
4042         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
4043         mono_loader_clear_error () too late. Fixes #81463.
4044
4045 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
4046
4047         * culture-info-table.h : regenerated.
4048
4049 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
4050
4051         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
4052         is missing.
4053
4054 2007-04-25  Dick Porter  <dick@ximian.com>
4055
4056         * Makefile.am: Put the mingw enforced-optimisation back into the
4057         PLATFORM_WIN32 section.
4058
4059 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
4060
4061         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
4062         patch.
4063
4064         * image.c (mono_image_load_module): New API function to load a module reference.
4065
4066         * image.c (load_modules): Load modules lazily. Fixes #80812.
4067
4068         * class.c (mono_class_from_typeref): Use mono_image_load_module.
4069         
4070         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
4071
4072         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
4073         to mono_image_load_module_dynamic.
4074
4075 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
4076
4077         * marshal.c: Fix calling convention for CCW on non-windows
4078         platforms. STDCALL on windows, CDECL everywhere else to work 
4079         with XPCOM and MainWin COM.
4080         
4081         Code is contributed under MIT/X11 license.
4082
4083 2007-04-23  Martin Baulig  <martin@ximian.com>
4084
4085         Fix #80969.
4086
4087         * loader.c
4088         (method_from_memberref): Added `gboolean *used_context' argument.
4089         (mono_get_method_from_token): Likewise.
4090         (mono_get_method_full): Don't insert the method in the cache when
4091         `used_context' is true.
4092
4093 2007-04-23  Raja R Harinath  <rharinath@novell.com>
4094
4095         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
4096
4097         * reflection.c (mono_reflection_bind_generic_parameters): Don't
4098         create new MonoTypes for returned types.
4099         * class.c (mono_generic_class_get_class): Export mono-internal.
4100         * class-internals.h: Update to changes.
4101
4102 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
4103
4104         * threadpool.c, threadpool.h, icall-def.h: patch from
4105         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
4106
4107 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
4108
4109         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
4110         
4111         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
4112
4113         * threads.c (mono_thread_get_stack_bounds): New helper function.
4114
4115         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
4116         Correctly compute stack bounds when attaching. Fixes #81394.
4117
4118 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
4119
4120         * reflection.c: fix handling of doubles in custom attributes
4121         for the arm-fpa format (bug #81368).
4122
4123 2007-04-18  Raja R Harinath  <rharinath@novell.com>
4124
4125         * reflection.c (assembly_add_win32_resources): Mildly relax an
4126         bounds check to let the end pointer point just past the end of the
4127         allocated buffer.  (may fix #81384)
4128
4129 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
4130
4131         * culture-info-table.h : regenerated.
4132
4133 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
4134
4135         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
4136         the thread is aborted early.
4137
4138 2007-04-05  Dick Porter  <dick@ximian.com>
4139
4140         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
4141         FindFirstFile()/FindNextFile() to find entries.  This lets the
4142         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
4143         81038.
4144
4145         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
4146         the parameters of
4147         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
4148
4149 2007-04-04  Martin Baulig  <martin@ximian.com>
4150
4151         * debug-helpers.c
4152         (mono_method_desc_full_match): Add support for nested classes.
4153
4154 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
4155
4156         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
4157
4158 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
4159
4160         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
4161         waiting for too many threads.
4162
4163 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
4164
4165         * environment.c: Fix return value check on uname so we can get the 
4166         executing version on Solaris operating systems.
4167
4168 2007-03-28  Jb Evain  <jbevain@gmail.com>
4169
4170         * class.c (mono_type_get_name_recurse): Complete the
4171         fix for the creation of assembly qualified names for
4172         pointer types. Fixes #81208.
4173
4174 2007-03-27  Dick Porter  <dick@ximian.com>
4175
4176         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
4177         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
4178         changed.
4179
4180         * threads.c
4181         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
4182         the value of ReleaseMutex().
4183
4184 2007-03-27  Dick Porter  <dick@ximian.com>
4185
4186         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
4187         in little-endian order, not network endian, so must be converted
4188         to host endian here.  Fixes bug 80593.
4189
4190 2007-03-22  Jb Evain  <jbevain@gmail.com>
4191
4192         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
4193         qualified names for pointer types. Fixes #81208.
4194
4195 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
4196
4197         * marshal.c: Add support for PreserveSigAttribute. 
4198         
4199         Code is contributed under MIT/X11 license.
4200
4201 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
4202
4203         * process.c: Fix endianness issues. Fixes #81126.
4204
4205         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
4206         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
4207
4208         * image.c (mono_image_lookup_resource): Make this work on big-endian
4209         machines.Change API contract so the caller needs to free the return value.
4210         
4211         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
4212         API change.
4213         
4214 2007-03-14  Martin Baulig  <martin@ximian.com>
4215
4216         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
4217         mono_type_get_desc() as well.
4218
4219 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
4220
4221         * icall.c:  Fix environ access in VS.  
4222         
4223 2007-03-13  Alp Toker  <alp@atoker.com>
4224
4225         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
4226         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
4227         #63841.
4228
4229 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
4230
4231         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
4232         circular references among dynamic methods. Fixes #81091.
4233
4234         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
4235
4236 2007-03-09  Martin Baulig  <martin@ximian.com>
4237
4238         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
4239
4240 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
4241
4242         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
4243         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
4244         
4245         Code is contributed under MIT/X11 license.
4246         
4247 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
4248
4249         * loader.c: Reapply patch for bug #79424.
4250
4251 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
4252
4253         * metadata.c (mono_type_to_unmanaged): Only convert object to
4254         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
4255
4256 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
4257
4258         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
4259         (and incorrectly set) is_reference field from MonoGenericInst.
4260
4261 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
4262
4263         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
4264         a little earlier.
4265
4266         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
4267
4268         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
4269
4270 2007-03-05  Miguel de Icaza  <miguel@novell.com>
4271
4272         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
4273         FileOptions.1 value to mean "temporary", map that to
4274         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
4275
4276         Fixes 80688
4277
4278 2007-03-03  Marek Habersack  <mhabersack@novell.com>
4279
4280         * appdomain.c: implement MS .Net style shadow copying. Copies of
4281         the assemblies are made in a subdirectory of the dynamic base
4282         directory, the assembly names are preserved.
4283         Copy .mdb and .config files along with the assemblies being shadowed.
4284
4285 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
4286
4287         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
4288         (emit_marshal_handleref): Ditto.
4289
4290         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
4291         on Visual C++. Fixes #80671.
4292
4293 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
4294
4295         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
4296         for clone operations.
4297
4298 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
4299
4300         * marshal.c: Fix warnings.
4301
4302 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
4303
4304         * loader.c: allow case-insensitive matching of the dll name
4305         in dllmap handling when prefixed with "i:".
4306
4307 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
4308
4309         * threads.c: Fix #ifdef for dummy_apc function for VS.
4310
4311 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
4312
4313         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
4314
4315 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
4316         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
4317         giving precedence to the methods with a fully qualified name
4318         (InterfaceName.MethodName) when building the interface sections
4319         of the vtable.
4320
4321 2007-02-16  Dick Porter  <dick@ximian.com>
4322
4323         * threadpool.c (append_job): Fix fast-path array handling, so it's
4324         less likely the array will grow exponentially when the load is
4325         heavy.
4326
4327 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4328
4329         * metadata-internals.h, loader.c: fix dllmap lookup order
4330         for non-function maps, too, and prepare for fallback code.
4331
4332 2007-02-12  Robert Jordan  <robertj@gmx.net>
4333
4334         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
4335         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
4336         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
4337         GlobalFree. Fixes a part of bug #77075.
4338
4339 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
4340
4341         * loader.c: implemented typedef parent in field memberref.
4342
4343 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
4344
4345         * marshal.c: Fix warnings and remember to call Release on
4346         IUnknown of RCW.
4347         
4348         Code is contributed under MIT/X11 license.
4349
4350 2007-02-10  Miguel de Icaza  <miguel@novell.com>
4351
4352         * class-internals.h: Add MonoHandleRef definition, and
4353         handleref_class to mono_defaults. 
4354
4355         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
4356         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
4357
4358         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
4359         (do nothing on this stage)
4360         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
4361         (emit_marshal_handleref): New method, used for argument handling
4362         of HandleRefs. 
4363
4364 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
4365
4366         * class.c (mono_class_setup_parent): Lazily init com types.
4367         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
4368         init com types.
4369         * object.c (mono_remote_class_vtable): Lazily init com types.
4370         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
4371         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
4372         * domain-internals.h: Expose mono_init_com_types.
4373         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
4374         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
4375         Add support for COM Callable Wrapper marshalling.
4376         * marshal.h: Add icall definitions.
4377         * gc.c: Handle freeing of CCWs in finalizer code.
4378         
4379         Code is contributed under MIT/X11 license.
4380
4381 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
4382
4383         * reflection.c: changed all the signature encoding code to use
4384         a variable-sized buffer.
4385
4386 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4387
4388         * marshal.c: locking fixes: never take the loader lock
4389         or other runtime locks when holding the marshal lock
4390         (fixes bug#80664).
4391
4392 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
4393
4394         * marshal.c: make the delegate function pointer mapping
4395         work for the moving GC.
4396
4397 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
4398
4399         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
4400         for bug #80618.
4401
4402 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4403
4404         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
4405         gmodule.
4406
4407 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
4408
4409         * threadpool.c: made the code moving-GC safe.
4410
4411 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
4412
4413         * assembly.c, boehm-gc.c, class-internals.h, class.c,
4414         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
4415         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
4416         warning cleanup.
4417         * reflection.c: warning cleanup, some threading and moving GC fixes.
4418
4419 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
4420
4421         * class.c, loader.c: create the needed Set/Get/Address array methods
4422         as well as the .ctors in mono_class_init (), fixes bug #80567.
4423
4424 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
4425
4426         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
4427         we doesn't decrease its alignment. Should fix the sparc build.
4428
4429 2007-01-24  Dick Porter  <dick@ximian.com>
4430
4431         * socket-io.c
4432         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4433         Create the returned object if we need to ignore an unsupported
4434         socket option.  Fixes a segfault reported by Atsushi.
4435
4436 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
4437
4438         * class.c, object.c: restrict GC-tracked fields to
4439         UIntPtr fields used inside corlib, so we provide better
4440         type info to the GC and also allow broken packing as in
4441         bug #80580.
4442
4443 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
4444
4445         * sgen-gc.c: removed duplicated function.
4446
4447 2007-01-19  Miguel de Icaza  <miguel@novell.com>
4448
4449         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
4450         value that means that the value is not supported, but that we
4451         should not return a failure, but instead report this as a
4452         successful operation.
4453
4454 2007-01-19  Raja R Harinath  <rharinath@novell.com>
4455
4456         Fix tests/bug79956.2.il
4457         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
4458         (mono_generic_class_get_class): If the generic definition in an
4459         enum, copy over other fields related to it.
4460
4461 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
4462
4463         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
4464         genericinst enums (bug #79215).
4465
4466 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
4467         * class.c: Fix bug 80307.
4468
4469 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
4470
4471         * image.c: if the file table is not present, try to load
4472         all the modules, since we don't have info about them
4473         having or not metadata (bug #80517).
4474         * assembly.c: allow mono_assembly_load_references () to
4475         work for netmodules.
4476
4477 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4478
4479         * image.c, metadata-internals.h, object.c: execute module
4480         cctors when running on the 2 runtime if present (bug #80487).
4481
4482 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
4483
4484         * icall.c: optimized InitializeArray() on bigendian.
4485
4486 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
4487
4488         * icall.c: fix for the broken ARM FPA double format.
4489
4490 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
4491
4492         * icall.c: handle endian issues for r4 and r8 types, too, in
4493         the InitializeArray() icall.
4494
4495 2007-01-15  Miguel de Icaza  <miguel@novell.com>
4496
4497         * loader.c (mono_loader_error_prepare_exception): Clear the error
4498         once we have extracted the information from it, do this before we
4499         call into the JIT's class loading mechanisms.
4500
4501         * object.c (mono_class_create_runtime_vtable): Do not clear the
4502         loader error before calling mono_class_get_exception_for_failure
4503         as the loader error is needed inside
4504         mono_class_get_exception_for_failure to throw the error (thinko).
4505
4506         Fixes #80521
4507         
4508 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
4509
4510         * reflection.c: align fields rva data so it's faster to load at
4511         runtime.
4512
4513 2007-01-12  Raja R Harinath  <rharinath@novell.com>
4514
4515         Prepare to simplify GenericMethod handling.
4516         * class-internals.h (mono_method_get_context): New accessor function.
4517         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
4518         rather than directly accessing '->context' field.
4519
4520         * class-internals.h (_MonoGenericParam.method): Move ...
4521         (_MonoGenericContainer): ... here.  Add into union with klass field.
4522         * class.c, icall.c, loader.c, metadata.c, reflection.c:
4523         Update to changes.
4524
4525 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
4526
4527         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
4528         the wrapper type enum and reduce relocations.
4529
4530 2007-01-12  Raja R Harinath  <rharinath@novell.com>
4531
4532         * reflection.c (inflate_mono_method): Reuse method instantiation
4533         from the generic method, if available.
4534
4535 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4536
4537         * marshal.c (emit_marshal_variant): Fix conv_arg
4538         type in last commit, based on whether parameter is byref.
4539         
4540 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4541
4542         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
4543         marshalling.
4544         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
4545         MONO_TYPE_OBJECT back for VARIANT support.
4546
4547 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4548
4549         * marshal.c, marshal.h, icall-def.h: Implement 
4550         Marshal.ReAllocCoTaskMem.
4551
4552 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
4553
4554         * marshal.c: memory retention fixes: use the proper
4555         image cache for runtime_invoke method lookups.
4556
4557 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
4558
4559         * mempool.c: added code to help debug mempool allocations.
4560
4561 2007-01-11  Dick Porter  <dick@ximian.com>
4562
4563         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
4564         support (experimenting with faking it with IP_MTU_DISCOVER for
4565         systems that don't have IP_DONTFRAGMENT.)
4566         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
4567         icall.
4568
4569         * icall-def.h: new System.Net.Sockets.Disconnect icall.
4570
4571         * socket-io.h: Add new fields to MonoSocketAsyncResult
4572         corresponding to the new ones in Socket.cs.
4573
4574 2007-01-11  Raja R Harinath  <rharinath@novell.com>
4575
4576         Fix IronPython regression mentioned in #80249
4577         * metadata.c (do_mono_metadata_parse_generic_class): Clear
4578         'cached_context' field, since it may have been initialized as a
4579         side-effect of metadata parsing.
4580
4581         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
4582         (_MonoGenericClass.cached_class): Move here and rename from lone
4583         remaining field of ...
4584         (_MonoInflatedGenericClass): ... this.  Remove.
4585         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
4586         to changes.
4587
4588         Fix mcs/tests/test-128.cs regression.
4589         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
4590         2007-01-10 change below.
4591         [MONO_TYPE_OBJECT]: Recurse into array case.
4592
4593 2007-01-11  Raja R Harinath  <harinath@gmail.com>
4594
4595         * class-internals.h (mono_get_inflated_generic_class): Remove.
4596         * class.c (mono_get_inflated_generic_class): Remove.
4597         (mono_generic_class_get_class): Rename from
4598         mono_class_create_generic.
4599         (mono_class_from_mono_type) [GENERICINST]: Use it.
4600         * reflection.c, metadata.c: Update to changes.  Use
4601         'mono_class_from_mono_type'.
4602
4603 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
4604
4605         * reflection.c: use passed type when encoding an array element
4606         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
4607
4608 2007-01-09  Robert Jordan  <robertj@gmx.net>
4609
4610         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
4611         result arguments (someDelegate.EndInvoke (unrelatedAres)).
4612         Fixes bug #80392.
4613
4614 2007-01-09  Raja R Harinath  <rharinath@novell.com>
4615
4616         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
4617
4618         * object.c (set_value): Avoid aliasing between type->data.klass
4619         and type->data.generic_class.
4620
4621         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
4622
4623 2007-01-08  Raja R Harinath  <rharinath@novell.com>
4624
4625         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
4626         between type->data.klass and type->data.generic_class.
4627
4628 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
4629
4630         * marshal.c: In MS.NET, StringBuilder objects are not copied by
4631         value in out parameters.
4632
4633 2007-01-08  Raja R Harinath  <rharinath@novell.com>
4634
4635         Simplify invariant for MonoGenericClass::klass field.
4636         * class.c (mono_class_create_generic): Verify 'klass' is null.
4637         * metadata.c (do_mono_metadata_parse_generic_class): Don't
4638         initialize 'klass' field.
4639
4640 2007-01-05  Raja R Harinath  <rharinath@novell.com>
4641
4642         Ongoing work to avoid redundant data and simplify invariants.
4643         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
4644         'generic_class', and change type to a GenericInst.
4645         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
4646         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
4647
4648 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
4649
4650         * class.c : skip io-layer under PLATFORM_WIN32.
4651
4652 2007-01-03  Tor Lillqvist  <tml@novell.com>
4653
4654         Fix #80305: In a bundled executable, look in the bundled exe
4655         assembly to determine the runtime version. Add the possibility to
4656         bundle also the machine.config file.
4657         
4658         * assembly.c (mono_assembly_open_from_bundle): Make
4659         non-static. Allow being called even if we have no bundled
4660         assemblies, and return NULL right away in that case.
4661
4662         * domain-internals.h: Declare mono_assembly_open_from_bundle()
4663         here.
4664
4665         * domain.c (app_config_parse): Take an assembly exe file name as
4666         parameter instead of a config file name. Check for a bundled
4667         config file for that assembly by calling
4668         mono_config_string_for_assembly_file() (see below) before looking
4669         for one in the file system.
4670         (get_runtimes_from_exe): Corrsponding change to call of
4671         app_config_parse().
4672         (get_runtimes_from_exe): Check for bundled assembly exe file first
4673         by calling mono_assembly_open_from_bundle(). If no bundled
4674         assembly exe file is found, call mono_image_open() as before to
4675         look it up in the file system.
4676
4677         * mono-config.c: Add variable bundled_machinec_onfig.
4678         (mono_config_string_for_assembly_file): New function.
4679         (mono_config_for_assembly): Move code snippet that looks for a
4680         bundled assembly .config file into the above new function. Call
4681         it.
4682         (mono_register_machine_config, mono_get_machine_config): New
4683         functions to set and retrieve
4684
4685         * assembly.h: Declare mono_register_machine_config().
4686
4687         * mono-config.h: Declare mono_get_machine_config() and
4688         mono_config_string_for_assembly_file().
4689
4690         * icall.c: No declaration of environ necessary on Win32. It is
4691         declared (as a macro expanding to a function call) in stdlib.h.
4692         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
4693         New internal mono function. Returns the value of
4694         mono_get_machine_config() as a Mono string.
4695
4696         * icall-def.h: Add get_bundled_machine_config().
4697
4698 2007-01-04  Raja R Harinath  <rharinath@novell.com>
4699
4700         Remove redundant field
4701         * class-internals.h (_MonoGenericContext.container): Remove field.
4702         * loader.c (mono_method_get_signature_full): Don't parse a
4703         "container" for a signature parse when the signature is inflated
4704         immediately.
4705         (method_from_methodspec): Likewise, for a generic_inst.
4706         * class.c, metadata.c, reflection.c: Update to changes.
4707
4708 2006-01-04  Raja R Harinath  <rharinath@novell.com>
4709
4710         * class-internals.h (_MonoGenericClass): Rename 'context' field to
4711         'cached_context', and change semantics -- it starts off NULL, and
4712         is initialized on demand.
4713         * class.c (mono_generic_class_get_context): New accessor to
4714         replace 'context' field accesses.
4715         (mono_class_get_context): New helper.
4716         (*): Update to changes.
4717         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
4718
4719 2007-01-03  Miguel de Icaza  <miguel@novell.com>
4720
4721         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
4722         before the memcpy.   Fixes Marshal2 regression.
4723
4724 2007-01-02  Jb Evain  <jbevain@gmail.com>
4725
4726         * blob.h: add a MONO_TYPE_ENUM definition
4727         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
4728         fix the encoding of arrays of enums in custom attributes.
4729
4730         Fixes #79666.
4731
4732 2007-01-01  Miguel de Icaza  <miguel@novell.com>
4733
4734         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
4735         string is null terminated, but only cut the string short if it
4736         overflows the buffer.   
4737         
4738         (mono_string_to_byvalstr): Also fix this routine.   The code here
4739         was not properly terminating a string (it was only terminated
4740         because of the previous catch-all memset). 
4741
4742         I left the memset, because I do not know if applications expect
4743         the runtime to clear this region. 
4744
4745         Fixes #79944.
4746
4747         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
4748         Clear the error before returning to unmanaged code to prevent the
4749         runtime from being confused later on (fixes  80420).
4750         (ves_icall_type_from_name): Always call mono_loader_clear_error
4751         after parsing a type that could have failed.
4752         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
4753
4754         * loader.c (mono_loader_clear_error): Fix indentation.
4755
4756 2006-12-28  Martin Baulig  <martin@ximian.com>
4757
4758         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
4759
4760 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
4761
4762         * reflection.c: patch from Rolf Bjarne Kvinge to fix
4763         getting a token for an EnumBuilder.
4764
4765 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4766
4767         * reflection.c: be more careful in case resource generation
4768         fails to create the data array.
4769
4770 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
4771
4772         * sgen-gc.c: write barrier for clone and fix unregister handles.
4773
4774 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
4775
4776         * reflection.c: some fixes needed in the generics code for the moving GC.
4777
4778 2006-12-22  Robert Jordan  <robertj@gmx.net>
4779
4780         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
4781         account. Fixes bug #80299.
4782
4783 2006-12-21  Raja R Harinath  <rharinath@novell.com>
4784
4785         Fix WaitHandle usage in delegates.
4786         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
4787         * object.c (mono_wait_handle_new): Use the property set method to
4788         initialize the handle.
4789         (mono_wait_handle_get_handle): New.
4790         * threadpool.c (mono_async_invoke): Use it.
4791         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
4792         Likewise.
4793         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
4794
4795 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
4796
4797         * marshal.c (emit_marshal): Call emit_marshal_variant and
4798         emit_marshal_com_interface when applicable.
4799         (emit_marshal_variant, emit_marshal_com_interface): Add
4800         methods for this case and remove if's from emit_marshal_object.
4801         
4802 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
4803
4804         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
4805
4806 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
4807
4808         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
4809         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
4810         and GlobalFree on Windows. Remove FIXME.
4811
4812 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
4813
4814         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
4815         implementation for managed objects.
4816
4817 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
4818
4819         * object.c: implemented code to be used for checking
4820         that no reference field overlaps with non-references.
4821
4822 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4823
4824         * threadpool.c: fix queue code to be compatible with the
4825         moving GC.
4826
4827 2006-12-18  Miguel de Icaza  <miguel@novell.com>
4828
4829         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
4830         in structures by throwing ArgumentNullException.
4831
4832         (emit_marshal_safehandle): Also when they are null parameters.
4833
4834         (emit_marshal_safehandle): Add support for ref
4835         SafeHandles parameters
4836
4837 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4838
4839         * profiler.c: updated to use the mono-dl API instead of
4840         gmodule.
4841
4842 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4843
4844         * profiler.c: updated to use the mono-dl dynamic loading
4845         API instead of gmodule.
4846
4847 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
4848
4849         * profiler.c: use readlink, older versions of glib don't have
4850         g_file_read_link ().
4851
4852 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4853
4854         * profiler.c: try to detect the path to mono if libc fails to provide
4855         a useful name (bug #80286).
4856
4857 2006-12-16  Raja R Harinath  <rharinath@novell.com>
4858
4859         Fix #80242
4860         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
4861         instance, use the generic type definition instead.
4862         (ves_icall_Type_GetNestedTypes): Likewise.
4863         * class.c (mono_class_create_generic): Always set the
4864         nested_classes of a generic instance to NULL, even if the generic
4865         type definition has nested types.
4866
4867 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
4868
4869         * marshal.c (mono_string_from_bstr): Revert previous Windows change
4870         and fix on Linux.
4871         
4872 2006-12-15  Miguel de Icaza  <miguel@novell.com>
4873
4874         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
4875         my arguments were in the wrong order.   I also fixed the Windows
4876         version which seems to have had the same issue.
4877
4878         (mono_free_bstr): On Unix, this is g_free.
4879         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
4880         conversions (for the tests in corlib to pass).
4881
4882 2006-12-14  Miguel de Icaza  <miguel@novell.com>
4883
4884         * marshal.c (emit_ptr_to_object_conv): For now, ignore
4885         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
4886         exception if a ref SafeHandle in a struct has changed).
4887         
4888         (emit_struct_conv): Do not perform layout checks for classes
4889         derived from SafeHandle, as those are specially handled. 
4890
4891         (emit_object_to_ptr_conv): Add support for
4892         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
4893
4894         (emit_marshal_safehandle): Implement conversion of return values
4895         of safehandles (MARSHAL_ACTION_CONV_RESULT).
4896         
4897         * threads.c: WaitHandle now is compiled with two different handles
4898         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
4899         for 2.0.
4900         
4901         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
4902         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
4903         these routines to cope with both kinds of fields.
4904
4905 2006-12-12  Miguel de Icaza  <miguel@novell.com>
4906
4907         * metadata.c (mono_type_to_unmanaged): Handle the case where
4908         type->data.klass is a SafeHandle, and in that case, return the
4909         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
4910         MONO_MARSHAL_CONV_SAFEHANDLE. 
4911
4912 2006-12-11  Miguel de Icaza  <miguel@novell.com>
4913
4914         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
4915         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
4916         calling emit_marshal_object.
4917
4918         (emit_marshal_safehandle): Implement marshalling of
4919         SafeHandle parameters (no ref support yet).
4920
4921         (MarshalAction): Document the defines as I implement
4922         them for SafeHandle.
4923
4924         (emit_marshal_object): indentation police.
4925
4926         * class-internals.h: Define MonoSafeHandle.
4927         Add safehandle_class to MonoDefaults type.
4928
4929         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
4930         list of classes to check for fields. 
4931
4932         * domain.c (mono_init_internal): Add SafeHandle to the list of
4933         mono_defaults loaded.
4934
4935 2006-12-15  Raja R Harinath  <rharinath@novell.com>
4936
4937         Fix #80253
4938         * reflection.c (mono_reflection_bind_generic_parameters): If the
4939         generic type definition is a type builder, ensure that it is fully
4940         initialized before instantiating it.  Kill some dead code.
4941
4942 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
4943
4944         * object.c: clear the loader_error () before loading
4945         more metadata stuff (bug #80258).
4946
4947 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
4948
4949         * icall.c, icall-defs.h: type modifiers icalls for
4950         parameters and properties.
4951
4952 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
4953
4954         * object.c, icall.c: fixed warnings.
4955
4956 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
4957
4958         * marshal.c: fixed a couple of leaks and coding style in a few places.
4959
4960 2006-12-08  Dick Porter  <dick@ximian.com>
4961
4962         * process.c: Cope with NULL ProcessStartInfo arguments on windows
4963         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
4964         80173.
4965
4966 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4967
4968         * process.c: ProcessStartInfo may have only filename set and
4969         arguments can be NULL.
4970
4971 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4972
4973         * icall.c: fix leak found by Robert Jordan.
4974
4975 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
4976
4977         * marshal.c, marshal.h: generate managed method to access an element
4978         of a multi-dimensional array.
4979
4980 2006-11-30  Paolo Molaro (lupus@ximian.com)
4981
4982         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
4983
4984 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4985
4986         * icall.c: back out GetFields () fix until the serialization code is
4987         fixed to not depend on the incorrect behaviour.
4988
4989 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
4990
4991         * profiler.c: provide defaults if none are set.
4992
4993 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
4994
4995         * Makefile.am, attrdefs.h: new public header file with
4996         constants for attributes for use by embedders.
4997
4998 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
4999
5000         * icall.c: GetFields () fix for bug #80064.
5001
5002 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
5003
5004         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
5005         removed long unused icalls.
5006
5007 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
5008   
5009         * marshal.c: 
5010                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
5011                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
5012                 can be generated without a delegate class.
5013                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
5014         
5015         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5016
5017 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5018
5019         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
5020         #80069.
5021
5022 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5023
5024         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
5025         icall-def.h: added icalls needed by System.GC.
5026
5027 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
5028
5029         * loader.c: ensure the class in catch clauses is handled
5030         correctly for generics methods (fixes bug#79980).
5031
5032 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
5033
5034         * monitor.h, monitor.c: added mono_locks_dump () function
5035         to help debug deadlocks involving managed locks.
5036
5037 2006-11-13  Dick Porter  <dick@ximian.com>
5038
5039         * file-io.c (get_file_attributes): If the file is a symlink try
5040         and get the stat data for the target, but also add the
5041         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
5042         the specs for the windows symlink support, but will probably have
5043         to be reworked when I have test data from a vista machine.  Fixes
5044         bug 79887.
5045
5046 2006-11-13  Dick Porter  <dick@ximian.com>
5047
5048         * gc.c (mono_domain_finalize): 
5049         * marshal.c (mono_delegate_begin_invoke): 
5050         * threadpool.c (socket_io_init, mono_thread_pool_init)
5051         (mono_thread_pool_finish): 
5052         * monitor.c (mono_monitor_try_enter_internal): 
5053         * threads.c (mono_thread_resume, mono_thread_init)
5054         (mono_thread_suspend_all_other_threads)
5055         (mono_thread_execute_interruption): 
5056         * appdomain.c (mono_domain_unload): Check for NULL error returns
5057         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
5058         75733.
5059
5060 2006-11-11  Miguel de Icaza  <miguel@novell.com>
5061
5062         * process.c
5063         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
5064         Only close the handle if the value of the handle is not
5065         INVALID_HANDLE_VALUE.  This just makes the process a bit more
5066         robust.
5067
5068         Improvement for #75733, so that we do not run into this problem. 
5069
5070         
5071         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
5072         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
5073         internal variables.  Fixes #79462 
5074         
5075
5076 2006-11-09  Dick Porter  <dick@ximian.com>
5077
5078         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5079         Use poll() not select().  Fixes bug 79397.
5080
5081 2006-11-09  Raja R Harinath  <rharinath@novell.com>
5082
5083         Fix #79872
5084         * assembly.c (mono_assembly_load_from_full): Check that the given
5085         image has an assembly manifest.
5086
5087 2006-11-09  Ankit Jain  <jankit@novell.com>
5088
5089         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
5090         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
5091         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
5092
5093 2006-11-07  Dick Porter  <dick@ximian.com>
5094
5095         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5096         Put the old resolver behaviour back for pre-2.0 profiles.
5097
5098 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5099
5100         * threadpool.c: precise GC and locking fixes.
5101
5102 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
5103
5104         * class.c: don't load types that have an explicit unaligned
5105         managed reference. Provide better info in the TypeLoad exception.
5106         Part of the fix for bug #79744.
5107         * object.c: use the correct check for class type load issues.
5108
5109 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5110
5111         * class.c: enforce alignment of fields with managed references
5112         even when Pack=1 is forced by the user (bug #77788).
5113
5114 2006-11-03  Dick Porter  <dick@ximian.com>
5115
5116         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5117         If the address reverse lookup fails, return it as the hostname
5118         anyway.  Fixes bug 79721.
5119
5120 2006-11-03  Dick Porter  <dick@ximian.com>
5121
5122         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
5123         Fix build on Windows.
5124
5125 2006-11-02  Dick Porter  <dick@ximian.com>
5126
5127         * icall-def.h: 
5128         * object-internals.h: 
5129         * exception.c (mono_get_exception_thread_interrupted): 
5130         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
5131         Fixes bug 74525.
5132
5133         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
5134         Check for pending Thread.Interrupt.
5135
5136 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
5137         * loader.c: Fixed bug 79684.
5138
5139 2006-10-27  Dick Porter  <dick@ximian.com>
5140
5141         * file-io.c (get_file_attributes): Force symlinks to directories
5142         to be returned as a regular file.  Fixes bug 79733.
5143 2006-10-26  Dick Porter  <dick@ximian.com>
5144
5145         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
5146         CreateFile to open a directory then we need to set the
5147         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
5148
5149 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
5150
5151         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
5152         friends.
5153
5154 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5155
5156         * sgengc.c: small cleanup of timer code.
5157
5158 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
5159
5160         * sgen-gc.c: fix some warnings and start adding support for
5161         complete object removal on domain unload.
5162
5163 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
5164
5165         * assembly.c: build_assembly_name should not consider a version
5166         number without build or revision number invalid. Fixes bug #79715.
5167
5168 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
5169
5170         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
5171         call kernel32 function OutputDebugString directly.
5172         
5173         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5174         
5175 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
5176
5177         * reflection.c: small cleanup, using a function to insert a MonoString
5178         in the string heap.
5179
5180 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
5181
5182         * reflection.c: moving GC fixes.
5183
5184 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
5185
5186         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
5187         all the objects with finalizers belonging to an unloading appdomain.
5188
5189 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
5190
5191         * sgen-gc.c: added ability to allocate even when the nursery is fully
5192         pinned and fixed a couple of bugs.
5193
5194 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
5195
5196         * threads.h: Revert the last change for now.
5197
5198         * threads.h (mono_thread_get_pending_exception): Rename this to
5199         mono_thread_get_undeniable_exception ().
5200
5201 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
5202
5203         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
5204         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
5205         when fname does not refer to valid assembly. This result in a more
5206         meaningful error message.
5207         * exception.c: added mono_get_exception_bad_image_format2 which 
5208         constructs a BadImageFormatException using the ctor taking a custom
5209         message and the file name. Passing in a NULL msg results in a default
5210         message.
5211         * exception.h: define mono_get_exception_bad_image_format2 function.
5212         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
5213         when file name pointed to an invalid IL image. Use 
5214         mono_get_exception_file_not_found2 to construct FileNotFoundException,
5215         as this results in a more meaningful error message.
5216
5217 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
5218
5219         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
5220         #79465.
5221
5222 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
5223
5224         * metadata.c (mono_type_size): Change the align parameter to guint32 for
5225         consistency with the other _size functions.
5226         (mono_type_stack_size): Ditto.
5227
5228         * class.c object.c icall.c: Fix warnings caused by the above change.
5229
5230         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
5231
5232         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
5233
5234         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
5235
5236 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
5237
5238         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
5239         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
5240         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
5241         threadpool.h, threads-types.h: mark more internal functions.
5242
5243 2006-10-11  Dick Porter  <dick@ximian.com>
5244
5245         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5246         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
5247         reproduce the bug even before applying the fix.)
5248
5249 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
5250
5251         * reflection.c: allow retrieving attributes for arguments in generic
5252         methods (bug #79241).
5253
5254 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
5255
5256         * debug-mono-symfile.c: properly check fopen () result (found by
5257         coverity).
5258
5259 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
5260
5261         * reflection.c: make error message clearer and fixed two
5262         issuelets found by Coverity.
5263
5264 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
5265
5266         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
5267
5268 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
5269
5270         * object-internals.h, gc-internal.h, profiler-private.h:
5271         mark internal functions.
5272
5273 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
5274
5275         * reflection.c: put data in the text section.
5276         * icall.c: recognize more types in type_from_typename ().
5277         * process.c, marshal.c: added some GC FIXMEs.
5278
5279 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5280
5281         * loader.c: check for NULL before initializing.
5282
5283 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
5284
5285         * gc.c (finalizer_thread): Use a non-alertable wait here.
5286
5287         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
5288         until the correct solution is found.
5289
5290 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
5291
5292         * reflection.c (mono_module_get_object): Avoid an assert when operating on
5293         modules with no metadata. Fixes #79596.
5294
5295         * image.c (load_metadata_ptrs): Put back the error message when
5296         the #- heap is encountered since the support is not complete yet.
5297
5298 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5299
5300         * gc.c: do not allow the user to SuppressFinalize () a
5301         delegate because it would leak the trampoline if present.
5302
5303 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
5304
5305         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
5306         PropertyPtr table.
5307
5308 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
5309
5310         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
5311
5312         * metadata.c (mono_metadata_get_param_attrs): Ditto.
5313
5314         * row-indexes.h: Add definitions for *Ptr tables.
5315
5316         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
5317
5318         * metadata.c (mono_metadata_translate_token_index): New helper function to
5319         translate table indexes used in uncompressed metadata.
5320         (mono_metadata_decode_table_row): Ditto.
5321         (mono_metadata_decode_table_row_col): Ditto.
5322
5323         * metadata.c: Add table schema for *Ptr tables.
5324
5325         * class.c loader.c: Use the new helper function to access the affected metadata
5326         tables.
5327         
5328         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
5329         #38532.
5330         
5331 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
5332
5333         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
5334         sequences which can be unbounded in size. Fixes #79583.
5335
5336 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
5337
5338         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
5339         static initialization.
5340
5341         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
5342
5343         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
5344
5345         * domain.c (mono_domain_free): Free up type_init_exception_hash.
5346
5347         * object.c (mono_runtime_class_init): Implement correct semantics when a static
5348         ctor fails, i.e. throw the same exception on subsequent accesses.
5349         
5350 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
5351
5352         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
5353         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
5354         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
5355         Handle marshalling of interfaces and VARIANTs contained in structs.
5356         
5357         Code is contributed under MIT/X11 license.
5358         
5359 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
5360
5361         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
5362         
5363         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
5364         mempool.
5365
5366 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5367
5368         * console-io.c: ignore previous SIGINT handler.
5369
5370 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
5371
5372         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
5373         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
5374         #79460, #79461, #79485.
5375
5376         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
5377
5378         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
5379         #79217.
5380
5381 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
5382
5383         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
5384         could be generated from it.
5385
5386 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
5387
5388         * rand.c: fix read loop to correctly handle EINTR.
5389
5390 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5391
5392         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
5393         internal calls are defined to keep methods closer to the declaring
5394         type and allow a significant reduction in runtime relocations and
5395         memory usage.
5396
5397 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
5398
5399         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
5400         exception message to have FileNotFoundException use the default
5401         assembly load error message. Fixes bug #79426.
5402         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
5403
5404 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5405
5406         * threadpool.c: (start_thread_or_queue) use the root domain when
5407         creating the thread instead of the async object one.
5408
5409 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
5410
5411         * class.c, object.c, class-internals.h, reflection.c:
5412         for arrays, store element_size inside MonoClass (speedup
5413         for array object creation).
5414
5415 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
5416
5417         * icall.c: fixed CodeBase to use the file name and not the module
5418         name (bug #79365).
5419
5420 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5421
5422         * mono-debug.c, mono-debug.h: export find_method as
5423         mono_debug_find_method ().
5424
5425 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5426
5427         * debug-helpers.c, class-internals.h: added a few functions useful
5428         when debugging under gdb.
5429
5430 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5431
5432         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
5433         characters that need special handling.
5434
5435 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
5436
5437         * mono-config.c: make the os/cpu specification more flexible,
5438         allowing lists and negation.
5439
5440 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
5441
5442         * marshal.c: COM Interop fixes. Handle case where method->klass.
5443         is interface. Handle BSTR/MonoString when null. Use CDECL as 
5444         calling convention on non-windows platforms. This is for
5445         compatibility with XPCOM and MainWin COM.
5446         
5447         Code is contributed under MIT/X11 license.
5448         
5449
5450 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
5451
5452         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
5453         correctly. Fixes #79217.
5454
5455         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
5456
5457 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
5458
5459         * mono-config.c: allow both an os and cpu attribute for dllmap
5460         and dllentry elemnets to enable a single config file to be used
5461         for multiple architectures.
5462
5463 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
5464
5465         * loader.c: MonoLoaderError was cleared too soon on load failure.
5466         Fixes bug #79424.
5467
5468 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
5469
5470         * icall.c: use the defining class vtable when accessing a
5471         static field, not a pobblibly derived class.
5472
5473 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
5474
5475         * icall.c string-icalls.c: Remove references to unicode.h.
5476
5477         * unicode.h unicode.c Makefile.am: Remove these unused source files.
5478
5479         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
5480
5481         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
5482         indicating the image where custom marshaller types should be looked up.
5483         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
5484         custom marshallers, instead of corlib. Fixes #79425.
5485
5486 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
5487
5488         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
5489
5490 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
5491
5492         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
5493         Implement Environment.ProcessorCount.
5494         
5495         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
5496         Implement Environment.ProcessorCount.
5497         
5498         * icall.c: 
5499         Add Environment.ProcessorCount icall.
5500         
5501         Patch by Jason McFall.
5502
5503 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5504
5505         * assembly.c: don't append .exe/.dll when the filename already contains
5506         one of those extensions.
5507
5508 2006-09-12  Martin Baulig  <martin@ximian.com>
5509
5510         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
5511         to array interfaces.
5512
5513 2006-09-11  Martin Baulig  <martin@ximian.com>
5514
5515         * reflection.c (mono_image_build_metadata): Create the
5516         MethodImpl's after emitting all types and methods, so we don't
5517         need another fixup pass for them.
5518
5519 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
5520
5521         * class.c (mono_class_from_name_case): Fix regression introduced by the last
5522         change.
5523
5524 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
5525
5526         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
5527         unload.
5528
5529 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
5530
5531         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
5532         args is not set. Fixes #78926.
5533
5534 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
5535
5536         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
5537
5538         * image.c (load_class_names): Move this to class.c, and rename it to 
5539         'mono_image_init_name_cache'.
5540         (load_modules): Fix a warning.
5541
5542         * class.c icall.c image.c: Initialize image->name_cache lazily.
5543
5544         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
5545         on its name using information in the AOT file.
5546
5547         * class.c (mono_class_from_name): Use the new hook function.
5548
5549 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
5550
5551         * reflection.c (mono_param_get_objects): Handle enum default parameter values
5552         correctly.
5553
5554         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
5555         Fixes #79289.
5556         
5557 2006-09-06  Martin Baulig  <martin@ximian.com>
5558
5559         * icall.c (mono_lookup_internal_call): Small fix.
5560
5561 2006-09-05  Raja R Harinath  <rharinath@novell.com>
5562
5563         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
5564         double g_free.
5565
5566 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
5567
5568         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
5569         when --debug is specified.
5570
5571 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
5572
5573         * class.c (setup_generic_array_ifaces): Fix a warning.
5574
5575 2006-09-04  Miguel de Icaza  <miguel@novell.com>
5576
5577         * Temporarily remove the patch to assemly.c that checks the
5578         assembly versions as it breaks our gacutil.
5579
5580 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
5581
5582         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
5583
5584         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
5585         a net 1.0 runtime.
5586
5587         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
5588         created using the default ctor. Fixes #79152.
5589         (mono_string_builder_to_utf16): Ditto.
5590
5591 2006-09-01  Martin Baulig  <martin@ximian.com>
5592
5593         Fix handling of the generic array interfaces.
5594
5595         * class-internals.h
5596         (MonoDefaults): Removed `generic_array_class' and added
5597         `generic_ilist' class.
5598
5599         * class.c
5600         (mono_bounded_array_class_get): Add the new generic array interfaces.
5601         (setup_generic_array_ifaces): New static method; create vtable
5602         entries for each method in the generic array interfaces.
5603
5604         * metadata.c
5605         (select_container): Allow "parent-less" generic methods.
5606
5607         * marshal.c
5608         (mono_marshal_get_generic_array_helper): New public method.
5609
5610         * icall.c
5611         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
5612         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
5613         moved the interncall into System.Array.
5614
5615 2006-09-01  Raja R Harinath  <rharinath@novell.com>
5616
5617         A few more cases of avoiding work on types with ->byref set.
5618         Has the real fix for #79238
5619         * icall.c (is_generic_parameter): New helper.
5620         (ves_icall_Type_GetGenericParameterPosition): Use it.
5621         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
5622         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
5623         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5624         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
5625         reference types.
5626         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
5627         reference types.
5628         (ves_icall_Type_get_IsGenericInstance): Likewise.
5629         (ves_icall_Type_get_IsGenericType): Likewise.
5630
5631 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
5632
5633         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
5634         class if possible.
5635
5636         * mempool.h (mono_mempool_get_allocated): New helper function.
5637
5638         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
5639         change.
5640
5641         * mempool.c: Fix warnings and the calculation of stats.
5642
5643         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
5644
5645         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
5646
5647         * loader.c (mono_get_method_from_token): Update method_count stat.
5648
5649         * class-internals.h (MonoStats): Add some stats.
5650
5651 2006-08-31 Robert Jordan  <robertj@gmx.net>
5652
5653         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
5654         with managed variants.
5655         All code is contributed under the MIT/X11 license.
5656         
5657 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
5658
5659         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
5660         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
5661
5662         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
5663
5664         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
5665         with cycles in classes.
5666
5667         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
5668
5669         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
5670         missing a [MarshalAs] directive. Fixes #79203.
5671
5672         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
5673         klass->marshal_info. Fixes #79217.
5674
5675 2006-08-30  Martin Baulig  <martin@ximian.com>
5676
5677         Committing a patch from Joachim Ante <joe@otee.dk>:
5678         Add support for binary data symbol stores.
5679
5680         * debug-mono-symfile.c
5681         (mono_debug_open_mono_symbol_file): Renamed into
5682         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
5683         arguments.
5684
5685         * mono-debug.c
5686         (mono_debug_open_image): Added `raw_contents' and `size' args.
5687         (mono_debug_init_2_memory): New public function.
5688
5689 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
5690
5691         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
5692
5693 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5694
5695         * appdomain.c: implement support for ShadowCopyFiles.
5696
5697 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
5698
5699         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
5700         when value is NULL (and should remove CID #51).
5701
5702 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5703
5704         * image.c: moved 2 functions to ../utils.
5705
5706 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
5707
5708         * gc.c: cope with the target object of a GC handle being NULL
5709         (bug #78877).
5710
5711 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
5712
5713         * class.c: recursively check parent's explicit implementations
5714         of interface methods (fixes bug #79125).
5715
5716 2006-08-19  Miguel de Icaza  <miguel@novell.com>
5717
5718         * filewatcher.c: Avoid warnings when building, do not redefine
5719         constants that are defined.
5720
5721         Remove warnings.
5722
5723 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5724
5725         * image.c: don't fail when the link points to an absolute path.
5726
5727 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
5728
5729         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
5730         Fix CID #3.
5731
5732 2006-08-17  Miguel de Icaza  <miguel@novell.com>
5733
5734         * image.c (full_path): A new method used to obtain the actual path
5735         of an assembly even in the presence of symbolic links.  
5736
5737         This is necessary for the case where we are running a binary that
5738         has been GACed, but we are using the "published" path name
5739         ($prefix/mono/1.0/blah.exe) which happens to point to the real
5740         file in the GAC.
5741
5742         This was the source of the failure for the `xsp' command with the
5743         recent AppDomain changes, as far as the runtime was concerned,
5744         there were two different assemblies: $prefix/mono/1.0/blah.exe and
5745         $prefix/mono/gac/blah/version/blah.exe.
5746
5747         (do_mono_image_open): use full path
5748
5749 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5750
5751         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
5752
5753 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
5754
5755         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
5756         domain_id is supplied. Fix CID #241 and corlib's unit tests.
5757
5758 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5759
5760         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
5761         small structures. Fixes #78990.
5762
5763 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5764
5765         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
5766
5767         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
5768
5769 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5770
5771         * appdomain.c:
5772         * marshal.c: don't load all the assemblies from a domain into newly
5773         created ones. The new domains might have different rules and load
5774         assemblies from different locations. Fixes bug #76757.
5775
5776         Patch by Lluis. Conflicts resolved by Brian Crowell.
5777
5778 2006-08-16  Alp Toker  <alp@atoker.com>
5779
5780         * socket-io.c: First half of the fix for #79084.
5781         Set sa_size to the length of the content, not that of the struct.
5782         Don't add NULL suffix to the content, this should be done in
5783         managed code if needed.
5784
5785 2006-08-14  Raja R Harinath  <rharinath@novell.com>
5786
5787         Fix part of #79012
5788         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
5789         mono_metadata_parse_type returns NULL.
5790
5791 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
5792
5793         * normalization-tables.h : new file for string normalization data.
5794         * locales.c, locales.h, icall.c :
5795           added load_normalization_resource() for string normalization,
5796           and icall as well.
5797         * Makefile.am : added normalization-tables.h to the sources.
5798
5799 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
5800
5801         * marshal.c: Add more helper functions to reduce code duplication and use them
5802         everywhere.
5803
5804 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
5805
5806         * marshal.c: Fix non-x86 stdcall warnings.
5807         
5808         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
5809         them everywhere.
5810
5811 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
5812
5813         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
5814         type check on multi-dimensional arrays. Fixes #79000.
5815
5816 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
5817
5818         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
5819         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
5820         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
5821         * class-internals.h: add is_com_object to class structure.
5822         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
5823         null checks to COM object marshalling. Fix .ctor call on RCW.
5824         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
5825         
5826         All code is contributed under the MIT/X11 license.
5827
5828 2006-08-09  Dick Porter  <dick@ximian.com>
5829
5830         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
5831         racing mono_monitor_allocator_lock() somewhere, so don't delete
5832         the critical section for now.  Found by running and exiting
5833         monodevelop.
5834
5835 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
5836
5837         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
5838         (ves_icall_System_ComObject_FindInterface): Ditto.
5839         (ves_icall_System_ComObject_CacheInterface): Ditto.
5840
5841         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
5842         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
5843
5844 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5845
5846         * threadpool.c: treat pipes from process asynchronous reads as sockets
5847         when reading from them, so we get select/poll or epoll to wait for
5848         data.
5849
5850 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
5851
5852         * loader.c: Fix a typo (CID #233) in the null check.
5853
5854 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
5855
5856         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
5857         Hopefully fixes #78949.
5858         
5859         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
5860         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
5861         bytes. Fixes #78972.
5862
5863 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5864
5865         * filewatcher.c: we need to set errno here.
5866
5867 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5868
5869         * filewatcher.c: let Win32Exception get the error value.
5870
5871 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5872
5873         * filewatcher.c: translate errno into win32 errors for Win32Exception
5874         to know what happened.
5875
5876 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
5877
5878         * threadpool.c: Fix more warnings.
5879
5880         * assembly.c (search_loaded): Fix warnings.
5881
5882         * threadpool.c (mono_thread_pool_finish): Fix warnings.
5883         (mono_async_invoke): Ditto.
5884
5885 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
5886
5887         * object.c (mono_remote_class_vtable): Need to create proxy vtable
5888         entries for __ComObject type in addition to ComImport types.
5889         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
5890         about hash table.
5891         
5892         All code is contributed under the MIT/X11 license.
5893
5894 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5895
5896         * image.c: avoid tentative loading of modulerefs that contain
5897         no metadata (P/Invoke library names).
5898
5899 2006-07-28  Dick Porter  <dick@ximian.com>
5900
5901         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
5902         mono_loader_lock() somewhere, so don't delete the critical section
5903         for now.  Found by running and exiting monodevelop.
5904
5905 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5906
5907         * filewatcher.c: define the inotify syscalls when we're building on
5908         linux and have sys/syscall.h. The build system might not have support
5909         for inotify but the target system might have it.
5910
5911 2006-07-26  Miguel de Icaza  <miguel@novell.com>
5912
5913         * domain.c: Documentation updates.
5914
5915         * loader.c (mono_free_method): Do not release the method
5916         information if we are being profiled, as profilers will use this
5917         information at shut down to present some data to the user.
5918
5919         This is needed so that the profiler does not crash, as the
5920         profiler tends to keep MonoMethods around, and they might become
5921         invalid if we free these.
5922
5923         (mono_get_method_constrained): Return the original CIL stream
5924         method as well, so verification can be performed against it.
5925
5926 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5927
5928         * filewatcher.[ch]: support for inotify file system watcher.
5929         * icall.c: add new internal calls for the inotify file system watcher.
5930
5931 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5932
5933         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
5934         #78888.
5935
5936 2006-07-20  Dick Porter  <dick@ximian.com>
5937
5938         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
5939         warning.
5940
5941 2006-07-20  Dick Porter  <dick@ximian.com>
5942
5943         * threads.c (start_wrapper): Do the thread cleanup while we still
5944         hold a reference to its object.  Fixes bug 78123.
5945
5946 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
5947
5948         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
5949         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
5950           "managed-to-managed".
5951         * icall.c: Redirect string constructors that take sbyte* to
5952           ves_icall_System_String_ctor_RedirectToCreateString.
5953         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
5954           to CreateString () methods with matching signature.
5955         * reflection.c: Use original security informations for
5956           MONO_WRAPPER_MANAGED_TO_MANAGED.
5957         * security-manager.c: Use original security informations for
5958           MONO_WRAPPER_MANAGED_TO_MANAGED.
5959         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
5960           that is a placeholder and only its address should be used.
5961         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
5962           that is a placeholder and only its address should be used.
5963
5964 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
5965
5966         Begin implementing COM Interop.
5967         * appdomain.c: Increment corlib version.
5968         * class.c: Set ComImport classes' parent to __ComObject.
5969         * loader.c: Mark cominterop methods as such.
5970         * domain.c: Add __ComObject class to MonoDefaults structure.
5971         * image.c: Add 2 hashtables to the image for COM Interop related methods
5972         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
5973         using the mempool allocator
5974         
5975         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
5976         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
5977         declaration for mono_metadata_type_dup_mp.
5978         
5979         * debug-helpers.c: Added strings for two additional wrapper types
5980         * object.c: Create proxy objects for ComImport classes
5981         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
5982         and added __ComObject class to MonoDefaults structure.
5983         
5984         * object-internals.h: Finish MonoRealProxy definition, and add definition of
5985         MonoComInteropProxy and MonoComObject.
5986         
5987         * marshal.c: Added support for COM Interop
5988         (signature_cominterop): Converts managed signature to corresponding
5989         unmanaged COM signature.
5990         (cominterop_get_function_pointer): gets unmanaged function pointer via
5991         COM object vtable
5992         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
5993         (cominterop_get_method_interface): returns interface type that method is defined on
5994         (mono_mb_emit_cominterop_call): emits native call to function pointer
5995         gotten from vtable
5996         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
5997         that matches signature of unmanaged function.
5998         (cominterop_get_native_wrapper): wrapper around adjusted method call.
5999         (cominterop_get_invoke): forwards call from proxy to __ComObject
6000         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
6001         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
6002         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
6003         
6004         * marshal.h: Added Marshal icall declarations.
6005         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
6006         so we can access them in finalizer
6007         
6008 2006-07-14  Dick Porter  <dick@ximian.com>
6009
6010         * object.c (mono_type_initialization_cleanup): Fix a race
6011         condition by temporarily commenting out the critical section
6012         deletion.
6013
6014 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
6015
6016         * reflection.c (create_custom_attr): Fix some warnings.
6017         (create_custom_attr_data): Ditto.
6018         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
6019         types. Fixes #78855.
6020
6021 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
6022
6023         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
6024
6025         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
6026
6027 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
6028
6029         * reflection.c (resolve_object): Add support for DynamicMethod.
6030
6031         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
6032         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
6033
6034 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
6035
6036         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
6037         don't leak GPtrArray's pdata has we have no use (nor free) for it.
6038
6039 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
6040
6041         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
6042         Fixes #77888.
6043
6044 2006-06-30  Raja R Harinath  <rharinath@novell.com>
6045
6046         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
6047         slightly: remove a shadow local variable.
6048
6049 2006-06-29  Raja R Harinath  <rharinath@novell.com>
6050
6051         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
6052         definition that introduces the virtual function slot.
6053         Also fix Coverity #105.
6054
6055 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
6056
6057         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
6058         for dynamic assemblies. Fixes #78724.
6059
6060 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
6061
6062         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
6063         Fixes #78722.
6064
6065 2006-06-21  Martin Baulig  <martin@ximian.com>
6066
6067         * reflection.c
6068         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
6069         fixes #76484.
6070
6071 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
6072
6073         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
6074
6075 2006-06-20  Raja R Harinath  <rharinath@novell.com>
6076
6077         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
6078         nor TYPEREFs.
6079         * class.c (mono_class_create_from_typespec): Add 'context' argument.
6080         Inflate result if necessary.
6081         (mono_class_get_full): Remove old version.  Rename from
6082         'mono_class_get' and add 'context' argument.  Pass it to
6083         ..._create_from_typespec.
6084         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
6085         (mono_ldtoken): Revert change below.
6086
6087 2006-06-20  Martin Baulig  <martin@ximian.com>
6088
6089         * class.c (mono_ldtoken): Don't pass the generic context to
6090         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
6091
6092 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
6093
6094         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
6095         and later freeing it. Fixes #78638.
6096
6097 2006-06-15  Miguel de Icaza  <miguel@novell.com>
6098
6099         * icall.c (mono_class_get_throw): Revert over-zealous error
6100         throwing, the caller for mono_class_get_throw will cope with
6101         errors when classes are not properly initialized already.
6102
6103         The code still copes with loader exceptions though.
6104
6105         Fixes the regression in reftype1 and reftype3 from the CAS tests.
6106         
6107 2006-06-14  Miguel de Icaza  <miguel@novell.com>
6108
6109         Fixes the `make run1' version of RuntimeAbort (to be commited,
6110         source is in Bugzilla).
6111         
6112         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
6113         FALSE on class loading failure instead of returning true.
6114
6115         * class.c (mono_class_create_from_typedef): It is possible for
6116         mono_metadata_interfaces_from_typedef_full to fail if a class is
6117         not found, cope with this.
6118         
6119
6120 2006-06-14  Dick Porter  <dick@ximian.com>
6121
6122         * socket-io.c: 
6123         * process.c: Fix a bunch of signed/unsigned warnings from gcc
6124         4.1.1
6125
6126 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
6127
6128         * culture-info-table.h : oops, forgot to make it nsync with r61548.
6129
6130 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
6131
6132         * icall.c: Another fix for building mono in Visual Studio.
6133
6134 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
6135
6136         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
6137         
6138 2006-06-09  Martin Baulig  <martin@ximian.com>
6139
6140         * debug-mono-symfile.c: Put this back and really fix it this
6141         time. Sorry for all the trouble.
6142
6143 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
6144
6145         * icall.c (mono_class_get_throw): Fix a warning.
6146         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
6147         ReflectionTypeLoadException if needed. Fixes #78606.
6148
6149         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
6150         (mono_class_init): Ditto.
6151
6152         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
6153         ref_only exceptions.
6154         (mono_loader_clear_error): Make this work even if there is no error.
6155
6156 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
6157
6158         * object-internals.h marshal.c marshal.h icall.c: Implement method 
6159         Marshal.GetComSlotForMethodInfo using internal call.
6160
6161 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
6162
6163         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
6164         a function for signalling it.
6165
6166         * class.c (mono_class_from_typeref): Use the new kind of loader error when
6167         a referenced assembly is not found.
6168
6169         * loader.c (mono_loader_error_prepare_exception): Add support for 
6170         LOADER_ERROR_ASSEMBLY. Fix formatting.
6171
6172 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
6173
6174         * domain.c appdomain.c class-internals.h marshal.c: Add support 
6175         for VARIANT marshalling on windows and increment corlib version
6176         since Variant struct was added.
6177
6178 2006-06-03  Miguel de Icaza  <miguel@novell.com>
6179
6180         * debug-mono-symfile.c: Revert Martin's previous patch which broke
6181         stack trace line information:
6182
6183         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
6184         (Martin) when looking up B which is between A and C, return A not C.
6185
6186         Bug is #78573.
6187
6188         Thanks to Alexander Olk for tracking this down.
6189
6190 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
6191
6192         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
6193         
6194         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
6195         avoid clobbering its value.
6196         (mono_string_to_lpstr): Fix a warning on windows.
6197
6198 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
6199
6200         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
6201
6202         * reflection.c loader.c: Removed references to 'dummy' flag.
6203
6204         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
6205
6206         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
6207         it gets GC tracking.
6208
6209         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
6210         GC tracking.
6211         
6212         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
6213
6214         * marshal.c threadpool.c: Update callers of mono_async_result_new.
6215
6216         * appdomain.c: Bump corlib version.
6217
6218 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
6219
6220         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6221         CEE_STIND_REF when working with object references.
6222
6223 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
6224
6225         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
6226         Fixes #78539.
6227
6228 2006-05-30  Miguel de Icaza  <miguel@novell.com>
6229
6230         * loader.c (method_from_memberref): Fix argument value for
6231         mono_loader_set_error_method_load (I was passing the MonoClass
6232         instead of the class name char *).
6233
6234 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
6235
6236         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6237         CEE_STIND_REF when working with object references.
6238
6239 2006-05-30  Martin Baulig  <martin@ximian.com>
6240
6241         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
6242         mono_method_full_name() change and replace the ':' with a '.'
6243         here.
6244
6245 2006-05-30  Martin Baulig  <martin@ximian.com>
6246
6247         * debug-mono-symfile.c
6248         (mono_debug_symfile_lookup_location): Fix the algorithm:
6249         when looking up B which is between A and C, return A not C.
6250
6251 2006-05-29  Martin Baulig  <martin@ximian.com>
6252
6253         * mono-debug.h
6254         (MonoDebugMethodInfo): Make the typedef public.
6255         (MonoDebugSourceLocation): New public struct.
6256
6257         * mono-debug.c
6258         (mono_debug_source_location_from_address): Removed.
6259         (mono_debug_source_location_from_il_offset): Removed.
6260         (mono_debug_il_offset_from_address): Removed.
6261         (mono_debug_address_from_il_offset): Removed.
6262         (mono_debug_lookup_method): New public function.
6263         (mono_debug_lookup_source_location): New public function; replaces
6264         the old mono_debug_source_location_from_*() functions; see the
6265         inline documentation.
6266         (mono_debug_free_source_location): New public function.
6267         (mono_debug_print_stack_frame): New public function; see the
6268         inline documentation.
6269
6270         * debug-mono-symfile.c
6271         (mono_debug_find_source_location): Renamed into
6272         mono_debug_symfile_lookup_location(); only take a
6273         `MonoDebugMethodInfo *' and an `offset' argument; added inline
6274         documentation.
6275         (mono_debug_find_method): Renamed into
6276         mono_debug_symfile_lookup_method().
6277
6278 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
6279
6280         * assembly.c (mono_assembly_open_full): Dont overwrite the status
6281         returned by mono_image_open_full ().
6282
6283         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
6284         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
6285         #78517.
6286
6287         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
6288         #78518.
6289
6290 2006-05-27  Miguel de Icaza  <miguel@novell.com>
6291
6292         * class.c (mono_class_from_typeref): handle missing images
6293         earlier, deals with bug #78418.   Refactor code; 
6294
6295         Fix a warning introduced in my previous commit (some stale code
6296         from before I revisited my patch).
6297
6298         * class.c (mono_class_create_from_typedef): On failure, remove the
6299         class from the MonoImage->class_cache as the class is not
6300         initialized;   Fixes the leak pointed out by Paolo.
6301
6302 2006-05-25  Dick Porter  <dick@ximian.com>
6303
6304         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
6305         DeleteCriticalSections until I figure out which one may still be
6306         sometimes locked when mono_thread_cleanup is called.
6307
6308 2006-05-24  Dick Porter  <dick@ximian.com>
6309
6310         * threads.c (mono_thread_cleanup): Move the threading cleanup out
6311         of mono_thread_manage and back into its own function, so it can be
6312         called after the finalizer thread has finished.
6313
6314         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
6315
6316 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
6317
6318         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
6319         Fixes #78495.
6320
6321         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
6322         with non-blittable elements.
6323         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
6324
6325 2006-05-24  Martin Baulig  <martin@ximian.com>
6326
6327         * mono-debug-debugger.h (MonoDebuggerEvent): Added
6328         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
6329
6330         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
6331         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
6332         `mono_debugger_event_handler' to NULL.
6333
6334 2006-05-24  Martin Baulig  <martin@ximian.com>
6335
6336         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
6337
6338 2006-05-24  Martin Baulig  <martin@ximian.com>
6339
6340         * mono-debug-debugger.h
6341         (mono_debugger_create_notification_function): Added
6342         `MonoCodeManager *' argument.
6343
6344 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
6345
6346         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
6347
6348 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
6349
6350         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
6351         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
6352         implementation.
6353
6354 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
6355
6356         * icall.c: precise GC support: objects can't be stored in unmanaged
6357         memory anymore, even if they are kept alive by other references: since
6358         they can move the GC needs to be able to always find them.
6359
6360 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
6361
6362         * object.c: precise GC support for static fields. Support
6363         for moving GCs: write barriers and pinned allocation for interned
6364         strings.
6365
6366 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
6367
6368         * domain.c, domain-internals.h: precise GC support for the MonoDomain
6369         structure.
6370
6371 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
6372
6373         * class.c, gc.c: sgen and precise GC updates.
6374
6375 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
6376
6377         * marshal.h, marshal.c: added write barrier wrapper and precise type
6378         fixes.
6379
6380 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
6381
6382         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
6383         support.
6384
6385 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
6386
6387         * reflection.c: precise and sgen GC updates.
6388
6389 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
6390
6391         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
6392
6393 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
6394
6395         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
6396
6397 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
6398
6399         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
6400         MONO_TYPE_OBJECT. Fixes #78462.
6401
6402 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
6403
6404         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
6405         and blittable types.
6406
6407 2006-05-17  Miguel de Icaza  <miguel@novell.com>
6408
6409         * class.c (mono_class_get_exception_for_failure): Implement parts
6410         of a TODO: if the loader error is set (instead of the class
6411         error), we return a Loader exception that can be properly thrown
6412         elsewhere.
6413
6414         This was exposed by some Winforms 2.0 code that I tried to run
6415         (Atsushi pointed me to it).
6416
6417 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
6418
6419         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
6420         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
6421         
6422         * marshal.c (emit_marshal_vtype): Add limited support for 
6423         UnmanagedType.LPStruct. Fixes #78427.
6424
6425         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
6426         Applied a patch from kangaroo to fix #77523.
6427
6428 2006-05-17  Martin Baulig  <martin@ximian.com>
6429
6430         * threads.c
6431         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
6432         (debugger_thread_created): Removed.
6433         (debugger_thread_exited): Removed.
6434
6435 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
6436
6437         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6438
6439         * object-internals.h (MonoReflectionResource): Sync with managed version.
6440
6441 2006-05-12  Wade Berrier <wberrier@novell.com>
6442
6443         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
6444
6445 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
6446
6447         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
6448         functions try to allocate from the image mempool.
6449
6450 2006-05-12  Dick Porter  <dick@ximian.com>
6451
6452         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
6453
6454 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
6455
6456         * object.c: The FieldGetter and FieldSetter methods require the full
6457         name of the class, not only the name. Fixes bug #78277.
6458
6459 2006-05-11  Miguel de Icaza  <miguel@novell.com>
6460
6461         * loader.c (method_from_memberref): Do not pass the NULL klass to
6462         mono_loader_set_error_() methods.  Pass the non-NULL value
6463         (class). 
6464
6465 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
6466
6467         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
6468         (mono_assembly_close): Null out assembly->image->references after freeing it.
6469
6470         * image.c (mono_image_close): Free image->references.
6471         
6472         * reflection.c (mono_image_basic_init): Fix a small memory leak.
6473
6474 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
6475
6476         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
6477         before checking if it's NULL (g_assert).
6478
6479 2006-05-10  Martin Baulig  <martin@ximian.com>
6480
6481         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
6482         I thought I already killed that two months ago, but now it somehow reappeared.
6483
6484 2006-05-10  Martin Baulig  <martin@ximian.com>
6485
6486         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
6487
6488 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
6489
6490         * reflection.c: Allocate memory for dynamically created methods in the image
6491         mempools.
6492
6493 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
6494
6495         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
6496         don't use the ad pointer before checking if it's NULL (g_assert).
6497
6498 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
6499
6500         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
6501         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
6502
6503         * marshal.c: Allocate all signatures from mempools.
6504
6505         * marshal.c: Allocate some more signatures from mempools.
6506
6507 2006-05-09  Miguel de Icaza  <miguel@novell.com>
6508
6509         * object.c (mono_load_remote_field): The code used to provide a
6510         temporary variable for returning results if the user did not
6511         provide a result pointer.  But our temporary variable was allocted
6512         on the satck.
6513
6514         Fix calling code to always pass a result area.   Coverity ID 103.
6515
6516 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
6517
6518         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
6519         value, not the old. Fixes #78312.
6520         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
6521
6522         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
6523         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
6524         per-image cache.
6525
6526         * assembly.c (mono_assembly_close): Free image->references.
6527
6528         * assembly.c (mono_assembly_names_equal): Fix a warning.
6529         (mono_assemblies_cleanup): Cleanup more global data.
6530
6531         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
6532
6533         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
6534         ptr_cache and image->modules.
6535
6536         * image.c (mono_image_init): Allocate array_cache lazily.
6537         
6538 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6539
6540         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
6541         behavior was changed recently and has bad side effects.
6542
6543 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
6544
6545         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
6546         
6547         * assembly.c (mono_assembly_close): Remove a debug printf.
6548
6549         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
6550
6551         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
6552         to also allow for temporary references between mono_image_open ()/close ().
6553
6554         * domain.c (get_runtimes_from_exe): Add a FIXME.        
6555
6556 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
6557
6558         * marshal.c: Fix support for dynamic methods.
6559
6560         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
6561
6562         * marshal.c (mono_marshal_cleanup): New cleanup function.
6563
6564         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
6565         image mempools.
6566
6567         * class.c (mono_class_init): Fix leaking class->nested_classes.
6568
6569         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
6570
6571         * image.c (mono_image_init): Initialize the new cashes.
6572
6573         * image.c (mono_image_close): Destroy the new cashes.
6574
6575         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
6576
6577         * mempool.c (mono_mempool_strdup): New helper function.
6578
6579         * class-internals.h: Add prototype for mono_loader_unlock ().
6580
6581         * domain.c (mono_jit_info_table_find): Fix a warning.
6582         (mono_debugger_check_runtime_version): Ditto.
6583
6584         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
6585         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
6586         functions to these modules.
6587
6588         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
6589         metadata modules.
6590         
6591         * marshal.c (mono_free_bstr): Fix a warning.
6592
6593         * assembly.c (mono_assembly_open_full): Fix another small leak.
6594
6595         * object.c: Fix some unload leaks in the remoting code.
6596
6597         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
6598         function.
6599
6600         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
6601
6602         * reflection.c: Fix some unload leaks in dynamic assemblies.
6603
6604 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
6605
6606         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
6607         * marshal.h: Add BSTR support on Win32
6608         * icall.c: Add BSTR icalls
6609         * metadata.h: Add BSTR enums
6610
6611 2006-04-28  Miguel de Icaza  <miguel@novell.com>
6612
6613         Work to catch the crash from #76795 and turn it into an
6614         exception.   As I stubbed out pieces of the VisualBasic support,
6615         I found a number of places where the code was failing and I added
6616         checks to those places. 
6617         
6618         * metadata.c (do_mono_metadata_parse_generic_class): Make this
6619         function return a status code.  If we fail to parse the signature
6620         from mono_metadata_parse_generic_inst, return FALSE.
6621
6622         * loader.c (mono_get_method_from_token): If we fail to load the
6623         method (mono_class_get) return NULL.   
6624
6625         * (method_from_memberref): Return NULL if we are unable to parse
6626         the method signature
6627
6628         (mono_loader_error_prepare_exception): Since we now use the
6629         loader_error flag internally to stop processing, and obtaining
6630         exceptions that might be thrown will walk this code path the
6631         proper way of going from a MonoLoaderError into a
6632         MonoException was convoluted.   This new routine encapsulates the
6633         process of turning the error into an exception and *clearing* the
6634         error afterwards.
6635         
6636 2006-04-27  Miguel de Icaza  <miguel@novell.com>
6637
6638         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
6639         with missing assemblies), and to cope with:
6640
6641                 * Missing fieldref from a non-existing assembly.
6642                 * Missing methodref from a non-existing assembly.
6643
6644         The first batch of work to address *some* of the issues from 76661.
6645         
6646         * object.c (mono_class_create_runtime_vtable): If we fail to
6647         initialize the class raise the exception here. 
6648
6649         * metadata.c (mono_class_get_overrides_full): If any methods fail
6650         to load return the failure to the caller.
6651
6652         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
6653         flagging assemblies that failed to load.   
6654
6655         Do not crash if we are unable to load the assembly.
6656
6657         (mono_assembly_close): Do nothing with REFERENCE_MISSING
6658         assemblies. 
6659
6660         * loader.c (mono_loader_set_error_type_load): Change the
6661         convention to always pass unallocated strings, so we make our own
6662         copies (I know our own code had duplicated strings before, but
6663         this keeps the normal conventions).
6664         (method_from_memberref): Call mono_loader_set_error_method_load
6665         for all possible failures of loading the class. 
6666         Remove assert, turn into a loader error.
6667
6668         (mono_loader_error_to_exception): Move this routine from mini
6669         (mini_loader_error_to_exception) there was no need to have that in
6670         mini. 
6671
6672         * class.c (mono_class_from_typeref): If we were not able to load
6673         the assembly with mono_assembly_load_reference, call the
6674         mono_loader_set_error_type_load to register the problem.
6675
6676         (mono_class_setup_fields): If we fail to load the type from
6677         mono_metadata_parse_type_full, call mono_class_set_failure and
6678         break from the loop.
6679
6680         If class->exception_type is set, we do not layout the fields as
6681         that might crash the runtime, and instead return (from breaking
6682         from the previous loop).
6683
6684         (mono_class_setup_vtable): This now returns a boolean indicating
6685         whether the table was properly setup.   The decision is driven by
6686         mono_class_get_overrides_full which might run into non-existing
6687         methods. 
6688         
6689         (mono_class_init): Returns TRUE on success or FALSE if there was a
6690         problem in loading the type (incorrect assemblies, missing
6691         assemblies, methods, etc).
6692
6693         When we call mono_class_setup_fields we also check for a potential
6694         error inside this call (either a class exception or a general
6695         loader exception).
6696
6697         (mono_class_create_from_typedef): If the parent fails to load
6698         (calling mono_class_get_full) return NULL.
6699         
6700         ** Important **
6701
6702         calls to mono_metadata_parse_type_full should be checked
6703         everywhere and set the mono_class_set_failure
6704         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
6705
6706         The current patch checks the places where my manually constructed
6707         tests show the errors are showing up, but we should do it
6708         everywhere. 
6709
6710         ** Important2 **
6711
6712         mono_class_init return values should be tested everywhere, like
6713         the previous case this is something that we should audit
6714         everywhere and not only on the cases exposed by the tests I
6715         created. 
6716
6717 2006-04-26  Miguel de Icaza  <miguel@novell.com>
6718
6719         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
6720         boolean parameter and instead pass the information on `options'
6721         parameter (FileOptions).
6722
6723         * icall.c: Register the new signature for MonoIO.Open.
6724
6725         * debug-helpers.c (dis_one): Trying to understand how coverity
6726         works.  Fix Run 5, item 78.
6727
6728 2006-04-26  Dick Porter  <dick@ximian.com>
6729
6730         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
6731         dereference.
6732
6733 2006-04-25  Martin Baulig  <martin@ximian.com>
6734
6735         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
6736
6737         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
6738         debugger_thread_created().
6739         (debugger_gc_push_all_stacks): Don't handle the main thread in any
6740         special way.
6741         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
6742         (mono_debugger_finalize_threads): New function; undo the effects
6743         of mono_debugger_init_threads().
6744         (mono_debugger_create_all_threads): Removed.
6745
6746 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
6747
6748         * image.c (mono_image_close): Tidy up trace messages.
6749
6750         * assembly.c (mono_assembly_close): Ditto.
6751
6752         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
6753         no longer references an already freed assembly. Fixes #78168.
6754
6755 2006-04-21  Dick Porter  <dick@ximian.com>
6756
6757         * threads.c (mono_thread_detach): Fix reference counting when
6758         detaching threads.
6759
6760 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
6761
6762         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
6763         #78155.
6764
6765 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
6766
6767         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
6768         (mono_type_to_stind): Ditto.
6769
6770         * marshal.c: Use the new helper functions to simplify code.
6771
6772         * image.c (mono_image_close): Add some code for help debug assembly unloading
6773         problems.
6774
6775         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
6776         image mempool.
6777
6778         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
6779         assembly was already loaded in another appdomain. Fixes #78083.
6780
6781 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
6782
6783         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
6784         referenced assemblies.
6785         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
6786
6787         * domain.c (mono_domain_free): Add a trace message.
6788
6789         * appdomain.c (add_assemblies_to_domain): Ditto.        
6790
6791         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
6792         field.  
6793
6794 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
6795
6796         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
6797
6798 2006-04-12  Martin Baulig  <martin@ximian.com>
6799
6800         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
6801         `USE_INCLUDED_LIBGC'.   
6802
6803 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
6804
6805         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
6806         the patch contains ../ and a small directory name later. Hopefully fixes
6807         #78035.
6808
6809 2006-04-10  Martin Baulig  <martin@ximian.com>
6810
6811         Clean up the debugger's thread-handling code.
6812
6813         The debugger's thread-handling code has been moved from
6814         ../mini/debug-debugger.c to threads.c.  We now iterate directly
6815         over the `threads' hash, keep track of exiting threads and also
6816         use proper locking.
6817
6818         We can now debug XSP and XSP based applications with the debugger.
6819
6820         * object-internals.h (MonoThread): Added `gpointer end_stack'.
6821
6822         * threads.h
6823         (MonoThreadCallbacks): Removed; this was only used by the debugger.
6824         (mono_install_thread_callbacks): Likewise.      
6825
6826         * threads.c (mono_thread_callbacks): Removed.
6827         (debugger_thread_created, debugger_thread_exited): New static functions.
6828         (start_wrapper): Call debugger_thread_created().
6829         (thread_cleanup): Call debugger_thread_exited().
6830         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
6831         (mono_debugger_init_threads): New public function.
6832         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
6833         iterate directly over the `threads' hash and also use proper locking.
6834
6835         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
6836
6837         * mono-debug-debugger.h
6838         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
6839
6840 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
6841
6842         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
6843         argument type=array. Fixes #78057.
6844
6845 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
6846
6847         * culture-info-table.h : regenerated. Fixed bug #69652.
6848
6849 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
6850
6851         * loader.c metadata.c: Reapply a variant r59116.
6852         
6853         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
6854
6855         * class.c (mono_class_setup_interface_offsets): New internal function.
6856
6857         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
6858         interfaces too. Fixes #77398.
6859
6860         * reflection.c (encode_cattr_value): Add support for 
6861         parameter type=object, argument type=array.
6862         (load_cattr_value): Ditto. Fixes #77916.
6863
6864         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
6865         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
6866
6867         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
6868         a byval char array and CharSet is Ansi.
6869
6870         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
6871
6872 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
6873
6874         * metadata.c: Add some locking comments.
6875         
6876         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
6877         mempool.
6878         (mono_metadata_free_method_signature): Don't free the signature itself.
6879
6880         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
6881
6882         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
6883         reference the same MonoImage.
6884         (mono_assembly_load_from_full): Add an assert.
6885
6886 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
6887
6888         * image.c (mono_image_close): Don't put the image we are about to free into the
6889         loaded_images_guid_hash.
6890
6891         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
6892         to reduce code duplication.
6893
6894         * marshal.c: Register the native functions called by this module as icalls, to
6895         somewhat centralize the creation of MonoMethodSignature's.
6896
6897         * loader.c (mono_method_signature): Add a cache for method signatures.
6898
6899         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
6900         the parameter attributes of a method.
6901         (mono_metadata_parse_method_signature_full): Refactored the computation of
6902         parameter attributes into a separate function. Also avoid one allocation in
6903         most cases.
6904
6905         * assembly.c (mono_assembly_close): Ditto.
6906
6907         * image.c (mono_image_close): Log trace messages with INFO level.
6908
6909         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
6910
6911         * image.c reflection.c: Correct reference counting of image modules.
6912         
6913         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
6914         of this function from the image mempool.
6915         
6916         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
6917         to allow more cached types to be used.
6918
6919         * mono-debug.c (mono_debug_add_method): Appled patch from
6920         David S. Miller  <davem@sunset.davemloft.net>: Access 
6921         minfo->lexical_blocks[] entry elements using read32().
6922
6923 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
6924
6925         * loader.c (mono_free_method): No longer free the method header for non-dynamic
6926         methods as it is allocated from the mempool.
6927
6928         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
6929         image mempool.
6930
6931         * metadata-internals.h: Add comments describing the reference counting scheme
6932         used for MonoImage and MonoAssembly.
6933
6934         * image.c assembly.c reflection.c: Rework reference counting of images and 
6935         assemblies so they are freed when the runtime is shut down. Free some 
6936         additional memory structures when an image is unloaded.
6937         
6938 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
6939
6940         * class.c loader.c reflection.c: Allocate more data structures in
6941         the image mempool.
6942
6943 2006-03-31  Miguel de Icaza  <miguel@novell.com>
6944
6945         * icall.c
6946         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
6947         build on pre glib 2.4 systems.
6948
6949 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
6950
6951         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
6952
6953         * icall.c: Fix some warnings.
6954
6955 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
6956
6957         * culture-info-table.h : regenerated.
6958
6959 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
6960
6961         * threads.c, object-internals.h, verify.c: changed the culture caching
6962         code to use a normal MonoArray for storage so the GC can keep track of
6963         them easily. Fixed bits of the cache logic, too and simplified the
6964         code.
6965
6966 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
6967
6968         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
6969         thread for non-Boehm GCs.
6970
6971 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
6972
6973         * domain.c, object.c, domain-internals.h: reduce the amount of memory
6974         needed to keep track of the data for static fields.
6975
6976 2006-03-29  Raja R Harinath  <rharinath@novell.com>
6977
6978         Fix #75172
6979         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
6980         for interface classes.  Use 'num_methods' instead.
6981         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
6982         before using '->vtable_size' field.
6983
6984 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
6985
6986         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
6987         doesn't contain managed pointers, so use a normal hashtable.
6988
6989 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
6990
6991         * reflection.c, class-internals.h, domain.c: fixed handling of types
6992         used as values for objects in custom attributes (bug #77915):
6993
6994 2006-03-24  Martin Baulig  <martin@ximian.com>
6995
6996         * class.c (mono_class_setup_fields): Added support for generic
6997         instances; fixes #77580.
6998
6999 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7000
7001         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
7002
7003 2006-03-24  Dick Porter  <dick@ximian.com>
7004
7005         * file-io.c (get_file_attributes): More stat macro breakage.
7006         Fixes bug 77759.
7007
7008 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
7009
7010         * profiler.c: added the file=filename option in the default profiler
7011         to output the profile data to filename.
7012
7013 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7014
7015         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
7016         bug #77877.
7017
7018 2006-03-22  Martin Baulig  <martin@ximian.com>
7019
7020         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
7021         allocated `MonoClassField *' in `fb->handle'.
7022
7023 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
7024
7025         * class.c, image.c, metadata-internals.h: implemented new mechanism to
7026         allocate interface ID to save memory and allow better ID reuse on
7027         appdomain unload. setup_generic_vtable () removal from Martin.
7028
7029 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7030
7031         * object.h, appdomain.c, domain.c, exception.c, icall.c,
7032         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
7033         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
7034         write barriers for reference stores with managed objects accessed with
7035         C structures in the runtime and in embedding programs.
7036
7037 2006-03-20  Raja R Harinath  <rharinath@novell.com>
7038
7039         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
7040         'interface_id' and 'max_interface_id' fields of MonoClasses
7041         representing open generic types.
7042
7043 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
7044
7045         * object.h, object.c, icall.c: added functions to deal with
7046         storing valuetypes that contain references in managed objects.
7047         * reflection.c, string-icalls.c, threads.c, marshal.c: small
7048         fixes and comments around uses of mono_array_addr ().
7049
7050 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
7051
7052         * object.h, icall.c, monitor.c: object.GetHashCode ()
7053         implementation that supports the moving garbage collector.
7054
7055 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
7056
7057         * icall.c, threads-types.h, threads.c: implemented finalizer for
7058         LocalDataStoreSlot.
7059
7060 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
7061
7062         * metadata.c (mono_type_size): Add a fixme.
7063         (mono_type_stack_size): Ditto.
7064
7065         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
7066         'type_forwarders' field.
7067
7068         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
7069         attribute from net 2.0.
7070
7071         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
7072         from class.c.
7073
7074         * class.c (mono_class_setup_fields): Fix a warning.
7075         
7076         * class.c (mono_class_from_name): Add support for assemblyref entries
7077         in the EXPORTEDTYPE table.
7078
7079         * reflection.c: Add support for handling type forwarders under net 2.0.
7080
7081         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
7082         
7083 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
7084
7085         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
7086         overwriting entries in ModuleBuild->types, also clean up the code
7087         a little. Fixes #77774.
7088
7089 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
7090
7091         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
7092         load friend assembly info when present.
7093
7094 2006-03-14  Raja R Harinath  <rharinath@novell.com>
7095
7096         Fix crasher on gtest-158.cs.
7097         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
7098         the return value if the MonoClass we want is yet in an
7099         inconsistent state.
7100         * class.c (mono_class_create_from_typedef): Add an comment
7101         explaining an order dependency between mono_class_setup_parent and
7102         mono_class_setup_mono_type.
7103
7104 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
7105
7106         * class.c: documentation updates and events bug fix.
7107
7108 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
7109
7110         * class.c: some cleanup, locking fixes.
7111
7112 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
7113
7114         * class.c: fix the generics code to setup nested
7115         type info to the instantiated type (bug #77770).
7116
7117 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
7118
7119         * marshal.c: fixed a few type correctness issues.
7120
7121 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7122
7123         * loader.c: the Set/Get/Addrtess array methods should be public.
7124
7125 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
7126
7127         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
7128         
7129         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
7130         info->wrapper.
7131
7132 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
7133
7134         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
7135
7136         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
7137
7138         * mempool.c (mono_mempool_alloc): Speed this up a bit.
7139         (mono_mempool_alloc0): Ditto.
7140
7141 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7142
7143         * socket-io.c:
7144         (create_object_from_sockaddr): it was allocating 4 extra bytes
7145         for the AF_UNIX data. Fixes bug #77747.
7146
7147 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
7148
7149         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
7150
7151 2006-03-09  Dick Porter  <dick@ximian.com>
7152
7153         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
7154         Fixes bug 76966 again.
7155
7156 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
7157
7158         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
7159         names from r57532
7160         * appdomain.c: Bumped corlib version to 48 (due to r57532)
7161
7162 2006-03-07  Martin Baulig  <martin@ximian.com>
7163
7164         * object.c
7165         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
7166
7167 2006-03-07  Martin Baulig  <martin@ximian.com>
7168
7169         * class.c
7170         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
7171         regression introduced in r56970; see gtest-252.cs.
7172
7173         * loader.c (mono_get_method_constrained): Correctly handle generic
7174         methods; see gtest-253.cs.
7175
7176 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
7177
7178         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
7179
7180 2006-03-04  Martin Baulig  <martin@ximian.com>
7181
7182         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
7183         compute the parent type at runtime, just like we're already doing
7184         it for interfaces.
7185
7186         * reflection.c
7187         (mono_reflection_bind_generic_parameters): Don't compute the
7188         parent type anymore.
7189
7190         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
7191
7192 2006-03-04  Martin Baulig  <martin@ximian.com>
7193
7194         * mono-debug-debugger.h
7195         (mono_debugger_create_notification_function): Allocate memory at
7196         runtime and return a pointer to it.
7197
7198 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
7199
7200         * assembly.c: Fix windows build.
7201         
7202         * assembly.c: Fix build.
7203
7204         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
7205
7206         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
7207         
7208 2006-03-03  Dick Porter  <dick@ximian.com>
7209
7210         * process.c
7211         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
7212         Check parameters before dereferencing them.  Fixes Aaron's part of
7213         bug 77393.
7214
7215 2006-03-03  Raja R Harinath  <rharinath@novell.com>
7216
7217         Fix performance regression.
7218         * loader.c (find_method_in_class): Add 'from_class' argument.
7219         Rename 'klass' argument to 'in_class'.  The signature is compared
7220         against the method in 'in_class', and the corresponding method is
7221         returned from 'from_class'.
7222         (find_method): Walk both 'in_class' and 'from_class' in parallel.
7223         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
7224         type definition and generic instantiation in parallel.
7225         (mono_get_method_constrained): Update to changes.
7226
7227 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
7228
7229         * threads.c: make sure the domain is correct, too when doing
7230         mono_thread_attach ().
7231
7232 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
7233
7234         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
7235         windows. Fixes #77683.
7236
7237 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
7238
7239         * object.h, *: introduced specific way to set elements of an array
7240         of references to be used as write barrier. Still need to audit the
7241         uses of mono_array_addr.
7242
7243 2006-03-01  Miguel de Icaza  <miguel@novell.com>
7244
7245         * object-internals.h: New field to cache the assmebly name, patch
7246         from Tambet Ingo (tambet@ximian.com)
7247
7248 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7249
7250         * decimal.h, class-internals.h, metadata-internals.h,
7251         file-io.h: mark a few function declarations as internal, to
7252         reduce the number of PLT entries.
7253
7254 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7255
7256         * file-io.c: fix typo in warning message.
7257
7258 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
7259
7260         * loader.c: on unix, lookup the "*A" version of a function
7261         if charset is auto as a second option before failing.
7262
7263 2006-02-28  Raja R Harinath  <rharinath@novell.com>
7264
7265         * class.h (mono_class_inflate_generic_method): Revert to two
7266         argument version.
7267         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
7268         (mono_class_inflate_generic_method_full): Add.
7269         * class.c (mono_class_inflate_generic_method_full): Rename from
7270         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
7271         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
7272         * loader.c, reflection.c: Update to changes.
7273
7274 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
7275
7276         * icall.c: const fixes and small improvements.
7277
7278 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7279
7280         * threadpool.c: for asynchronous connect(), enable the same workaround
7281         for BSD 6 as for the Mac. Fixes bug #77637.
7282
7283 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
7284
7285         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
7286         formatted classes. Fixes #77524.
7287
7288 2006-02-24  Raja R Harinath  <rharinath@novell.com>
7289
7290         * class.c (inflate_generic_type): Add a couple more
7291         micro-optimizations.
7292         (inflate_generic_context): Don't use the 'gmethod' from
7293         'inflate_with'.
7294         (mono_class_inflate_generic_method): If the method has generic
7295         parameters, but the passed-in context doesn't have a 'gmethod',
7296         create one.  Use the possibly simplified generic instantiation
7297         from the declaring class instead of the one passed in.
7298
7299 2006-02-24  Raja R Harinath  <harinath@gmail.com>
7300
7301         Make generic method signature and method header handling lazy.
7302         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
7303         (inflate_generic_header): Likewise.
7304         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
7305         parameter to avoid inflating types.
7306         (mono_get_inflated_method): Empty out.
7307         * class.h (mono_class_inflate_generic_method): Update to changes.
7308         * loader.c (mono_get_method_from_token): Don't parse signature for
7309         generic methods, nor methods of generic classes.
7310         (mono_method_signature): Rename from 'mono_method_signature'.
7311         Inflate signature on demand.
7312         (mono_method_get_header): Inflate method header on demand.
7313         * reflection.c: Update to changes.
7314
7315 2006-02-23  Raja R Harinath  <rharinath@novell.com>
7316
7317         * metadata.c (mono_metadata_inflate_generic_inst): If the
7318         instantiation is closed, don't bother expanding it in the new
7319         context.
7320         * class.c (inflate_generic_class): If the generic instantiation
7321         doesn't change after inflation, return the argument itself.
7322         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
7323         Add bounds checks.
7324         (inflate_generic_context): If neither the generic class nor the
7325         generic method instantiations change, return the original context.
7326         * reflection.c (mono_method_get_object): Do
7327         'mono_get_inflated_method' before accessing the ->klass field.
7328         (inflate_mono_method): Don't create a MonoGenericMethod unless
7329         necessary.
7330         (inflate_method): Don't pass a constructed type as the declaring
7331         type of a methodbuilder.
7332
7333 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
7334
7335         * object.c: fix memory overwrite.
7336
7337 2006-02-22  Dick Porter  <dick@ximian.com>
7338
7339         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
7340         it doesn't work any more.
7341         (mono_threads_request_thread_dump): Fix unused variable warnings.
7342
7343 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7344
7345         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
7346         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
7347         the public header file.
7348
7349 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
7350
7351         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
7352
7353 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
7354
7355         * class-internals.h, object.c: reduce the size of MonoVTable
7356         and store the interface_offsets array at negative offsets.
7357
7358 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
7359
7360         * metadata.c: tweak table descriptors data structures to reduce
7361         size and runtime relocations.
7362
7363 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7364
7365         * marshal.c: fix some types and opcodes to be type-safe
7366         in marshaling wrappers.
7367
7368 2006-02-21  Ankit Jain  <jankit@novell.com>
7369
7370         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
7371
7372 2006-02-21  Raja R Harinath  <rharinath@novell.com>
7373
7374         * metadata.c (get_constraints): Relax debugging checks for monodis.
7375
7376 2006-02-21  Ankit Jain  <jankit@novell.com>
7377
7378         * metadata.c (mono_metadata_load_generic_params): Move the code
7379         checking for ambiguous generic params from here to mono/dis/get.c
7380         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
7381
7382 2006-02-21  Raja R Harinath  <harinath@gmail.com>
7383
7384         Fix assertion triggered when compiling nemerle.
7385         * class.c (mono_get_shared_generic_inst): Rename from
7386         get_shared_inst and make non-static.
7387         * loader.c (mono_get_shared_generic_method): New.  Used to create
7388         the MonoGenericContext-equivalent of a MonoGenericContainer.
7389         (mono_get_method_from_token): Initialize the 'context' field of
7390         the created MonoGenericContainer.
7391         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
7392         * metadata.c (get_constraints): Add sanity check.
7393         * class-internals.h: Add new internal methods.
7394
7395         * reflection.c (verify_safe_for_managed_space): New sanity check.
7396         Currently checks that owner-less generic parameters aren't allowed
7397         in managed space.
7398         (mono_type_get_object): Use it.
7399         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
7400         that are now in mono_type_get_object.
7401         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
7402
7403 2006-02-19  Raja R Harinath  <harinath@gmail.com>
7404
7405         * metadata.c (mono_type_create_from_typespec): Rename from
7406         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
7407         argument and caching of types in the generic container.
7408         (unwrap_arrays, find_generic_param): Remove.
7409         * metadata-internals.h: Update.
7410         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
7411
7412 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
7413
7414         * class.c (mono_class_get_exception_for_failure): Fix a warning.
7415
7416         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
7417         return values. Fixes #77581.
7418
7419         * class.c (mono_fnptr_class_get): Switch name and name_space.
7420
7421         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
7422         classes and add support for [In, Out] attributes.
7423         (mono_marshal_free_asany): Ditto. Fixes #77524.
7424
7425 2006-02-18  Raja R Harinath  <harinath@gmail.com>
7426
7427         * class.c (mono_class_from_generic_parameter): Make more robust to
7428         incomplete MonoGenericContainers from monodis.
7429
7430 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7431
7432         * class-internals.h: added some more exception types.
7433         * class.c, metadata.c: added a few checks to handle missing
7434         types.
7435
7436 2006-02-17  Raja R Harinath  <rharinath@novell.com>
7437
7438         Use owner-less generic-params some more.
7439         * class.c (my_mono_class_from_generic_parameter): Remove.
7440         (mono_class_from_generic_parameter): Handle null image,
7441         param->name and param->owner.
7442         (mono_class_from_mono_type): Update.
7443         (mono_class_create_from_typespec): Remove 'container' parameter.
7444         If that parameter is non-null, the result is always inflated by
7445         'mono_class_get_full' anyway.
7446         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
7447         parameter.
7448         (mono_class_get_full): Update.
7449
7450         * class.c (inflate_generic_type) [GENERICINST]: If the generic
7451         instance is not open, don't bother inflating.
7452         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
7453         parse metadata for inflated classes.
7454         (_mono_class_get): Change GenericContext* parameter to
7455         GenericContainer*.
7456         (mono_class_create_from_typespec): Likewise.  Simplify, and
7457         implement trivially.  All the cases are handled in
7458         mono_class_from_mono_type.  Don't inflate returned class.
7459         (mono_class_get_full): Delegate GENERICINST optimization to
7460         inflate_generic_type.
7461         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
7462
7463 2006-02-16  Dick Porter  <dick@ximian.com>
7464
7465         * socket-io.c (create_object_from_sockaddr): Fix typo.
7466         (create_sockaddr_from_object): Check array lengths before
7467         potentially accessing items off the end.
7468         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
7469         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
7470         (ves_icall_System_Net_Sockets_Socket_Send_internal)
7471         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
7472         length checks to avoid wraparound overflows.
7473         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
7474         contents of the array of sockets
7475         (hostent_to_IPHostEntry2)
7476         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
7477         Check return value of inet_ntop ().
7478         (addrinfo_to_IPHostEntry): Fix typo
7479
7480 2006-02-16  Raja R Harinath  <rharinath@novell.com>
7481
7482         Type metadata parsing doesn't use generic-instantiation information.
7483         * metadata.c (mono_metadata_parse_array_full): Change
7484         MonoGenericContext* parameter to MonoGenericContainer*.
7485         (mono_metadata_parse_type_full): Likewise.
7486         (mono_type_create_from_typespec_full): Likewise.
7487         (mono_metadata_parse_mh_full): Likewise.
7488         (mono_metadata_parse_generic_inst): Likewise.
7489         (do_mono_metadata_parse_generic_class): Likewise.
7490         (do_mono_metadata_parse_type): Likewise.
7491         * metadata-internals.h: Update to changes.
7492         * class.c (mono_class_find_enum_basetype): Likewise.
7493         (mono_class_setup_fields): Likewise.
7494         (mono_class_create_from_typespec): Likewise.
7495         * loader.c (method_from_methodspec): Likewise.
7496         (mono_get_method_from_token): Likewise.
7497         (mono_method_get_header): Likewise.
7498
7499 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7500
7501         * marshal.c: handle additional GENERICINST case (patch from
7502         Thong Nguyen <tum@veridicus.com>).
7503         Fix a few cases where LDIND_I/STIND_I was used for references.
7504
7505 2006-02-16  Raja R Harinath  <rharinath@novell.com>
7506
7507         * reflection.c (mono_reflection_get_token): Remove unused variable.
7508
7509 2006-02-16  Martin Baulig  <martin@ximian.com>
7510
7511         * reflection.c (mono_reflection_get_token): Add support for fields
7512         in instantiated generic types.
7513
7514         * icall.c
7515         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
7516
7517 2006-02-15  Martin Baulig  <martin@ximian.com>
7518
7519         * icall.c
7520         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
7521         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
7522         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
7523         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
7524
7525 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
7526
7527         * class.c, metadata.c, metadata.h, object.c, icall.c,
7528         marshal.c: changed mono_type_get_underlying_type () to do
7529         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
7530         Fixed handling of instantiated generic valuetypes (bug #75479).
7531
7532 2006-02-15  Raja R Harinath  <rharinath@novell.com>
7533
7534         * metadata.c (mono_metadata_decode_signed_value): Simplify.
7535         Delegate to mono_metadata_decode_value, and work on the returned value.
7536
7537         * icall.c (ves_icall_MonoType_GetGenericArguments):
7538         Add consistency check here too.
7539         
7540 2006-02-15  Ankit Jain  <jankit@novell.com>
7541
7542         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
7543         char/short etc.
7544
7545 2006-02-15  Ankit Jain  <jankit@novell.com>
7546
7547         * metadata.c (mono_metadata_decode_signed_value): New function to decode
7548         signed values, used only for representing lower bounds of arrays.
7549         (mono_metadata_parse_array_full): Use new
7550         mono_metadata_decode_signed_value to decode lower bounds.
7551
7552 2006-02-14  Martin Baulig  <martin@ximian.com>
7553
7554         * reflection.c
7555         (mono_reflection_get_token): Support "MonoGenericMethod" and
7556         "MonoGenericCMethod" and allow generic instances / methods.
7557
7558 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
7559
7560         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
7561         to obtain the terminal size using an ioctl.
7562
7563         * object.c (mono_nullable_init): Revert this as nullable reference
7564         types are not valid.
7565         (mono_nullable_box): Ditto.
7566
7567 2006-02-09  Dick Porter  <dick@ximian.com>
7568
7569         * threads.c (mono_thread_detach): Drop a reference to the thread
7570         we're detaching.
7571
7572 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
7573
7574         * object.c (mono_nullable_init): Handle nullable reference types.
7575         (mono_nullable_box): Ditto. Fixes #77446.
7576
7577 2006-02-07  Martin Baulig  <martin@ximian.com>
7578
7579         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
7580
7581 2006-02-07  Ankit Jain  <jankit@novell.com>
7582
7583         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
7584         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
7585         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
7586         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
7587         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
7588         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
7589
7590 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
7591
7592         * class.c (mono_class_create_generic): Set type_token as well.
7593
7594         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
7595         compatible with MS.
7596
7597 2006-02-02  Martin Baulig  <martin@ximian.com>
7598
7599         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
7600         has never been used so far.
7601
7602 2006-02-02  Martin Baulig  <martin@ximian.com>
7603
7604         * mono-debug-debugger.h: Changed comment at the top of this file;
7605         the header is not installed, but it's safe to #include it from
7606         within the JIT.
7607
7608         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
7609         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
7610
7611 2006-02-02  Martin Baulig  <martin@ximian.com>
7612
7613         * mono-debug.h
7614         (MonoSymbolTable): Removed the `metadata_info' field.
7615
7616         * mono-debug.c
7617         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
7618
7619         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7620         (mono_debugger_add_builtin_types): Removed.
7621         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
7622         (mono_debugger_create_notification_function): We now operate on a
7623         pre-allocated area; take a `gpointer' and return `void'.
7624
7625         * mono-debug-debugger.c
7626         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
7627         (mono_debugger_add_builtin_types): Removed.
7628
7629 2006-02-02  Martin Baulig  <martin@ximian.com>
7630
7631         * threads.c (mono_debugger_create_all_threads): New public method.
7632
7633 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7634
7635         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
7636         breaks on several platforms.
7637
7638 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
7639
7640         * assembly.c: the VS.NET build doesn't supply default values for
7641         MONO_ASSEMBLIES and MONO_CFG_DIR.
7642
7643 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
7644
7645         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
7646         helper function.
7647
7648         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
7649
7650         * loader.c (method_from_memberref): Fix a warning.
7651
7652         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
7653
7654         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
7655         with explicit layout. Fixes #77433.
7656
7657 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
7658
7659         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
7660         max_interface_id is initialized before using it. Fixes #77398.
7661         (ves_icall_Type_GetInterfaces): Ditto.
7662
7663 2006-01-30  Raja R Harinath  <rharinath@novell.com>
7664
7665         * metadata.c (mono_metadata_parse_method_signature_full): Don't
7666         allocate memory for parameter attributes when parsing memberref
7667         signatures.
7668         * loader.c (mono_loader_set_error_method_load): Don't warn.
7669         (method_from_memberref): Ensure MissingMethodException gets thrown
7670         if method is not found.  Make warning more informative.
7671
7672 2006-01-29  Raja R Harinath  <harinath@gmail.com>
7673
7674         Fix #77397
7675         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
7676         return true if is byref.
7677         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
7678         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
7679         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
7680
7681 2006-01-27  Raja R Harinath  <rharinath@novell.com>
7682
7683         Fix tests/find-method.2.il
7684         * loader.c (find_method, find_method_in_class): Remove is_inflated
7685         argument.  Revert 2006-01-18 change.
7686         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
7687         is generic, search for method in its generic definition.
7688         * class.c (mono_class_setup_vtable_general): Print generic
7689         arguments of generic types in debugging printf.
7690
7691 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
7692
7693         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
7694
7695         * threads.c (mono_threads_request_thread_dump): New helper function.
7696
7697 2006-01-25  Raja R Harinath  <rharinath@novell.com>
7698
7699         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
7700
7701 2006-01-25  Ankit Jain  <jankit@novell.com>
7702
7703         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
7704         move definition to ..
7705         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
7706         
7707 2006-01-25  Ankit Jain  <jankit@novell.com>
7708             Raja R Harinath  <rharinath@novell.com>
7709
7710         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
7711         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
7712         as necessary.
7713
7714 2006-01-25  Martin Baulig  <martin@ximian.com>
7715
7716         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
7717         `MonoDebuggerThread' into debug-debugger.c.
7718
7719 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
7720
7721         * profiler.c: fix printing of data.
7722
7723 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
7724
7725         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
7726           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
7727
7728 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
7729
7730         * object.c: fix deadlock related to string interning.
7731
7732 2006-01-23  Martin Baulig  <martin@ximian.com>
7733
7734         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7735
7736         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
7737
7738 2006-01-23  Martin Baulig  <martin@ximian.com>
7739
7740         * mono-debug.h: Moved the prototypes of some functions which are
7741         used by the JIT here from mono-debug-debugger.h.
7742
7743 2006-01-21  Martin Baulig  <martin@ximian.com>
7744
7745         * Makefile.am: Don't install mono-debug-debugger.h.
7746
7747 2006-01-21  Martin Baulig  <martin@ximian.com>
7748
7749         * mono-debug-debugger.h: Enforce the private status of this header
7750         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
7751         Moved some stuff from mono-debugger-jit-wrapper.h here.
7752
7753 2006-01-20  Raja R Harinath  <rharinath@novell.com>
7754
7755         * class.c (mono_class_from_typeref): Add a sanity test to help
7756         catch lack of assembly load/search hooks.
7757
7758 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
7759
7760         * marshal.c (emit_struct_conv): Relax the fields with same offset
7761         check even more. Fixes #77230.
7762
7763 2006-01-18  Martin Baulig  <martin@ximian.com>
7764
7765         * loader.c (find_method_in_class): Added `gboolean is_inflated'
7766         argument; if false, we compare the uninstantiated signatures.
7767         (method_from_memberref): Compare the uninstantiated signatures;
7768         fixes #76417.
7769
7770 2006-01-18  Robert Jordan  <robertj@gmx.net>
7771
7772         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
7773         Clear the weak link. Fixes bug #77170.
7774
7775         * gc.c (mono_gchandle_free):
7776         Reflect *-gc.c changes (tiny optimization).
7777
7778 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
7779
7780         * metadata.c (mono_metadata_signature_dup): Applied patch from
7781         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
7782         Fixes #77288.
7783
7784 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
7785
7786         * marshal.c (emit_struct_conv): Allow fields with the same offset when
7787         marshalling from native to managed code. Fixes #77230.
7788
7789 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7790
7791         * threadpool.c: fix problem (Mac only) when more than one asynchronous
7792         connect. Fixes bug #77020.
7793
7794 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
7795
7796         * class.c: fixed id assignement for nested interfaces (bug #77275).
7797         Added also better info for --print-vtable debugging.
7798
7799 2006-01-12  Martin Baulig  <martin@ximian.com>
7800
7801         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
7802         interfaces on-the-fly; fixes #76625.
7803
7804         * class-internals.h
7805         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
7806         don't need that anymore.
7807
7808 2006-01-12  Miguel de Icaza  <miguel@novell.com>
7809
7810         * socket-io.c
7811         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
7812         To avoid initing the nested_classes when not needed I turned the
7813         PeerCredData as a toplevel internal class, as it has to be shared
7814         anyways. 
7815
7816         Fixes the CASA issue.
7817
7818 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
7819
7820         * domain.c: Accessors for MonoJitInfo
7821
7822         * profiler-private.h: Add jitinfo to the end jit hook
7823
7824         * profiler.[ch]: Define new hooks, called after jitting which give
7825         the MonoJitInfo that was compiled
7826
7827 2006-01-10  Martin Baulig  <martin@ximian.com>
7828
7829         * class.c (mono_class_setup_events): Add support for generic
7830         classes; fixes #76440.
7831
7832 2006-01-06  Raja R Harinath  <rharinath@novell.com>
7833
7834         Fix #77160.
7835         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
7836         on passed-in method.
7837
7838 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
7839
7840         * object.c (mono_runtime_invoke_array): Add Nullable support.
7841
7842         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
7843
7844 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
7845
7846         * file-io.c: Don't consider sockets as directory and avoid an endless
7847         loop. Fix bug #76966.
7848
7849 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
7850
7851         * object.c (mono_nullable_init): New helper function.
7852         (mono_nullable_box): Ditto.
7853
7854         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
7855
7856         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
7857
7858         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
7859         
7860 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
7861
7862         * class.c (mono_class_is_assignable_from): Make T assignable to 
7863         Nullable<T>.
7864
7865 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
7866
7867         * appdomain.c: Bump corlib version to 46.
7868         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
7869         serialization purpose) and changed ves_icall_System_Reflection_
7870         Assembly_get_code_base signature to accept a boolean (to escape, or 
7871         not, the assembly code base).
7872
7873 2005-12-23  Dick Porter  <dick@ximian.com>
7874
7875         * icall.c: 
7876         * threads-types.h: 
7877         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
7878         CreateEvent icall now returns "created" boolean parameter.
7879
7880 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
7881
7882         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
7883         #76967.
7884
7885         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
7886         when attr_klass is an interface. Fixes #77045.
7887
7888 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
7889
7890         * marshal.c (emit_struct_conv): Fix previous patch.
7891         
7892         * marshal.c (emit_struct_conv): Add a check for fields with the same
7893         offset.
7894
7895 2005-12-20  Raja R Harinath  <rharinath@novell.com>
7896
7897         Fix regression in Mono.C5.
7898         * class.c (mono_class_create_generic): If 'klass' is an interface
7899         set up the interface offsets.
7900         (mono_class_is_assignable_from): Don't throw away generic arguments.
7901
7902 2005-12-19  Raja R Harinath  <rharinath@novell.com>
7903
7904         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
7905         type parameters.
7906
7907 2005-12-15  Raja R Harinath  <rharinath@novell.com>
7908
7909         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
7910         dead store.
7911         (do_mono_metadata_parse_generic_class): Don't pass the current
7912         generic context when parsing the type being instantiated: it
7913         cannot use it, anyway.
7914
7915         * loader.c (method_from_memberref): Don't inflate a signature if
7916         it doesn't contain any type parameters.
7917
7918 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
7919
7920         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
7921
7922 2005-12-14  Martin Baulig  <martin@ximian.com>
7923
7924         * class.c
7925         (mono_type_get_name_recurse): Don't return null for type
7926         parameters and open generic classes.
7927         (mono_class_setup_methods): Don't exclude generic instances.
7928         (mono_get_unique_iid): Use different IDs for different
7929         instantiations of the same generic type.
7930         (mono_class_setup_vtable): Only use setup_generic_vtable() for
7931         open generic instances; create a normal vtable for closed generic
7932         instances.
7933         (mono_class_setup_vtable_general): We're now also called for
7934         closed generic instances.
7935
7936         * reflection.c
7937         (mono_reflection_bind_generic_parameters): Correctly use
7938         mono_metadata_lookup_generic_inst() everywhere.
7939
7940 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
7941
7942         * object.c (mono_class_create_runtime_vtable): Call 
7943         mono_class_setup_vtable ().
7944
7945         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
7946         function.
7947         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
7948         #76959.
7949
7950         * loader.c (mono_loader_set_error_type_load): Print the type load
7951         warnings to the console so they are more visible to the user.
7952         (mono_loader_set_error_method_load): Ditto.
7953
7954         * reflection.c (ensure_runtime_vtable): Revert the last change as it
7955         is still broken.
7956         
7957         * reflection.c (ensure_runtime_vtable): Fix build.
7958
7959         * reflection.c (ensure_runtime_vtable): Disable an optimization which
7960         doesn't work in all cases.
7961
7962 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
7963
7964         * object.c (mono_array_new_full): Treat a single dimensional array
7965         with 0 lower bounds as an szarray. Fixes #76973.
7966
7967         * reflection.c (custom_attr_visible): Really fix this.
7968
7969 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
7970
7971         * reflection.c (custom_attr_visible): Allow nested public attributes
7972         as well.
7973
7974         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
7975         interface check.
7976
7977 2005-12-12  Raja R Harinath  <harinath@gmail.com>
7978
7979         * class.c (set_generic_param_owner): Delete.
7980         (mono_class_create_from_typedef): Don't set ->owner field of
7981         generic parameters to "param containers" of enclosing classes.
7982         * reflection.c (mono_reflection_initialize_generic_parameter):
7983         Likewise.
7984
7985 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
7986
7987         * reflection.c (custom_attr_visible): Fix build.
7988
7989 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
7990
7991         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
7992         private attributes.
7993         
7994         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
7995         handling of null parameter defaults.
7996
7997 2005-12-09  Raja R Harinath  <rharinath@novell.com>
7998
7999         * class.c (mono_class_from_generic_parameter): Don't set
8000         klass->generic_container.
8001         (my_mono_class_from_generic_parameter): Likewise.
8002
8003 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
8004
8005         * reflection.c (load_public_key): Fix a warning.
8006         (method_encode_code): Fix unaligned accesses.
8007
8008 2005-12-07  Martin Baulig  <martin@ximian.com>
8009
8010         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
8011
8012         * reflection.c
8013         (write_generic_param_entry): Encode our custom attrs.
8014
8015         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
8016
8017 2005-12-07  Martin Baulig  <martin@ximian.com>
8018
8019         * reflection.c (encode_new_constraint): Removed; we don't use the
8020         `NewConstraintAttribute' anymore.
8021
8022 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
8023
8024         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
8025         not fire a TypeResolve event when Assembly.GetType () is called.
8026
8027 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
8028
8029         Beginning of support for nullable types in the runtime. Parts of
8030         this patch are from Martin.
8031
8032         * appdomain.c (MONO_CORLIB_VERSION): Bump
8033
8034         * domain.c (mono_init_internal): get the nullable type
8035
8036         * class.c (mono_class_is_nullable): New method
8037         (mono_class_get_nullable_param): New mehod
8038         (mono_class_create_generic): In types T? set cast_class to T
8039
8040         * class-internals.h (MonoDefaults): new nullable default class
8041         (mono_class_get_nullable_param, mono_class_get_nullable_param):
8042         new methods.
8043
8044 2005-12-05  Raja R Harinath  <rharinath@novell.com>
8045
8046         * metadata.c (select_container): New.  Refactor code to select the
8047         appropriate GenericContainer given the type of generic parameter
8048         we are looking for.
8049         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
8050         not a MonoGenericContext.  Use select_container.  Update parameters.
8051         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
8052         and MONO_TYPE_MVAR.
8053         (unwrap_arrays): Remove duplicate tests.
8054         (find_generic_param): Rename from 'has_same_context'.  Now walks a
8055         generic instantiated class to find any arguments that are generic
8056         parameters.
8057         (mono_type_create_from_typespec_full): Use find_generic_param to
8058         avoid evicting some generic instantiations from the typespec
8059         cache.
8060
8061 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
8062
8063         * reflection.c: fixed writing of doubles on ARM FPA.
8064
8065 2005-12-02  Robert Jordan  <robertj@gmx.net>
8066
8067         * icall.c: Fixed EventInfo.ReflectedType (#76829).
8068
8069 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8070
8071         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
8072         least on SUSE 10 they are not the same (on debian, they are just the
8073         same thing).
8074
8075 2005-12-01  Raja R Harinath  <rharinath@novell.com>
8076
8077         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
8078         DeclaringType for VARs and MVARs.
8079         * class.c (set_generic_param_owner): Fix initialization of owner
8080         fields.
8081
8082 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8083
8084         * icall.c: fixed Enum.ToObject() to correctly convert the values.
8085
8086 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8087
8088         * threadpool.c: workaround for a bug that shows up on the Mac:
8089         select()+connect() on a blocking socket is not like it should
8090         be, so we proceed to connect() in that case, wasting the I/O
8091         threadpool thread until connect succeedes. Fixes bug #75436.
8092
8093 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8094
8095         * threadpool.c: fix typo when setting file descriptor states.
8096
8097 2005-11-28  Raja R Harinath  <rharinath@novell.com>
8098
8099         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
8100         * metadata.c (mono_metadata_parse_method_signature_full): Don't
8101         create a temporary signature container.
8102         (mono_metadata_parse_generic_param): Update to changes.
8103         (mono_type_create_from_typespec_full): Update to changes.
8104         * loader.c (method_from_memberref): Don't use a
8105         MonoGenericContainer while parsing a memberref signature.
8106         (method_from_methodspec): Remove dead-store of the 'container'
8107         variable.  It's overwritten before use.
8108
8109         * metadata.c (mono_type_create_from_typespec_full): Make debugging
8110         checks tighter.
8111         (mono_metadata_parse_generic_param): Likewise.
8112         * loader.c (find_method_in_class): Does not need a
8113         MonoGenericContainer.  Use 'mono_method_signature' rather than
8114         'mono_method_signature_full'.
8115         (find_method, mono_get_method_constrained, method_from_memberref):
8116         Update to changes.
8117
8118         * metadata.c (mono_type_create_from_typespec_full): Ensure that
8119         owner-less generic-parameters are never evicted from the typespec
8120         cache.
8121
8122         * loader.c (method_from_memberref): Don't use the current context
8123         when parsing signatures.
8124         (method_from_methodspec, mono_get_method_from_token): Update to changes.
8125
8126         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
8127         side-effects in g_assert.
8128         * loader.c (mono_get_method_from_token): Resolve klass earlier so
8129         that we don't potentially lose information.
8130
8131 2005-11-26  Dick Porter  <dick@ximian.com>
8132
8133         * icall.c:
8134         * threads.c: icalls to implement basic (ie, not named)
8135         System.Threading.Semaphore.
8136
8137 2005-11-24  Dick Porter  <dick@ximian.com>
8138
8139         * process.c
8140         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
8141         Use GetProcessId() if it's available.
8142
8143 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
8144
8145         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
8146
8147 2005-11-23  Raja R Harinath  <rharinath@novell.com>
8148             Ankit Jain  <jankit@novell.com>
8149
8150         * loader.c (mono_get_method_from_token): Initialize 'method' field
8151         of all generic parameters before parsing the signature.  Remove
8152         code that "fixed"-up MVAR references.
8153
8154 2005-11-23  Ankit Jain  <jankit@novell.com>
8155
8156         * metadata.c (mono_metadata_has_generic_params):
8157         (mono_metadata_load_generic_param_constraints):
8158         (mono_metadata_load_generic_params): Move duplicate code ...
8159         (mono_metadata_get_generic_param_row): ... here. Returns the
8160         first row-id in GenericParam table for a given owner (token).
8161         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
8162         prototype.
8163
8164 2005-11-23  Raja R Harinath  <rharinath@novell.com>
8165             Ankit Jain  <jankit@novell.com>
8166
8167         * metadata.c (mono_metadata_class_equal): Pass signature_only when
8168         comparing VARs too.
8169         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
8170         type->data.generic_param only if the type is an MVAR.
8171         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
8172         leak owner-less VARs and MVARs into managed space.
8173
8174 2005-11-21  Martin Baulig  <martin@ximian.com>
8175
8176         * class-internals.h
8177         (MonoMethod): Moved the `generic_container' here from
8178         `MonoMethodNormal' since we now also need it for
8179         `MonoMethodPInvoke';
8180         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
8181         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
8182         an union containing both `MonoMethodNormal' and
8183         `MonoMethodPInvoke'.
8184
8185         * loader.c
8186         (mono_get_method_from_token): Allow implementing generic methods
8187         as interncalls.
8188
8189         * threads.c
8190         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
8191         icall.
8192
8193 2005-11-17  Dick Porter  <dick@ximian.com>
8194
8195         * icall.c: 
8196         * process.h: 
8197         * process.c: Split the Process Start_internal icall into
8198         ShellExecuteEx_internal and CreateProcess_internal, which are
8199         called depending on whether UseShellExecute is true.  Fixes bug
8200         76670.
8201
8202         * appdomain.c (MONO_CORLIB_VERSION): Incremented
8203
8204 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
8205
8206         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
8207         'msize' parameters, use the information in 'mspec' instead.
8208         (emit_object_to_ptr_conv): Ditto.
8209
8210         * marshal.c (emit_struct_conv): Handle explicit layout structs with
8211         fields out of order. Fixes #76733.
8212
8213 2005-11-17  Ankit Jain  <jankit@novell.com>
8214
8215         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
8216
8217 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
8218
8219         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
8220           bug #76575.
8221
8222 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
8223
8224         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
8225         for types with non-auto layout. Fixes #76717.
8226
8227 2005-11-16  Ankit Jain  <jankit@novell.com>
8228
8229         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
8230         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
8231         if generic_context is null.
8232           (mono_metadata_generic_param_equal): param->owner can be null.
8233           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
8234         null.
8235
8236 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
8237
8238         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
8239         the correct value.
8240
8241 2005-11-15  Martin Baulig  <martin@ximian.com>
8242
8243         * object.c (set_value): Use mono_class_from_mono_type() instead of
8244         the hack for generic instances; fixes #76136.
8245
8246 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
8247
8248         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
8249         fields.
8250
8251         * image.c (load_metadata_ptrs): Initialize the new fields.
8252
8253         * reflection.c (create_dynamic_mono_image): Ditto.
8254
8255         * reflection.c (build_compressed_metadata): Use the new fields.
8256
8257         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
8258         icall.
8259
8260         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
8261         icall.
8262         
8263 2005-11-15  Ankit Jain  <jankit@novell.com>
8264             Raja R Harinath  <harinath@gmail.com>
8265
8266         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
8267         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
8268         new per-generic_container cache if the cached MonoType's context matches
8269         the current context.
8270           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
8271         to the expected context.
8272           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
8273
8274 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8275
8276         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
8277         we changed the signature of an icall.
8278         * icall.c: Modify to mono_double_ParseImpl return true/false 
8279         depending on the success, instead of throwing the exception. This will
8280         help us in Double.TryParse methods.
8281         
8282 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
8283
8284         * marshal.c (emit_marshal_object): Throw an exception when
8285         marshalling 'object' instead of crashing. Fixes #76696.
8286
8287 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
8288
8289         * class-internals.h: Add prototype for mono_type_get_full_name ().
8290
8291 2005-11-11  Dick Porter  <dick@ximian.com>
8292
8293         * threads.c (mono_thread_manage): Make sure the main thread has
8294         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
8295
8296 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
8297
8298         * loader.c (mono_loader_set_error_type_load): Log a warning to the
8299         console about the missing type.
8300         (mono_loader_set_error_method_load): Ditto.
8301
8302 2005-11-09  Miguel de Icaza  <miguel@novell.com>
8303
8304         * mono-config.c (mono_get_config_dir): Set the system defaults if
8305         none is specified.
8306
8307         * assembly.c (mono_set_dirs): New API entry point to set the
8308         assembly and the config directory in one call
8309
8310 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
8311
8312         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
8313         the ftnptr was created from a delegate in a domain other than the
8314         current domain. Fixes #75377.
8315
8316         * exception.h exception.c: Add mono_get_exception_not_supported ().
8317
8318 2005-11-08  Martin Baulig  <martin@ximian.com>
8319
8320         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
8321
8322 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
8323
8324         * security-manager.h: Added definitions to deal with strongname key 
8325         pairs bigger (and smaller) than 1024 bits.
8326         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
8327         adjust wrt the public key length being used.
8328
8329 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
8330
8331         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
8332           Windows build (r51396-51397).
8333
8334 2005-11-03  Martin Baulig  <martin@ximian.com>
8335
8336         * class.c (mono_class_setup_vtable_general): Also add generic
8337         methods to the vtable; fixes #76581.
8338
8339 2005-11-01  Miguel de Icaza  <miguel@novell.com>
8340
8341         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
8342         sure that we lookup GetString method from the System.Text.Encoding
8343         class, not the derived class or we get an empty method.
8344
8345         Fixed class #76612.
8346
8347 2005-10-25  Miguel de Icaza  <miguel@novell.com>
8348
8349         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
8350         if it has been previously set (embedders). 
8351
8352         Make mono_set_rootdir available also on Unix.
8353
8354 005-10-24  Robert Jordan  <robertj@gmx.net>
8355
8356         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
8357
8358 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
8359
8360         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
8361         only calls which are made to native code use this flag.
8362
8363         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
8364
8365 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
8366
8367         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
8368         Add support for FieldBuilders.
8369
8370 2005-10-29  Martin Baulig  <martin@ximian.com>
8371
8372         * mono-debug.c
8373         (mono_debug_using_mono_debugger): New public method; returns
8374         whether we're running inside the debugger.
8375
8376 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
8377
8378         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
8379         for Method/Constructor/FieldBuilders.
8380
8381 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
8382
8383         * reflection.c (module_add_cattrs): Save custom attributes for global methods
8384         and fields as well.
8385
8386 2005-10-26  Martin Baulig  <martin@ximian.com>
8387
8388         * mono-debug-debugger.c
8389         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
8390
8391 2005-10-24  Raja R Harinath  <harinath@gmail.com>
8392
8393         * icall.c (base64_to_byte_array): Don't pass an out-of-range
8394         integer to isspace.
8395
8396 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
8397
8398         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
8399         when passing valuetypes byref. Fixes #76502.
8400
8401 2005-10-19  Jackson Harper  <jackson@ximian.com>
8402
8403         * profiler.c: Don't put a . in front of types that are not in a
8404         namespace.
8405
8406 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
8407
8408         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
8409
8410 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
8411
8412         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
8413         #76436.
8414         (mono_marshal_get_ldflda_wrapper): Fix a warning.
8415
8416 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8417
8418         * assembly.c metadata-internals.h icall.c: Define an additional
8419         parameter for mono_assembly_name_parse_full, so we can avoid creating
8420         S.R.AssemblyName.Version when no version info wasn't passed.
8421         
8422 2005-10-09  Miguel de Icaza  <miguel@novell.com>
8423
8424         * class.c (mono_type_get_full_name): Reimplement method that was
8425         removed. 
8426
8427         * image.c: Some docs
8428
8429 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
8430
8431         * profiler.c (output_newobj_profile): Fix printing of Total memory
8432         on x86.
8433
8434 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
8435
8436         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
8437
8438 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
8439
8440         * threads.c: remove debug output.
8441
8442 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
8443
8444         * threads.c (mono_thread_manage): Fix crashes if more than 64
8445         threads need to be aborted. Hopefully fixes #75899.
8446
8447         * assembly.c (mono_stringify_assembly_name): New helper function.
8448
8449         * class.c: Use mono_stringify_assembly_name instead of the similar
8450         static function.
8451
8452         * assembly.h assembly.c: Add support for calling a postload search 
8453         hook if an assembly cannot be loaded.
8454
8455         * appdomain.c: Register new search hooks which call the AssemblyResolve
8456         events in AppDomain. Fixes #75231
8457
8458 2005-10-07  Martin Baulig  <martin@ximian.com>
8459
8460         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
8461         methods without debug info.
8462
8463 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
8464
8465         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
8466         wrappers.
8467
8468 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8469
8470         * file-io.c: now that we return symlinks, use lstat and, when the file
8471         is a symbolic link, stat, to get the file attributes. Also avoid the
8472         conversion to/from utf16/external.
8473
8474 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
8475
8476         * class.c (mono_class_layout_fields): Compute klass->has_references
8477         correctly if an embedded valuetype is not yet initialized. Fixes
8478         #76331.
8479
8480 2005-10-04  Martin Baulig  <martin@ximian.com>
8481
8482         * metadata.c
8483         (mono_metadata_load_generic_param_constraints): New public
8484         function; splitted the constraints loading out from
8485         mono_metadata_load_generic_params().
8486
8487         * class.c (mono_class_create_from_typedef): Call
8488         mono_metadata_load_generic_param_constraints() after setting up
8489         the type and creating our parent; fixes #75329.
8490
8491 2005-10-04  Martin Baulig  <martin@ximian.com>
8492
8493         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
8494         non-dynamic parent classes.
8495
8496 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
8497
8498         * file-io.c : win32 build fix (ETXTBSY seems not found).
8499
8500 2005-10-04  Martin Baulig  <martin@ximian.com>
8501
8502         * reflection.c
8503         (mono_image_get_methodspec_token): Make the cache actually work;
8504         fixes #75974.
8505
8506 2005-10-04  Martin Baulig  <martin@ximian.com>
8507
8508         * class.c (mono_class_name_from_token): Removed the unneccessary
8509         `MonoGenericContext *' argument.
8510
8511 2005-10-04  Martin Baulig  <martin@ximian.com>
8512
8513         * loader.c
8514         (method_from_methodspec): Make the caching work again; fixes the
8515         performance regression from #76262.
8516
8517 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8518
8519         * file-io.c:
8520         * file-io.h:
8521         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
8522         GetFileSystemEntries that performs the same work but without going
8523         into io-layer, locking, etc.
8524
8525 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
8526
8527         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
8528         ThreadState_Stopped as well. Fixes #76047.
8529
8530 2005-09-29  Martin Baulig  <martin@ximian.com>
8531
8532         * class.c
8533         (inflate_generic_context): If the new context has a `gmethod', set
8534         its `container' that that gmethod's `container'.
8535
8536         * metadata.c
8537         (mono_metadata_parse_generic_param): Simplify things;
8538         `generic_container = generic_context->container;' is just fine.
8539
8540         * loader.c (method_from_methodspec): Code cleanups.
8541
8542 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
8543
8544         * decimal.c: fix warning (and let gcc generate correct
8545         code on ARM with optimizations).
8546
8547 2005-09-28  Martin Baulig  <martin@ximian.com>
8548
8549         * loader.c
8550         (method_from_memberref): Added `MonoGenericContext *class_context'
8551         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
8552         (method_from_methodspec): If we're a memberref, use the enclosing
8553         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
8554
8555 2005-09-28  Martin Baulig  <martin@ximian.com>
8556
8557         * object.c (mono_runtime_invoke_array): Added support for
8558         MONO_TYPE_GENERICINST; fixes #75917.
8559
8560 2005-09-27  Martin Baulig  <martin@ximian.com>
8561
8562         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
8563         `k->byval_arg.type' to determine the actual type.
8564
8565         * loader.c (method_from_methodspec): Removed some hacks.
8566
8567 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
8568
8569         * class-internals.h (mono_field_is_deleted): Do the test for
8570         rtspecialname before we check the actual name of the field. This
8571         prevents us from dereferencing a pointer into the string table,
8572         saving us from accessing a few pages
8573
8574         * *.c: Replace the use of {Enter,Leave}CriticalSection with
8575         macros. This will allow a deadlock debugger to easily be plugged
8576         in.
8577
8578 2005-09-27  Martin Baulig  <martin@ximian.com>
8579
8580         * loader.c (method_from_methodspec): Create a "signature"
8581         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
8582
8583 2005-09-27  Martin Baulig  <martin@ximian.com>
8584
8585         * class.c
8586         (inflate_generic_class): Correctly set the new context's
8587         container.
8588
8589         * loader.c
8590         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
8591         instead of a `MonoGenericContext *'.
8592         (mono_method_signature_full): Take a `MonoGenericContainer *'
8593         instead of a `MonoGenericContext *'.
8594
8595         * metadata.c
8596         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
8597         instead of a `MonoGenericContext *'.
8598         (mono_metadata_parse_method_signature_full): Likewise.
8599
8600 2005-09-26  Martin Baulig  <martin@ximian.com>
8601
8602         * class.c
8603         (mono_class_from_generic_parameter): Set `klass->generic_container'
8604         (mono_class_from_generic_parameter): Likewise.
8605         (mono_bounded_array_class_get): We inherit the generic container
8606         from the element class.
8607
8608         * loader.c
8609         (find_method, find_method_in_class): Take a `MonoGenericContext *'
8610         argument rather than computing it here.
8611         (method_from_memberref): Correctly set the generic context before
8612         parsing the signature.  Fixes #75681.
8613
8614 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
8615
8616         * object.c (mono_class_has_special_static_fields): Fix warnings.
8617
8618 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8619
8620         * assembly.c: Add parse_public_key function, to
8621         par the public keys. Also added mono_assembly_name_parse_full,
8622         to define it the parsed key should be freed or not.
8623         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
8624         to parse a long format assembly name.
8625         * metadata-internals.h: Keep mono_assembly_name_parse_full as
8626         private, since calling it to preserve the key requires
8627         freeing it manually.
8628         
8629 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
8630
8631         * locales.c : removed HAVE_ICU part.
8632
8633 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
8634
8635         * object.c (mono_class_create_runtime_vtable): Avoid calling 
8636         field_is_special_static if the klass has no special static fields.
8637
8638         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
8639         (MonoCachedClassInfo): Likewise.
8640
8641         * object.c (mono_class_has_special_static_fields): New helper function.
8642
8643 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8644
8645         * class.c (mono_class_create_from_typedef): Don't call 
8646         interfaces_from_typedef_full for enums.
8647         (mono_class_create_from_typedef): Compute the base types of enums directly
8648         without calling mono_class_setup_fields ().
8649         (mono_class_find_enum_basetype): New helper function.
8650
8651         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
8652         one place inside the string heap.
8653         
8654 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
8655
8656         * class.c: locking fixes, code cleanups, some docs added.
8657         Allocate some data structures in the image mempool.
8658
8659 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8660
8661         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8662         the example code.
8663         
8664 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
8665
8666         * class-internals.h, class.c, reflection.c: reduce memory taken by
8667         MonoClass.
8668
8669 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
8670
8671         * metadata.c, metadata.h, loader.h: documentation updates, code and
8672         API cleanups.
8673
8674 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8675
8676         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8677         the example code.
8678
8679         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
8680         page faults caused by the runtime while reading metadata.
8681
8682 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8683
8684         * socket-io.c: the field names were changed 3 months ago and no one
8685         realized until bug #76077 got filed!
8686
8687 2005-09-20  Martin Baulig  <martin@ximian.com>
8688
8689         * icall.c (assembly_icalls): Removed some unused debugger icalls.
8690
8691 2005-09-20  Martin Baulig  <martin@ximian.com>
8692
8693         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
8694         write the rank into the class entry.
8695
8696 2005-09-20  Martin Baulig  <martin@ximian.com>
8697
8698         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
8699
8700 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
8701
8702         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8703
8704         * icall.c (custom_attrs_defined_internal): New icall.
8705
8706         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
8707         function.
8708         (mono_custom_attrs_construct_by_type): New helper function.
8709
8710 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
8711
8712         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
8713         terminate the resulting string. Fixes #76123.
8714
8715 2005-09-16  Martin Baulig  <martin@ximian.com>
8716
8717         * mono-debug.c
8718         (mono_debug_add_method): Ignore inflated methods for the moment.
8719
8720 2005-09-14  Martin Baulig  <martin@ximian.com>
8721
8722         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
8723
8724 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
8725
8726         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
8727         return a success/failure indication.
8728         (mono_metadata_interfaces_from_typedef_full): Ditto.
8729         (get_constraints): Ditto.
8730
8731 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
8732
8733         * marshal.c (emit_marshal_array): Fix handling of null arrays.
8734         
8735         * marshal.c (emit_marshal_array): Add support for returning string
8736         arrays from delegates. Fixes #76063.
8737
8738         * marshal.c: Use the emit_ldloc/stloc macros where possible.
8739
8740 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
8741
8742         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
8743         icall.
8744
8745 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
8746
8747         * reflection.c icall.c: Fix after mono_get_exception_type_load
8748         signature change.
8749
8750         * assembly.c (mono_assembly_get_assemblyref): New helper function.
8751         (mono_assembly_load_reference): Use the new helper.
8752
8753         * class-internals.h (MonoLoaderError): New structure containing 
8754         information about type loading errors.
8755
8756         * class-internals.h loader.c: Add APIs to store per-thread loader
8757         error information.
8758
8759         * loader.c class.c: Set the loader error if needed.
8760
8761         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
8762
8763 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
8764
8765         * decimal.c: fixed to handle the broken ARM fp format.
8766
8767 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
8768
8769         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
8770         broken.
8771
8772 2005-09-06  Martin Baulig  <martin@ximian.com>
8773
8774         * domain.c (supported_runtimes): Added v2.0.50727.
8775
8776 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
8777
8778         * culture-info.h: reduce the size of some structures.
8779
8780 2005-09-05  Martin Baulig  <martin@ximian.com>
8781
8782         Reflect latest API changes in the August CTP.
8783
8784         * icall.c
8785         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
8786         ("MonoType.HasGenericArguments"): Removed.
8787         ("MonoMethod.BindGenericParameters"): Renamed to
8788         "MakeGenericMethod".
8789         ("MethodBuilder.BindGenericParameters"): Renamed to
8790         "MakeGenericMethod".    
8791
8792 2005-09-05  Martin Baulig  <martin@ximian.com>
8793
8794         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
8795
8796 2005-09-05  Martin Baulig  <martin@ximian.com>
8797
8798         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8799
8800         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
8801         generic_container is non-NULL.
8802
8803 2005-09-05  Martin Baulig  <martin@ximian.com>
8804
8805         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8806
8807         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
8808
8809 2005-08-29  Michal Moskal  <malekith@nemerle.org>
8810
8811         * reflection.c (encode_locals,
8812         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
8813         for large generic types.
8814
8815 2005-09-05  Martin Baulig  <martin@ximian.com>
8816
8817         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8818
8819         * class.c (mono_dup_array_type): New public method.
8820         (mono_metadata_signature_deep_dup): New public method.
8821         (dup_type): Correctly duplicate array and function types.
8822
8823 2005-09-05  Martin Baulig  <martin@ximian.com>
8824
8825         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8826
8827         * reflection.c (get_default_param_value_blobs): Handle generic types
8828         and generic methods.
8829
8830 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
8831
8832         * class.c: Fixed error reporting (method/class were inversed) for 
8833         inheritance demands.
8834         * security-manager.c|h: Added the AppDomain when calling the managed
8835         System.Security.SecurityManager.InheritanceDemand method.
8836
8837 2005-09-01  Raja R Harinath  <rharinath@novell.com>
8838
8839         * reflection.c (encode_marshal_blob): 'marshaltype' and
8840         'marshaltyperef' are alternate sources for the custom marshaler
8841         name.
8842
8843 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
8844
8845         * class.c: fix creation of array classes with rank == 1
8846         (patch by Ankit Jain <jankit@novell.com>).
8847
8848 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
8849
8850         * object.c: fix check for creating the bound data for arrays vs
8851         szarrays.
8852
8853 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8854
8855         * object.c: configuration file name is now based on the executable name,
8856         not the image name. Fixes bug #75931.
8857
8858 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
8859
8860         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
8861         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
8862
8863 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
8864
8865         * rand.c: Use wincrypt.h instead of WinCrypt.h.
8866
8867 2005-08-24  Ankit Jain  <jankit@novell.com>
8868             Raja R Harinath  <rharinath@novell.com>
8869
8870         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
8871           called by it recursively.
8872           (mono_class_init): Remove special case in pending_init handling, since it's
8873           superseded by the fix to mono_class_from_typeref.
8874
8875 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
8876
8877         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
8878         BROKEN_THREAD_START stuff.
8879
8880 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
8881
8882         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
8883         trampoline.
8884
8885         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
8886         
8887         * object.c (mono_delegate_ctor): Replace the original function address with
8888         a delegate trampoline.
8889
8890 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
8891
8892         * icall.c: add boolean argument to base64_to_byte_array and 
8893         InternalFromBase64String to control whether a whitespace-only string
8894         is allowed (or should casue a FormatException to be thrown). We need
8895         this as the behavior has changed between MS.NET 1.x and 2.0, and we
8896         to match the MS behaviour in both profiles.
8897         * appdomain.c: Bump corlib version.
8898
8899 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8900
8901         This patch implements a big portion of publisher policy
8902         support, used to bind assembly versions and redirect
8903         one assembly from version A to version B.
8904
8905         * assembly.c:
8906         New GSList loaded_assembly_bindings, for storing the cached
8907         assembly bindings.
8908         (assembly_binding_maps_name): New static function for checking if a 
8909         assembly binding information maps an assembly name.
8910         (mono_assembly_binding_info_free): New function for freeing
8911         assembly binding information resources.
8912         (get_publisher_policy_info): New static function for retrieving 
8913         assembly binding information from a MonoImage.
8914         (compare_versions): New static function for comparing an assembly
8915         binding information data and the version of an assembly name.
8916         (check_policy_versions): New static function for checking if an
8917         assembly binding info mapping an assembly name is valid for it.
8918         (mono_assembly_load_publisher_policy): New static function for
8919         loading the 'policy.major.minor.MyAssembly' image for an assembly
8920         with an assembly name 'aname'.
8921         (mono_assembly_bind_version): New static function for updating
8922         assembly redirection.
8923         (mono_assembly_apply_binding): New static function for applying
8924         assembly binding.
8925         (search_binding_loaded): New static function for searching 
8926         loaded assembly binding infos in the cache domain.
8927         (mono_assembly_load_full): Don't apply assembly binding for
8928         reflection only assemblies.
8929
8930         * metadata-internals.h: Add MonoAssemblyBindingInfo,
8931         which contains information about assembly binding. Also
8932         declare signature for mono_config_parse_publisher_policy ()
8933         function, used to retrieve pub policy info.
8934         
8935         * mono-config.c:
8936         (publisher_policy_start): New static function used to parse publisher 
8937         policy config files.
8938         (publisher_policy_parser): New static MonoParseHandler containing 
8939         the functions used when parsing config files.
8940         (mono_config_parse_publisher_policy): New function for parsing
8941         publisher policy files.
8942         
8943 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
8944
8945         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
8946
8947         * marshal.c (mono_delegate_free_ftnptr): Ditto.
8948
8949         * object.c (mono_get_addr_from_ftnptr): New helper function.
8950
8951         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
8952
8953         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8954
8955 2005-08-19  Dick Porter  <dick@ximian.com>
8956
8957         * threads.c, threads.h, appdomain.c, appdomain.h,
8958         profiler-private.h, monitor.c, object.c, object-internals.h,
8959         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
8960         store the thread ID, so it can hold a 64 bit value if needed.
8961
8962 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
8963
8964         * reflection.c (mono_reflection_create_dynamic_method): Store the
8965         handle class into the method references as well so ldtoken works in
8966         dynamic methods.
8967
8968         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
8969         types.
8970
8971 2005-08-19  Ankit Jain <jankit@novell.com>
8972
8973         Fix #75847.
8974         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
8975           here rather than using the method signature of a arbitrary function
8976           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
8977           two arguments.
8978           Hack done with Harinath.
8979
8980 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8981
8982         * threadpool.c: disable printing stack traces when we get a exception
8983         in a threadpool thread. I need to do more testing to figure out which
8984         cases actually print this. Fixes bug #75828.
8985
8986 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8987
8988         * icall.c: there might be ignored whitespace after the last '='. This
8989         fixes length computation and bug #75840.
8990
8991 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
8992
8993         * assembly.c (mono_assembly_load_full): Consider .exe extension as
8994         well. Fixes #75809.
8995
8996         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
8997         #75784.
8998         
8999         * reflection.c (create_custom_attr_data): Ditto.
9000
9001 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
9002
9003         * locales.c, culture-info.h : removed RegionLCIDMap.
9004         * culture-info-tables.h : regenerated.
9005
9006 2005-08-16  Martin Baulig  <martin@ximian.com>
9007
9008         * class.c (mono_type_get_name_recurse): Small fix.
9009
9010 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
9011
9012         * locales.c : indentation fixie.
9013
9014 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
9015
9016         * object-internals.h,
9017           locales.h,
9018           locales.c,
9019           culture-info.h,
9020           icall.c : added RegionInfo table support.
9021         * culture-info-table.h : regenerated for region support.
9022
9023 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
9024
9025         * reflection.c (resolve_object): handle all kinds of MonoMethod
9026         including generic ones
9027
9028 2005-08-12  Ankit Jain <jankit@novell.com>
9029
9030         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
9031           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
9032
9033 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
9034
9035         * process.c: Don't close a thread handle when it's NULL. This is a
9036         workaround for bug #75733.
9037
9038 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
9039
9040         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
9041
9042 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
9043
9044         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
9045
9046 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9047
9048         * threadpool.c: if a work item in the thread pool has a callback that
9049         catches a exception, don't propagate it after invoking the callback.
9050         Fixes bug #75336.
9051
9052 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
9053
9054         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
9055
9056         * class-internals.h (MonoCachedClassInfo): Add some new fields.
9057
9058         * class.c (mono_class_init): Load field info lazily in the AOT case.    
9059
9060         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
9061
9062 2005-08-03  Ankit Jain  <jankit@novell.com>
9063
9064         Fix #75683.
9065         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
9066           PInvoke calling convention is 0.
9067
9068 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
9069
9070         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
9071         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
9072
9073 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
9074
9075         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
9076         to handle threads not started by the GC (patch by Michael Meeks
9077         <michael.meeks@novell.com>).
9078
9079 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
9080
9081         * reflection.c: Make buffer used in emitting types larger for some
9082         big generic types (patch by Michal Moskal).
9083
9084 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
9085
9086         * mono-debug.c: Fix some (not all) alignment problems.
9087
9088 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9089
9090         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
9091         Invoke mono_image_load_from_data_full passing the refonly
9092         parameter.
9093
9094         * assembly.c
9095         (mono_assembly_open_from_bundle): Add the refonly argument, 
9096         in order to pass it to other methods it calls to.
9097         (do_mono_assembly_open): Add the refonly argument, in order 
9098         to pass it to other methods it calls to.
9099         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
9100         the refonly parameter to it.
9101
9102         * image.c: Add loaded_images_refonly_hash and
9103         loaded_images_refonly_guid_hash to cache the reflection
9104         only loaded images.
9105         (mono_images_init): Initialize the hash tables used for
9106         caching the reflection only images.
9107         (load_modules): Invoke mono_image_open_full passing the refonly
9108         parameter to load the modules the correct way.
9109         (build_guid_table): Add the refonly argument, to re-build the 
9110         correct hash table.
9111         (do_mono_image_open): Added the refonly argument, in order to
9112         define it for the loaded image.
9113         (mono_image_loaded_full): New function, which receives an
9114         additional parameter to look for the image in the refonly or
9115         non-refonly section.
9116         (mono_image_loaded): Updated, using mono_image_loaded_full.
9117         (mono_image_loaded_by_guid_full): The same case that happens
9118         with mono_image_loaded_full.
9119         (mono_image_loaded_by_guid): Likewise.
9120         (register_image): Use the ref_only variable inside MonoImage
9121         to decide in which hash table store the current image.
9122         (mono_image_open_from_data_full): Rename
9123         mono_image_open_from_data to mono_image_open_from_data_full,
9124         adding the refonly argument, to define the ref_only variable 
9125         inside MonoImage.
9126         (mono_image_open_from_data): Return 
9127         mono_image_open_from_data_full.
9128         (mono_image_open_full): Rename mono_image_open to
9129         mono_image_open_full, receiving the new refonly argument,
9130         to pass it to inner methods.
9131         (mono_pe_file_open): Update this function, to open
9132         a MonoImage as a non-refonly image.
9133         (mono_image_close): Use the refonly variable inside
9134         MonoImage to remove the image from the correct caches.
9135
9136         * image.h: Add the signatures of mono_image_open_full,
9137         mono_image_open_from_data_full, mono_image_loaded_full,
9138         mono_image_loaded_by_guid_full.
9139
9140         * metadata-internals.h: Add the ref_only field to 
9141         MonoImage.
9142         
9143 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9144
9145         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
9146         Fix the last behavior, which used to load the assemblies and
9147         extract MonoReflectionAssemblyName information, instead of
9148         extract it from the metadata tables. Needed for Reflection
9149         Only assemblies.
9150         
9151 2005-07-29  Martin Baulig  <martin@ximian.com>
9152
9153         * mono-debug-debugger.c
9154         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
9155         not initialized.
9156
9157         * mono-debug.c
9158         (mono_debug_address_from_il_offset): Check whether we have
9159         debugging support before attempting to take the lock.
9160         (mono_debug_source_location_from_address): Likewise.
9161         (mono_debug_source_location_from_il_offset): Likewise.
9162         (mono_debug_il_offset_from_address): Likewise.
9163         (mono_debug_address_from_il_offset): Likewise.
9164
9165 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
9166
9167         * class.c (mono_class_from_name_case): Add support for dynamic images.
9168         Fixes #75650.
9169
9170         * object.c (mono_class_compute_gc_descriptor): Add a workaround
9171         for #75479.
9172
9173 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
9174         
9175         * reflection.c (mono_method_get_object): Fix warning.
9176
9177 2005-07-28  Martin Baulig  <martin@ximian.com>
9178
9179         * mono-debug.c
9180         (mono_debug_add_wrapper): Also write the wrapper type.
9181
9182 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
9183
9184         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
9185         
9186         * class.c (mono_class_init): Avoid reading nested classes if the AOT
9187         data indicates the class has none.
9188
9189 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
9190
9191         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
9192         loader lock with the debugger lock. Prevents deadlocks for beagle.
9193
9194         Beagle can now run on an smp box for a weekend without any
9195         issues. Woohoo!
9196
9197 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
9198
9199         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
9200         in a module. Fixes #75629.
9201
9202 2005-07-26  Martin Baulig  <martin@ximian.com>
9203
9204         * mono-debug.c (mono_debug_add_wrapper): New static method.
9205         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
9206         interncall or a wrapper.
9207
9208         * mono-debug.h (MonoDebugWrapperData): New public typedef.
9209         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
9210         (MONO_DEBUGGER_VERSION): Bump to 51.
9211
9212         * mono-debug-debugger.c
9213         (mono_debugger_add_type): Removed this empty function.
9214         (mono_debugger_add_method): Likewise.
9215
9216 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
9217
9218         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
9219         before accessing method->slot.
9220
9221 2005-07-21  Jb Evain  <jbevain@gmail.com>
9222
9223         * reflection.c (method_encode_clauses/class): Handle filters clauses.
9224         Fixes #75010.
9225
9226 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
9227
9228         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
9229         #75587.
9230
9231 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
9232
9233         * image.h image.c: Add mono_image_get_guid () API function.
9234
9235 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
9236
9237         There were issues when multiple threads tried to load
9238         assemblies. A deadlock was created between assemblies_mutex and
9239         mono_domain_assemblies_lock. This fixes the issue by making the
9240         assembly ref counting be lock free. See bug 75586.
9241         
9242         * image.c (mono_image_close): The add ref function here was using
9243         Interlocked operations while the unref was using a mutex and a
9244         --. I don't think this was ever a bug that would be exposed in a
9245         non-pendantic way (ie, by an embedder doing a ref on one thread
9246         and an unref on another), but for the sake of correctness, this is
9247         now Interlocked.
9248
9249         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
9250         (mono_assembly_load_reference): Call mono_assembly_addref rather
9251         than touching the refcount ourselves.
9252         (mono_assembly_close): Use InterlockedDecrement to unref the
9253         assembly. Don't acquire the lock unless it is actually needed.
9254
9255 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
9256
9257         * class.c (mono_class_layout_fields): Fix calculation of has_references
9258         for generic types.
9259
9260 2005-07-12  Martin Baulig  <martin@ximian.com>
9261
9262         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9263
9264         * metadata.c
9265         (mono_type_hash): Provide better hashing for generic instances.
9266         (mono_generic_inst_hash): Improve hashing.
9267         (mono_generic_class_hash): Likewise.
9268
9269         * reflection.c (mymono_metadata_type_hash): Improve hashing for
9270         generic instances.
9271
9272 2005-07-12  Martin Baulig  <martin@ximian.com>
9273
9274         * reflection.c (mono_reflection_create_runtime_class): Remove the
9275         hack for generic type definitions and non-`Run' assemblies.
9276         (mono_reflection_bind_generic_parameters): Also use
9277         `klass->wastypebuilder' to check for TypeBuilders.
9278
9279 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
9280
9281         * class.c (mono_class_layout_fields): Fix calculation of has_references
9282         for generic types.
9283
9284         * class.c (inflate_generic_class): Fix a leak.
9285         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
9286         for generic types.
9287
9288 2005-07-11  Martin Baulig  <martin@ximian.com>
9289
9290         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
9291         on error.
9292
9293 2005-07-11  Martin Baulig  <martin@ximian.com>
9294
9295         * loader.c (find_method): Also lookup in
9296         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
9297
9298 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9299
9300         * appdomain.c (mono_domain_unload): Don't free the error message
9301         before passing it to mono_get_exception_...
9302
9303         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
9304         
9305 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
9306
9307         * threads.c: try to better guess an available RT signal (bug #75387).
9308
9309 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9310
9311         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
9312         and CACHE_OBJECT.
9313
9314 2005-07-07  Martin Baulig  <martin@ximian.com>
9315
9316         * class.c (mono_type_get_name_full): Return NULL for
9317         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
9318         fixes #75408.
9319
9320 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9321
9322         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
9323         exit the appdomain as well being aborted.
9324
9325         * threadpool.c: Create all threadpool threads inside the root appdomain, and
9326         change back to the root domain after calling managed code. This enables
9327         appdomains using threadpools to be unloaded.
9328
9329 2005-07-07  Martin Baulig  <martin@ximian.com>
9330
9331         * class-internals.h
9332         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
9333         into `MonoDynamicGenericClass' since we only need it for dynamic
9334         types.
9335
9336         * reflection.c (mono_class_bind_generic_parameters): We don't need
9337         to compute the `parent' here.
9338
9339 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
9340
9341         * culture-info-table.h : regenerated.
9342
9343 2005-07-06  Martin Baulig  <martin@ximian.com>
9344
9345         * icall.c
9346         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
9347
9348         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
9349
9350 2005-07-06  Martin Baulig  <martin@ximian.com>
9351
9352         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
9353         we're doing a signature-only comparision; fixes #74945.
9354
9355 2005-07-06  Martin Baulig  <martin@ximian.com>
9356
9357         * class-internals.h (MonoGenericClass): Moved some things out into
9358         a new `MonoInflatedGenericClass' type.  
9359         (MonoInflatedGenericClass): New type; the `klass' of a
9360         `MonoGenericClass' is now computed lazyly in
9361         mono_get_inflated_generic_class().      
9362
9363         * class.c (mono_get_inflated_generic_class): New public function.
9364         (mono_class_inflate_generic_method): Removed the unused
9365         `MonoClass *' argument.
9366         (setup_generic_vtable): Don't call mono_get_inflated_method() on
9367         all the methods.
9368         (mono_class_create_generic): Make this static and merge it with
9369         mono_class_create_generic_2(); we're now called automatically from
9370         mono_get_inflated_generic_class().
9371
9372         * loader.c (mono_method_signature): Call
9373         mono_get_inflated_method() here.
9374
9375 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
9376
9377         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
9378         type of fields with RVA.
9379
9380         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
9381         for this pseudo class.
9382         (my_mono_class_from_generic_parameter): Likewise.
9383         (mono_class_init): Allow interfaces to have cctors.
9384
9385 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
9386
9387         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
9388         lazily for AOT methods.
9389
9390 2005-07-05  Martin Baulig  <martin@ximian.com>
9391
9392         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
9393         returns FALSE for a successful match, not TRUE.
9394
9395 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
9396
9397         * loader.c (mono_method_get_index): Optimize this a bit.
9398
9399 2005-07-04  Martin Baulig  <martin@ximian.com>
9400
9401         * class.c
9402         (class_compute_field_layout): Move the check for generic type
9403         definitions into mono_class_layout_fields().  Fixes #74684.
9404         (mono_class_from_generic_parameter): Correctly compute
9405         `klass->parent'; fixes #75457.
9406
9407         * reflection.c (register_assembly, register_module): Make sure
9408         `domain->rejobject_hash' is already created.
9409
9410 2005-07-02  Martin Baulig  <martin@ximian.com>
9411
9412         * class-internals.h
9413         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
9414         `MonoDynamicGenericClass'.      
9415
9416 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
9417
9418         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
9419         returned by a field getter is null, since null is a valid value.
9420
9421 2005-07-01  Martin Baulig  <martin@ximian.com>
9422
9423         * reflection.c (mono_reflection_generic_class_initialize): Update
9424         the `dgclass->fields [i].parent' to the correct class.
9425         (mono_image_get_fieldref_token): Use the declaring type, not the
9426         reflected type.
9427
9428 2005-07-01  Martin Baulig  <martin@ximian.com>
9429
9430         * loader.c (find_method): Also look in the interfaces; fixes #75429.
9431
9432 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
9433
9434         * threads.c (thread_cleanup): assert that thread != NULL
9435         (wait_for_tids_or_state_change): We were using the wrong variable
9436         when accessing wait->threads. `i' was always out of the bounds of
9437         the array.
9438
9439 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9440
9441         * loader.c: map user32 and kernel32 to libMonoSupportW
9442
9443 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
9444
9445         * appdomain.c (unload_thread_main): Mark this as WINAPI.
9446
9447 2005-06-28  Martin Baulig  <martin@ximian.com>
9448
9449         * loader.c (method_from_methodspec): Fix #75334.
9450
9451 2005-06-28  Martin Baulig  <martin@ximian.com>
9452
9453         Fix #74953 - Arrays now implement the generic IList<T> interface
9454         on the 2.0 platform.
9455
9456         * class-internals.h (MonoDefaults): Added `generic_array_class'.
9457
9458         * reflection.c (mono_class_bind_generic_parameters): New public
9459         function; similar to mono_reflection_bind_generic_parameters(),
9460         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
9461
9462         * domain.c (mono_init_internal): Try to initialize.
9463         `mono_defaults.generic_array_class' here; this'll only succeed if
9464         we're using the 2.0 corlib.
9465
9466         * icall.c
9467         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
9468         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
9469         (mono_lookup_internal_call): Added support for nested classes.
9470
9471         * loader.c
9472         (mono_get_method_from_token): Set `result->signature->pinvoke' if
9473         we're an interncall and have generic arguments.
9474
9475         * class.c
9476         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
9477         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
9478         instance of System.Array.InternalArray<T> for arrays, so they
9479         implement the generic IList<T> interface.
9480
9481 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
9482
9483         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
9484         (chastamar@yahoo.com). Fixes #75374.    
9485
9486 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
9487
9488         * culture-info-table.h: regenerated.
9489
9490 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9491
9492         * icall.c: handle spaces correctly for base64 strings.
9493
9494 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
9495
9496         * *.c: Kill some warnings.
9497
9498 2005-06-23  Duncan Mak  <duncan@novell.com>
9499
9500         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
9501         that this builds on Solaris 10 (x86).
9502
9503 2005-06-23  Martin Baulig  <martin@ximian.com>
9504
9505         * class.c
9506         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
9507         generic type definitions.
9508
9509 2005-06-23  Martin Baulig  <martin@ximian.com>
9510
9511         Fix #75331.
9512
9513         * metadata.c (mono_class_get_overrides): Renamed to
9514         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
9515         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
9516         pass it to mono_get_method_full().
9517
9518 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
9519
9520         * reflection.c (mono_reflection_create_runtime_class): take the
9521         mono_domain_lock in this method. Prevents deadlocks
9522
9523 2005-06-22  Martin Baulig  <martin@ximian.com>
9524
9525         * loader.c (method_from_methodspec): Fix #75330.
9526
9527 2005-06-22  Martin Baulig  <martin@ximian.com>
9528
9529         * reflection.c (type_get_qualified_name): Use
9530         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
9531         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
9532         argument; use it if we don't have an assembly name.
9533
9534 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
9535
9536         * object.c: In mono_message_init, set "copy out" flag for in
9537         parameters with the [Out] flag.
9538
9539 2005-06-21  Martin Baulig  <martin@ximian.com>
9540
9541         * class.c
9542         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
9543         and MONO_TYPE_PTR.
9544
9545 2005-06-21  Martin Baulig  <martin@ximian.com>
9546
9547         * class.c (mono_class_init): Don't initialize `class->fields' for
9548         generic instances since they're initialized again in
9549         compute_field_layout(). 
9550         (compute_field_layout): Set the field's `generic_info' here; fix
9551         #75320. 
9552
9553 2005-06-21  Martin Baulig  <martin@ximian.com>
9554
9555         * class-internals.h
9556         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
9557
9558         * metadata.c (mono_metadata_generic_method_equal): Also
9559         distinguish the `generic_class'; fixes #75334.
9560
9561 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9562
9563         * domain.c:
9564         * appdomain.c:
9565         * domain-internals.h:
9566         * reflection.c: 'domain_assemblies' field is now protected by its own
9567         lock. Don't call into managed code to run the AssemblyLoad event if we
9568         now there are no registered delegates for it.
9569
9570 2005-06-20  Martin Baulig  <martin@ximian.com>
9571
9572         * class.c (mono_class_is_assignable_from): Use a custom version of
9573         mono_class_has_parent() to make things work for generic instances;
9574         fix #75300.
9575
9576 2005-06-20  Martin Baulig  <martin@ximian.com>
9577
9578         * loader.c (method_from_methodspec): Apply a patch from
9579         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
9580
9581 2005-06-20  Martin Baulig  <martin@ximian.com>
9582
9583         * class.c (mono_class_init): Reverted Zoltan's last change; it
9584         breaks generics.
9585
9586 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
9587
9588         * threads.c (wait_for_tids_or_state_change): Add missing locking.
9589
9590 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9591
9592         * socket-io.c: fix the index in the socket array for writable/error
9593         sockets. Fixes bug #75306.
9594
9595 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
9596
9597         * class.c (mono_class_init): Allow interfaces to have static ctors.
9598
9599 2005-06-17  Martin Baulig  <martin@ximian.com>
9600
9601         * loader.c (method_from_methodspec): Use `context->container' when
9602         parsing the `gmethod->inst'.
9603
9604 2005-06-17  Martin Baulig  <martin@ximian.com>
9605
9606         * class.c (mono_type_get_name_recurse): Don't add the assembly
9607         name for type arguments.
9608
9609 2005-06-15  Martin Baulig  <martin@ximian.com>
9610
9611         * reflection.c (mono_image_get_inflated_method_token): Encode
9612         correct klass; fixes #75260.
9613
9614 2005-06-13 Michal Moskal <malekith@nemerle.org>
9615
9616         * icall.c: Make GetCorrespondingMethod/Constructor take
9617         MonoReflectionMethod method not MonoMethod. Removed
9618         MonoType.GetCorrespondingField, and make
9619         MonoGenericType.GetCorrespondingField take name not
9620         MonoClassField.
9621
9622 2005-06-13  Michal Moskal <malekith@nemerle.org>
9623
9624         * reflection.c (field_encode_signature, encode_locals):
9625          Make sizes of buffers for types larger (for big generic types).
9626          (create_generic_typespec,
9627          mono_reflection_sighelper_get_signature_local,
9628          mono_reflection_sighelper_get_signature_field):
9629          Add asserts for too small buffers.
9630
9631 2005-06-15  Martin Baulig  <martin@ximian.com>
9632
9633         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
9634         if our parent is not a dynamic type.
9635
9636 2005-06-15  Martin Baulig  <martin@ximian.com>
9637
9638         * class-internals.h (MonoTypeNameFormat): New enum.
9639
9640         * class.c
9641         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
9642         (mono_type_get_full_name): Removed.
9643         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
9644         argument instead of the boolean's.
9645
9646         * icall.c (ves_icall_System_MonoType_getFullName):
9647         Added `gboolean assembly_qualified'.    
9648
9649         * reflection.h
9650         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
9651
9652         * reflection.c (mono_reflection_parse_type): Parse the new type
9653         name format.
9654
9655 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9656
9657         * icall.c: no need to convert from utf16 to utf8 and then back again
9658         after the call to GetLogicalDrives.
9659
9660 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9661
9662         * icall.c: frombase64. Fix problems exposed by new tests.
9663
9664 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9665
9666         * icall.c: added internal calls for converting char [] and strings in
9667         base64 into byte [].
9668
9669 2005-06-10  Martin Baulig  <martin@ximian.com>
9670
9671         * class.c (mono_class_create_generic_2): Read the nested classes
9672         from the metadata rather than from `gklass->nested_classes' since
9673         `gklass' might not be initialized yet.
9674
9675 2005-06-09  Duncan Mak  <duncan@novell.com>
9676
9677         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
9678         all public headers. Fixes #74919.
9679
9680 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
9681
9682         * domain.c: The key for proxy_vtable_hash is now a pointer
9683         array. Added new GHashFunc and GCompareFunc functions for this.
9684
9685         * class.h: The list of interfaces in MonoRemoteClass is known in
9686         advance and can't grow (we create a new MonoRemoteClass if needed),
9687         so now the interface array can be allocated together with
9688         MonoRemoteClass.
9689         
9690         * object.c: Added a new method create_remote_class_key.
9691         Fixed mono_remote_class so it does not depend on
9692         mono_upgrade_remote_class.
9693         Removed extend_interface_array.
9694         Added new method clone_remote_class(), which makes a copy of a remote
9695         class and adds a new interface or class to it.
9696         mono_upgrade_remote_class() now creates a new remote class (or gets
9697         it from the cache) if an vtable upgrade is needed. In this way
9698         we make sure that other objects sharing the same remote class
9699         don't get the new vtable with unwanted interfaces.
9700         
9701         * object-internals.h:
9702         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
9703         
9704         * marshal.c: Track changes in mono_upgrade_remote_class().
9705
9706 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
9707         * icall.c: Add runtime methods for obtaining members of inflated
9708         class, which were created from supplied non-inflated members. It
9709         is used in internal Get{Method,Constructor,Field} methods in
9710         System.Type
9711
9712 2005-06-09  Martin Baulig  <martin@ximian.com>
9713
9714         * reflection.c
9715         (mono_reflection_bind_generic_method_parameters): Fix #75169.
9716
9717 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9718         * reflection.c (mono_image_basic_init): Define
9719         Version in MonoDynamicAssembly. 
9720         
9721 2005-06-08  Martin Baulig  <martin@ximian.com>
9722
9723         Fix #75136.
9724
9725         * loader.c
9726         (mono_method_signature_full): New public method; takes a
9727         `MonoGenericContext *'.
9728         (find_method): Use mono_method_signature_full() and pass the
9729         klass'es context to it.
9730
9731         * class.c (mono_class_is_inflated_method): Use
9732         mono_method_signature_full() and pass the context to it.
9733
9734 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
9735
9736         * object.c: add proper locking in mono_remote_class_vtable(),
9737         fixes possible memory corruption.
9738
9739 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
9740
9741         * marshal.c (mono_remoting_marshal_init): set
9742         initialized after initialization.
9743
9744 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9745
9746         * locales.c : hush.
9747
9748 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
9749
9750         * object.c (extend_interface_array): fix really silly
9751         memory corrupting / comparison bug.
9752
9753 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9754
9755         * reflection.c: Functions added to support the creation
9756         of CustomAttributeData, which includes Attribute data
9757         used by ReflectionOnly methods.
9758
9759         * reflection.h:  mono_reflection_get_custom_attrs_data and
9760          mono_custom_attrs_data_construct added (functions exposed).
9761
9762          * icall.c: Added mono_reflection_get_custom_attrs_data
9763          as icall.
9764         
9765 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
9766
9767         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
9768         lupus's request.
9769
9770 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
9771
9772         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
9773
9774         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
9775         dynamic DllImportAttribute.
9776
9777         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
9778         dynamic DllImportAttribute.
9779
9780         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
9781         Fixes #75162.
9782
9783 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9784
9785         * threads.c: avoid segfault when an unstarted thread is aborted.
9786
9787 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
9788
9789         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
9790         Returns the name and version of the runtime for reporting.
9791
9792 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9793
9794         * appdomain.c: bump corlib version.
9795         * object-internals.h: new field in MonoReflectionAssembly.
9796
9797 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9798
9799         * object-internals.h: Carlos forgot to add this field.
9800
9801 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9802
9803         * icall.c: Added create_version to create instances
9804         of Version of MonoReflectionAssemblyName. This change helps
9805         the AssemblyName tests to keep running fine.
9806         
9807 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
9808   
9809         * object.c (mono_method_return_message_restore): A somehow less
9810         intrusive fix for #75138.
9811
9812 2005-06-03  Raja R Harinath  <rharinath@novell.com>
9813
9814         * object.c (mono_method_return_message_restore): Fix computation
9815         of expected number of out args.
9816
9817 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
9818
9819         * reflection.c (mono_image_get_method_info): Fix the case when the
9820         charset is empty.
9821
9822 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
9823
9824         * object.c: Added missing null check in
9825           mono_method_return_message_restore.
9826
9827 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
9828
9829         * reflection.c (mono_image_get_method_info): Handle the case when
9830         dllentry is empty.
9831
9832 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
9833
9834         * object.c: When creating the vtable for a proxy, take into account
9835         all inherited interfaces, not only the ones registered in
9836         iclass->interfaces. This fixs bug #74996.
9837         Also, in mono_method_return_message_restore, verify that the array
9838         of out args has the expected lengh.
9839
9840 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9841
9842         * socket-io.c: update the timeout in Poll when the call is interrupte.
9843
9844 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9845
9846         * socket-io.c: support abort/suspend in Select_internal after last
9847         change.
9848
9849 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9850
9851         * threadpool.c: remove warning.
9852
9853 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9854
9855         * icall.c:
9856         * socket-io.[ch]: Select_internal uses poll() now when available, thus
9857         removing the 1024 limit from select(). Runtime part of the fix for
9858         bug #71203.
9859
9860 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9861
9862         * socket-io.c: when resolving the addresses for the same
9863         host returned by gethostname(), get the local IPs from the interface
9864         list. Loopback addresses are discarded if the are interfaces up with
9865         non-loopback ones. Fixes bug #63265.
9866
9867 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
9868
9869         * appdomain.c, verify.c, object-internals.h, reflection.c:
9870         bumped corlib number to 36, and added new extra_flags field
9871         to ReflectionMethodBuilder and friends.  Fixes #75060.
9872
9873 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
9874
9875         * gc.c: register a new weak link only if the object is non-null
9876         (fixes bug#75047).
9877
9878 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9879
9880         * culture-info.h : short time pattern too.
9881
9882 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9883
9884         * culture-info.h : expand long time pattern string length.
9885
9886 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9887
9888         * culture-info-table.h : update (more French date format; #72788).
9889
9890 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
9891
9892         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
9893         the method is static. Fixes #75029.
9894
9895 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
9896
9897         * reflection.c: Update the table_idx field of method builders after
9898         saving the module, since it can change. This is a workaround for
9899         bug #74914. 
9900
9901 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9902
9903         * culture-info-table.h : update (additional French date format).
9904
9905 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
9906
9907         * icall.c (ves_icall_type_Equals): Revert last change.
9908         
9909         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
9910
9911         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
9912
9913 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
9914
9915         * class-internals.h: Added executioncontext_class field to 
9916         MonoDefaults structure.
9917         * domain.c: Cache System.Threading.ExecutionContext class in 
9918         mono_defaults.
9919         * object.c: Capture the ExecutionContext for asynchroneous calls in
9920          mono_async_result_new.
9921         * object-internals.h: Added execution_context and original_context 
9922         fields to MonoAsyncResult. Added execution_context to MonoThread.
9923         * security-manager.c|.h: Added mono_get_context_capture_method to 
9924         return the capture method (if required by the security manager or by
9925         the framework version used).
9926         * threadpool.c: Apply capture (if present) ExecutionContext in 
9927         mono_async_invoke and revert to original context after it completes.
9928
9929 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
9930
9931         * culture-info-table.h : updated (real hacky solution for zh-CHT).
9932
9933 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
9934
9935         * culture-info-table.h : zh-CHT related workaround.
9936
9937 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
9938
9939         * marshal.c (emit_marshal_custom): Add some error checking and call the
9940         methods in the ICustomMarshaler interface. Fixes #74875.
9941         
9942         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
9943         native->managed wrappers.
9944
9945 2005-05-12  Martin Baulig  <martin@ximian.com>
9946
9947         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
9948         here and use the loader lock.
9949
9950         * mono-debug.c: Properly lock when the debugger is not attached.
9951         (mono_debug_init): Release the initial lock if we're not running
9952         in the debugger.
9953
9954 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
9955
9956         * marshal.c (emit_marshal_custom): Pass through NULL values without
9957         calling the custom marshalling routines.
9958
9959         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
9960         conversion in structures. Fixes #74882.
9961
9962 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
9963
9964         * culture-info-table.h : zh-* cultures were missing.
9965
9966 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
9967
9968         * threads.c: Added a new event background_change_event which is signaled
9969         when a thread changes its background mode.
9970         Moved here several checks previously done in managed code. The checks
9971         require the thread lock, and using the thread lock in managed code
9972         can result in deadlocks.
9973         Merged Start_internal and Thread_internal into a single method. Now 
9974         Thread_internal does all work of creating and starting a thread.
9975         Added icalls for setting and getting the state of the object. Moved from
9976         managed code to avoid locking there.
9977         Added wait_for_tids_or_state_change() which is called instad of
9978         wait_for_tids when waiting for non-backround threads to end. This method
9979         will return if one of the threads ends or the background_change_event
9980         is signaled.
9981         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
9982         the background mode. This method signals the background_change_event
9983         event.
9984         * icall.c:
9985         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
9986         removed Start_internal.
9987         
9988 2005-05-11  Martin Baulig  <martin@ximian.com>
9989
9990         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
9991         to order of some fields to get proper alignment on 64-bit machines.
9992
9993 2005-05-11  Martin Baulig  <martin@ximian.com>
9994
9995         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
9996         changes as they're broken and completely fuck up the debugger.
9997
9998         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
9999
10000 2005-05-10  Martin Baulig  <martin@ximian.com>
10001
10002         * reflection.c (mono_reflection_generic_class_initialize): Don't
10003         call mono_class_setup_parent() here.
10004
10005 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10006
10007         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
10008         send/receive timeout use an integer in milliseconds. We were using a
10009         struct timeval.
10010
10011 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10012
10013         * locales.c:
10014         (internal_get_cultures): reserve the first slot of the array for the
10015         InvariantCulture, which will be filled in managed code.
10016
10017 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
10018
10019         * reflection.c (mono_image_fill_module_table): Initialize the
10020         GENERATION field as well.
10021
10022 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10023
10024         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
10025         Monitor.Enter on the object.
10026
10027 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
10028
10029         * threads.c: Enable the wait for running threads when exiting.
10030         * icall.c: Suspend all threads before exiting.
10031
10032 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
10033
10034         * assembly.c (mono_assembly_load_reference): Fix warning.
10035
10036 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10037
10038         * threadpool.c: changed the default number of threads per cpu. From now
10039         on, the default will be 20 + (5 * number of cpus) instead of 50.
10040
10041 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
10042
10043         * loader.c (mono_method_get_signature_full): Add locking here.
10044
10045 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
10046
10047         * appdomain.c: Moved methods for parsing and freeing assembly
10048         names to assembly.c.
10049         * assembly.c, domain-internals.h: Created public methods for parsing
10050         assembly names. Fixed mono_assembly_load_with_partial_name:
10051         it now finds the best match, taking into account the version,
10052         token and culture specified in the partial name. Also return
10053         the latest version if no version information is specified.
10054
10055 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
10056
10057         * threadpool.c: replace check for SocketAsyncCall class.
10058
10059 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10060
10061         * threadpool-internals.h:
10062         * Makefile.am: added threadpool-internals.h
10063
10064         * threadpool.c: call mono_unhandled_exception on exceptions not handled
10065         that happen in threadpool threads (tested on MS).
10066         (mono_thread_pool_remove_socket): new function that dispatch any pending
10067         AIO call on a socket that is closing. By now only epoll really needs it,
10068         as select/poll wake up when the socket closes.
10069
10070
10071         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
10072
10073 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
10074
10075         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
10076
10077 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
10078
10079         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
10080
10081 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
10082
10083         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
10084         has an abort request, convert it into a suspend request.
10085
10086 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
10087
10088         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
10089         warning for the usage of `UnmanagedFunctionPointerAttribute' which
10090         is not supported yet.
10091
10092 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10093
10094         * image.c: register assemblies loaded from data (bundles) in the loaded
10095         assemblies hash. Fixes bug #74772.
10096
10097 2005-04-29  Martin Baulig  <martin@ximian.com>
10098
10099         * class.c (mono_type_get_name_recurse): Update to the new naming
10100         schema from the latest .NET 2.x beta2.
10101         (mono_class_setup_vtable_general): If we're a generic instance,
10102         copy the vtable from our generic type definition and inflate all
10103         the methods in it.
10104
10105         * loader.c (find_method): Update to the new naming schema from the
10106         latest .NET 2.x beta2.
10107
10108 2005-04-29  Raja R Harinath  <harinath@gmail.com>
10109
10110         * class.c (mono_class_init): Add a mono_loader_unlock to the
10111         #74734 fix.
10112
10113 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
10114
10115         * icall.c (ves_icall_System_Environment_Exit): Remove the 
10116         suspend_all_other_threads () call for the time being, since it can hang.
10117
10118         * threads.c (mono_thread_manage): Similarly, disable the waiting for
10119         the background threads to exit, since it can also hang.
10120
10121         * class.c (mono_class_init): Applied patch from Ankit Jain 
10122         (radical@gmail.com). Avoid pending init errors when a field refers
10123         to a nested class using a typeref. Fixes #74734.
10124
10125         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
10126         this for dynamic modules.
10127
10128 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10129
10130         * threads.c: don't wait for threads that are in the process of aborting
10131         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
10132         and waiting for background threads to finish. This makes xsp and
10133         mod-mono-server exit without random length delays and/or hangs.
10134
10135 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10136
10137         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
10138
10139 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
10140
10141         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
10142         dynamic types to prevent infinite loops. Fixes #74727.
10143
10144         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
10145         ..._is_assignable_to.
10146
10147 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
10148
10149         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
10150
10151 2005-04-25  Martin Baulig  <martin@ximian.com>
10152
10153         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
10154
10155         * domain.c
10156         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
10157
10158         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
10159
10160         * reflection.c (build_compressed_metadata): Set metadata header
10161         version to 2.0.
10162
10163 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
10164
10165         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
10166         number into an integral and a decimal part. Fixes #70473.
10167
10168         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
10169
10170 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
10171
10172         * culture-info-table.h : reflected the latest locale-builder output.
10173
10174 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10175
10176         * threadpool.c: check for SuspendRequested too when deciding if
10177         mono_thread_interruption_checkpoint should be called.
10178
10179 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10180
10181         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
10182         * threads.c: remove interruption_mutex and use Interlocked instead. When
10183         suspending all the threads, wait for all the suspended events at once.
10184         If we're shutting down and get an APC that is going to be queued,
10185         call mono_thread_execute_interruption immediately, as the thread might
10186         be sleeping on a pthread condition or mutex.
10187
10188         * icall.c: call mono_runtime_set_shutting_down before suspending the
10189         threads.
10190
10191         Fixes bug #74693. And now xsp is happier when exiting.
10192
10193 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
10194
10195         * loader.c (mono_stack_walk): Fix #74690.
10196
10197 2005-04-22  Martin Baulig  <martin@ximian.com>
10198
10199         * mono-debug.h (MonoDebugMethodJitInfo): Added
10200         `MonoDebugMethodJitInfo *jit'.
10201
10202         * mono-debug.c (mono_debug_read_method): Cache the
10203         MonoDebugMethodJitInfo in `address->jit'.
10204         (mono_debug_free_method_jit_info): New public method.
10205
10206 2005-04-22  Martin Baulig  <martin@ximian.com>
10207
10208         * class.c (mono_class_is_assignable_from): Disallow
10209         type parameter -> interface.
10210
10211 2005-04-21  Dick Porter  <dick@ximian.com>
10212
10213         * threads.c (mono_thread_create): Turn an assertion into an error.
10214
10215 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
10216
10217         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
10218         
10219         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
10220         Fix some gcc 4.0 warnings.
10221
10222 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
10223
10224         * file-io.c: fix alt dir separator char on unix systems
10225         and cleanup (fixes bug #71214).
10226
10227 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
10228
10229         * marshal.c: Use CALLVIRT instead of CALL when dispatching
10230         a call to a remote domain, since the method may be an
10231         interface method in the client domain. This fixes bug #74192.
10232
10233 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10234
10235         * threadpool.c: recv/send are now performed before going back to managed
10236         code to save one transition.
10237
10238 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10239
10240         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
10241
10242         * metadata/threadpool.c: removed hack to workaround the bug above.
10243
10244         Fixes bug #74618.
10245
10246 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
10247
10248         * reflection.c reflection.h: Fix handling of parameter defaults in
10249         dynamic methods. Also fixes handling of parameter attributes.
10250         Fixes #74609.
10251
10252         * mono-debug.c (mono_debug_close_image): Fix warning.
10253
10254 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10255
10256         * socket-io.h: replaced old unused field with new 'blocking'.
10257         * threadpool.c: restore socket blocking state on windows(tm).
10258
10259 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
10260
10261         * icall.c: don't return the codebase in the AssemblyName[] returned by
10262         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
10263         * object-internals.h: Removed FIXME (fields were presents) and fixed
10264         versioncompat declaration.
10265
10266 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10267
10268         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
10269         not closed, so don't cleanup when it happens.
10270
10271 2005-04-13  Chris Toshok  <toshok@ximian.com>
10272
10273         * mono-debug-debugger.h: change prototype for
10274         mono_debugger_lookup_type.
10275
10276         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
10277         this function, although it should probably be named
10278         mono_debugger_init_type.
10279
10280 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10281
10282         * threadpool.c: fix non-AIO case.
10283
10284 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
10285
10286         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
10287         the built-in profiler to measure just JIT compilation times.
10288
10289 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10290
10291         * threadpool.c: the epollfd might be closed by another thread at
10292         any time, so ignore EBADF at treat it as a "we're closing" sign.
10293
10294 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10295
10296         * threadpool.c: release the semaphores with a count equals to the number
10297         of working threads in both IO and regular pools. Fixed typo that messed
10298         up the count of IO pool threads. Don't initialize the pipe handles if
10299         we're using epoll.
10300
10301 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10302
10303         * threadpool.c: some systems don't like a NULL when deleting the socket
10304         from epoll.
10305
10306 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10307
10308         * threadpool.c: fix semaphore allocation.
10309
10310 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10311
10312         * threadpool.c: added epoll() based implementation for asynchronous IO
10313         that is used instead of the default poll() when available.
10314         It can be disabled by setting MONO_DISABLE_AIO.
10315
10316 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10317
10318         * threadpool.c: windows needs 'closesocket' and instead of returning
10319         0 when the stream is closed while in select, it returns -1. Fixes bug
10320         #74573.
10321
10322 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
10323
10324         * class.c (class_compute_field_layout): Fix the regression caused by
10325         the previous try.
10326
10327 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10328
10329         * threadpool.c: separate pool for socket async. IO.
10330         * threadpool.h: mono_max_worker_threads is not a global any more.
10331
10332 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
10333
10334         * class.c (class_compute_field_layout): Fix #74549.
10335
10336 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10337
10338         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
10339         use 2 connected sockets instead.
10340
10341 2005-04-08  Miguel de Icaza  <miguel@novell.com>
10342
10343         * mono-config.c: Add new entry point for mkbundle
10344         mono_config_parse_memory. 
10345
10346 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10347
10348         * threadpool.c: removed another unused function.
10349
10350 2005-04-08  Ankit Jain  <radical@corewars.org>
10351
10352         * reflection.c (get_default_param_value_blobs): Add 'types'
10353         parameter to get the types encoded in the constant table.
10354         (mono_param_get_objects): Use the type from the constant table,
10355         not the type of the parameter, when creating default values.
10356         Handle null default values correctly.
10357
10358 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10359
10360         * file-io.c:
10361         * file-io.h:
10362         * threadpool.c:
10363         * threadpool.h:
10364         * icall.c:
10365         * socket-io.c: removed dead code for async IO.
10366
10367 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10368
10369         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
10370
10371         * threadpool.c: intercept socket async. calls and pass them to a thread
10372         that is polling and dispatching the job items to the threadpool as
10373         socket become ready. Fixes bugs #71217, #71933.
10374
10375         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
10376         between char and short/ushort arrays.
10377
10378         * socket-io.c: remove dead code.
10379
10380 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
10381
10382         * locales.c,
10383           icall.c : removed InternalToUpper_Comp() and
10384           InternalToLower_Comp().
10385
10386 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
10387
10388         * char-conversions.h : The tables were incorrectly generated. Should
10389           be generated against invariant culture.
10390
10391 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
10392
10393         * object.c (mono_runtime_invoke_array): Fix return value when 
10394         passing pre-created valuetype objects to ctors.
10395
10396         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
10397         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
10398         Fixes #74338.
10399
10400 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
10401
10402         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
10403         only used with --security and hides the wrong corlib version error.
10404
10405 2005-03-30  Joshua Tauberer  <tauberer@for.net>
10406
10407         * class.c: Changed mono_class_name_from_token so that types
10408         outside of a namespace don't have an initial period.  Improved
10409         the g_warning message used in _mono_class_get when loading
10410         fails.
10411         * assembly.c: In mono_assembly_load_reference, when an assembly
10412         can't be found, "No such file or directory" is misleading and
10413         unhelpful because a few paths were checked for the presence of
10414         the assembly.  When that happens (ENOENT), display a nicer
10415         message indicating the directories that were searched.  In all
10416         cases, the warning is made easier to read for non-hackers.
10417
10418 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
10419
10420         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
10421         project/solution.
10422         * appdomain.h|domain.c: Removed inline from functions.
10423         * appdomain.c: Reduced warnings when compiling on windows.
10424         * icall.c: Fixed output_debug declaration to gunichar2*.
10425         * mono-config.c: Reduced warnings when compiling on windows.
10426         * rand.c: Added missing "windows.h". Added missing return value.
10427         * rawbuffer.c: Added missing winsock2.h for windows.
10428         * sysmath.h: Added mono-compiler.h header to allow/ease 
10429         compilation with non-GCC compilers.
10430         * threads.c: Fixed declarations to compile with VS.NET C compiler.
10431         Removed cast warnings.
10432
10433         Adapted from the work of J Lothian (for VC6).
10434
10435 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
10436
10437         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
10438         from default_path.
10439
10440 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
10441
10442         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
10443         the 2.0 profile.
10444
10445 2005-03-27  Raja R Harinath  <harinath@gmail.com>
10446
10447         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
10448         has to be in $(exec_prefix).  $(prefix) is for arch-independent
10449         stuff, and it would probably use $(prefix)/share rather than
10450         $(prefix)/lib.
10451
10452 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10453
10454         * console-io.c: added 2 includes that might be missing.
10455
10456 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
10457
10458         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
10459         profile.
10460
10461         * reflection.c (create_custom_attr): Allocate the params array using
10462         alloca so it gets GC tracking.
10463
10464 2005-03-23  Chris Toshok  <toshok@ximian.com>
10465
10466         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
10467         out some spew.
10468
10469 2005-03-24  Raja R Harinath  <rharinath@novell.com>
10470
10471         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
10472         changes to pick up any changes in prefix, etc.
10473
10474 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
10475
10476         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
10477         
10478         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
10479         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
10480
10481 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
10482
10483         * class-internals.h object-internals.h class.c reflection.c: Extend the
10484         mono_lookup_dynamic_token () function to return the class of the
10485         token as well. 
10486
10487         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
10488         well. Fixes #73848.
10489
10490 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
10491
10492         * security-manager.c: Skip inheritance checks for intra-corlib
10493         class inheritance and method overrides. This skips a lot of checks
10494         and (anyway) permissions cannot work until corlib is loaded.
10495
10496 2005-03-23  Martin Baulig  <martin@ximian.com>
10497
10498         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
10499         MONO_TYPE_GENERICINST.  
10500
10501 2005-03-23  Martin Baulig  <martin@ximian.com>
10502
10503         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
10504
10505 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10506
10507         * class.c: added locking comments to some functions.
10508         Cache the interface offsets arrays (saves about 20 KB
10509         of runtime memory in a typical app).
10510         Reduce the time overhead in mono_class_setup_supertypes ().
10511
10512 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
10513
10514         * icall.c: speedup and fix leaks in GetMethodsByName and
10515         GetPropertiesByName.
10516
10517 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10518
10519         * reflection.c: some locking fixes.
10520
10521 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10522
10523         * metadata.c: added missing break in case statement.
10524
10525 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
10526
10527         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10528         typedbyref return values. Fixes #73941.
10529
10530 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
10531
10532         * security-manager.c|h: Added demandunmanaged method and 
10533         suppressunmanagedcodesecurity class to MonoSecurityManager.
10534         Renamed aptc class to allowpartiallytrustedcallers.
10535
10536 2005-03-17  Martin Baulig  <martin@ximian.com>
10537
10538         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
10539
10540 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10541
10542         * file-io.c: disabled file async. IO using aio_*. It uses the
10543         threadpool now. Workaround for bug #73718.
10544
10545 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10546
10547         * assembly.h, mono-config.c: added code to deal with bundled configs
10548         for bundled assemblies.
10549
10550 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
10551
10552         * *.c, private.h: cleanup, removing old private.h header file.
10553
10554 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
10555
10556         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
10557         and throw_on_unmappable_char attributes.
10558
10559 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
10560
10561         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
10562         _ProcessName_internal.
10563
10564 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
10565
10566         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
10567         #73631.
10568
10569         * icall.c threads.c threads-types.h: Remove slothash icalls as they
10570         are no longer used.
10571
10572 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
10573
10574         * object.c (compute_class_bitmap): Add support for generics. Fixes
10575         #73527.
10576
10577 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
10578
10579         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
10580
10581 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10582
10583         * filewatcher.c: commented out the code for windows watcher, as we don't
10584         use it (we use the managed implementation instead).
10585
10586 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
10587
10588         * object-internals.h (MonoThread): Remove 'unused1' field.
10589
10590         * appdomain.c: Bump corlib version.
10591
10592         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
10593
10594         * reflection.c (mono_reflection_create_runtime_class): Remove the
10595         AssemblyBuilder.Save optimization since it causes too many problems.
10596
10597 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
10598
10599         * exception.c|h: Added mono_get_exception_reflection_type_load to
10600         create a ReflectionTypeLoadException object.
10601         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
10602         to return NULL is a InheritanceDemand fails during reflection. Updated
10603         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
10604         ReflectionTypeLoadException if an InheritanceDemand fails during 
10605         reflection. Added icall mapping for GetLinkDemandSecurity.
10606         * security-manager.c|h: Added ves_icall_System_Security_
10607         SecurityManager_GetLinkDemandSecurity internal call to return the
10608         class and methods permissions set for a LinkDemand. Removed unused
10609         fields in MonoSecurityManager.
10610
10611 2005-03-10  Martin Baulig  <martin@ximian.com>
10612
10613         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
10614         it's a generic instance.
10615
10616 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
10617
10618         * reflection.c (mono_get_object_from_blob): Applied patch from
10619         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
10620
10621         * class.c (mono_class_is_assignable_from): Another try at fixing 
10622         #73469 without breaking anything.
10623
10624 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
10625
10626         * class.c: (mono_class_is_assignable_from): Revert the last changes
10627         since they don't work with generics.
10628         
10629         * class.c (mono_class_is_assignable_from): Fix build bustage.
10630
10631         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
10632         the managed IsAssignableFrom method. Fixes #73469.
10633
10634         * reflection.c (mono_reflection_call_is_assignable_from): New helper
10635         function.
10636
10637 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
10638
10639         * object.c (mono_load_remote_field_new): Fix returning uninitialized
10640         memory when the remoting callback does not sets the out arguments.
10641         Fixes #73007.
10642
10643         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
10644         by mistake.
10645
10646         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
10647
10648         * object-internals.h (MonoStackFrame): Sync with managed object layout.
10649
10650         * appdomain.c: Bump corlib version.
10651
10652 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
10653
10654         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
10655         function.
10656
10657         * threads.c (mono_thread_attach): Detect threads which are not started
10658         by the GC pthread wrappers.
10659
10660 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
10661
10662         * icall.c: Added new icall for RNG.
10663         * rand.c|h: Added new icall to open the RNG. This allows to share a 
10664         single handle on Linux to access /dev/urandom and fix #73183.
10665
10666 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
10667
10668         * object.c: setting the new vtable in a transparent proxy object must
10669         not change the GC descriptor.
10670
10671 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10672
10673         * object.c: fixed compilation without GCJ support.
10674         * reflection.c: for runtime-created types ensure klass->has_references
10675         is correct (bug #73215).
10676
10677 2005-03-02  Martin Baulig  <martin@ximian.com>
10678
10679         * class.c (mono_class_is_assignable_from): Make this work if
10680         `oklass' is a generic instance; fixes #72831.
10681
10682 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
10683
10684         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
10685         with hasthis set.
10686         
10687         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
10688
10689         * marshal.c: Reorganize native->managed marshalling code to also use
10690         the emit_marshal_... functions.
10691
10692 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10693
10694         * object.c: typed allocs have issues with bitmap sizes > 30,
10695         so check for max_set >= 30.
10696
10697 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
10698
10699         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
10700         managed code. Fixes #73012.
10701
10702         * metadata.h (MonoMarshalSpec): Add elem_mult field.
10703
10704         * metadata.c reflection.c: Load/Emit elem_mult as well.
10705         
10706         * metadata.h (MonoMarshalSpec): Add comment.
10707
10708         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
10709
10710         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
10711         num_elem to -1 if not given.
10712
10713         * object-internals.h (MonoReflectionMarshal): Add has_size field.
10714
10715         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
10716         given values.
10717
10718 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
10719
10720         * null-gc.c (mono_gc_free_fixed): Was not compilable.
10721
10722 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
10723
10724         * reflection.c (encode_marshal_blob): Encode param_num field as well.
10725
10726         * object-internals.h (MonoReflectionMarshal): Add param_num field.
10727
10728 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10729
10730         * object.c: generalized the reference bitmap creation
10731         and added hooks for the new GC.
10732         * class-internals.c: removed the gc_bitmap field from MonoClass.
10733
10734 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10735
10736         * domain.c: help the compiler to produce better code
10737         in mono_jit_info_table_find ().
10738
10739 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10740
10741         * object.c: make all allocations look typed.
10742
10743 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10744
10745         * socket-io.c: load Mono.Posix if it's not loaded already
10746         (fixes bug#73033).
10747
10748 2005-02-24  Martin Baulig  <martin@ximian.com>
10749
10750         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
10751         * reflection.c (dup_type): Likewise.
10752
10753 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
10754
10755         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
10756         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
10757
10758 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10759
10760         * domain.c, threads.c, object-internals.h: make the critical thread
10761         local vars use the fast access mode (even when we're compiled in
10762         a lib). Provide accessors to be used by the jit during codegen.
10763
10764 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10765
10766         * appdomain.c: Changed hook functios behavior to include
10767         support for the reflection only assemblies. Some icalls were changed
10768         to support the mentioned assemblies too. Signatures of static methods
10769         try_assembly_resolve and real_load now have an additional parameter:
10770         refonly.
10771
10772         * assembly.c: General changes to mono_assembly_ methods to support
10773         reflection only api. Functions mono_assembly_open, mono_assembly_load,
10774         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
10775         suffix, to support an additional gbool parameter to specify whether
10776         the assembli is reflection only or not. Created some new hook functions 
10777         to add support for reflection only assemblies. Signatures of static 
10778         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
10779         have now an additional parameter: refonly.
10780
10781         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
10782         indicating whether the assembly is reflection only or not.
10783
10784         * exception.c: Add mono_get_exception_invalid_operation.
10785
10786         * icall.c: Throw an InvalidOperationException when trying to invoke
10787         a property/method/event, or trying to set/get the value of a field.
10788         Also add an icall to retrieve the ref_only flag to the
10789         MonoReflectionAssembly.
10790
10791 2005-02-23  Chris Toshok  <toshok@ximian.com>
10792
10793         Part of fix for #72827.
10794         * mono-debug.c (mono_debug_add_method): add lexical block data to
10795         the info we write.  Kind of a hack at the moment - we copy the
10796         lexical block info from the MonoDebugMethodInfo to the
10797         MonoDebugMethodJitInfo here, before writing it.
10798         (mono_debug_read_method): read the lexical block info.
10799
10800         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
10801
10802         * debug-mono-symfile.h: add lexical block support.
10803
10804         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
10805         support.
10806
10807 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
10808
10809         * loader.c (mono_lookup_pinvoke_call): Fix warning.
10810
10811         * object.c (mono_runtime_free_method): Call mono_free_method () and
10812         put the TODOs there.
10813
10814         * loader.c (mono_free_method): Free up most memory allocated for 
10815         dynamic methods.
10816
10817 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
10818
10819         * reflection.c: properly flag a Type argument to a
10820         named custom attr value (bug #72248).
10821
10822 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10823
10824         * reflection.c: reduce code duplication in named custom
10825         attribute encoding.
10826
10827 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
10828
10829         * reflection.c: properly encode custom attrs of type object
10830         (bug #72649).
10831
10832 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
10833
10834         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
10835
10836 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
10837
10838         * socket-io.c: load System.dll if it's not loaded already
10839         (bug #72850 and #70477).
10840
10841 2005-02-21  Martin Baulig  <martin@ximian.com>
10842
10843         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10844         generic instances.
10845
10846 2005-02-21  Martin Baulig  <martin@ximian.com>
10847
10848         * reflection.c (mono_image_build_metadata): We also need to
10849         "fixup" the MethodImpl table after we computed the final method
10850         indices.  Call fixup_methodimpl() to do that.
10851         (fixup_methodimpl): New private method.
10852
10853 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10854
10855         * assembly.c: special case mscorlib.dll (bug#72536),
10856         patch from Carlos Alberto Cortez.
10857
10858 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
10859
10860         * threads-types.h threads.c: Fix build bustage.
10861
10862         * threads.c: Use a union for long<->double conversions.
10863
10864         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
10865         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
10866
10867         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
10868         containing the checkpoint call with NOT_TAKEN.
10869         
10870         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
10871         checkpoint before pushing the arguments, so they won't have to be
10872         spilled to stack.
10873
10874 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10875
10876         * domain.c, assembly.c, domain-internals.h: make some data
10877         const and relocation-free.
10878
10879 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
10880
10881         * object.c, appdomain.c, class-internals.h: introduce the
10882         MonoClassRuntimeInfo structure to hold the info needed to
10883         use a class at runtime. Made mono_class_vtable() lock-free
10884         for all the appdomains.
10885
10886 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
10887
10888         * metadata-internals.h, image.c: introduce a per-image mempool to
10889         be used for memory that has the same lifetime as the image.
10890
10891 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
10892
10893         * domain.c: In mono_init_internal(), instead of selecting the first
10894         runtime version supported by an executable, get a list of all
10895         supported versions and select the one for which an mscorlib exists
10896         (since even if the runtime supports a given version, it doesn't mean
10897         that the framework for that version is installed).
10898         Modified get_runtimes_from_exe to support this behavior.
10899         In supported_runtimes, added information about additional system
10900         assembly versions.
10901         
10902         * assembly.c: Added support for more than one system assembly version
10903         per runtime version. Updated the assembly list.
10904         In mono_assembly_remap_version, removed the initial version check,
10905         since we don't know to which version we need to compare until we
10906         get the version set on which the assembly is based.
10907         Moved the code for loading corlib into the new method
10908         mono_assembly_load_corlib(), so it can be used by the initialization
10909         code.
10910         
10911         * domain-internals.h: Updated data structures and added declaration
10912         for mono_assembly_load_corlib.
10913
10914 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
10915
10916         * reflection.c (resolve_object): Fix the creation of the signature in 
10917         the SignatureHelper case.
10918
10919         * assembly.c (mono_assembly_remap_version): Fix binary search.
10920         
10921 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
10922  
10923         * class.c: Added inheritance check when a method is overloaded (from a
10924         virtual method or when implementing an interface) and when a class is
10925         inherited. Added functions to set a failure for a class and to 
10926         retreive the exception from a failure.
10927         * class-internals.h: Added fields to MonoClass to keep the exception
10928         information status for inheritance (or other exceptions) to be thrown
10929         later (i.e. not at load time).
10930         * object.c: Throw the inheritance SecurityException when a type is to 
10931         be created with either class or method inheritance violations.
10932         * reflection.c|h: Fix when getting declsec from a class. Removed 
10933         unrequired code for class. Improved sanity in parameter naming.
10934         * security-manager.c|h: Added functions to check for class and method
10935         inheritance.
10936
10937 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
10938
10939         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
10940         and has_finalize in dynamic types as well.
10941
10942 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
10943
10944         * culture-info-table.h : fixed currency format for en-GB (and so on).
10945
10946 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
10947
10948         * gc.c: ensure the GC handles never have 0 as a value.
10949
10950 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
10951
10952         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
10953         a pointer to a struct to unmanaged code. Fixes #72625.
10954
10955 2005-02-16  Martin Baulig  <martin@ximian.com>
10956
10957         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
10958
10959 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
10960
10961         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
10962
10963 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
10964
10965         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
10966
10967         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
10968         UnmanagedFunctionPointerAttribute, use it for determining calling convention
10969         etc. Fixes #71471.
10970
10971         * reflection.c (mono_custom_attrs_get_attr): New helper function.
10972
10973         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
10974
10975 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
10976
10977         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
10978         changes to make the current context a field in MonoThread.
10979
10980 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
10981
10982         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
10983         the last change.
10984         
10985         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
10986         extracted from mono_marshal_get_native_wrapper.
10987
10988         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
10989         to create wrappers around native functions.
10990
10991         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
10992         delegates for arbitrary function pointers. Fixes #71472.
10993
10994 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
10995
10996         * threads.c: cleaned up the code a little.
10997
10998 2005-02-15  Martin Baulig  <martin@ximian.com>
10999
11000         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
11001         the data table.
11002
11003         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
11004         allocate larger chunks if needed.
11005
11006 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
11007
11008         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
11009         in by mistake.
11010
11011 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
11012
11013         * domain.c: keep the domains in an array and ensure the domain ids
11014         are kept small, so they can be used as indexes to domain-specific data
11015         with a small memory overhead.
11016
11017 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
11018
11019         * icall.c: Handle byref types in Type icalls. Fixes #72544.
11020
11021 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
11022
11023         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
11024
11025 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
11026
11027         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
11028
11029         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
11030         values.
11031
11032         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
11033         
11034 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
11035
11036         * domain-internals.h: add the hashtable here.
11037
11038         * class-internals.h: Remove `info' from MonoMethod
11039
11040         * domain.c: Add a new hashtable, jit_trampoline_hash
11041
11042 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11043
11044         * object.c: don't set the value of static fields
11045         (fixes bug#72494).
11046
11047 2005-02-11  Martin Baulig  <martin@ximian.com>
11048
11049         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
11050         (mono_debug_add_method): Silently ignore the method if it's too big.
11051         (mono_debug_add_type): Likewise.
11052
11053 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
11054
11055         * threads.c, appdomain.c: remove #ifdefs from the code.
11056
11057 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
11058
11059         * metadata-internals.h: Added flags to MonoAssembly to cache the most
11060         common security informations. This allows us to stay in unmanaged code
11061         when doing LinkDemand and it's special cases (except for the first 
11062         time for initialization). The flags a very much used with --security.
11063         * reflection.c|h: Added code to get declarative security attributes 
11064         for LinkDemand and InheritanceDemand. This required to refactor the
11065         existing code for Demand.
11066         * security-manager.c|h: Added new method fields for the special cases
11067         of LinkDemand.
11068
11069 2005-02-10  Martin Baulig  <martin@ximian.com>
11070
11071         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
11072         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
11073
11074 2005-02-10  Martin Baulig  <martin@ximian.com>
11075
11076         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
11077         debugging code; this is almost a complete rewrite.
11078
11079         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
11080
11081 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11082
11083         * domain.c, object.h: expose mono_string_equal () and 
11084         mono_string_hash ().
11085         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
11086         it's implemented in managed code.
11087
11088 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11089
11090         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
11091         lo leak objects between appdomains.
11092
11093 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11094
11095         * assembly.c: old compilers compilation fix from 
11096         robertj@gmx.net (Robert Jordan).
11097
11098 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
11099
11100         * class-internals.h: Little reminder for the future.
11101
11102         * debug-helpers.c: Fix up wrapper_type_names
11103
11104 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11105
11106         * image.c, metadata-internals.h: when loading an image from a file,
11107         mmap all of it and use the same codepaths as when using a
11108         in-memory image: the code is simpler and we use less memory
11109         (both writable and readonly).
11110
11111 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11112
11113         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
11114         API to alloc runtime data structures that need to be tracked by the
11115         GC and contain pointers.
11116         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
11117         make the code more readable and eventually use a different GC.
11118
11119 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
11120
11121         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
11122         for out arguments.
11123         
11124 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
11125
11126         * object.c: In release_type_locks(), don't release the cctor lock
11127         if it has already been released. This fixes a crash in the
11128         thread5 test.
11129
11130 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11131
11132         * gc.c, marshal.c, icall.c: register a delegate for finalization
11133         only when the native function pointer has been allocated for it.
11134
11135 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11136
11137         * object.c: cleaned up some code, allocate objects that are
11138         pointer free with the atomic malloc variant. Allocate memory
11139         for static data from the mempool if it's pointer-free.
11140         Allocate the bounds array at the end of the array data, when needed.
11141         * object-internals.h, object.h: move a private function in a private
11142         header.
11143         * class.c: handle missing case in tracking references in fields.
11144
11145 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11146
11147         * class.c, class-internals.h: keep track if a type has
11148         reference fields in either the instance or static fields.
11149
11150 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
11151
11152         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
11153         and renamed to MonoRuntimeInfo. Added fields to store the expected
11154         framework assembly version. Changed mono_get_framework_version and
11155         mono_get_runtime_version for a single mono_get_runtime_info method.
11156         
11157         * assembly.c: Added method to remap system assembly versions to the
11158         current executing runtime version. Removed old mapping code.
11159         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
11160         
11161         * icall.c, reflection.c: Track api changes.
11162
11163 2005-02-06  Miguel de Icaza  <miguel@novell.com>
11164
11165         * loader.c (method_from_memberref): Improve error reporting,
11166         produce the class name instead of the typeref/typedef index. 
11167
11168 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
11169
11170         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
11171
11172 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11173
11174         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
11175         stdcall and charset name mangling.  Reorganize the code and add
11176         some tracing stuff.
11177
11178 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
11179
11180         * monodiet.c: More iters!
11181
11182         * marshal.c: Iter usage.
11183
11184         * icall.c: Iter usage.
11185
11186         * object.c: Use iters.
11187
11188         * debug-helpers.c: More iters
11189
11190 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11191
11192         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
11193         under win32.
11194
11195 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
11196
11197         * mono-debug-debugger.c: use iters
11198
11199         * class.c, class-internals.h: mono_class_setup_events is static
11200         now
11201
11202         * All callers: use iters
11203
11204 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11205
11206         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
11207         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
11208
11209 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
11210
11211         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
11212
11213         * marshal.h: Add prototypes for ldfld/stfld_remote.
11214
11215         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
11216         this is called during startup.
11217         
11218 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
11219
11220         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
11221         MonoThreadsSync struct private in monitor.c. Changed the way
11222         MonoThreadsSync is allocated so it's faster and there is no
11223         need to keep track of it with a finalizer and it uses less memory.
11224         This also finally allows us to allocate mono objects as ptrfree when
11225         there are no reference fields.
11226
11227 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
11228
11229         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
11230         disappearing link to the GC interface and use them to simplify
11231         the gchandles code.
11232
11233 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
11234
11235         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
11236         stfld_remote which call mono_load/store_field_new. This allows methods
11237         calling ldfld/stfld wrappers to be AOTed.
11238
11239         * console-io.c: Include sys/filio.h under solaris.
11240         
11241         * console-io.c: Include curses.h if needed correctly.
11242
11243 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
11244         
11245         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
11246         method->klass as well.
11247
11248         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
11249
11250         * class.c (mono_class_init): Switch on lazy initialization of 
11251         methods.
11252
11253         * class.c (mono_class_get_finalizer): Handle the case when the 
11254         finalizer is inherited.
11255
11256 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11257
11258         * console-io.c: <curses.h> is needed by term.h on solaris.
11259
11260 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
11261
11262         * icall.c, class-internals.h, monodiet.c, class.c: Remove
11263         mono_class_setup_properties where possible. Remove this ftn from
11264         the header file, and make it static.
11265
11266 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
11267
11268         * loader.c: Add missing setup_... call.
11269
11270         * class.c: Add missing setup_... calls.
11271
11272         * class.c (mono_class_init): Switch on lazy initialization of 
11273         the generic vtable.
11274         
11275         * class.c (mono_class_init): Fix generics broken by the recent changes.
11276
11277         * monodiet.c (handle_type): Add missing setup_... calls.
11278
11279         * class.c: Back out garbage in previous patch.
11280         
11281         * class.c: Add missing setup_... calls.
11282
11283         * class.c (mono_class_get_method_from_name_flags): Avoid calling
11284         mono_class_setup_methods () if possible.
11285
11286         * class-internals.h (MonoClass): Add 'has_cctor' flag.
11287
11288         * class-internals.h (MonoCachedClassInfo): New structure.
11289
11290         * class.c: Initialize properties and events fields of MonoClass lazily.
11291
11292         * class.c: Add infrastructure for lazily initializing the methods and
11293         vtable fields of MonoClass. Not yet used.
11294
11295         * class.c (mono_class_get_finalizer): New helper function.
11296
11297         * class.c: Add infrastructure for loading some class related data from
11298         an AOT file.
11299
11300         * object.c: Add infrastructure for initializing the vtable from data
11301         in the AOT file.
11302
11303         * gc.c (run_finalize): Use mono_class_get_finalizer ().
11304
11305         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
11306         appropriate initialization function before accessing parts of the
11307         MonoClass structure.
11308
11309         * marshal.c: Fix warnings.
11310         
11311         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
11312
11313         * mono-debug-debugger.c (get_exception_message): Use 
11314         mono_class_get_method_from_name_flags ().
11315
11316 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
11317
11318         * reflection.c, appdomain.c: Replace a few manual searches that
11319         Zoltan missed. (Paolo approved this part of my initial patch).
11320
11321 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
11322
11323         * profiler.c: disable recording statistical events at report time.
11324
11325 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11326
11327         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
11328         to byteswap arrays of enum values, too (bug #72080).
11329
11330 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
11331
11332         * appdomain.c (set_domain_search_path): Allow this to be called if
11333         domain->setup is not yet set.
11334
11335         * loader.c (mono_method_get_index): New helper function.
11336
11337         * loader.c reflection.c: Use mono_method_get_index ().
11338
11339         * class.c (mono_class_get_method_from_name_flags): New helper method.
11340
11341         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
11342         this.
11343
11344         * class.c (mono_class_get_cctor): New helper method.
11345
11346         * string-icalls.c object.c class.c marshal.c reflection.c: Use
11347         mono_class_get_method () to look up methods.
11348
11349 2005-02-01  Miguel de Icaza  <miguel@novell.com>
11350
11351         * console-io.c: Fix the build, this should work on Windows.
11352
11353 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
11354
11355         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
11356         be set to null to keep things valid
11357
11358 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11359
11360         * icall.c: added Console 2.0 icalls.
11361         * Makefile.am: added console-io.[ch]
11362         * console-io.[ch]: internal calls for Console 2.0 API.
11363
11364 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11365
11366         * class.c: make sure we consider all the interfaces
11367         when calculating max_interface_id (bug found by
11368         Jeroen Frijters running ikvm).
11369
11370 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
11371
11372         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
11373         valuetype fields to null.
11374
11375         * object.c (set_value): Ditto. Fixes #71669.    
11376
11377 2005-01-31  Martin Baulig  <martin@ximian.com>
11378
11379         * metadata.c (mono_metadata_has_generic_params): New public
11380         function; checks whether something is a generic method.
11381
11382 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
11383
11384         * appdomain.c: fix infinite recursion when adding assemblies.
11385
11386 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
11387
11388         * object.c: Fix small typo to return all items for Environment.
11389         GetCommandLineArgs.
11390
11391 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11392
11393         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
11394         reflection.c: more domain and assembly-unload related fixes
11395         and memory leaks plugs.
11396
11397 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
11398
11399         * 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.
11400
11401 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
11402
11403         * loader.c (mono_method_signature): Make this method lazy
11404         (mono_get_method_from_token): Don't computate the signature here.
11405
11406         Doing this saves quite a bit of memory. I got 90 kb on starting up
11407         monodoc. It should also save some disk reads on startup.
11408
11409         * *: MonoMethod->signature might be NULL now. You *MUST* use
11410         mono_method_signature.
11411
11412 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
11413
11414         * object.c (mono_runtime_get_main_args): Return an array from the
11415         current domain here. Fixes #71938.
11416
11417 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
11418
11419         * monitor.c: formatting changes to comply with the
11420         mono coding style and remove #ifdefs from the code.
11421
11422 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11423
11424         * metadata.c, private.h: remove some unneeded data
11425         and use a more compact representation for table schemas.
11426
11427 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
11428
11429         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
11430         to get a better distribution in hash tables.
11431         * *.c: use mono_aligned_addr_hash() where appropriate.
11432         * assembly.c: make var static.
11433
11434 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
11435
11436         * domain-internals.h: Put MonoJitInfo on a diet.
11437
11438         * domain.c: Fix a warning.
11439
11440 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11441
11442         * gc.c: rework the gc handles code to reuse handles
11443         when freed.
11444
11445 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
11446
11447         * domain.c: fixed long standing bug in mono_string_equal() which
11448         was brought to light with the ldstr changes.
11449
11450 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
11451
11452         * reflection.c: Remove warning by adding missing include for marshal.h
11453
11454 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11455
11456         * domain.c, object.c: change the ldstr_table to hold
11457         MonoString* as keys: makes the runtime isinterned lookup
11458         faster and simplifies memory management.
11459
11460 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
11461  
11462         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
11463         possible to add imperative security checks before calling the icall.
11464         * reflection.c: Return security attributes on the original MonoMethod
11465         (and not the wrapped one). This fix permissions on icalls.
11466
11467 2005-01-25  Dick Porter  <dick@ximian.com>
11468
11469         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
11470         the check for mktime() support actually test the mktime() return
11471         value.  "Fixes" bug 71682, though the output is still different to
11472         MS.
11473
11474 2005-01-25  Martin Baulig  <martin@ximian.com>
11475
11476         * class.c (mono_class_is_assignable_from): Make this work for
11477         generic instances.
11478
11479 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
11480
11481         * marshal.c (mono_string_utf8_to_builder)
11482         (mono_string_builder_to_utf16): We might not have ownership of the
11483         string. In thise case, we need to create a new buffer.
11484
11485         * object-internals.h (mono_stringbuilder_capacity): sb->str might
11486         be null, in which case, use the default capacity.
11487
11488 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11489
11490         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
11491         GC events to the profiler.
11492
11493 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11494
11495         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
11496         if you don't want the GC to run.
11497
11498 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
11499
11500         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
11501         start providing a GC API and keeping different implementations in
11502         their own file.
11503         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
11504
11505 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
11506
11507         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
11508         mmap rather than allocating a huge buffer.
11509         (mono_debug_close_mono_symbol_file): Free the buffer allocated
11510         above.
11511
11512 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
11513
11514         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
11515         and CheckExecutionRights.
11516         * reflection.c|h: Keep the index of the declarative security to be 
11517         used, instead of the pointer, when AOT compiler is used. Also add 
11518         class initialization when requesting demands.
11519         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
11520         CheckExecutionRights. Both properties are now FALSE by default, and
11521         unmodifiable, unless the --security option is used.
11522
11523 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11524
11525         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
11526         reflection.c: properly refcount images and assemblies, many leaks fixed.
11527
11528 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11529
11530         * threadpool.c: increase the timeout for threads in the thread pool to
11531         10s.  Fixes bug #67159.
11532
11533 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
11534
11535         * class-internals.h: Sun's compiler insists on explicit
11536         signed on bit fields to handle then correctly.
11537
11538 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
11539
11540         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
11541         Make the size of the array fit only the number of invalid path
11542         chars that we have.
11543
11544         * class.c (_mono_class_get): Improve the error reporting when a
11545         class referenced is not found, to assist debugging. 
11546
11547 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
11548
11549         * threads.c: fix off-by-one error.
11550         * domain.c: free data allocated in the domain.
11551
11552 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
11553
11554         * reflection.c (mono_method_body_get_object): Fill out exception info
11555         as well.
11556
11557         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
11558         structure.
11559         
11560 2005-01-19  Martin Baulig  <martin@ximian.com>
11561
11562         * loader.c (mono_get_method_constrained): Make this work again.
11563
11564 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
11565
11566         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
11567         guint16 to match the managed side.
11568
11569         * reflection.c (mono_reflection_body_get_object): Fill out local
11570         variables array.
11571
11572         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
11573         as well.
11574
11575         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
11576         'local_var_sig_token'.
11577
11578 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
11579
11580         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
11581         System.Drawing.
11582
11583         * reflection.c (mono_method_body_get_object): Handle abstract and
11584         runtime methods.
11585
11586 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
11587
11588         * marshal.c, loader.c, class-internals.h, reflection.c:
11589         store the emthod data for a wrapper in an array instead of a list.
11590
11591 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
11592
11593         * marshal.c: change the code to allocate memory more
11594         conservatively for method wrappers.
11595
11596 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
11597
11598         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
11599         fields from MonoClass to the marshal info structure where they belong.
11600
11601 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11602
11603         * class.c, object.c, class-internals.h, marshal.c: rearrange
11604         some fields and tweak some types to lower memory usage.
11605
11606 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
11607
11608         * threads.c (signal_thread_state_change): Handle the case when the
11609         target thread is the current thread.
11610
11611         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
11612
11613         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
11614         emit_ptr_to_object_conv. 
11615
11616         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
11617         marshalling. Fixes #71352.
11618
11619 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11620
11621         * metadata.h, blob.h: move table enum to blob.h so it can be included
11622         in any header.
11623         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
11624         cut the size of MonoImage/MonoDynamicImage.
11625
11626 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
11627
11628         * profiler.c (mono_profiler_install_simple): Fix default arguments.
11629
11630 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
11631
11632         * reflection.c, reflection.h, icall.c: add a function to check
11633         if an attribute type is defined for a metadata object.
11634
11635 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
11636
11637         * object-internals.h: Added some needed fields from StringBuilder class.
11638         * marshal.c: Set the maxCapacity when creating a StringBuilder.
11639
11640 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
11641
11642         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
11643         threads before shutting down the runtime.
11644
11645         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
11646
11647 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11648
11649         * object-internal.h, threads.c: implement stacksize and 
11650         parameterized thread start functionality (requires
11651         matching corlib). Marked broken code for later removal.
11652
11653 2005-01-12  Martin Baulig  <martin@ximian.com>
11654
11655         * class-internals.h (MonoGenericClass): Moved the `initialized'
11656         flag to MonoDynamicGenericClass, removed `init_pending'.
11657         (MonoGenericInst): Added `is_reference' flag.
11658
11659 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
11660
11661         * reflection.c (mono_image_create_pefile): Only set the pe_offset
11662         inside the MSDOS header. Fixes #71201.
11663
11664         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
11665         gc thread.
11666         (mono_domain_finalize): Ditto.
11667
11668 2005-01-12  Martin Baulig  <martin@ximian.com>
11669
11670         * class.c (mono_get_shared_generic_class): Use the cache for
11671         non-dynamic generic classes.
11672
11673         * class-internals.h (mono_class_create_generic_2): Removed
11674         function prototype, this function is now static inside class.c.
11675
11676         * class.c (mono_class_create_generic_2): Made this static, only
11677         call it from mono_class_init() and mono_class_setup_parent().
11678         (collect_implemented_interfaces_aux): Call mono_class_init() on
11679         the interfaces we collect.
11680         (mono_class_setup_vtable): Call mono_class_init (class->parent).
11681
11682 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
11683
11684         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
11685         it a real thread handle.
11686
11687         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
11688         MonoJitExceptionInfo, since each catch clause needs its own variable.
11689         
11690 2005-01-11  Dick Porter  <dick@ximian.com>
11691
11692         * image.c (mono_pe_file_open): New variant on mono_image_open()
11693         that does not set up the CLI metadata; used for FileVersionInfo so
11694         it can get the data for windows binaries too.
11695         
11696         * process.c (process_read_string_block): Don't read off the end of
11697         the StringTable block.
11698
11699         These both fix bug 70766.
11700
11701 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
11702
11703         * gc.c: set some fields to NULL at GC cleanup time.
11704         * threads.c: if we quit the main thread, call exit ().
11705
11706 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
11707
11708         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
11709
11710 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
11711
11712         * threads.h, threads.c, object.c: added accessor and settor for
11713         main_thread. Handle it specially when exiting from it: wait
11714         for other foreground threads to exit.
11715
11716 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
11717
11718         * process.c, verify.c: remove some bloat.
11719
11720 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
11721
11722         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
11723         the calling convention to cdecl under win32.
11724
11725 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
11726
11727         * object.c (mono_object_get_size): New function to get the size of
11728         an object instance.
11729
11730         * profiler.c (simple_allocation): Use above.
11731
11732 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
11733
11734         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
11735         ves_icall_System_AppDomain_getRootDomain (as it's not required to
11736         get an appdomain by it's id and we can't assume the root's id is 0).
11737         * domain-internals.h: Change the function prototype to match.
11738         * icall.c: Change the icall table for AppDomain.
11739
11740 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
11741
11742         * locales.c (string_invariant_compare_char): Only compute
11743         GUnicodeTypes in the case where we need them.  Test for ordinality
11744         first and return if so.
11745
11746         From the commit:
11747
11748                 /*
11749                  * FIXME: here we must use the information from c1type and c2type
11750                  * to find out the proper collation, even on the InvariantCulture, the
11751                  * sorting is not done by computing the unicode values, but their
11752                  * actual sort order.
11753                  */
11754
11755 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
11756
11757         * loader.c: for P/Invoke methods, allow the "Internal" shared
11758         library name to refer to the calling process symbol namespace.
11759
11760 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
11761
11762         * Makefile.am: Add the security manager to the build.
11763         * security-manager.c|h: New. Initialization of the security manager.
11764
11765 2005-01-07  Dick Porter  <dick@ximian.com>
11766
11767         * threads.c: 
11768         * monitor.c: Update thread state during Monitor and WaitHandle
11769         waits.  Fixes bug 71031.
11770
11771 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
11772
11773         * reflection.c (property_encode_signature): Correctly handle when the
11774         property has no methods.
11775
11776 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
11777
11778         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
11779         
11780         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
11781         fields from mb, not rmb. Fixes #71017.
11782
11783         * marshal.c (emit_ptr_to_str_conv): Add support for 
11784         ByValTStr -> string conversion. Fixes #71015.
11785
11786         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
11787
11788         * mempool.c (mono_mempool_contains_addr): New helper function.
11789
11790 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
11791
11792         * metadata.c (mono_metadata_compute_size): Fix size calculation of
11793         HasSematics encoded fields.
11794         
11795         * metadata.c (mono_type_to_unmanaged): Improve error message for 
11796         invalid string marshalling.
11797
11798         * metadata.c: Fix warnings.
11799         
11800 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11801
11802         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
11803         profiler support.
11804
11805 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
11806
11807         * domain.c object.c domain-internals.h: Revert part of r38077 since the
11808         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
11809         tests.
11810
11811 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
11812
11813         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
11814         so methods containing these can be AOTed.
11815
11816 2005-01-03  Martin Baulig  <martin@ximian.com>
11817
11818         * loader.c (find_method): Removed the hack for generic instances.
11819         (method_from_memberref): If our parent is a generic instance, pass
11820         its generic type definition to find_method() and then inflate the
11821         method.
11822         (mono_get_method_constrained): Pass the generic type definition to
11823         find_method() and inflate the method later.
11824
11825         * class-internals.h (MonoStats): Added `generic_class_count'.
11826
11827         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
11828         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
11829
11830         * reflection.c (mono_custom_attrs_from_params): Don't ignore
11831         generic type definitions.
11832
11833 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
11834
11835         * loader.c icall.c: Fix warnings.
11836
11837 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
11838
11839         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
11840         blittable types. Fixes #70864.
11841
11842 2004-12-29  Martin Baulig  <martin@ximian.com>
11843
11844         * icall.c
11845         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
11846
11847         * reflection.c (mono_method_get_object): Create a
11848         "System.Reflection.MonoGenericMethod" for inflated methods; don't
11849         call mono_get_inflated_method().
11850
11851         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
11852
11853 2004-12-27  Martin Baulig  <martin@ximian.com>
11854
11855         * class-internals.h (MonoMethod): Added `is_inflated' flag.
11856         (MonoMethodInflated): Added `inflated' field.
11857
11858         * class.c (mono_class_inflate_generic_method): Don't really
11859         inflate the method here; just set the `is_inflated' flag in the
11860         MonoMethod.
11861         (mono_class_get_inflated_method): Actually inflate the method here
11862         if it's not already inflated; we use the MonoMethodInflated's new
11863         `inflated' field as a cache.
11864
11865 2004-12-26  Martin Baulig  <martin@ximian.com>
11866
11867         * class.c
11868         (inflate_generic_class): Moved some code out of inflate_generic_type().
11869         (mono_class_inflate_generic_method): If we're already inflated,
11870         inflate the context and use the declaring method; ie. make sure
11871         the declaring method of an inflated method is always the generic
11872         method definition.
11873         (mono_class_create_from_typedef): Create
11874         `class->generic_container->context->gclass'.
11875
11876 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
11877
11878         * metadata-internals.h, marshal.c, reflection.c: More
11879         MonoGHashTable->GHashTable.
11880
11881         * domain-internals.h, class.c: Change MonoGHashTable's into
11882         GHashTables for some cases where no gc stuff is used
11883
11884         All users: update apis
11885
11886 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
11887
11888         * metadata.c (builtin_types): Make this `const'. Makes this get
11889         put into the shareable section.
11890         (mono_metadata_init): Casts to make gcc happy.
11891
11892 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
11893
11894         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
11895
11896 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
11897
11898         * icall.c: Added an internal call to retrieve the position and length
11899         of assembly-level declarative security attributes (RequestMinimum, 
11900         RequestOptional and RequestRefuse). This is used by the Assembly class
11901         to re-create the corresponding permission sets.
11902
11903 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
11904
11905         * marshal.c: fix the stelemref wrapper to be type correct
11906         (and faster).
11907
11908 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
11909
11910         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
11911         to do key & 0x7fffffff. Hashtable already does this. It just
11912         results in longer code.
11913
11914 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
11915
11916         * appdomain.c: Bump corlib version.
11917         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
11918         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
11919         * reflection.c|h: Add functions to get declarative security infos
11920         (blob position and length) for assemblies, classes and methods.
11921
11922 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
11923
11924         * reflection.c: sort the constant table (bug #70693).
11925
11926 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
11927
11928         * object-internals.h, threads.c, domain.c: add accessors for
11929         the MonoThread and MonoDomain tls keys.
11930
11931 2004-12-18  Martin Baulig  <martin@ximian.com>
11932
11933         * class.c (inflate_generic_type): If we're inflating a generic
11934         instance, set `ngclass->context->container = context->container';
11935         ie. the container we inflated into.
11936
11937         * metadata.c (mono_metadata_parse_generic_param): Reflect above
11938         inflate_generic_type() changes.
11939
11940 2004-12-17  Martin Baulig  <martin@ximian.com>
11941
11942         * class-internals.h
11943         (MonoGenericClass): Replaced `MonoType *generic_type' with
11944         `MonoClass *generic_class'.  Removed `dynamic_info'; if
11945         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
11946         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
11947
11948 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
11949
11950         * exception.c (mono_exception_from_token): New helper function.
11951
11952 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
11953
11954         * assembly.c (mono_assembly_load_with_partial_name): Call 
11955         mono_assembly_loaded before invoking the preload hooks. Fixes
11956         #70564.
11957
11958         * object-internals.h (MonoThread): Change culture_info and 
11959         ui_culture_info into an array.
11960
11961         * threads.c: Cache culture info objects from more than one appdomain.
11962
11963         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
11964         current UI culture.
11965
11966 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
11967
11968         * threads.h threads.c appdomain.c: Clear the culture_info field of
11969         all threads during unloading if they point to an object in the dying
11970         appdomain.
11971
11972 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
11973
11974         * culture-info.h (TextInfoEntry): New struct
11975         * object-internals.h: sync with managed
11976         * locales.c: fill the `text_info_data' field
11977         * culture-info-tables.h: update
11978
11979 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
11980
11981         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
11982         collector.
11983
11984 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
11985
11986         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
11987         (ves_icall_ModuleBuilder_getMethodToken): Ditto
11988
11989 2004-12-12  Martin Baulig  <martin@ximian.com>
11990
11991         * mono-debug-debugger.c (write_type): If we're an enum and the
11992         builtin types have already been initialized, call mono_class_init().
11993
11994 2004-12-11  Martin Baulig  <martin@ximian.com>
11995
11996         * metadata.c (mono_metadata_load_generic_params): Added
11997         `MonoGenericContainer *parent_container' argument; automatically
11998         compute `container->is_method'; pass the correct owner to
11999         get_constraints().      
12000
12001         * reflection.c (compare_genericparam): Sort the GenericParam table
12002         according to increasing owners. 
12003
12004 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
12005
12006         * profiler.c: allow disabling the default profiler.
12007
12008 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
12009
12010         * decimal.c, icall.c: allow disabling System.Decimal support.
12011
12012 2004-12-09  Marek Safar <marek.safar@seznam.cz>
12013
12014         * reflection.c: Add support for null attribute arguments.
12015
12016 2004-12-09  Martin Baulig  <martin@ximian.com>
12017
12018         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
12019         names to get rid of compiler warnings.
12020
12021 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
12022
12023         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
12024         mono_marshal_load_type_info (). Fixes #69625.
12025         (mono_marshal_get_ptr_to_struct): Likewise.
12026
12027 2004-12-08  Martin Baulig  <martin@ximian.com>
12028
12029         * mono-debug.h: Bumped version number to 47.
12030
12031         * mono-debug-debugger.c
12032         (mono_debugger_event_handler, mono_debugger_event): Take two
12033         guint64 arguments insteed of a gpointer and a guint32.  
12034
12035 2004-12-08  Martin Baulig  <martin@ximian.com>
12036
12037         * debug-mono-symfile.h
12038         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
12039         `address' to `native_offset'.
12040
12041 2004-12-08  Martin Baulig  <martin@ximian.com>
12042
12043         * class.c (mono_class_create_from_typespec): Only inflate if we
12044         either have `context->gclass' or `context->gmethod'.
12045
12046 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
12047
12048         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
12049
12050         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
12051
12052         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
12053
12054         * reflection.c (mono_assembly_get_object): Remove the workaround put
12055         in for the release.
12056         
12057         * appdomain.c: Use the corlib_internal field from MonoAssembly.
12058
12059         * appdomain.c: Bump corlib version.
12060
12061         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
12062         be visible in other appdomains.
12063
12064 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
12065
12066         * threads.c: Interlocked inc and dec for longs were messed up,
12067         use a KISS based impl for this. Fixes 70234
12068
12069 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
12070
12071         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
12072
12073 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12074
12075         * icall.c: fix to follow policy not to allow struct
12076         arguments in icalls.
12077
12078 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12079
12080         * process.c: make the patch that handles spaces in file paths work
12081         on mono/windows too.
12082
12083 2004-12-06  Martin Baulig  <martin@ximian.com>
12084
12085         * class.c (mono_class_create_generic): Call
12086         mono_class_setup_supertypes() if we're dynamic.
12087         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
12088
12089 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
12090
12091         * object-internals.h: Add new fields to MonoThread.
12092
12093         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12094
12095         * icall.c threads-types.h threads.c: Add new icalls.
12096
12097         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
12098
12099         * object-internals.h (MonoReflectionAssembly): Sync object layout with
12100         managed side.
12101
12102         * appdomain.c: Bump corlib version.
12103
12104         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
12105         internal assemblies. Fixes #69181.
12106
12107 2004-12-05  Martin Baulig  <martin@ximian.com>
12108
12109         * class.c (mono_class_inflate_generic_signature): Make this a
12110         no-op if `context' is NULL or we don't have any type parameters;
12111         also copy `sentinelpos'.        
12112
12113 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
12114
12115         * image.c: Add unbox_wrapper_cache.
12116
12117         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
12118
12119         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
12120         function generator.
12121         
12122         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
12123         Fixes #70173.
12124
12125         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
12126         
12127 2004-12-04  Martin Baulig  <martin@ximian.com>
12128
12129         * loader.c (mono_method_get_signature_full): New public function;
12130         like mono_method_get_signature(), but with an additional
12131         `MonoGenericContext *' argument.
12132
12133         * class.c (mono_class_inflate_generic_signature): Formerly known
12134         as inflate_generic_signature(); make this public.
12135
12136 2004-12-04  Martin Baulig  <martin@ximian.com>
12137
12138         * metadata.c
12139         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
12140         instead of a `MonoGenericContainer *'.  
12141         (mono_metadata_parse_array_full): Likewise.
12142         (mono_metadata_parse_signature_full): Likewise.
12143         (mono_metadata_parse_method_signature_full): Likewise.
12144         (mono_metadata_parse_generic_inst): Likewise.
12145         (mono_metadata_parse_generic_param): Likewise.
12146         (mono_metadata_parse_mh_full): Likewise.
12147         (mono_type_create_from_typespec_full): Likewise.
12148
12149 2004-12-03  Martin Baulig  <martin@ximian.com>
12150
12151         * class-internals.h (MonoGenericContainer): Replaced the
12152         `MonoGenericContext * pointer with a `MonoGenericContext'
12153         structure and made it the first element.
12154
12155 2004-12-03  Martin Baulig  <martin@ximian.com>
12156
12157         * class.c
12158         (inflate_generic_type): Set the `context->container' when creating
12159         a new MonoGenericContext.
12160         (mono_class_inflate_generic_method): Likewise.
12161         (mono_class_create_from_typespec): Just use `context->container'
12162         to get the container.
12163
12164         * loader.c (method_from_methodspec): Set `context->parent' from
12165         `context->container' - and if that's a method container, use its
12166         parent.  Also set the `context->container' when creating a new
12167         MonoGenericContext.
12168         (mono_get_method_from_token): Use just `context->container' to get
12169         the container.
12170
12171         * metadata.c (do_mono_metadata_parse_generic_class): Also set
12172         `gclass->context->container'.
12173
12174         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
12175         the `context->container' when creating a new MonoGenericContext.
12176
12177 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
12178
12179         * reflection.c (compare_genericparam): Sort params with identical
12180         owner by their number. Fixes gen-111 on sparc.
12181
12182 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
12183
12184         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
12185         around the domain changes.
12186
12187         * appdomain.c (mono_domain_unload): Handle the case when the thread
12188         calling Unload is itself being aborted during unloading. Fixes #70022.
12189
12190         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
12191
12192         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
12193         checkpoint_func as an icall so it gets a wrapper.
12194         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
12195         in the cross-appdomain wrappers too.
12196
12197         * threads.c (mono_thread_has_appdomain_ref): Make this public.
12198
12199         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
12200
12201         * reflection.c: Fix some memory leaks.
12202         
12203 2004-12-02  Martin Baulig  <martin@ximian.com>
12204
12205         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
12206
12207         * metadata.c (generic_class_cache): New static hashtable.
12208         (mono_metadata_lookup_generic_class): New public method.
12209
12210 2004-12-02  Martin Baulig  <martin@ximian.com>
12211
12212         * class.c (mono_class_create_from_typedef): Call
12213         mono_class_setup_parent() and mono_class_create_mono_type() before
12214         parsing the interfaces.
12215
12216 2004-12-02  Martin Baulig  <martin@ximian.com>
12217
12218         * metadata.c (generic_inst_cache): New static hashtable.
12219         (mono_metadata_lookup_generic_inst): New public function.
12220         (mono_metadata_inflate_generic_inst): New public function.
12221         (mono_metadata_parse_generic_inst): New public function.
12222         (do_mono_metadata_parse_generic_class): Use the new
12223         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
12224         since this'll also use the cache.
12225
12226         * reflection.c (mono_reflection_bind_generic_method_parameters):
12227         Use mono_metadata_lookup_generic_inst() to use the new cache.
12228
12229         * class.c (inflate_mono_type): Use
12230         mono_metadata_inflate_generic_inst() to inflate a generic
12231         instance; this'll also use the new cache.
12232
12233         * loader.c (method_from_methodspec): Use
12234         mono_metadata_parse_generic_inst() and
12235         mono_metadata_inflate_generic_inst() rather than parsing it
12236         manually, so we can use the new cache.
12237
12238 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
12239
12240         * threads.c (wait_for_tids): Do not incorrectly free threads when 
12241         the wait times out.
12242
12243 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
12244
12245         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
12246         iter->args based on whether parameters are passed in registers (i.e.
12247         MONO_ARCH_REGPARMS is defined)
12248
12249 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
12250
12251         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
12252         the exception message. Fixes #70070.
12253         (method_from_methodspec): Fix warnings.
12254
12255 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12256
12257         * process.c: (complete_path) return the path quoted
12258
12259 2004-12-01  Martin Baulig  <martin@ximian.com>
12260
12261         * class-internals.h (MonoGenericInst): New structure.
12262         (MonoGenericClass): Replaced `type_argc', `type_argv' and
12263         `is_open' with `MonoGenericInst *inst'.
12264         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
12265         `is_open' with `MonoGenericInst *inst'.
12266
12267 2004-11-30  Martin Baulig  <martin@ximian.com>
12268
12269         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
12270
12271         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
12272         to `generic_class_cache'.
12273
12274         * metadata.c
12275         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
12276         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
12277         (mono_generic_inst_is_valuetype): Renamed to
12278         mono_generic_class_is_valuetype().
12279
12280         * class-internals.h
12281         (MonoGenericInst): Renamed to MonoGenericClass.
12282         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
12283         (MonoClass): Renamed `generic_inst' to `generic_class'.
12284         (MonoGenericContext): Renamed `ginst' to `gclass'.
12285
12286         * object-internals.h
12287         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
12288
12289         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
12290         mono_reflection_generic_class_initialize().
12291
12292         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
12293         now known as "System.Reflection.MonoGenericClass".
12294         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
12295
12296 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
12297
12298         * class-internals.h: Added a flag field to MonoClass to cache the
12299         declarative security attributes actions associated with the class.
12300         * domain-internals.h: Added booleans to MonoJitInfo to cache the
12301         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
12302         applicable to the JITted method.
12303         * reflection.c|h: Added functions to extract (as flags) which security
12304         actions are available (declaratively) for a method, class or assembly.
12305         * metadata.c|h: Added functions to search the declarative security
12306         table in the metadata.
12307         
12308 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
12309
12310         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
12311         EXPORTEDTYPES are already in the class name cache, so there is no
12312         need to add extra code here to look at them. Just removes a bit of
12313         cruft.
12314
12315         (ves_icall_System_Environment_get_TickCount): No need for #if
12316         WINDOWS. We already have the code in io-layer.
12317
12318 2004-11-28  Martin Baulig  <martin@ximian.com>
12319
12320         * loader.c
12321         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
12322         Fixes gen-112.cs.
12323
12324 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
12325
12326         * assembly.c (do_mono_assembly_open): Instead of having a
12327         conditional WITH_BUNDLE, incorporate support for bundles here, by
12328         having a global `bundles' variable holding a pointer to the actual
12329         bundles. 
12330
12331         (mono_register_bundled_assemblies): New API call used by the
12332         bundle code. 
12333
12334         See mkbundle.1 for details.
12335         
12336 2004-11-27  Martin Baulig  <martin@ximian.com>
12337
12338         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
12339         the vtable for generic methods.
12340
12341 2004-11-26  Martin Baulig  <martin@ximian.com>
12342
12343         * metadata.c
12344         (mono_metadata_generic_method_hash): New public function.
12345         (mono_metadata_generic_method_equal): Likewise.
12346
12347         * class-internals.h
12348         (MonoGenericContainer): Added `GHashTable *method_hash'.
12349
12350         * reflection.c (ReflectionMethodBuilder): Added
12351         `MonoGenericContainer *generic_container'.
12352         (reflection_methodbuilder_to_mono_method): Don't create a new
12353         MonoGenericContainer each time we're called.
12354         (mono_reflection_bind_generic_method_parameters): Use
12355         `container->method_hash' to cache the results so we don't create a
12356         different method if we're called several times with the same
12357         arguments.
12358
12359         * loader.c (method_from_methodspec): Use the new
12360         `container->method_hash' here, too.
12361
12362 2004-11-26  Martin Baulig  <martin@ximian.com>
12363
12364         * class.c (inflate_generic_signature): Correctly compute
12365         `res->has_type_parameters'.
12366         (mono_class_vtable): Use the `has_type_parameters' flag to
12367         determine whether we're a generic method.
12368
12369         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
12370
12371 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
12372
12373         * object.c (mono_runtime_run_main): Fix a small memory leak.
12374
12375 2004-11-25  Martin Baulig  <martin@ximian.com>
12376
12377         * class.c (set_generic_param_owner): Fixed the loop.
12378
12379 2004-11-25  Martin Baulig  <martin@ximian.com>
12380
12381         * object.c (mono_class_vtable): Don't create any JIT wrappers for
12382         generic methods.
12383
12384 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
12385
12386         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
12387         names. Fixes #69787.
12388
12389 2004-11-24  Martin Baulig  <martin@ximian.com>
12390
12391         * class.c (mono_class_create_generic_2): If we don't have a
12392         `ginst->parent', inflate `gklass->parent' to get our parent.
12393
12394 2004-11-24  Martin Baulig  <martin@ximian.com>
12395
12396         * reflection.c (compare_genericparam): Correctly sort the
12397         GenericParam table; fixes #69779.
12398
12399 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
12400
12401         * reflection.c: When writing a PE file, don't create a huge
12402         buffer in memory. Just write the arrays we have to the file.
12403         This reduces memory usage.
12404
12405         * metadata-internals.h: MonoDynamicStream pefile is no longer used
12406         globally.
12407
12408 2004-11-17  Martin Baulig  <martin@ximian.com>
12409
12410         * class.c (mono_class_init): Don't setup `class->parent' for
12411         dynamic instances; moved this to mono_class_generic_2().
12412         (mono_class_create_generic): Also set `klass->inited' for dynamic
12413         generic instances.
12414         (mono_class_create_generic_2): Don't do anything for dynamic
12415         generic instances.  Set `klass->parent' here and also call
12416         mono_class_setup_parent() here. 
12417
12418         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
12419         `MonoType *parent' argument; set `ginst->parent' before calling
12420         mono_class_create_generic_2(), so we set the correct parent.
12421
12422 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
12423
12424         * reflection.c: allow getting attributes from ModuleBuilder
12425         (used by ikvm).
12426
12427 2004-11-17  Martin Baulig  <martin@ximian.com>
12428
12429         * class.c (mono_class_create_from_typedef): If a type parameter is
12430         inherited from an outer class, set its owner to that class.
12431
12432 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
12433
12434         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
12435           for (int*) written size. This fixes bug #69592.
12436
12437 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
12438
12439         * icall.c: Added IsAuthenticodePresnet internal call.
12440         * image.c|h: New function that check a MonoImage for an Authenticode
12441         signature in the certificate PE data directory.
12442         * security.c|h: New internal call to ask the runtime if an 
12443         Authenticode signature seems referenced in the PE header.
12444
12445 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
12446
12447         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
12448
12449         * reflection.c (mono_image_create_pefile): Free the assembly streams
12450         after writing out the assembly file.
12451
12452         * object.c (mono_runtime_run_main): Fix small memory leak.
12453
12454         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
12455         property access modifiers. Fixes #69389.
12456
12457 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
12458
12459         * domain.c, object.c, object-internals.h, domain-internals.h,
12460         object.h, marshal.c: keep dynamic code info per domain.
12461
12462 2004-11-15  Martin Baulig  <martin@ximian.com>
12463
12464         * class.c (mono_type_get_name_recurse): Put type arguments in
12465         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
12466         see bug #68387.
12467
12468 2004-11-15  Martin Baulig  <martin@ximian.com>
12469
12470         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
12471         (mono_class_setup_vtable): When computing `the_cname' for a
12472         generic instance, don't include the namespace since we'd otherwise
12473         add it twice.
12474
12475 2004-11-15  Martin Baulig  <martin@ximian.com>
12476
12477         * class.c (mono_class_create_generic): Changed return type to void.
12478         (mono_class_create_generic_2): New public function; setup
12479         `class->method', `class->field' and `class->interfaces' here
12480         instead of in mono_class_init().
12481
12482         * class.h (mono_class_create_generic): Moved to class-internals.h.
12483
12484 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
12485
12486         * reflection.c (mono_image_create_pefile): take a file HANDLE.
12487         rather than writing to memory, write to this file. Right now,
12488         we are just writting into a buffer, and copying that. However
12489         we can avoid the buffer later.
12490
12491         (mono_dynamic_stream_reset): new function
12492
12493         * icall.c, object-internals.h: update for the above.
12494
12495 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
12496
12497         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
12498         have been using gc'd memory. First it is slower, unlikely
12499         the comment in the source code said, secondly, it increases
12500         our footprint to do it in the gc.
12501
12502         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
12503         the method so that it does not have to copy to managed code.
12504
12505 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
12506
12507         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
12508
12509 2004-11-12  Martin Baulig  <martin@localhost>
12510
12511         * reflection.c (mono_image_create_token): Allow generic method
12512         definitions here, since they may appear in an `.override'; see
12513         gen-98/gen-99 for an example.
12514
12515 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
12516
12517         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
12518         #69365.
12519
12520         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
12521         descriptive.
12522
12523 2004-11-11  Martin Baulig  <martin@ximian.com>
12524
12525         * class.c (mono_class_setup_vtable): In an explicit interface
12526         implementation, the method name now includes the arity.
12527
12528 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
12529
12530         * object.c (mono_array_full_copy): Fix warning.
12531
12532 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
12533
12534         * appdomain.c: Removed look_for_method_by_name(). Use the new method
12535         mono_class_get_method_from_name() instead.
12536         
12537         * class-internals.h: Added two new types of wrappers. 
12538         Added MonoRemotingTarget enum. Added new trampoline function type, which
12539         takes an additional MonoRemotingTarget value as parameter, so it is
12540         possible to request a trampoline for a specific target.
12541         
12542         * class.c: Added new mono_class_get_method_from_name() method.
12543         
12544         * class.h: In MonoRemoteClass, we can have now to vtables, one for
12545         general remoting sinks and one specific for cross domain calls.
12546         
12547         * debug-helpers.c: Added new wrapper names.
12548         
12549         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
12550         of a remote class.
12551         
12552         * image.c: Porperly delete value objects form the remoting invoke hashtable.
12553         
12554         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
12555         with several other methods (mono_marshal_get_xappdomain_dispatch,
12556         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
12557         and others) can generate a fast remoting wrapper for cross domain calls.
12558         More information can be found in docs/remoting.
12559         Other changes: Removed mono_find_method_by_name, and used
12560         mono_class_get_method_from_name instead.
12561         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
12562         is stored in the remoting invoke hashtable.
12563         
12564         * marshal.h: published the new method for getting the xdomain wrapper,
12565         and also added a method for getting the adequate wrapper for a given
12566         method and target.
12567         
12568         * object-internals.h, object.c: Added a couple of methods for capying and
12569         cloning arrays.
12570         Modified mono_install_remoting_trampoline, which takes the new remoting
12571         trampoline that has a remoting target as parameter.
12572         mono_class_proxy_vtable now also takes a remoting target as parameter, and
12573         will return the most suitable vtable for the target.
12574         Added mono_remote_class_vtable, which returns the vtable of a remote class
12575         (which can be the normal remoting vtable or the xdomain vtable).
12576         
12577         * threads.c: the xdomain invoke and dispatch wrappers must also be
12578         protected against interruptions.
12579
12580 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12581
12582         * icall.c: use memmove in BlockCopyInternal when the source and
12583         destination arrays are the same.
12584
12585 2004-11-09  Martin Baulig  <martin@ximian.com>
12586
12587         * class-internals.h (MonoGenericContainer): Removed `method' and
12588         `signature', replaced them with `is_method' and `is_signature'
12589         flags.  Added `context'.
12590
12591         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
12592         instead of a `MonoGenericContainer *'.
12593
12594         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
12595         for dynamic type parameters.
12596         (mono_metadata_load_generic_params): Setup `container->context'.
12597
12598         * reflection.c (mono_reflection_setup_generic_class): Setup
12599         `tb->generic_container->context'.
12600         (do_mono_reflection_bind_generic_parameters): Use
12601         mono_class_inflate_generic_type() to correctly inflate types,
12602         rather than using our own hack just for MONO_TYPE_VAR.
12603
12604 2004-11-09  Martin Baulig  <martin@ximian.com>
12605
12606         * class.c (mono_class_inflate_generic_method): Small fix; don't
12607         crash here.
12608
12609         * icall.c
12610         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
12611         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
12612         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
12613         (ves_icall_Type_BindGenericParameters): Likewise.
12614         (ves_icall_Type_get_IsGenericInstance): Likewise.
12615         (ves_icall_Type_GetGenericParameterPosition): Likewise.
12616         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
12617         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
12618         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
12619
12620 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
12621
12622         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
12623         assembly versions and public key tokens. Fixes #69113.
12624
12625 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
12626
12627         * metadata.c: fix bug introduced with the type cache changes
12628         on 2004-11-06.
12629
12630 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
12631
12632         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
12633         the MonoClass pointer instead of the token in exception clauses.
12634         * reflection.c: updates for the above and make the code not depend
12635         on the structure of MonoExceptionClause.
12636
12637 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
12638
12639         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
12640         Add support for dynamic assemblies. Fixes #69114.
12641
12642         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
12643
12644 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
12645
12646         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
12647         since most only those methods use it. the code member of
12648         MonoMethodPInvoke was dead, so that can be removed too. Also,
12649         remove inline_count (again, not used), and move slot so that it
12650         can share bits with some other flags. This saves 8 bytes in the
12651         structure and gives us about 50 kb back for mcs helloworld.cs
12652
12653         * *.[ch]: Do naming changes for the above.
12654
12655         * loader.c (mono_method_get_header): Lazily init the header
12656         on first access.
12657         (mono_get_method_from_token): don't init the header here
12658         (mono_free_method): the header may never be allocated
12659
12660         Overall, this saves 150 kb of unmanaged allocations
12661         for mcs helloworld.cs. That accounts for 10% of the unmanaged
12662         memory at runtime.
12663         
12664         * loader.c, loader.h (mono_method_get_header): new accessor.
12665
12666         * *.[ch]: use the above method. Prepares us to lazily load
12667         the header.
12668
12669         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
12670         three warnings, which are actual bugs (see 69206).
12671
12672         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
12673         unused. Saves a cool 4 bytes / method.
12674
12675 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
12676
12677         * metadata.c (builtin_types): Add types for System.Object here.
12678         (mono_metadata_parse_type_full): Cache MonoType*'s that are
12679         for a class or valuetype from klass->this_arg or klass->byval_arg.
12680
12681         On mcs for a hello world, this gets us down from 21836 MonoType's
12682         to 14560.
12683
12684         (mono_metadata_free_type): Account for the above change.
12685
12686 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
12687
12688         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
12689         exception instead of asserting if name is null.
12690         (ves_icall_System_AppDomain_GetData): Ditto.
12691
12692 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
12693
12694         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
12695         EnumBuilder.
12696
12697         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
12698         Return NULL when the domain does not have entry_assembly set.
12699
12700         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
12701         Add a 'resource_modules' argument.
12702         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
12703
12704         * reflection.c (mono_reflection_create_runtime_class): Move setting
12705         of wastypebuilder here, so mono_get_type_object () returns a MonoType
12706         for enums too.
12707
12708         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
12709         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
12710         Throw an ArgumentNullException if 'ptr' is null.
12711
12712         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
12713         assemblies here. Fixes #69020.
12714
12715 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
12716
12717         * reflection.c (build_compressed_metadata): Fix the previous patch for
12718         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
12719         the stack.
12720
12721 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
12722
12723         * assembly.c (mono_assembly_names_equal): Allow a match if one of
12724         the cultures is false. Fixes #69090.
12725
12726         * reflection.c (build_compressed_metadata): Fix invalid memory read 
12727         detected by valgrind.
12728         
12729         * reflection.c (mono_reflection_get_type): Avoid triggering a 
12730         TypeResolve multiple times for the same type. Fixes #65577.
12731
12732 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
12733
12734         * marshal.c: Avoid using ldftn to call managed functions. It is
12735         much slower than just a call.
12736
12737         * reflection.c (mono_module_get_object): free the basename we
12738         allocate here from glib.
12739         
12740         * reflection.c (ensure_runtime_vtable): make sure to free
12741         overrides.  Also, we were allocating an array of MonoMethod not an
12742         array of MonoMethod*.
12743
12744         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
12745
12746         * image.c (mono_image_close): free image->guid here.
12747
12748 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
12749
12750         * reflection.c: Fix some spec conformance issues with the PE file
12751         structures so mcs compiled apps run on the Net 2.0 beta.
12752
12753 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
12754
12755         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
12756         Implement this. Fixes #67264.
12757
12758         * debug-helpers.h debug-helpers.c marshal.c: Move 
12759         mono_find_method_by_name to debug-helpers.c.
12760
12761 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
12762
12763         * object.c (mono_release_type_locks): type_initialization_hash is
12764         a GHashTable.
12765
12766         * reflection.c object.c object-internals.h: Fix warnings.
12767
12768         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
12769         without accessors. Fixes #61561.
12770
12771         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
12772         application base from the root domain if not set. Fixes #65641.
12773         (mono_runtime_init): Fix warning.
12774
12775 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12776
12777         * appdomain.c: call mono_thread_pool_init.
12778         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
12779         of worker threads based on the number of CPUs and the environment
12780         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
12781         for non-windows (windows) systems.
12782
12783 2004-10-27  Chris Toshok  <toshok@ximian.com>
12784
12785         * mono-debug-debugger.c (write_class): don't call mono_class_init
12786         here, as even with the check for (!klass->init_pending), we get
12787         into a situation where we're hitting cycles in class
12788         initialization.  Fixes #68816.
12789
12790 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
12791
12792         * image.c: Avoid overwriting values in the loaded_images_hash when an
12793         assembly is loaded multiple times. Fixes #61152.
12794
12795         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
12796         so multiple satellite assemblies for the same name can be loaded.
12797         Fixes #68259.
12798
12799         * mono_domain_assembly_preload: Actually return the loaded assembly, 
12800         not NULL.
12801
12802         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
12803         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
12804
12805         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
12806         pending finalizers are not invoked after the appdomain has been 
12807         unloaded. Fixes #67862.
12808
12809 2004-10-22  Martin Baulig  <martin@ximian.com>
12810
12811         * mono-debug-debugger.c
12812         (mono_debugger_runtime_invoke): Don't box valuetypes.
12813
12814 2004-10-22  Chris Toshok  <toshok@ximian.com>
12815
12816         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
12817         don't hide private methods.
12818
12819 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
12820
12821         * icall.c: Allows the runtime to "share" (when known) the public key
12822         token of an assembly. This avoid the need to recalculate the token 
12823         (from the public key) in managed code.
12824
12825 2004-10-21  Chris Toshok  <toshok@ximian.com>
12826
12827         * debug-helpers.c (append_class_name): argh, revert last patch.
12828         
12829 2004-10-21  Chris Toshok  <toshok@ximian.com>
12830
12831         * debug-helpers.c (append_class_name): use '+' as the delimiter,
12832         not '/', so that it matches what the debugger uses to look up
12833         methods.
12834
12835 2004-10-21  Martin Baulig  <martin@ximian.com>
12836
12837         * mono-debug-debugger.c (mono_debugger_throw_exception): New
12838         public method; this is called each time an exception is thrown and
12839         allows the debugger to use exception catch points.
12840
12841 2004-10-21  Martin Baulig  <martin@ximian.com>
12842
12843         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
12844         the stack pointer and the exception object in some struct and pass
12845         that to the debugger.
12846
12847 2004-10-21  Chris Toshok  <toshok@ximian.com>
12848
12849         * mono-debug-debugger.c (do_write_class): add instance/static
12850         event support.  We don't expose "raise" or "other" yet.
12851         (event_is_static): new method.
12852
12853 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
12854
12855         * mono-debug-debugger.c
12856         (mono_debugger_handle_exception): Remove
12857         bogus return value for fussy compilers.
12858
12859 2004-10-20  Martin Baulig  <martin@ximian.com>
12860
12861         * mono-debug-debugger.c
12862         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
12863         (mono_debugger_handled_exception): Likewise.
12864
12865 2004-10-20  Martin Baulig  <martin@ximian.com>
12866
12867         * mono-debug-debugger.h (MonoDebuggerEvent): Added
12868         MONO_DEBUGGER_EVENT_EXCEPTION.
12869
12870         * mono-debug-debugger.c (mono_debugger_handle_exception): New
12871         public function to send the debugger a notification for an
12872         exception and inform it about a catch/finally clause.
12873
12874 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
12875
12876         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
12877         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
12878         fix 2.95 build. 
12879
12880         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
12881
12882 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
12883
12884         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
12885         marshalled as [In,Out]. Fixes #58325.
12886
12887 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
12888
12889         * reflection.c (mono_method_body_get_object): Implement some fields.
12890
12891 2004-10-12  Martin Baulig  <martin@ximian.com>
12892
12893         * reflection.c (mono_reflection_bind_generic_parameters): Small
12894         fix, correctly retrieve our parent from a generic instance.
12895
12896 2004-10-12  Martin Baulig  <martin@ximian.com>
12897
12898         * metadata.c (mono_metadata_generic_param_equal): We always have
12899         an owner.
12900
12901         * class.c
12902         (mono_class_from_generic_parameter): We need to have an owner.
12903         (my_mono_class_from_generic_parameter): Likewise.
12904
12905         * reflection.c (mono_reflection_setup_generic_class): Renamed to
12906         mono_reflection_create_generic_class() and added a new
12907         mono_reflection_setup_generic_class().  
12908         (mono_reflection_initialize_generic_param): If we're a nested
12909         generic type and inherited from the containing class, set our
12910         owner to the outer class.
12911
12912 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
12913
12914         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
12915
12916         * reflection.c (mono_method_body_get_object): New function to create
12917         a MethodBody object.
12918
12919         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
12920
12921 2004-10-11  Martin Baulig  <martin@ximian.com>
12922
12923         * metadata.c (_mono_metadata_type_equal): Renamed to
12924         do_mono_metadata_type_equal() and made static.
12925
12926 2004-10-11  Martin Baulig  <martin@ximian.com>
12927
12928         * appdomain.c: Bump corlib version number to 28.
12929
12930 2004-10-10  Martin Baulig  <martin@ximian.com>
12931
12932         * class-internals.h
12933         (MonoGenericInst): Added `MonoGenericContainer *container'.
12934         (MonoGenericMethod): Likewise.
12935         (MonoGenericContext): Likewise.
12936         (MonoGenericParam): Added `MonoGenericContainer *owner'.
12937
12938         * metadata.c
12939         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
12940         (do_mono_metadata_parse_generic_inst): Likewise.
12941         (mono_metadata_parse_type_full): New public method.  This is the actual
12942         mono_metadata_parse_type() implementation - with an additional
12943         `MonoGenericContainer *' argument.
12944         (mono_metadata_parse_array_full): Likewise.
12945         (mono_metadata_parse_signature_full): Likewise.
12946         (mono_metadata_parse_method_signature_full): Likewise.
12947         (mono_metadata_parse_mh_full): Likewise.
12948         (mono_type_create_from_typespec): Likewise.
12949         (mono_metadata_interfaces_from_typedef_full): New public method;
12950         this is similar to the other _full() methods, but we take a
12951         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
12952         (mono_metadata_parse_generic_param): Take an additional
12953         `MonoGenericContainer *' argument and lookup the MonoGenericParam
12954         from that container.
12955         (mono_metadata_generic_param_equal): New static method to compare
12956         two type parameters.
12957         (_mono_metadata_type_equal): New static method; takes an
12958         additional `gboolean signature_only' argument - if true, we don't
12959         compare the owners of generic parameters.
12960         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
12961         with a TRUE argument - do a signature-only comparision.
12962
12963         * loader.c: Use the new _full() methods and pass the
12964         MonoGenericContainer to them.
12965
12966         * object-internals.h (MonoReflectionTypeBuilder): Added
12967         `MonoGenericContainer *generic_container' field.
12968         (MonoReflectionMethodBuilder): Likewise.
12969
12970 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
12971
12972         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
12973         case initial images of dynamic assemblies.
12974
12975         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
12976
12977         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
12978
12979         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
12980         length of event->other array.
12981         (typebuilder_setup_events): Ditto.
12982
12983         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
12984         'assembly_by_name' and add an 'assemblies' list.
12985
12986         * assembly.h assembly.c: Add a new search hook for determining whenever
12987         an assembly is already loaded. Use this instead of searching in the
12988         loaded_assemblies list.
12989
12990         * domain.c appdomain.c: Implement the new search hook so loaded 
12991         assemblies are now scoped by appdomain. Fixes #67727.
12992
12993 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
12994
12995         * threads.c (mono_thread_attach): Initialize synch_lock field so
12996         mono_thread_detach works again.
12997
12998         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
12999         'lib' too. Fixes #63130.
13000
13001 2004-10-06  Jackson Harper  <jackson@ximian.com>
13002
13003         * culture-info-tables.h: regenerated.
13004
13005 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
13006
13007         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
13008         implemented by other interfaces in the result. Fixes #65764.
13009         
13010         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13011         Handle unloadable modules without crashing.
13012
13013         * image.c (load_modules): Revert the previous patch since modules must
13014         have a fixed index inside the array.
13015         
13016         * image.c (load_modules): Don't include native modules in the modules
13017         array.
13018
13019 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
13020
13021         * reflection.h: Add param_defaults field.
13022
13023         * reflection.c: Add support for parameter defaults in dynamic methods.
13024         Fixes #64595.
13025
13026         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
13027         an empty string when a type has no namespace. Fixes #64230.
13028
13029 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
13030
13031         * tabledefs.h: Added "internal" security actions to support non-CAS
13032         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
13033         Note: they do not seems to be used anymore in 2.0 (new metadata format)
13034
13035 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
13036
13037         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
13038         constructor of abstract class. Fixes #61689.
13039
13040 2004-10-04  Martin Baulig  <martin@ximian.com>
13041
13042         * class-internals.h (MonoGenericContainer): New type.
13043         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
13044         `MonoGenericContainer *generic_container'.
13045         (MonoClass): Replaced `gen_params' and `num_gen_params' with
13046         `MonoGenericContainer *generic_container'.
13047
13048         * metadata.c (mono_metadata_load_generic_params): Return a
13049         `MonoGenericContainer *' instead of a `MonoGenericParam *';
13050         removed the `num' argument.
13051
13052 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
13053
13054         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
13055         for dynamic images.
13056
13057         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
13058         machine fields.
13059
13060         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
13061
13062         * reflection.c: Save pe_kind and machine values into the generated
13063         image file.
13064
13065         * appdomain.c: Bump corlib version number.
13066
13067         * object-internals.h: Reorganize layout of LocalBuilder.
13068
13069         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
13070         New helper function.
13071
13072         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
13073         created MonoType for dynamic types. Fixes #66180.
13074
13075 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
13076
13077         * threadpool.c: the ares hashtable needs a critical section around it.
13078         this prevents some nasty segfaults
13079
13080 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
13081
13082         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
13083         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
13084         bug 67324).
13085         
13086 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
13087
13088         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
13089         
13090 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
13091
13092         * image.c: Always canonicalize image file names, to avoid loading
13093         the same assembly twice when referenced using a relative path.
13094
13095 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
13096
13097         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
13098
13099         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
13100
13101         * marshal.c: Fix warnings.
13102
13103 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
13104
13105         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
13106         attempting to marshal the delegate_trampoline as the method_addr.
13107         This patch has a static hashtable of marshalled delegates so that 
13108         we can map delegate_trampoline addresses back to delegates.  This
13109         allows a delegate passed to managed code to be passed back into native
13110         code.  Fixes #67039
13111
13112 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
13113
13114         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
13115
13116         * reflection.c (method_encode_code): Align method headers properly.
13117         Fixes #66025.
13118
13119 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
13120
13121         * marshal.c: In the runtime invoke wrapper, reset the abort
13122         exception if it is cached. This avoids the automatic rethrowal of 
13123         the exception after the catch of the wrapper. Also check for pending
13124         interruptions before calling the managed method. This is done using
13125         the new method emit_thread_force_interrupt_checkpoint, since the
13126         normal checkpoint method is ignored when running the invoke wrapper.
13127         * object.c: If the abort exception is rethrown, set the abort_exc
13128         field of the thread, so it will be rethrown aftere every catch.
13129         * threadpool.c: Only run an interruption checkpoint if what has been
13130         requested is a stop of the thread (aborts will be ignored).
13131         * threads.c: By default, a thread will now never be interrumped while
13132         running the runtime invoke wrapper (this ensures that runtime_invoke
13133         will always return to the caller if an exception pointer is provided).
13134         There is a new special method mono_thread_force_interruption_checkpoint()
13135         to force an interruption checkpoint even if running a protected
13136         wrapper, which is used by the same runtime invoke wrapper to do a check
13137         at a safe point.
13138
13139 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
13140
13141         * object.c, object-internals.h: Implemented mono_release_type_locks,
13142         which releases the cctor locks held by a thread.
13143         * threads.c, threads.h: In thread_cleanup, release cctor locks held
13144         by a thread. Added mono_thread_exit() method to be used to safely stop
13145         a thread.
13146
13147 2004-09-28  Raja R Harinath  <rharinath@novell.com>
13148
13149         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13150         Move null check before dereference.  Avoid indexing beyond the end
13151         of the 'modules' array.
13152
13153 2004-09-28  Raja R Harinath  <rharinath@novell.com>
13154
13155         * metadata-internals.h (MonoImage): Add module_count field.
13156         * image.c (load_modules): Set image->module_count.
13157         (mono_image_load_file_for_image): Use image->module_count.
13158         * reflection.c (mono_image_load_module): Append to image->modules array 
13159         of dynamic assembly.
13160         (mono_module_get_object): Fix loop to actually increment index.
13161         Use image->module_count.
13162         * assembly.c (mono_assembly_load_references): Use image->module_count.
13163         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13164         Likewise.
13165
13166 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
13167
13168         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
13169         Avoid assert on generic types.
13170
13171 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
13172
13173         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
13174
13175         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
13176
13177         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
13178         function to convert a MarshalSpec structure to its managed counterpart.
13179
13180         * reflection.c: Fix warnings.
13181         
13182         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
13183         field.
13184
13185         * icall.c (mono_create_icall_signature): Fix build.
13186
13187 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
13188
13189         * icall.c: Add MakePointType icall.
13190
13191         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
13192         warnings.
13193
13194 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13195
13196         * threadpool.c: reuse allocated slots in the queue.
13197
13198 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
13199
13200         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
13201
13202         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
13203
13204         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
13205         previous change.
13206
13207         * tabledefs.h: Add constants for pinvoke attributes BestFit and
13208         ThrowOnUnmappableChar.
13209
13210         * icall.c (ves_icall_Type_GetPacking): New icall.
13211
13212 2004-09-24  Martin Baulig  <martin@ximian.com>
13213
13214         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
13215
13216 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13217
13218         * appdomain.c:
13219         (mono_domain_set): allow setting a domain that is being unloaded.
13220         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
13221         being unloaded.
13222
13223 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
13224
13225         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
13226         the GetCustomAttributes icall.
13227
13228 2004-09-23  Martin Baulig  <martin@ximian.com>
13229
13230         * object-internals.h (MonoReflectionGenericParam): Replaced
13231         'has_ctor_constraint', `has_reference_type' and `has_value_type'
13232         with `guint32 attrs'.
13233
13234 2004-09-23  Martin Baulig  <martin@ximian.com>
13235
13236         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
13237
13238 2004-09-23  Martin Baulig  <martin@ximian.com>
13239
13240         * object-internals.h (GenericParameterAttributes): New enum.
13241
13242 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
13243
13244         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
13245         
13246         * class.c (init_events): Fill out event->other field.
13247
13248         * class.c: Fix warnings.
13249
13250         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
13251
13252 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
13253
13254         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
13255         walk which doesn't supply the IL offset.
13256
13257 2004-09-22  Martin Baulig  <martin@ximian.com>
13258
13259         * reflection.c (mono_reflection_setup_internal_class): If we're
13260         System.ValueType, System.Object or System.Enum, set
13261         `klass->instance_size' and create the vtable.
13262         (mono_reflection_create_internal_class): If we're an enum type,
13263         get the base class from our current corlib.
13264
13265 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
13266
13267         * reflection.h (MonoResolveTokenError): New type.
13268
13269         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
13270         icall.
13271
13272         * icall.c: Add an 'error' argument to the ResolveToken icalls.
13273
13274 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
13275
13276         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
13277         Support also calling constructors, but only for already allocated objects.
13278
13279 2004-09-17  Geoff Norton <gnorton@customerdna.com>
13280
13281         * reflection.c (type_get_qualified_name): If the klass is null
13282         return the typename to avoid a NullRefEx.
13283         (encode_cattr_value): Get the qualified name of the boxed type,
13284         not the underlying enumtype.  Fixes #62984.
13285
13286 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
13287
13288         * marshal.c: Fix problems with previous checkin.
13289
13290 2004-09-21    <vargaz@freemail.hu>
13291
13292         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
13293         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
13294
13295         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
13296
13297 2004-09-21  Geoff Norton <gnorton@customerdna.com>
13298
13299         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
13300         should only return a type for pointers, arrays, and passbyref types.
13301         Fixes bug #63841.
13302
13303 2004-09-21  Martin Baulig  <martin@ximian.com>
13304
13305         * domain.c (mono_debugger_check_runtime_version): New public
13306         function.
13307
13308         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
13309
13310 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
13311
13312         * reflection.c: Added missing sort to the declarative security 
13313         attributes table. MS implementation stops seeing the attributes if the
13314         token number regress in the table (as shown by ildasm and permview).
13315
13316 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
13317
13318         * object-internals.h (MonoReflectionModule): Add 'token' field.
13319         
13320         * reflection.c (mono_reflection_get_token): Add support for Module
13321         and Assembly.
13322         (mono_module_get_object): Set 'token' field.
13323         (mono_module_file_get_object): Set 'token' field.
13324
13325         * icall.c: Add new Assembly and Module icalls.
13326
13327         * appdomain.c: Bump corlib version.
13328
13329 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
13330
13331         * loader.h loader.c class.h class.c: Add helper functions for obtaining
13332         tokens of metadata objects.
13333
13334         * reflection.h reflection.c (mono_reflection_get_token): New function
13335         to obtain the token of a metadata object.
13336
13337         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
13338
13339 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
13340
13341         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
13342         
13343         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
13344
13345 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
13346
13347         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
13348         * object-internals.h: Added 3 MonoArray* members to MonoReflection
13349         AssemblyBuilder to access the permissions set in the class lib.
13350         * reflection.c: Added security attributes encoding step in 
13351         mono_image_build_metadata.
13352         * tabledefs.h: Added new security actions defined in 2.0:
13353         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
13354
13355 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
13356
13357         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
13358         macro parameter.
13359
13360 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
13361  
13362         * locales.c: nullify the ICU_collator member of CompareInfo when it is
13363           finalized. There where random SIGSEVs at program termination, when
13364           an object being finalized was trying to do a string comparison and
13365           the current culture was already finalized.
13366  
13367 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13368
13369         * threads.c: call thread_cleanup before finishing the thread if we get
13370         there.
13371
13372 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
13373
13374         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
13375         assemblies from the parent. Fixes #65665.
13376
13377 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
13378
13379         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
13380         modifiers.
13381
13382 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
13383
13384         * reflection.h: add prototype for mono_get_dbnull_object
13385         * reflection.c: add prototypes for get_default_param_value_blobs 
13386         and mono_get_object_from_blob for fussier compilers
13387
13388 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
13389  
13390         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
13391         false deadlock checks in class initialization.
13392  
13393 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
13394
13395         * image.c (mono_image_addref): Fix comment.
13396
13397         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
13398         possible.
13399
13400 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
13401
13402         * reflection.c (mono_param_get_objects): Modified to return
13403         ParameterInfo.DefaultValue object.
13404
13405         (get_default_param_value_blobs):
13406         (mono_get_object_from_blob):
13407         (mono_get_dbnull_object): New helper routines. 
13408
13409         * object.c (mono_get_constant_value_from_blob): New helper routine
13410         carved out from get_default_field_value ()
13411
13412         * object-internals.h (mono_get_constant_value_from_blob): Added
13413         function declaration.
13414
13415 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
13416
13417         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
13418         referenced assemblies. Fixes #62135.
13419
13420         * exception.h exception.c (mono_get_exception_file_not_found2): New
13421         helper function.
13422
13423 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
13424
13425         * class.h class.c: Add mono_type_get_underlying_type ().
13426
13427 2004-09-09  Geoff Norton <gnorton@customerndna.com>
13428
13429         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
13430         Fix GetTypes() to support dynamically created assemblies.
13431
13432 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
13433
13434         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
13435         
13436         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
13437         previous patch.
13438
13439         * reflection.h reflection.c loader.c: Allow dynamic construction of
13440         pinvoke methods. Fixes #65571.
13441         
13442         * reflection.c (mono_reflection_get_type): Revert previous change since
13443         it causes regressions.
13444
13445 2004-09-08  Martin Baulig  <martin@ximian.com>
13446
13447         * class.c (class_compute_field_layout): Don't call
13448         mono_class_layout_fields() for open generic instances.
13449
13450 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
13451         * threads.c appdomain.c: fix typo in GC macro
13452
13453 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13454
13455         * threads.c: don't call mono_thread_detach() in start_wrapper(),
13456         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
13457
13458 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
13459
13460         * image.c (mono_image_close): Applied patch from 
13461         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
13462         assembly is loaded multiple times from data.
13463         
13464         * image.c (mono_image_open): Fix warning.
13465
13466 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13467
13468         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
13469         once. Fixes #58334.
13470         
13471         * reflection.c (mono_reflection_create_runtime_class): Initialize
13472         klass->nested_classes. Fixes #61224.
13473
13474 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
13475
13476         * threads.c: sched_yield() on exit, to allow threads to quit.
13477
13478 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13479
13480         * object.c (mono_unhandled_exception): Remove leftover debug code.
13481
13482 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
13483
13484         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
13485
13486 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13487
13488         * marshal.c (emit_marshal_array): Really null terminate string arrays.
13489         
13490         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
13491
13492 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13493
13494         * marshal.c (emit_marshal_array): Null terminate string arrays.
13495         
13496         * marshal.c (raise_auto_layout_exception): Fix warning.
13497
13498         * reflection.c (mono_param_get_objects): Initialize the default value
13499         with DBNull.Value, not null. Fixes #62123.
13500
13501 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
13502
13503         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
13504         throw an exception with a cute explanation.
13505
13506 2004-09-06  Dick Porter  <dick@ximian.com>
13507
13508         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
13509         Close the new process's thread handle, as we don't use it.  The
13510         handle stays around forever otherwise.
13511
13512 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13513
13514         * object.c (arith_overflow): Fix warning.
13515
13516         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
13517         calling conventions in method refs. Fixes #65352.
13518
13519         * reflection.c: Fix warnings.
13520
13521 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
13522
13523         * icall.c: Add a new icall for Array.Clear
13524
13525 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
13526
13527         * object.c: When allocating an array, we have to throw
13528         an overflow exception if any of the lengths are < 0.
13529
13530 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13531
13532         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
13533         properly. Also move implementation of string array marshalling to 
13534         managed code. Fixes #42316.
13535
13536 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13537
13538         * assembly.c: provide more information when loading an assembly fails.
13539
13540 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13541
13542         * filewatcher.c: don't expect the development fam package to be
13543         installed.
13544
13545 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
13546
13547         * marshal.c: Make a copy of the signature cookie since it will be
13548         freed by the caller.
13549         
13550         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
13551
13552         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
13553
13554         * metadata.c (mono_metadata_free_marshal_spec): New function to free
13555         marshal specs.
13556
13557         * marshal.c: More refactoring.
13558         
13559         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
13560         smaller functions.
13561
13562 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
13563
13564         * object.c: In mono_message_invoke, fill the output parameter array after
13565           calling the managed method (it was done before the call). This fixes
13566           bug #59299.
13567
13568 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
13569
13570         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
13571         as well.
13572
13573 2004-09-02  Martin Baulig  <martin@ximian.com>
13574
13575         * class.c (mono_class_instance_size): Don't allow generic type
13576         definitions or open generic instances.
13577         (mono_class_array_element_size): If we're a value type, call
13578         mono_class_instance_size() on the original class.
13579
13580         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
13581         handle generic instances.
13582
13583         * mono-debug-debugger.c (write_type): Handle generic instances
13584         like classes.
13585
13586 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
13587
13588         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
13589         the allocation request fails. Fixes #65089.
13590
13591         * object.c (mono_runtime_free_method): Do not call mono_free_method.
13592         
13593         * object.c (mono_runtime_free_method): New function to free a dynamic
13594         method.
13595
13596         * marshal.c (mono_delegate_free_ftnptr): New function to free the
13597         delegate trampoline.
13598
13599         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
13600         with hasthis as dynamic,
13601
13602         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
13603
13604         * domain.c (mono_jit_info_table_remove): New function to remove an
13605         entry from the jit info table.
13606
13607         * class-internals.h (MonoMethod): Add 'dynamic' field.
13608
13609         * loader.c: Fix warnings.
13610
13611 2004-09-01  Martin Baulig  <martin@ximian.com>
13612
13613         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
13614         instead of mono_debugger_lock() because the latter one is a no-op
13615         unless running in the debugger.
13616
13617 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
13618
13619         * class.c (class_compute_field_layout): Classes with auto-layout or
13620         reference fields are not blittable.
13621         
13622 2004-09-01  Dick Porter  <dick@ximian.com>
13623
13624         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
13625         mono_image_get_filename() to get the assembly location.
13626
13627         * icall.c:
13628         * metadata.h: Fix compile warnings
13629
13630 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
13631
13632         * class.c (class_compute_field_layout): System.Object is blittable.
13633
13634         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
13635         as in/out. Fixes #59909.
13636
13637 2004-09-01  Martin Baulig  <martin@ximian.com>
13638
13639         * metadata.h (MONO_TYPE_ISREFERENCE): Call
13640         mono_metadata_generic_inst_is_valuetype() if we're a generic
13641         instance to check whether our underlying type is a reference type.
13642
13643 2004-09-01  Martin Baulig  <martin@ximian.com>
13644
13645         * metadata.c (mono_type_size): If we're a generic instance, call
13646         mono_class_value_size() for value types.
13647
13648 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
13649
13650         * marshal.c: Implement more custom marshalling functionality. Fixes
13651         #64915.
13652
13653 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
13654
13655         * mono-debug.c, debug-mono-symfile.c: add some locking love.
13656
13657 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
13658
13659         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
13660
13661         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
13662
13663         * icall.c: Fix some warnings.
13664
13665         * threads.c (abort_appdomain_thread): Fix unref errors.
13666         (mono_thread_current): Fix THREAD_DEBUG define.
13667
13668 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
13669
13670         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
13671
13672         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
13673
13674 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
13675
13676         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
13677         string arrays.
13678
13679 2004-08-28  Martin Baulig  <martin@ximian.com>
13680
13681         * metadata.c
13682         (mono_metadata_generic_inst_is_valuetype): New public function.
13683
13684         * metadata.h (MONO_TYPE_ISSTRUCT): Call
13685         mono_metadata_generic_inst_is_valuetype() if we're a generic
13686         instance to check whether our underlying type is a valuetype.
13687
13688 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
13689
13690         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
13691         #63768.
13692
13693 2004-08-25  Martin Baulig  <martin@ximian.com>
13694
13695         * loader.c (mono_get_method_from_token): Abstract methods can also
13696         be generic and thus have type parameters.
13697
13698         * metadata-internals.h
13699         (MonoDynamicImage): Added `GPtrArray *gen_params'.
13700
13701         * reflection.c (mono_image_get_generic_param_info): Don't create a
13702         metadata row, just add an entry to the `gen_params' array.
13703         (build_compressed_metadata): Sort the `gen_params' array and then
13704         actually create the metadata.
13705
13706 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13707
13708         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
13709
13710 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
13711
13712         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
13713
13714 2004-08-24  Martin Baulig  <martin@ximian.com>
13715
13716         * class.cs (mono_class_is_subclass_of): Like an interface, a
13717         generic instance also derives from System.Object.
13718
13719 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
13720
13721         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
13722         custom modifiers to be in any order. Fixes #61990.
13723
13724 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
13725
13726         * object.c: Register mono_object_new_fast icall.
13727         
13728         * object.c (mono_class_get_allocation_ftn): Return to calling
13729         mono_object_new_fast, since it seems faster to compute the object 
13730         size in unmanaged code than passing it as a parameter.
13731
13732         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
13733
13734         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
13735         this function with Boehm as the oom handler, so we don't have to check
13736         the result of GC_malloc.
13737
13738         * object.c: Remove checks for oom.
13739
13740         * object.h object.c (mono_class_get_allocation_ftn): New function to
13741         return the icall which can be used to allocate an instance of a given
13742         class. 
13743
13744         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
13745
13746         * class-internals.h: Add 'enabled' field.
13747
13748 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
13749
13750         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
13751
13752 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
13753         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
13754         value 0x0010.
13755
13756 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
13757
13758         * appdomain.c: use the Tls function for appdomain too,
13759         at Zoltan's request. Actually return in mono_context_get
13760
13761         * appdomain.c, profiler.c, threads.c: use __thread
13762
13763 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
13764
13765         * appdomain.c threads.c: Call GC_CreateThread on windows.
13766
13767         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
13768         multiple libraries since this don't work on windows.
13769
13770 2004-08-18  Martin Baulig  <martin@ximian.com>
13771
13772         * class-internals.h
13773         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
13774         MonoMethodHeader.
13775
13776         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
13777         MonoMethodNormal since we also need it for abstract and interface
13778         methods.
13779
13780         * reflection.c
13781         (build_compressed_metadata): Sort the GenericParam table.
13782         (mono_image_create_token): Added `gboolean create_methodspec'
13783         argument; this is false when generating a MethodImpl token.
13784         (reflection_methodbuilder_to_mono_method): Abstract and interface
13785         methods may also have generic parameters.
13786
13787 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
13788
13789         * appdomain.c: thread local alloc
13790
13791 2004-08-17  Martin Baulig  <martin@ximian.com>
13792
13793         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
13794
13795         * icall.c
13796         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
13797         argument.
13798
13799         * class.c (mono_type_get_full_name): New public function.
13800         (mono_type_get_name): Don't include the type arguments.
13801
13802 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
13803
13804         * Makefile.am: Build static versions of libmetadata and libmonoruntime
13805         for inclusion into the mono executable.
13806
13807 2004-08-16  Martin Baulig  <martin@ximian.com>
13808
13809         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
13810         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
13811
13812 2004-08-14  Martin Baulig  <martin@ximian.com>
13813
13814         * class.c (dup_type): Also copy the `byref' field.
13815
13816 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
13817
13818         * reflection.c (create_dynamic_mono_image): Revert the last change 
13819         since it breaks bootstrap.
13820
13821 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
13822
13823         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
13824
13825         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
13826         not free them with g_free.
13827
13828 2004-08-11  Martin Baulig  <martin@ximian.com>
13829
13830         * reflection.c (mono_reflection_setup_internal_class): Also call
13831         mono_class_setup_mono_type() if we already have a `tb->type.type'.
13832
13833 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
13834
13835         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
13836         called during default (first) AppDomain creation. Keep track of
13837         Evidence when loading assemblies.
13838
13839 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
13840
13841         * opcodes.c, opcodes.h: reduce runtime relocations.
13842
13843 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
13844
13845         * culture-info.h, locales.c: fixes and chages to sue the new
13846         optimized format of the locale data.
13847         * culture-info-tables.h: regenerated.
13848
13849 2004-08-06  Geoff Norton <gnorton@customerdna.com>
13850         
13851         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
13852
13853 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
13854
13855         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
13856         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
13857         * domain-internals.h: icall declaration.
13858         * icall.c: icall registration.
13859         * object-internals.h: New fields in MonoAssembly for CAS.
13860
13861 2004-08-05  Duncan Mak  <duncan@ximian.com>
13862
13863         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
13864         CEE_LDELEM_ANY.
13865
13866 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
13867
13868         * reflection.c: fix to deal with object[] arrays in custom ctors
13869         (bug #62550).
13870
13871 2004-08-05  Martin Baulig  <martin@ximian.com>
13872
13873         * class.c (mono_class_array_element_size): Added support for
13874         generic instances and correctly handle "recursive" types.
13875
13876 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
13877
13878         * assembly.c: Fix warnings.
13879
13880 2004-08-04  Martin Baulig  <martin@ximian.com>
13881
13882         * class.c
13883         (mono_type_get_name_recurse): Added `gboolean include_arity'
13884         argument specifying whether or not we should include the generic
13885         arity in the type name.
13886         (_mono_type_get_name): New static function.
13887         (mono_class_setup_vtable): If we're a generic instance, don't
13888         include the generic arity in the names of explicit method
13889         implementations.        
13890
13891 2004-08-03  Martin Baulig  <martin@ximian.com>
13892
13893         * class.c (mono_type_get_name_recurse): Enclose the generic type
13894         arguments in `<', '>'.
13895
13896 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13897
13898         * gc.c: make GC warning messages use the trace API, they are just
13899         noise to most of the users.
13900
13901 2004-08-03  Martin Baulig  <martin@ximian.com>
13902
13903         * debug-mono-symfile.c (read_string): Correctly read the string.
13904
13905 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
13906
13907         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
13908         
13909         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
13910         icalls.
13911         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
13912
13913 2004-07-30  Martin Baulig  <martin@ximian.com>
13914
13915         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
13916         Reflect latest symbol writer changes.   
13917
13918 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
13919
13920         * object.c: always create an object if null is passed
13921         to Invoke() where a valuetype is expected.
13922
13923 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
13924
13925         * marshal.c (mono_marshal_init): make managed
13926         signatures match native ones better for 64bits.
13927
13928 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13929
13930         * appdomain.c: hack to build correctly the private bin path on windows.
13931         Fixes bug #61991.
13932
13933 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
13934
13935         * assembly.c: Load mscorlib from the correct framework directory
13936           (mono/<version>/mscorlib.dll).
13937         * appdomain.h: Added prototypes for new functions.
13938         * internals.h: Added some prototypes.
13939         * domain.c: When initializing the runtime, get from the executable and
13940           the configuration files the runtime version that the app supports.
13941           Added support methods for reading app.exe.config. Added list of versions
13942           supported by the JIT. Added two new methods: mono_init_from_assembly,
13943           which initializes the runtime and determines the required version from
13944           the provided exe file, and mono_init_version, which initializes
13945           the runtime using the provided version.
13946         * icall.c: Get machine.config from version-specific directory.
13947         * reflection.c: When generating an image, embed the version number
13948           of the current runtime.
13949
13950 2004-07-28  Dick Porter  <dick@ximian.com>
13951
13952         * socket-io.c
13953         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
13954         returned sockaddr size before creating the remote address object.
13955         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
13956         61608.
13957
13958 2004-07-28  Dick Porter  <dick@ximian.com>
13959
13960         * locales.c (string_invariant_compare_char): Fix invariant char
13961         compares between upper and lower cases.  Fixes bug 61458.
13962
13963 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
13964         
13965         * marshal.c: actually cache stelem.ref wrappers.
13966         
13967 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
13968
13969         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
13970         sections and remove the mono_cli_rva_map () function.
13971
13972 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
13973
13974         * debug-mono-symfile.c: fix one more endianess issue, from a patch
13975         by Geoff Norton (<gnorton@customerdna.com>).
13976
13977 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13978
13979         * class.c: fix class loads for pointer types (typeof(int) !=
13980         typeof(int*)).
13981
13982 2004-07-27  Martin Baulig  <martin@ximian.com>
13983
13984         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
13985         reading the debugging information from an external ".mdb" file.
13986
13987 2004-07-24  Martin Baulig  <martin@ximian.com>
13988
13989         * reflection.c (mono_image_get_type_info): Only write a class
13990         layout entry if we actually have a size or a packing size.
13991
13992 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
13993
13994         * reflection.c (type_get_fully_qualified_name): 
13995         insert cast to get type checking of ?: with non-gcc compilers
13996
13997 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
13998
13999         * rand.c: use g_getenv for both lookups of
14000         MONO_EGD_SOCKET
14001
14002 2004-07-17  Martin Baulig  <martin@ximian.com>
14003
14004         * reflection.c (mono_reflection_bind_generic_method_parameters):
14005         Set `gmethod->reflection_info'.
14006
14007 2004-07-17  Martin Baulig  <martin@ximian.com>
14008
14009         * class.c (mono_class_create_from_typedef): Insert the newly
14010         created class into the hash table before computing the interfaces
14011         since we could be called recursively.
14012
14013 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
14014
14015         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
14016         function to implement stelem.ref in managed code
14017         * class-internals.h, debug-helpers.c: a new wrapper type
14018         for the above.
14019
14020 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
14021
14022         * gc.c: allow GC handles to work even when no GC is compiled in.
14023         Fix part of bug #61134 (GetAddrOfPinnedObject).
14024
14025 2004-07-13  Peter Williams  <peter@newton.cx>
14026  
14027         * process.c (complete_path): Make sure we don't attempt to execute
14028         directories.
14029  
14030 2004-07-12  Geoff Norton <gnorton@customerdna.com>
14031
14032         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
14033           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
14034           and will add/subtract the hour if needed
14035
14036 2004-07-12  Martin Baulig  <martin@ximian.com>
14037
14038         * reflection.c (mono_field_get_object): If we have
14039         `field->generic_info', take the attributes from
14040         `field->generic_info->generic_type'.    
14041
14042 2004-07-12  Martin Baulig  <martin@ximian.com>
14043
14044         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
14045         This function must be called before initializing the runtime.
14046         (mono_debug_init_1): New function; call this after initializing
14047         the runtime, but before loading the assembly.  It tells the
14048         debugger to load corlib and the builtin types.
14049
14050         * mono-debug-debugger.c: Did some larger changes in the debugging
14051         code; support recursive class declarations, make sure we actually
14052         add all classes.
14053
14054 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14055
14056         * debug-helpers.c: undo my previous patch and fixed the real issue in
14057         ../mini/exceptions-x86.c
14058
14059 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14060
14061         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
14062         when no HOME env. variable was set and a NullRef was thrown in a .cctor
14063         called from other .cctors.
14064
14065 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
14066
14067         * loader.c: Removed the mono_loader_wine_init hack now that we are
14068         doing a managed version of Windows.Forms.
14069
14070 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
14071
14072         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
14073         threadpool.c, threads.c: remove static data from rootset.
14074
14075 2004-07-09  Dick Porter  <dick@ximian.com>
14076
14077         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
14078         Don't do any more processing if the matched length was 0.  It was
14079         increasing the size of the string before.  Fixes bug 61167.
14080
14081 2004-07-09  Dick Porter  <dick@ximian.com>
14082
14083         * socket-io.h:
14084         * socket-io.c
14085         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
14086         Add support for SO_PEERCRED if its available.
14087
14088 2004-07-09  Peter Bartok <pbartok@novell.com>
14089         * loader.c: winelib.exe.so error message is now only displayed if
14090         MONO_DEBUG is set. To help us avoid questions when people are trying
14091         out the new Managed.Windows.Forms.
14092
14093 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
14094
14095         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
14096         for isinst and castclass wrappers.
14097
14098         * class-internals.h icall.c: Move registration and lookup of JIT icalls
14099         to libmetadata from the JIT, so they could be used by the marshalling
14100         code and the interpreter.
14101
14102         * marshal.c: Register marshalling related JIT icalls here instead of
14103         in mini.c. Use CEE_MONO_ICALL instead of the family of 
14104         CEE_MONO_PROC<x> opcodes to call marshalling functions.
14105
14106         * metadata.h: Remove unneeded marshalling conversions.
14107
14108         * opcodes.c: Update for new opcodes.
14109         
14110 2004-07-08  Martin Baulig  <martin@ximian.com>
14111
14112         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
14113         (mono_debug_get_domain_data): Make this function static.
14114
14115 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14116
14117         * gc.c, object.h: add nice GC handle API for embedders.
14118
14119 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
14120
14121         * reflection.c: more changes for the new api
14122
14123         * object.c: When we reflect on a field w/ a constant value, it
14124         will not have a memory location, so we must access metadata. Also,
14125         allow easier reading of strings so that we can read them from
14126         the constant data.
14127
14128         * class.c (mono_class_layout_fields): no need for literal fields here.
14129
14130         * class-internals.h: api changes for const fields
14131
14132         * icall.c (ves_icall_get_enum_info): use new apis for const fields
14133
14134 2004-07-06  Martin Baulig  <martin@ximian.com>
14135
14136         * mono-debug.h: Increment version number to 44.
14137
14138         * mono-debug.c (mono_debug_add_wrapper): The second argument is
14139         now a gpointer, rewrote this whole method.
14140
14141         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
14142         function.  Add information about the wrapper in a new "misc table".
14143
14144         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
14145         for the new misc table.
14146
14147 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
14148
14149         * metadata-internals.h image.c: Add a cache for helper signatures.
14150
14151         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
14152
14153 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
14154
14155         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
14156         delegates from a delegate. Fixes #61033.
14157         
14158         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
14159         marshalling of stringbuilder arrays. Fixes #59900.
14160
14161 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
14162
14163         * icall.c: Add EnumBuilder:setup_enum_type icall.
14164
14165 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
14166
14167         * icall.c: Added a new icall for the property version of
14168         OffsetOfStringData.
14169
14170 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
14171
14172         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
14173         it has a constant size across platforms.
14174
14175         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
14176         stack trace.
14177
14178 2004-06-29  Martin Baulig  <martin@ximian.com>
14179
14180         * mono-debug.c (mono_debug_add_method): Protect the whole function
14181         in mono_debugger_lock(), not just parts of it.
14182
14183 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
14184
14185         * reflection.c: make sure padding bytes in heaps are zeroed.
14186
14187 2004-06-24  David Waite  <mass@akuma.org>
14188
14189         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
14190         image.c, loader.c, locales.c, marshal.c, metadata.c,
14191         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
14192         string-icalls.c, threads.c: change to C90-style comments from C99 /
14193         C++ -style
14194
14195 2004-06-24  Dick Porter  <dick@ximian.com>
14196
14197         * threads.c
14198         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
14199         return createdNew.  Fixes bug 60412.
14200
14201         * threads-types.h: 
14202         * icall.c: Add createdNew parameter to CreateMutex icall
14203
14204 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14205
14206         * reflection.c, object-internals.h: save default value in params.
14207
14208 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14209
14210         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
14211         no need to build a new path combining that with the application base.
14212         Fixes bug #60442.
14213
14214 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
14215
14216         * reflection.c: fixed minor standard compliance issues.
14217
14218 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14219
14220         * reflection.c: fixed issue with encoding some custom attributes
14221         (arrays in properties and fields, bug #60411).
14222
14223 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14224
14225         * reflection.c: fix start address when copying the public key token.
14226
14227 2004-06-23  Martin Baulig  <martin@ximian.com>
14228
14229         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
14230         the `exc' object in a static object to put it into the GC's root set.
14231
14232 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
14233
14234         * reflection.c: make mono_reflection_setup_internal_class ()
14235         callable a second time to setup a new parent class.
14236
14237 2004-06-23  Dick Porter  <dick@ximian.com>
14238
14239         * threads.c: Check for WAIT_IO_COMPLETION return values.
14240
14241 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
14242
14243         * appdomain.c: Removed the g_free on the public key token. Now copy 
14244         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
14245         * assembly.c: Added public key token string value when loading 
14246         assemblies. Fix bug #60439.
14247         * icall.c: Added missing informations (like public key) in 
14248         GetReferencedAssemblies. Fix #60519.
14249         * image.h: Changed definition for public key token from const char*
14250         public_tok_value to guchar public_key_token [17];
14251         * reflection.c: Updated for changes to public key token.
14252
14253 2004-06-22  Lluis Sanchez Gual
14254
14255         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
14256         for the field in base classes.
14257
14258 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14259
14260         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
14261         mark headers as not supported, they are installed only for use by the
14262         debugger.
14263
14264 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
14265
14266         * *.c, *.h: avoid namespace pollution in public headers.
14267
14268 2004-06-21  Martin Baulig  <martin@ximian.com>
14269
14270         * exception.c (mono_get_exception_security): It's in
14271         "System.Security", not in "System".
14272
14273         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
14274         the exception classes.
14275
14276 2004-06-21  Martin Baulig  <martin@ximian.com>
14277
14278         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
14279         Protect the exception object from being finalized.
14280
14281 2004-06-21  Martin Baulig  <martin@ximian.com>
14282
14283         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
14284         public function.
14285
14286 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
14287
14288         * reflection.c: Load the assembly in mono_reflection_type_from_name,
14289         if it was not loaded before. Fix parts of #60439.
14290
14291 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
14292
14293         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
14294         code that was broken since Ben's change: wrappers are now
14295         dependent on the method signature only again.
14296
14297 2004-06-21  Martin Baulig  <martin@ximian.com>
14298
14299         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
14300         added interface support.
14301
14302 2004-06-21  Martin Baulig  <martin@ximian.com>
14303
14304         * class.c (mono_vtable_get_static_field_data): New public method.
14305
14306 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
14307
14308         * filewatcher.c : Windows build fix to be compliant with API changes.
14309
14310 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
14311
14312         * class.h, class.c: more accessors.
14313         * metadata.h, metadata.c: prepare for hiding MonoType and
14314         MonoMethodSignature: people should use the accessors from now on
14315         outside of the tree.
14316
14317 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
14318
14319         * *.c, *.h: more API cleanups.
14320
14321 2004-06-18  Jackson Harper  <jackson@ximian.com>
14322
14323         * assembly.c: Trace loading assemblies.
14324         * loader.c: Trace loading native libraries.
14325         * mono-config.c: Trace loading config files.
14326         
14327 2004-06-18  Dick Porter  <dick@ximian.com>
14328
14329         * locales.c: Tell ICU the lengths of strings, it can cope with
14330         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
14331
14332 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
14333
14334         * image.c: swapped name/filename;
14335
14336 2004-06-18  Martin Baulig  <martin@ximian.com>
14337
14338         * mono-debug-debugger.c (write_class): Write the parent class at
14339         the end of the header.
14340
14341 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
14342
14343         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
14344
14345 2004-06-17  Raja R Harinath  <rharinath@novell.com>
14346
14347         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
14348         (bundle_obj): New conditional define.
14349         (BUILT_SOURCES): Remove.
14350         ($(bundle_srcs)): Make parallel-make safe.
14351         (libmonoruntime_la_LIBADD): Make unconditional.
14352         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
14353         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
14354
14355 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
14356
14357         * culture-info-tables.h: It was inconsistent with the latest
14358           supp info files.
14359
14360 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
14361
14362         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
14363         be loaded.
14364
14365         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
14366         with gcc 2.95.
14367
14368 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
14369
14370         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
14371         cleaned up public header threads.h.
14372
14373 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14374
14375         * Makefile.am, *.c, *.h: more API cleanups.
14376
14377 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
14378
14379         * Makefile.am: removed monosn from compilation.
14380         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
14381         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
14382         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
14383         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
14384         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
14385         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
14386
14387 2004-06-15  Jackson Harper  <jackson@ximian.com>
14388
14389         * assembly.c: Make locales lower case when searching the GAC for
14390         assemblies. gacutil will always make locales lowercase when
14391         installing so this effectively makes them case insensitive.
14392         
14393 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
14394
14395         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
14396         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
14397           parameter which allows to choose whether the wait can be interrupted or 
14398           not. Also added the method mono_monitor_enter(), which locks the monitor
14399           using an infinite wait and without allowing interruption.
14400           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
14401           interrupted.
14402         * object.h: Added new fields in MonoThread. suspend_event holds the event
14403           used to susped/resume the thread. synch_lock is the lock object to use for
14404           modifying the thread state.
14405         * threads.c: Use the new synch_lock object for locking, instead of "this",
14406           which can generate deadlocks.
14407           Moved thread state change in Thread.Sleep and Thread.Join from managed
14408           to unmanaged code. This avoids a deadlock when the thread was suspended
14409           just after acquiring the thread lock.
14410           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
14411           Implemented Thread.Suspend using an event instead of ThreadSuspend,
14412           which is not fully implemented in the io-layer.
14413         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
14414
14415 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
14416
14417         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
14418         threads-types.h: more API cleanups.
14419
14420 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
14421
14422         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
14423         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
14424         threadpool.c, threads.c: first pass at the exported API cleanup.
14425
14426 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
14427
14428         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
14429
14430 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14431
14432         * icall.c: added internalGetHome.
14433
14434 2004-06-14  Dick Porter  <dick@ximian.com>
14435
14436         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
14437         possible to return successfully when '.' or '..' were the only
14438         entries in a directory, but were skipped.  The MonoIOStat was not
14439         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
14440         Fixes bug 59574.
14441
14442 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
14443
14444         * reflection.c: make binaries run on .Net 1.1 by default.
14445
14446 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
14447
14448         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
14449
14450 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
14451
14452         * marshal.c: keep track of struct size with explicit layout
14453         (bug #59979).
14454
14455 2004-06-12  Martin Baulig  <martin@ximian.com>
14456
14457         * mono-debug-debugger.c: Comment out a debugging g_message().
14458
14459 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14460
14461         * reflection.c, reflection.h: do not free custom attrs that are cached.
14462         * icall.c: use braces to make code clearer.
14463
14464 2004-06-11  Martin Baulig  <martin@ximian.com>
14465
14466         * class.h (MonoInflatedField): New type.
14467         (MonoClassField): Replaced `MonoType *generic_type' with
14468         `MonoInflatedField *generic_info'.
14469
14470         * icall.c
14471         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
14472
14473 2004-06-11  Martin Baulig  <martin@ximian.com>
14474
14475         * reflection.c (mono_image_create_method_token): Correctly encode
14476         varargs methods.
14477
14478 2004-06-11  Martin Baulig  <martin@ximian.com>
14479
14480         * metadata.c (mono_metadata_parse_method_signature): When parsing
14481         a MethodDef which has VarArgs, also set sentinelpos if we don't
14482         have any parameters.
14483
14484 2004-06-11  Martin Baulig  <martin@ximian.com>
14485
14486         * verify.c (mono_method_verify): In CEE_CALL, use
14487         mono_method_get_signature() to get the method's signature, unless
14488         we're a PInvoke method.
14489
14490 2004-06-10  Jackson Harper  <jackson@ximian.com>
14491
14492         * assembly.c: Use <path>/lib/mono/gac for the extra paths
14493         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
14494         logical name as the supplied path is just a prefix to the gac not
14495         the direct path to it.
14496         
14497 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
14498
14499         * reflection.c: make the token for a created method match
14500         the token of the MethodBuilder it was created from
14501         (IKVM requires this behaviour now).
14502
14503 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
14504
14505         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
14506         reflection.c, socket-io.c: leak fixes.
14507
14508 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
14509
14510         * icall.c: handle sentinel pos in vararg methods in position different
14511         from 0.
14512
14513 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14514
14515         * culture-info-tables.h: freshly generated.
14516
14517 2004-06-09  Martin Baulig  <martin@ximian.com>
14518
14519         * loader.c (mono_get_method_constrained): Call `mono_class_init
14520         (constrained_class)'.   
14521
14522 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
14523
14524         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
14525         any methods. Fixes #59629.
14526
14527 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14528
14529         * culture-info-tables.h: reflecting locale-builder updates.
14530
14531 2004-06-08  Dick Porter  <dick@ximian.com>
14532
14533         * object.h:
14534         * locales.c: Fixed compile warnings, including a real bug in
14535         CompareInfo_internal_compare.
14536         
14537 2004-06-08  Dick Porter  <dick@ximian.com>
14538
14539         * locales.c
14540         (ves_icall_System_Globalization_CompareInfo_internal_index):
14541         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14542         Double-check the resuls of usearches, because ICU currently
14543         ignores most of the collator settings here.  Fixes bug 59720.
14544         
14545 2004-06-08  Dick Porter  <dick@ximian.com>
14546
14547         * locales.c
14548         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14549         Fix memory leak and segfault-causing typo.  No idea how this one
14550         lasted so long without being noticed.
14551
14552 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
14553
14554         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
14555         any methods. Fixes #59629.
14556
14557 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14558
14559         * assembly.c:
14560         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
14561         own the critical section before). Removed dead code (that's done
14562         in the preload hook).
14563
14564         (mono_assembly_load_with_partial_name): call the preload hook.
14565
14566 2004-06-08  Martin Baulig  <martin@ximian.com>
14567
14568         * metadata.c (mono_metadata_signature_alloc): Default
14569         `sentinelpos' to -1.
14570
14571         * reflection.c (mono_image_get_array_token): Likewise.
14572
14573 2004-06-08  Martin Baulig  <martin@ximian.com>
14574
14575         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
14576
14577         * metadata.c (mono_metadata_parse_method_signature): When parsing
14578         a MethodDef which has VarArgs, set sentinelpos.
14579
14580         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
14581         `gint16' since we're using -1 for non-varargs methods.
14582
14583         * reflection.c
14584         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
14585         (method_encode_signature): Added varargs support.
14586         (method_builder_encode_signature): Likewise.
14587         (mono_image_get_varargs_method_token): New static method.
14588         (mono_image_create_method_token): New public method; this is
14589         called via an icall instead of mono_image_create_token() when
14590         calling a varargs method.       
14591
14592 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
14593
14594         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
14595
14596 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14597
14598         * culture-info-tables.h : Reflecting the latest locale-builder that
14599           fixed empty array representation ({} to {0}).
14600
14601 2004-06-07  Jackson Harper  <jackson@ximian.com>
14602
14603         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
14604         looking up extra gac paths. This allows MONO_GAC_PATH to act
14605         exactly like a prefix.
14606         
14607 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
14608
14609         * reflection.c (mono_reflection_type_from_name): Make a copy of the
14610         type name before modifying it. Fixes #59405.
14611
14612 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14613
14614         * culture-info.h: added fields for "all datetime patterns".
14615         * locales.c: (  ves_icall_System_Globalization_CultureInfo
14616           _construct_datetime_format ()): fill xxx_patterns fields.
14617         * object.h: added fields for "all datetime patterns" to
14618           MonoDateTimeFormatInfo.
14619         * culture-info-tables.h: reflecting locale-builder updates.
14620
14621 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
14622
14623         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
14624         the event has no add and remove methods. Fixes #59629.
14625
14626 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
14627
14628         * object.c: Fixed possible integer overflow when allocating large
14629         strings.
14630
14631 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
14632
14633         * culture-info-tables.h: reflecting locale-builder updates.
14634
14635 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
14636
14637         * culture-info-tables.h: reflecting locale-builder updates.
14638
14639 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
14640
14641         * culture-info-tables.h: reflecting locale-builder updates.
14642
14643 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
14644
14645         * threads.c: Made Thread.Sleep abortable.
14646
14647 2004-06-02  Martin Baulig  <martin@ximian.com>
14648
14649         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
14650
14651         * debug-mono-symfile.h: Bumped symbol file version number to 37.
14652
14653 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
14654
14655         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
14656
14657 2004-05-30  Jackson Harper  <jackson@ximian.com>
14658
14659         * reflection.c: Do not hardcode assembly versions or public key
14660         tokens anymore. All of this except the corlib section was dead
14661         code anyways.
14662         
14663 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
14664
14665         * object.c (mono_runtime_invoke_array): Automatically create boxed
14666         objects for byref valuetypes if needed. Fixes #59300.
14667         
14668         * object.c (mono_method_return_message_restore): Handle 
14669         MONO_TYPE_OBJECT as well.
14670
14671 2004-05-28  Jackson Harper  <jackson@ximian.com>
14672
14673         * reflection.c: The modified type encoding was causing build
14674         problems. Reverted for now.
14675         
14676 2004-05-28  Jackson Harper  <jackson@ximian.com>
14677
14678         * reflection.c/h: Take an assembly ref so that we dont create
14679         fully qualified names when encoding types in the same assembly as
14680         the custom attribute being emitted.
14681         * appdomain.c: Increment version number.
14682         
14683 2004-05-26  Duncan Mak  <duncan@ximian.com>
14684
14685         * icall.c
14686         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14687         Set the full version number (major, minor, build, revision).
14688
14689 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
14690
14691         * marshal.c (emit_struct_conv): increment src/dst after blit
14692         (mono_marshal_get_managed_wrapper,
14693         mono_marshal_get_native_wrapper): make sure we have marshalling
14694         info before marshalling params (info computation affects
14695         blittable)
14696
14697         * class.c (class_compute_field_layout): correctly deal with
14698         blittable
14699         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
14700         value types (as per what windows dows by default)
14701         (mono_class_setup_mono_type): System.ValueType is blittable
14702         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
14703         blittable
14704
14705         * marshal.c (mono_marshal_load_type_info): flag types  as
14706         non-blittable if the native layout doesn't match the managed
14707         layout
14708
14709 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14710
14711         * appdomain.c: don't add stuff in the private search path that is
14712         above the application base. If application base is not set, there's
14713         no private search path.
14714
14715 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
14716
14717         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
14718         byref struct arguments in native->managed marshalling.
14719
14720 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
14721
14722         * marshal.c (mono_marshal_get_runtime_invoke): correctly
14723         cache methods using signature (special case for methods
14724         that are value type or string class)
14725         
14726         * image.c (mono_image_close): clean up allocated GSList's
14727         in runtime_invoke_cache.
14728
14729 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14730
14731         * mono-config.c: set the correct path for mono_cfg_dir on windows when
14732         there's no MONO_CFG_DIR environment variable defined.
14733
14734 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14735
14736         * threads.c: windows version must be >= 0x0500 to include OpenThread.
14737
14738 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
14739
14740         * threadpool.c: Really wait for 500ms after the async call, even if the wait
14741           is interrumped.
14742         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
14743           before waiting for it, and call CloseHandle after the wait to unref it.
14744           This will make sure that handles are not disposed too early.
14745
14746 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14747
14748         * appdomain.c:
14749         * appdomain.h:
14750         * icall.c: removed
14751         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
14752         needed now.
14753
14754         * object.c: se the application_base only for the domain that runs
14755         Main. Fixes bug #59216,
14756
14757 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14758
14759         * appdomain.c:
14760         * object.c: only the domain in which Main is run have
14761         SetupInformation.ConfigurationFile set, so moved a few lines from
14762         appdomain.c to object.c.
14763
14764 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14765
14766         * appdomain.c: we tried to load [name].(dll|exe), but according
14767         to bug #57710, we must also try [culture]/[name].(dll|exe) and
14768         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
14769         There's a test case attached to bug #58922.
14770
14771 2004-05-27  Dick Porter  <dick@ximian.com>
14772
14773         * icall.c:
14774         * file-io.c: Implemented icalls for locking and unlocking regions
14775         in a file.
14776         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
14777         FALSE on error (fixes both compiler warning and real bug.)
14778
14779 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
14780
14781         * culture-info-tables.h: reflecting locale-builder updates.
14782
14783           (Added missing ChangeLog entry for 05/26)
14784
14785 2004-05-27  Jackson Harper  <jackson@ximian.com>
14786
14787         * locales.c: Fix some cut and paste errors.
14788         
14789 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14790
14791         * mono-config.c: set the correct path for config. directory on windows.
14792
14793 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
14794
14795         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
14796           on win32.
14797
14798 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
14799
14800         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
14801         from pinvoke functions.
14802         
14803         * marshal.c (mono_ftnptr_to_delegate): Implement this.
14804
14805 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
14806
14807         * culture-info-tables.h: reflecting locale-builder updates.
14808
14809 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
14810
14811         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
14812         #59086.
14813
14814 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
14815
14816         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
14817         * icall.c: Modified icalls for RNG.
14818         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
14819         Windows (CryptoAPI).
14820
14821 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
14822
14823         * locales.c: Fix build.
14824
14825 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
14826
14827         * culture-info-tables.h: reflecting locale-builder updates.
14828
14829 2004-05-25  Jackson Harper  <jackson@ximian.com>
14830
14831         * locales.c: When creating the current culture use the $LANGs
14832         specific culture. So DateTimeFormat and NumberFormat entries are created.
14833         
14834 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
14835
14836         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
14837         a char array as parameter.
14838
14839 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
14840
14841         * image.c: In mono_image_open(), always use an absolute path name to
14842           look for already loaded images.
14843
14844 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
14845
14846         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
14847         missing in the windows build (like older cygwin include files).
14848
14849 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
14850
14851         * icall.c: Fixed check for possible integer overflow in Buffer_
14852         BlockCopy icall. Replaced comments style // by /* */.
14853
14854 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
14855
14856         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
14857         
14858         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
14859         check after MONO_VTADDR. Fixes pinvoke2.exe.
14860
14861         * marshal.h marshal.c metadata.h: Add beginnings of support for
14862         ftnptr -> delegate marshalling.
14863
14864 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
14865
14866         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
14867         * threads.c: Fix warnings.
14868
14869 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
14870
14871         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
14872         * icall.c: Registered icalls for Suspend and Resume.
14873         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
14874           Thread.Abort.
14875         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
14876         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
14877         * process.c: Use WaitForSingleObjectEx.
14878         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
14879           checkpoints.
14880         * threads.c, threads.h: Make use of new Ex wait methods. Improved
14881           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
14882           for Suspend and Resume. Added new mono_thread_stop, used for stoping
14883           background threads. Added basic support for Abort in Windows.
14884           Start new threads using a managed delegate invoke wrapper. This wrapper
14885           has an interruption checkpoint that is needed since an interruption
14886           can be requested before the thread leaves the unmanaged code that starts 
14887           the thread.
14888         * marshal.c: Added interruption checkpoint after every native call, and
14889           also before managed calls for wrappers called from unmanaged code to
14890           go into managed code.
14891         * object.h: Added new field in MonoThread to keep track of interruption
14892           requests.
14893
14894 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
14895
14896         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
14897         calls.
14898
14899 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14900
14901         * appdomain.c:
14902         * assembly.c:
14903         * gc.c:
14904         * locales.c:
14905         * mono-config.c:
14906         * rand.c: getenv -> g_getenv (windows!)
14907
14908         * process.c: complete_path is also used on non-windows platforms.
14909
14910 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14911
14912         * icall.c: new signature for Process_Start.
14913
14914         * process.[ch]: new signature for Process_Start. If we're on windows
14915         and UseShellExecute is false, we have to search for the program by
14916         ourselves if we don't get a full path.
14917
14918 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
14919
14920         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
14921         marshalling and call CleanUpNativeData if needed. Fixes #58646.
14922
14923 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14924
14925         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
14926         Fixes bug #58373.
14927
14928 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14929
14930         * process.c: use double quotes to quote program name and arguments on
14931         windows. Fixes bug #58575.
14932
14933 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14934
14935         * file-io.c: don't return "." and ".." when using windows Find*File.
14936
14937 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
14938
14939         * marshal.c: Don't pass wrappers to message init because method 
14940         addressed used to lookup metadata. part of remoting[2|3] fix.
14941
14942 2004-05-15  Jackson Harper  <jackson@ximian.com>
14943
14944         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
14945         path is essentially the same as MONO_PATH except that it points to
14946         GACs instead of lib directories.
14947         * loader.h: The user gac is gone so we dont need function to
14948         enable/disable it.
14949         * mono-config.c: user gac option is now gone.
14950         
14951 2004-05-15  Jackson Harper  <jackson@ximian.com>
14952
14953         * culture-info.h: Make defines more consistent, add calendar data
14954         to the culture info table.
14955         * culture-info-tables.h: Add basic calendar data. Basically
14956         everyone gets default gregorian until all the data is
14957         updated.
14958         * locales.c: Use the new consistent defines. Set calendar data for
14959         culture info objects.
14960         * object.h: add a field for calendar data to CultureInfo
14961         
14962 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
14963
14964         * image.c: image->runtime_invoke_cache is keyed on signatures now.
14965         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
14966         a signature.
14967         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
14968         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
14969         an extra param that is the pointer of the method to invoke. The IL for
14970         the invoke method is no longer specific to the method, but to the
14971         signature of the method. Thus, we can share the same code for multiple
14972         methods. This reduces the number of methods that have to be compiled.
14973
14974 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
14975
14976         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
14977
14978         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14979
14980         * icall.c: Optimize Buffer.BlockCopy.
14981
14982 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14983
14984         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
14985         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
14986         quote). Changed them to "MMMM yyyy".
14987
14988 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
14989
14990         * rand.c
14991         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
14992
14993 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
14994
14995         * reflection.h: Updated after changes to managed structures.
14996
14997         * appdomain.c: Bump corlib version.
14998
14999 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15000
15001         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
15002         windows.
15003
15004 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15005
15006         * Makefile.am: link to ../os/libmonoos.la on windows.
15007
15008         * assembly.c:
15009                 -If MONO_DEBUG, warn about non-existing directories in
15010                 MONO_PATH.
15011                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
15012                 compile time variable.
15013                 -Removed init_default_path and call mono_set_rootdir from
15014                 libmonoos.a instead (windows only).
15015
15016         * assembly.h: declare mono_assembly_getrootdir().
15017
15018         * domain.c:
15019         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
15020
15021         * loader.c: s/getenv/g_getenv/
15022
15023 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
15024
15025         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
15026
15027         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
15028
15029         * metadata.h: Add new marshalling conversions.
15030
15031         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
15032         function.
15033
15034         * reflection.c (mono_reflection_get_type): Lookup the type in all
15035         modules of a multi-module assembly. Fixes #58291.
15036
15037 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
15038
15039         * threads.c: Before aborting a background, set the StopRequested
15040         state.  This avoids throwing the Abort exception.
15041         In mono_thread_manage, don't continue with the shutdown until all
15042         aborted threads have actually stopped.
15043
15044 2004-05-10  Jackson Harper  <jackson@ximian.com>
15045
15046         * locales.c: Remove the modifier from culture names.
15047         
15048 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15049
15050         * Makefile.am: monosn is not installed any more. It has been deprecated
15051         in favor of sn.
15052
15053 2004-05-07  Jackson Harper  <jackson@ximian.com>
15054
15055         * locales.c
15056         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
15057         Fix array construction, add bailout if the length is 0.
15058
15059 2004-05-07  Dick Porter  <dick@ximian.com>
15060
15061         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
15062         machine doesn't have a DNS entry.  Patch by Urs Muff
15063         (umuff@quark.com), fixes bug 57928.
15064
15065 2004-05-06  Jackson Harper  <jackson@ximian.com>
15066
15067         * reflection.c: Handle null PublicTokens properly. alloc mem for
15068         assembly names culture so we dont crash when freeing it.
15069         
15070 2004-05-06  Jackson Harper  <jackson@ximian.com>
15071
15072         * assembly.c: Check the usergac when loading with partial names.
15073         
15074 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
15075
15076         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
15077         does nothing for now (not required for Linux/Windows) but the class
15078         library can call it (and a newer or modified runtime could need it).
15079         * icall.c: Registred icall.
15080
15081 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15082
15083         * loader.c: prints a message on module loading error we set MONO_DEBUG
15084         environment variable.
15085
15086 2004-05-05  Jackson Harper  <jackson@ximian.com>
15087
15088         * appdomain.c: Handle PublicKeyToken=null properly.
15089         
15090 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
15091
15092         * environment.c|h: Added icall ves_icall_System_Environment_
15093         GetOSVersionString to get the current OS version as a string.
15094         * icall.c: Registred icall.
15095
15096 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
15097
15098         * object.c: in mono_object_get_virtual_method(), take into account that
15099         non-virtual methods don't have a slot in the vtable. Check needed when
15100         the object is a proxy.
15101
15102 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
15103
15104         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
15105         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
15106
15107         * object.c (mono_class_compute_gc_descriptor): Fix warning.
15108
15109         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
15110         passed when a valuetype is expected.
15111
15112         * object.c (mono_unhandled_exception): Only set the exit code if the
15113         exception happens in the main thread. Fixes thread5.exe.
15114
15115         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
15116         invalid names. Fixes #58047.
15117
15118 2004-05-03  Jackson Harper  <jackson@ximian.com>
15119
15120         * assembly.c: This line was committed accidently and is unneeded.
15121         
15122 2004-05-03  Jackson Harper  <jackson@ximian.com>
15123
15124         * icall.c: Add new icall for Assembly::LoadWithPartialName
15125         * assembly.c/.h: new function that probes the GAC to load partial
15126         assembly names by Paolo Molaro.
15127         
15128 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15129
15130         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
15131         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
15132         (type_get_fully_qualified_name): Added PublicKeyToken when building a
15133         full type name.
15134
15135 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15136
15137         * appdomain.c: fixed check for 'neutral' culture and removed warning.
15138         * reflection.c: fix bug when parsing a full type name and Version is not
15139         the last thing in the string.
15140
15141 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
15142
15143         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
15144         crashes when it is freed.
15145
15146 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15147
15148         * assembly.c: print the compat warning to stderr.
15149
15150 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
15151
15152         * assembly.c (mono_assembly_load_references): Add a compatibility
15153         hack to run old applications that might be still referencing the
15154         3300-based assemblies, only do this for System.xxx.
15155
15156 2004-05-01  Jackson Harper  <jackson@ximian.com>
15157
15158         * appdomain.c: If the culture is neutral we set it to "".
15159         
15160 2004-04-29  Jackson Harper  <jackson@ximian.com>
15161
15162         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
15163
15164 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
15165  
15166         * string-icalls.c: added low overhead function for copying chars
15167         * icall.c: added needed icall for the above function
15168  
15169 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15170
15171         * icall.c: fix return value of get_global_assembly_cache.  Implemented
15172         Environment.GetLogicalDrives.
15173
15174 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
15175
15176         * rand.c: try and talk to egd or prngd
15177         for random bytes if opening devices fail.
15178
15179 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
15180
15181         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
15182         alignment for the type using the native alignment of its members 
15183         instead of using klass->min_align.
15184
15185         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
15186
15187 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15188
15189         * file-io.c:
15190         * socket-io.c: added check for sys/aio.h.
15191
15192 2004-04-28  Dick Porter  <dick@ximian.com>
15193
15194         * threads.c: Don't abort a thread thats already aborting, when
15195         terminating everything.
15196
15197 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15198
15199         * icall.c: added 2 new async calls for Socket.
15200
15201         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
15202         IO on *nix systems.
15203
15204         * threadpool.c: removed unused variable.
15205
15206 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
15207
15208         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
15209
15210 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15211
15212         * locales.c: put back string_invariant_tolower () and
15213         string_invariant_toupper ().
15214
15215 2004-04-26 David Waite <mass@akuma.org>
15216
15217         * file-io.h:
15218         * socket-io.h:
15219         * threads.h:
15220         * unicode.h: remove comma from end of enumeration declarations
15221
15222 2004-04-26 David Waite <mass@akuma.org>
15223
15224         * debug-mono-symfile.h:
15225         * decimal.c:
15226         * mono_debug.h:
15227         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
15228
15229
15230 2004-04-26  Jackson Harper  <jackson@ximian.com>
15231
15232         * appdomain.c: Increment version number.
15233         
15234 2004-04-26  Jackson Harper  <jackson@ximian.com>
15235
15236         * appdomain.c: Set assembly references public token value when
15237         PublicKeyToken is specified, not the hash_value. Free public token
15238         values when free assembly name data. Previously the public key
15239         token was hex decoded, however we are using hex encoded public key
15240         tokens, so this is not neccasary.
15241         * assembly.c: Lookup assemblies in the gac if their public token
15242         value is set. Add function to allow enabling user gac
15243         lookups. Specify whether or not the assembly was loaded from the
15244         GAC. Compare full assembly names when checking the cache for
15245         assemblies (Temporarily disabled see comment in code). Remove
15246         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
15247         specifies trace-loader they get extra info to stdout on the
15248         loading of assemblies.
15249         * image.h: Add a field for an assembly references public token
15250         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
15251         whether an assembly has been loaded from the GAC.
15252         * image.c: Remove a corlib -> mscorlib name mapping.
15253         * loader.h: Add function to enable/disable the user gac.
15254         * mono-config.c: Check if the usergac is enabled in the config
15255         file.
15256         * icall.c: New icall to determine whether or not an assembly has
15257         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
15258         * tabldefs.h: Add constant for assemblyref flag that specifies a
15259         full public key is used instead of a public token.
15260         * reflection.c: Remove mscorlib -> corlib mappings. Set
15261         PublicTokenValue instead of hash value. This value is a hex
15262         string so it does not need to be expanded.
15263
15264 2004-04-26  Martin Baulig  <martin@ximian.com>
15265
15266         * mono-debug-debugger.c (mono_debugger_initialize): Set
15267         `mono_debugger_initialized' before calling mono_debug_lock().
15268
15269 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
15270
15271         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
15272           InternalToUpper/InternalToLower.
15273         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
15274           removed invariant culture shortcut.  This is now done in managed code.
15275         * locales.c: (string_invariant_toupper/tolower) removed.
15276
15277 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15278
15279         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
15280         Added Poll internal call.
15281
15282         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
15283         call for Poll. Select was too heavy for polling a single socket.
15284
15285         * threadpool.[ch]: added mono_threadpool_cleanup.
15286         * threads.c: use it. Don't use Thread_Abort on windows.
15287
15288 2004-04-23  Martin Baulig  <martin@ximian.com>
15289
15290         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
15291
15292 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
15293
15294         * icall.c: Registred new icalls for key pair protection and added an
15295         icall for Environment.GetFolderPath on Windows.
15296         * security.c|h: Added new icalls for key pair protection.
15297
15298 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15299
15300         * socket-io.c: don't display the non-supported family warning for known
15301         families. Now this is not displayed on windows when checking support
15302         for IPv4/IPv6.
15303
15304 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15305
15306         * class.c: don't display the layout warning for static fields.
15307
15308 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
15309
15310         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
15311         * locales.c, locales.h: Added new icalls for culture-specific
15312         Char.ToLower and Char.ToUpper.
15313
15314 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15315
15316         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
15317         by David Waite.
15318
15319 2004-04-20  Martin Baulig  <martin@ximian.com>
15320
15321         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
15322         of the type name before passing it to mono_reflection_type_from_name().
15323
15324 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
15325
15326         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
15327         encodings here. Fixes #56965.
15328
15329 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
15330
15331         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15332         fix test on strstr result not that I can see anything that
15333         relies on the result.
15334
15335 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
15336
15337         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
15338         Fixes #57081.
15339
15340         * marshal.c (mono_marshal_get_string_encoding): New helper function.
15341
15342         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
15343         function to determine which marshalling to use for strings. Fixes
15344         #56965.
15345
15346         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
15347
15348         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
15349
15350 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
15351
15352         * icall.c: #include mono-config.h
15353
15354 2004-04-15  Jackson Harper  <jackson@ximian.com>
15355
15356         * culture-info-tables.h: Fix date formats for en-US culture.
15357         
15358 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
15359
15360         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
15361         ThreadPool.SetMinThreads.
15362         * threadpool.c: Implemented ThreadPool.GetMinThreads and
15363         ThreadPool.SetMinThreads.
15364
15365 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
15366
15367         * mono-config.c: also load the .config file in the directory
15368         where the assembly was found.
15369
15370 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
15371
15372         * assembly.c: load per-assembly config files.
15373         * icall.c: decrapified code to get the config dir and moved to
15374         mono-config.c.
15375         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
15376         per-assembly config files. When doing a dll map lookup give precedence
15377         to the per-assembly data.
15378
15379 2004-04-14  Martin Baulig  <martin@ximian.com>
15380
15381         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
15382         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
15383         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
15384
15385         * mono-debugger-debugger.c: While the debugger is locked, remember
15386         whether the symbol tables have changes and send one single
15387         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
15388
15389 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
15390
15391         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
15392
15393         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
15394         function.
15395
15396         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
15397         account when marshalling string arrays. Fixes #56965.
15398
15399 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
15400
15401         * icall.c: Add new icalls mapping for security.
15402         * security.c|h: Add internal calls for WindowsIdentity,
15403         WindowsImpersonationContext and WindowsPrincipal.
15404
15405 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
15406
15407         * class.c: Added comment to ensure the System.MonoDummy class
15408         is removed when no longer necessary
15409
15410 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
15411
15412         * appdomain.c: Pass arguments to the bootstraping exceptions to
15413         minimize JITed methods at boot
15414
15415         * metadata.c (mono_exception_from_name_two_strings): Allow for the
15416         second string to be null.
15417
15418         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15419         Change the protocol to minimize the JIT methods at startup.  Now
15420         it Returns the internal codepage, if the value of "int_code_page"
15421         is 1 at entry, and we can not compute a suitable code page
15422         number, returns the code page as a string.
15423
15424 2004-04-13  Jackson Harper  <jackson@ximian.com>
15425
15426         * culture-info-tables.h: Fix number of decimal digits for all
15427         english locales.
15428
15429 2004-04-13  Jackson Harper  <jackson@ximian.com>
15430
15431         * icall.c: Clairfy out of sync error message. It is not always
15432         your corlib that is out of sync.
15433
15434 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
15435
15436         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
15437         properties when only the set accessor is overriden. Fixes #55874.
15438
15439 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
15440
15441         * assembly.c (mono_assembly_load_references): Make this thread safe.
15442         Fixes #56327.
15443
15444 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
15445
15446         * monosn.c: Add missing initialization calls.
15447
15448 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
15449
15450         * locales.c:
15451         ves_icall_System_Globalization_CultureInfo_construct_number_format
15452         Fix g_assert so it compiles on fussier compilers re int/ptr
15453         mismatch
15454
15455 2004-04-08  Dick Porter  <dick@ximian.com>
15456
15457         * socket-io.h:
15458         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
15459         53992.  Also rearrange the code so that the internal calls return
15460         an error value and exceptions are thrown from managed code.
15461
15462         * icall.c: Add type info to the socket icalls.
15463
15464 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15465
15466         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
15467         owes me a beer.
15468
15469 2004-04-07  Martin Baulig  <martin@ximian.com>
15470
15471         * class.c (mono_class_from_generic_parameter): Don't default
15472         `klass->parent' to `mono_defaults.object_type'.
15473
15474 2004-04-07  Martin Baulig  <martin@ximian.com>
15475
15476         * reflection.c (mono_reflection_initialize_generic_parameter): Set
15477         `param->pklass->reflection_info'.       
15478
15479 2004-04-07  Jackson Harper  <jackson@ximian.com>
15480
15481         * culture-info-tables.h: Fix date separator symbol.
15482         
15483 2004-04-07  Martin Baulig  <martin@ximian.com>
15484
15485         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
15486         from System.Type to System.MonoType.
15487
15488 2004-04-07  Martin Baulig  <martin@ximian.com>
15489
15490         * reflection.h
15491         (MonoReflectionGenericParam): Added `has_reference_type' and
15492         `has_value_type' fields.
15493
15494         * reflection.c (mono_image_get_generic_param_info): Encode the
15495         correct flags if we have the `class' or `struct' constraint.
15496
15497 2004-04-07  Martin Baulig  <martin@ximian.com>
15498
15499         * reflection.h
15500         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
15501
15502 2004-04-07  Jackson Harper  <jackson@ximian.com>
15503
15504         * appdomain.c: Revert extra patches, just wanted to bump the
15505         version number.
15506         
15507 2004-04-07  Jackson Harper  <jackson@ximian.com>
15508
15509         * Makefile.am: Add culture-info private headers.
15510         * icall.c: Add new icalls for contructing locales.
15511         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
15512         * locales.h: Declare new culture info construction methods.
15513         * object.h: Add new fields used to avoid the CultureMap to
15514         MonoCultureInfo.
15515         * culture-info.h: Definition of structs used in the culture info
15516         tables.
15517         * culture-info-tables.h: Autogenerated tables that contain culture
15518         info data. This file was generated with the locale-builder tool.
15519         * appdomain.c: Incement corlib version number.
15520         
15521 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
15522
15523         * appdomain.c: (mono_runtime_init) move mono_thread_init
15524         to before mono_object_new calls so critical sections
15525         are initialized before use.
15526
15527 2004-04-07  Martin Baulig  <martin@ximian.com>
15528
15529         * icall.c
15530         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
15531         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
15532         (ves_icall_MonoGenericParam_initialize): Removed.
15533         (monogenericparam_icalls): Removed.
15534         (generictypeparambuilder_icalls): Added new table for
15535         System.Reflection.Emit.GenericTypeParameterBuilder.
15536
15537         * reflection.c
15538         (mono_reflection_define_generic_parameter): Removed.
15539         (mono_reflection_initialize_generic_parameter): This is now called
15540         from GenericTypeParameterBuilder's .ctor.
15541
15542 2004-04-06  Martin Baulig  <martin@ximian.com>
15543
15544         * class.c (mono_class_init): Don't inflate nested classes in a
15545         generic instance.
15546         (mono_type_get_name_recurse): Include the generic arguments for
15547         generic instances and generic type declarations.
15548         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
15549         (_mono_class_get_instantiation_name): Removed.
15550         (mono_class_create_generic): Always use `gklass->name' as our name.
15551
15552         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
15553
15554         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
15555         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
15556         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
15557         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
15558         closed generic methods here.
15559
15560         * reflection.c
15561         (mono_reflection_generic_inst_get_nested_types): Removed.
15562         (inflate_mono_method): Copy the generic parameters from the
15563         MonoMethodHeader into out MonoGenericMethod.
15564
15565 2004-04-06  Martin Baulig  <martin@ximian.com>
15566
15567         * row-indexes.h
15568         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
15569
15570         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
15571
15572         * reflection.c (build_compressed_metadata): If we have any entries
15573         in the GenericParam, MethodSpec or GenericParamConstraint tables,
15574         set the header version to 1.1.
15575
15576 2004-04-06  Martin Baulig  <martin@ximian.com>
15577
15578         * class.c (mono_class_init): If we're a generic instance,
15579         initialize our nested classes, too.
15580         (_mono_class_get_instantiation_name): Deal with the new `!%d'
15581         suffix. 
15582
15583 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15584
15585         * process.c: quote the argument passed to the shell on windows.
15586
15587 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
15588
15589         * threads.c (mono_alloc_special_static_data): Allow this to be
15590         called during startup.
15591
15592 2004-04-02  Martin Baulig  <martin@ximian.com>
15593
15594         * icall.c
15595         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
15596
15597 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
15598
15599         * icall.c: Fix build.
15600
15601 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
15602
15603         * Makefile.am: Added security.c|h.
15604         * icall.c: Added icall for get_UserName;
15605         * security.c: New file for security related icalls. Added function
15606         get_UserName for System.Environment (fix #56144).
15607         * security.h: New. Header file for security.c
15608
15609 2004-04-02  Dick Porter  <dick@ximian.com>
15610
15611         * icall.c: Deleted the icalls that were obsoleted some time ago
15612         by the ICU string code, and which were mixed into the icall
15613         rearranging.  Fixes bug 55969.
15614
15615         * string-icalls.h: 
15616         * string-icalls.c: Deleted the code that those icalls reference.
15617
15618 2004-04-01  Martin Baulig  <martin@ximian.com>
15619
15620         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
15621
15622         * class.c (mono_class_from_generic_parameter): Don't set 
15623         TYPE_ATTRIBUTE_INTERFACE.
15624         (my_mono_class_from_generic_parameter): Likewise.
15625
15626 2004-04-01  Martin Baulig  <martin@ximian.com>
15627
15628         * loader.c (find_method): Added an optional `MonoClass *ic'
15629         argument to search in a specific interface.
15630         (mono_get_method_constrained): New public function.
15631
15632 2004-04-01  Martin Baulig  <martin@ximian.com>
15633
15634         * reflection.c (mono_image_get_generic_field_token): Use the
15635         `handleref' cache here.
15636
15637 2004-04-01  Martin Baulig  <martin@ximian.com>
15638
15639         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
15640
15641         * reflection.c (create_generic_typespec): Use the `typespec' hash
15642         here, not the `typeref' one.    
15643
15644 2004-04-01  Martin Baulig  <martin@ximian.com>
15645
15646         * class.c (mono_class_inflate_generic_type): Moved the
15647         functionality into a new static inflate_generic_type() which
15648         returns NULL if it didn't do anything.  Only increment the
15649         `mono_stats.inflated_type_count' if we actually inflated
15650         something.
15651         (mono_class_get_full): Check the classes type to see whether we
15652         need to inflate it; also inflate MONO_TYPE_(M)VAR.
15653
15654 2004-04-01  Jackson Harper  <jackson@ximian.com>
15655
15656         * reflection.c: Set culture for assembly references.
15657         
15658 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
15659
15660         * reflection.[ch], icall.[ch], Fix support for pinning variables.
15661
15662 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15663
15664         * assembly.c:
15665         (do_mono_assembly_open): the critical section also covers
15666         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
15667
15668 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15669
15670         * threads.c:
15671         (mono_manage_threads): abort the background threads when finishing.
15672         Fixes bug #47232.
15673
15674 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15675
15676         * gc.c: only close the done_event handle if there was no timeout.
15677         C-ified comments.
15678
15679 2004-03-30  Martin Baulig  <martin@ximian.com>
15680
15681         * icall.c (icall_entries): It's called "System.Activator", not
15682         "System.Activation".    
15683
15684 2004-03-30  Martin Baulig  <martin@ximian.com>
15685
15686         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
15687         (mono_class_create_from_typespec): Likewise.
15688
15689 2004-03-30  Martin Baulig  <martin@ximian.com>
15690
15691         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
15692         `has_ctor_constraint' and `initialized'.
15693
15694 2004-03-30  Martin Baulig  <martin@ximian.com>
15695
15696         * reflection.c (encode_new_constraint): New static function to add
15697         the constructor constraint attribute to a type parameter.
15698         (encode_constraints): Call encode_new_constraint() if necessary.
15699
15700         * reflection.h
15701         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
15702
15703         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
15704         
15705 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
15706
15707         * reflection.c, icall.c: add support for pinning variables. 
15708
15709 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
15710
15711         * marshal.c (mono_marshal_get_managed_wrapper):
15712         init bool local with zero rather than null.
15713
15714 2004-03-29  Martin Baulig  <martin@ximian.com>
15715
15716         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
15717         the "official" behavior here.
15718         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
15719
15720 2004-03-29  Martin Baulig  <martin@ximian.com>
15721
15722         * icall.c: Reflect latest API changes.
15723
15724 2004-03-29  Martin Baulig  <martin@ximian.com>
15725
15726         * loader.c (mono_get_method_from_token): Also call
15727         mono_metadata_load_generic_params () for abstract and interface
15728         methods; replace the type arguments in the method signature with
15729         the ones which are loaded from the metadata.
15730
15731 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
15732
15733         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
15734         of the lock is not the current thread. MS.NET don't do it, in spite of
15735         what the documentation says. See bug #56157.
15736
15737 2004-03-28  Martin Baulig  <martin@ximian.com>
15738
15739         * class.c (mono_class_init): Don't call init_properties() and
15740         init_events() for generic instances; set `prop->parent' when
15741         inflating properties.
15742
15743         * reflection.c (mono_generic_inst_get_object): Call
15744         `mono_class_init (ginst->klass)'.
15745         (mono_type_get_object): Only create a MonoGenericInst if your
15746         generic type is a TypeBuilder.
15747         (do_mono_reflection_bind_generic_parameters): Only set
15748         `ginst->is_dynamic' if our generic type is a TypeBuilder.
15749
15750 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
15751
15752         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
15753         Fixes #56091.
15754
15755 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15756
15757         * icall.c: added Kill_internal icall.
15758         * process.[ch]: added Kill_internal icall.
15759
15760 2004-03-25  Martin Baulig  <martin@ximian.com>
15761
15762         * class.h (MonoStats): Added `generic_instance_count',
15763         `inflated_method_count', `inflated_type_count' and
15764         `generics_metadata_size'.       
15765
15766 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15767
15768         * reflection.c: no warnings now.
15769
15770 2004-03-25  Martin Baulig  <martin@ximian.com>
15771
15772         * class.c (mono_class_get_full): New public function; does a
15773         mono_class_get(), but also takes a `MonoGenericContext *'.
15774
15775         * loader.c (mono_field_from_memberref): Renamed to
15776         `field_from_memberref', made static and added `MonoGenericContext *'
15777         argument.
15778         (mono_field_from_token): Added `MonoGenericInst *' argument.
15779         (method_from_memberef): Likewise.
15780         (mono_get_method_from_token): Likewise.
15781         (mono_get_method_full): New public function; does a
15782         mono_get_method(), but also takes a `MonoGenericContext *'.
15783
15784         * verify.c (mono_method_verify): Get the method's generic context
15785         and pass it to mono_field_from_token(), mono_get_method_full() and
15786         mono_class_get_full().
15787
15788 2004-03-25  Martin Baulig  <martin@ximian.com>
15789
15790         * class.c (mono_class_inflate_generic_type): Take a
15791         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
15792         `MonoGenericMethod *'.
15793
15794 2004-03-25  Martin Baulig  <martin@ximian.com>
15795
15796         * loader.h (MonoMethodInflated): Store the MonoGenericContext
15797         instead of the MonoGenericMethod here.
15798
15799 2004-03-25  Martin Baulig  <martin@ximian.com>
15800
15801         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
15802         each time we create a new MonoGenericInst, we also create a new
15803         context which points back to us.
15804
15805         * class.c (inflate_method): Use `ginst->context' instead of
15806         creating a new context.
15807
15808         * loader.c (method_from_memberref): Use
15809         `klass->generic_inst->context' instead of creating a new context.
15810
15811 2004-03-25  Martin Baulig  <martin@ximian.com>
15812
15813         * class.h (MonoGenericContext): New struct.
15814         (MonoGenericMethod): Removed `generic_inst'.
15815
15816         * class.c (mono_class_inflate_generic_method): Take a
15817         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
15818
15819 2004-03-25  Martin Baulig  <martin@ximian.com>
15820
15821         * loader.h (MonoMethodInflated): New typedef.
15822
15823         * metadata.h (MonoMethodSignature): Removed `gen_method', make
15824         `generic_param_count' consume just 30 bits, added `is_inflated'
15825         and `has_type_parameters' flags (one bit each).
15826
15827         * class.c (mono_class_inflate_generic_method): Create a
15828         MonoMethodInflated instead of a MonoMethodNormal and set
15829         `is_inflated' in the method signature.
15830
15831         * class.h (MonoGenericMethod): Removed `generic_method'.
15832
15833 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
15834
15835         * image.c: Make sure the name of a MonoImage is always an absolute path.
15836           This fixes bug #54415.
15837
15838 2004-03-24  Martin Baulig  <martin@ximian.com>
15839
15840         * class.c (mono_class_setup_vtable): If we're a generic instance,
15841         use our generic type's vtable size.
15842
15843 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
15844
15845         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
15846         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
15847         problems.
15848
15849 2004-03-23  Martin Baulig  <martin@ximian.com>
15850
15851         * class.h (MonoDynamicGenericInst): Added `int count_events' and
15852         `MonoEvent *events'.
15853
15854         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
15855         (typebuilder_icalls): Added "get_event_info"; calls
15856         mono_reflection_event_builder_get_event_info(). 
15857
15858         * reflection.c (mono_reflection_generic_inst_initialize): Added
15859         `MonoArray *events'.
15860         (mono_reflection_event_builder_get_event_info): New function.
15861
15862 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
15863
15864         * object.h: add mono_type_initialization_init
15865
15866         * object.c (mono_runtime_class_init): 
15867         implement class constructor synchronization rules
15868         to cope with threading issues.  
15869         add mono_type_initialization_init
15870
15871         * appdomain.c (mono_runtime_init): call 
15872         mono_type_initialization_init
15873
15874         * class.h: removing initializing field from MonoVTable
15875
15876 2004-03-23  Martin Baulig  <martin@ximian.com>
15877
15878         * class.c (my_mono_class_from_generic_parameter): Use
15879         `param->name' if it's not NULL. 
15880
15881 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
15882
15883         * class.c: do not insert non-virtual methods in the vtable.
15884         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
15885         that means the method is non-virtual. This never would have
15886         happened before.
15887
15888 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
15889
15890         * profiler.c: Added lock for accessing coverage_hash.
15891
15892 2004-03-22  Martin Baulig  <martin@ximian.com>
15893
15894         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
15895         `method->method->signature->generic_param_count != 0' to make it
15896         work for interface methods.
15897
15898 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15899
15900         * process.c: quote the string passed to the shell using g_shell_quote.
15901
15902 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15903
15904         * threads.c:
15905         (mono_threads_manage): don't remove the finalizer thread and self
15906         from the threads hash table so that mono_thread_manage can be called
15907         more than once.
15908
15909 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15910
15911         * process.c: quote the arguments when UseShellExecute is true. Fixes
15912         bug #55790.
15913
15914 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15915
15916         * threads.c: set mono_thread_detach as a cleanup routine for every
15917         thread. This way it's always executed upon thread termination, either
15918         aborted or finished normally. No more xsp hangs!
15919
15920 2004-03-17  Martin Baulig  <martin@ximian.com>
15921
15922         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
15923         `int count_nested' and a `MonoType **nested'.
15924
15925         * reflection.c (mono_reflection_bind_generic_parameters): Moved
15926         most of the functionality into a new static
15927         do_mono_reflection_bind_generic_parameters() and don't take a
15928         `MonoType *nested_in' argument any more.  Don't compute nested
15929         types here.
15930         (mono_reflection_generic_inst_get_nested_types): New public method
15931         to get nested types.
15932
15933         * class.c (mono_class_create_generic): Set `klass->nested_in' if
15934         we're a nested class.
15935
15936         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
15937         mono_reflection_generic_inst_get_nested_types() to compute the
15938         nested types.
15939
15940 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
15941
15942         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
15943         descriptive error message under windows.
15944         
15945 2004-03-17  Martin Baulig  <martin@ximian.com>
15946
15947         * class.c (dup_type): Added `const MonoType *original' argument;
15948         copy the attrs from the original type.
15949
15950 2004-03-17  Martin Baulig  <martin@ximian.com>
15951
15952         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
15953         `m->generic_inst_cache' here.
15954
15955 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
15956
15957         * exception.h exception.c: Add stack_overflow_exception.
15958
15959 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15960
15961         * threadpool.c:
15962         (overlapped_callback): call SetEvent *after* invoking the callback.
15963         No need to call CloseHandle.
15964
15965 2004-03-16  Martin Baulig  <martin@ximian.com>
15966
15967         * reflection.c (mono_image_get_fieldref_token): Take a
15968         `MonoReflectionField *' instead of a `MonoClassField *' and a
15969         `MonoClass *'; store the `MonoReflectionField *' in the hash.
15970
15971 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15972
15973         * appdomain.c: don't add the culture to the filename we're looking for
15974         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
15975
15976 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15977
15978         * locales.c: don't ignore symbols when doing case insensitive compares.
15979         Thanks Dick! Fixes bug #54046.
15980
15981         * threads.c: surround 'threads' usage with enter/leave in
15982         mono_thread_manage.
15983
15984 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
15985
15986         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
15987         implicitly marshalled as [Out]. Fixes #55450.
15988
15989         (mono_marshal_get_runtime_invoke): Zero out the result if there is
15990         an exception.
15991
15992 2004-03-16  Martin Baulig  <martin@ximian.com>
15993
15994         * class.c (mono_class_from_generic_parameter): Use the actual
15995         parameter name. 
15996
15997 2004-03-16  Martin Baulig  <martin@ximian.com>
15998
15999         * reflection.c (type_get_signature_size): New static function.
16000         Compues the size of the type in a method signature.
16001         (method_get_signature_size): New static function; calls
16002         type_get_signature_size() to compute the actual size of the
16003         method's signature.
16004         (method_encode_signature): Use method_get_signature_size() to get
16005         the signature's size rather than using `nparams * 10'.
16006
16007 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16008
16009         * file-io.h: define here WapiOverlapped on windows. I don't want the
16010         regular OVERLAPPED one.
16011
16012         * file-io.c:
16013         * threadpool.c: somehow, BindIoCompletionCallback is not found.
16014         Disabling AIO on windows.
16015
16016 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16017
16018         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
16019         bug #55385.
16020
16021 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16022
16023         * appdomain.c: upgraded corlib version.
16024
16025         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
16026         and BeginWrite. Allow opening files for asynchrnous operations.
16027
16028         * file-io.h: new struct that maps FileStreamAsyncResult.
16029         * icall.c: added new icalls.
16030         * process.[ch]: support setting child process environment variables
16031         and use the SHELL or COMSPEC when UseShellExecute is true.
16032
16033         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
16034         callback for async. IO is here and also BindHandle.
16035
16036         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
16037         from here.
16038
16039 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
16040
16041         * reflection.c (create_custom_attr): Allow len == 0.
16042
16043         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
16044         computation on big-endian machines.
16045
16046 2004-03-13  Martin Baulig  <martin@ximian.com>
16047
16048         * class.h (MonoGenericInst): Added `int count_ifaces'.
16049
16050         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
16051         `ginst->count_ifaces' instead `klass->interface_count' since we
16052         may get called before the vtable is created.
16053
16054         * loader.c (mono_method_get_param_names): If we're a generic
16055         instance, return and don't initialize the class.
16056
16057         * reflection.c (mono_reflection_setup_generic_class): Don't call
16058         ensure_runtime_vtable().
16059         (mono_reflection_bind_generic_parameters): Set
16060         `ginst->count_ifaces'.
16061
16062 2004-03-11  Jackson Harper <jackson@ximian.com>
16063
16064         * icall.c:
16065         * unicode.c:
16066         * unicode.h: Remove unused System.Char icalls.
16067         
16068 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
16069
16070         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
16071         code when we P/Invoke the first library in Windows.Forms, instead
16072         of when we first open the assembly.
16073
16074         * assembly.c: Drop the lookup from here.
16075
16076 2004-03-10  Martin Baulig  <martin@ximian.com>
16077
16078         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
16079         class for properties, fields and events.  Finally fixes #54945.
16080
16081 2004-03-10  Martin Baulig  <martin@ximian.com>
16082
16083         * metadata.c (mono_metadata_class_equal): New static function;
16084         checks whether two generic instances or two generic parameters are
16085         equal.
16086         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
16087         compare classes.        
16088
16089 2004-03-10  Martin Baulig  <martin@ximian.com>
16090
16091         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
16092
16093         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
16094         argument and write it into the `reflection_info' field.
16095
16096         * icall.c
16097         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
16098         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
16099
16100 2004-03-09  Jackson Harper  <jackson@ximian.com>
16101
16102         * char-conversions.h: use 8 bits for numeric data its all we need
16103         * icall.c: numeric data is only 8 bits now.
16104
16105 2004-03-09  Martin Baulig  <martin@ximian.com>
16106
16107         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
16108
16109         * class.c (init_properties, init_events): Initialize the new
16110         `parent' field.
16111
16112         * reflection.c (typebuilder_setup_properties): Likewise.
16113         (typebuilder_setup_events): Likewise.
16114
16115         * reflection.h (MonoEventInfo): Replaced `parent with
16116         `declaring_type' and `reflected_type'.
16117
16118         * icall.c (ves_icall_get_property_info): Distinguish between
16119         declaring and reflected type.
16120         (ves_icall_get_event_info): Likewise.
16121
16122 2004-03-09  Martin Baulig  <martin@ximian.com>
16123
16124         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
16125         (ves_icall_Type_GetField): Correctly set field->klass.
16126
16127 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
16128
16129         * loader.h: Fix warning.
16130
16131 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
16132
16133         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
16134         library routine if present.  Notice that it will still continue
16135         executing even if its missing, for those working on the Gtk#
16136         edition of Windows.Forms.
16137
16138         * assembly.c (do_mono_assembly_open): If loading the
16139         System.Windows.Forms call mono_loader_wini_init.
16140
16141 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
16142
16143         * class.h: Added MonoRemoteClass struct.
16144         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
16145         function for MonoStrings.
16146         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
16147         Added internal call for getting the proxy type.
16148         * marshal.c: Get the type of transparent proxies from its remote_class.
16149         Added methods that generate the IL for type checks and casts:
16150         mono_marshal_get_isinst, mono_marshal_get_castclass, 
16151         mono_marshal_get_proxy_cancast.
16152         * marshal.h: Declaration of the previous new methods.
16153         * object.c: Added new moethods for creating and updating MonoRemoteClass
16154         instances: mono_remote_class, mono_upgrade_remote_class, 
16155         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
16156         * verify.c: FIx transparent_proxy_fields layout.
16157         * appdomain.c: Bump corlib version.
16158
16159 2004-03-04  Jackson Harper  <jackson@ximian.com>
16160
16161         * icall.c: Add icall to access char conversion tables.
16162         * char-conversions.h: Character conversion tables.
16163         * Makefile.am: Add char-conversions.h private header file.
16164         
16165 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
16166
16167         * appdomain.c (unload_thread_main): Increase unloading timeout to
16168         10 sec as a temporary workaround for Nant problems.
16169
16170 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
16171
16172         * gc.c: Add checks for GC_enable and GC_disable.
16173
16174         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
16175         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
16176         (bug #54988).
16177         
16178 2004-02-27  Martin Baulig  <martin@ximian.com>
16179
16180         * reflection.c (mono_reflection_bind_generic_parameters): Take a
16181         `MonoReflectionType *' instead of a `MonoType *'.
16182
16183 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
16184
16185         * gc.c (run_finalize): Avoid finalizing the object representing the
16186         finalizer thread.
16187         (finalizer_thread): Fix warning.
16188
16189 2004-02-25  Martin Baulig  <martin@ximian.com>
16190
16191         * class.c (_mono_class_get_instantiation_name): Added `int offset'
16192         argument for nested types.
16193         (mono_class_create_generic): Added support for nested generictypes.
16194
16195         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
16196         `GList *nested'.
16197
16198         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
16199
16200         * reflection.c (method_encode_signature): Increase the minimum
16201         value of `size' from 10 to 11.
16202         (mono_reflection_bind_generic_parameters): Take `int type_argc'
16203         and `MonoType **types' arguments instead of the `MonoArray
16204         *types'; added `MonoType *nested_in'.  Recursively instantiate
16205         nested classes. 
16206
16207 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
16208
16209         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
16210         stack_overflow_ex members which are used by exception handling.
16211
16212         * appdomain.c (mono_runtime_init): Initialize the new members.
16213
16214         * gc.c (mono_gc_enable): New helper function.
16215         * gc.c (mono_gc_disable): New helper function.
16216
16217 2004-02-23  Martin Baulig  <martin@ximian.com>
16218
16219         * icall.c: I must have been really stupid - make it actually work
16220         this time ;-)
16221
16222 2004-02-23  Martin Baulig  <martin@ximian.com>
16223
16224         * loader.c (method_from_memberref): Only inflate the method if
16225         it's in another klass.
16226
16227 2004-02-23  Martin Baulig  <martin@ximian.com>
16228
16229         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
16230         (mono_class_init): If we're a generic instance and an interface,
16231         compute `class->interface_id'; also create `class->interfaces'
16232         here and inflate them.
16233
16234         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
16235         `ginst->is_open'.
16236         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
16237
16238         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
16239
16240 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
16241
16242         * reflection.c (method_encode_code): Improved the error message
16243         generated by the exception.
16244
16245 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16246
16247         * icall.c: Martin did not do what he said in the ChangeLog for
16248         2004-02-18, but put back the changes for properties and events.
16249         Commenting those changes out again and adding comment to bug #54518.
16250         
16251         * process.c: removed warning.
16252
16253 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
16254
16255         * marshal.c (emit_struct_conv): Print an error message instead of
16256         asserting when a type does not have the StructLayout attribute.
16257
16258 2004-02-20  Martin Baulig  <martin@ximian.com>
16259
16260         * reflection.c (mono_type_get_object): Also use the cache for
16261         generic instances.
16262         (mono_reflection_bind_generic_parameters): Always compute
16263         `ginst->ifaces'.        
16264
16265 2004-02-20  Martin Baulig  <martin@ximian.com>
16266
16267         * class.h (MonoGenericMethod): Removed `klass'.
16268
16269         * class.c (mono_class_inflate_generic_method): Added `MonoClass
16270         *klass' argument.
16271
16272 2004-02-20  Martin Baulig  <martin@ximian.com>
16273
16274         * reflection.c (method_encode_methodspec): Actually use the
16275         uninflated signature for the memberref.
16276
16277 2004-02-20  Martin Baulig  <martin@ximian.com>
16278
16279         * class.h (MonoGenericMethod): Removed `declaring'.
16280
16281         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
16282         is NULL, compute it here.
16283
16284 2004-02-20  Martin Baulig  <martin@ximian.com>
16285
16286         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
16287
16288         * metadata.c (mono_metadata_generic_inst_hash): New method.
16289         (mono_metadata_generic_inst_equal): New method.
16290
16291         * reflection.c (mono_reflection_bind_generic_parameters): Use the
16292         `klass->image->generic_inst_cache' cache to avoid creating
16293         duplicate MonoGenericInst's.
16294
16295         * class.c (mono_class_inflate_generic_type): Use the cache.
16296
16297 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
16298
16299         * object.c: fixed gc descriptor calculation for embedded valuetypes.
16300
16301 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16302
16303         * icall.c: added Socket.WSAIoctl icall.
16304
16305         * socket-io.[ch]: implemented
16306         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
16307
16308 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
16309
16310         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
16311
16312 2004-02-18  Urs C Muff  <umuff@quark.com>
16313
16314         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
16315         this work on PPC and other big-endian architectures.
16316
16317         * debug-mono-symfile.h: Prepended the names of all the `guint32'
16318         fields with an underscore to make sure they're only accessed by
16319         the read32() macro.
16320
16321 2004-02-18  Martin Baulig  <martin@ximian.com>
16322
16323         * icall.c: Put the klass->refclass changes back for methods and
16324         fields, but not for properties and events.  We're currently not
16325         distinguishing between DeclaringType and ReflectedType for
16326         properties and events, that's what caused the regressions.
16327
16328 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16329
16330         * object.c:
16331         (mono_async_result_new): the handle can be NULL.
16332
16333         * threadpool.c: Use an event instead of a semaphore, don't initialize
16334         it until needed. This saves quite a few semaphores from being created
16335         when using the threadpool.
16336
16337 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
16338
16339         * object.c (mono_string_is_interned_lookup): Fix interning of long
16340         strings. Fixes #54473.
16341
16342         * domain.c (ldstr_equal): Optimize if the two strings are equal.
16343
16344         * icall.c: Revert the klass->refclass changes since they introduce
16345         regressions (bug #54518).
16346
16347 2004-02-18  Martin Baulig  <martin@ximian.com>
16348
16349         * class.c (mono_class_init): If we're a generic instance and don't
16350         come from a TypeBuilder, inflate our members here.
16351         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
16352         (mono_class_create_generic): New public method.
16353         (mono_class_initialize_generic): Removed.
16354         (get_instantiation_name): Renamed to
16355         _mono_class_get_instantiation_name() and made it public.
16356
16357 2004-02-18  Martin Baulig  <martin@ximian.com>
16358
16359         * class.c (mono_class_inflate_generic_type): Clear the new
16360         instance's `nginst->klass' when inflating a generic instance.
16361         (mono_class_is_subclass_of): Added (basic) support for generic
16362         instances.
16363
16364 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
16365
16366         * appdomain.h, domain.c: use a MonoCodeManager instead of a
16367         MonoMempool to hold compiled native code.
16368
16369 2004-02-17  Martin Baulig  <martin@ximian.com>
16370
16371         * class.h (MonoDynamicGenericInst): Added `count_properties' and
16372         `properties'.
16373
16374         * reflection.c (mono_reflection_generic_inst_initialize): Added
16375         `MonoArray *properties' argument.
16376
16377         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
16378
16379 2004-02-17  Martin Baulig  <martin@ximian.com>
16380
16381         * icall.c (ves_icall_Type_GetFields): Renamed to
16382         ves_icall_Type_GetFields_internal() and added a
16383         `MonoReflectionType *rtype' argument; pass it to
16384         mono_field_get_object() to set the field's "reflected" type.
16385         (ves_icall_Type_GetConstructors): Likewise.
16386         (ves_icall_Type_GetEvents): Likewise.
16387         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
16388         argument; pass it to mono_method_get_object() to set the method's
16389         "reflected" type.       
16390
16391 2004-02-17  Martin Baulig  <martin@ximian.com>
16392
16393         * class.h (MonoDynamicGenericInst): New type.
16394         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
16395
16396         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
16397         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
16398         (ves_icall_MonoGenericInst_GetFields): New interncall.
16399
16400         * class.c (mono_class_from_generic): Don't call
16401         mono_class_initialize_generic() if this is a dynamic instance;
16402         ie. it's being created from a TypeBuilder.
16403         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
16404         `class->byval_arg.type'.
16405
16406         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
16407         to `inflate_method' and made static.
16408         (mono_reflection_inflate_field): Removed.
16409         (mono_reflection_generic_inst_initialize): New public method.
16410
16411         * reflection.h (MonoReflectionGenericInst): Removed `methods',
16412         `ctors' and `fields'; added `initialized'.
16413
16414 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
16415
16416         * debug-helpers.c (mono_method_full_name): Fix output for empty
16417         namespaces.
16418
16419 2004-02-12  Martin Baulig  <martin@ximian.com>
16420
16421         * class.h (MonoClassField): Added `MonoType *generic_type'.
16422
16423         * reflection.c (mono_image_get_fieldref_token): Added support for
16424         instantiated generic types.
16425         (field_encode_inflated_field): Removed.
16426         (mono_image_get_inflated_field_token): Removed.
16427         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
16428
16429         * reflection.h (MonoReflectionInflatedField): Removed.
16430
16431 2004-02-12  Martin Baulig  <martin@ximian.com>
16432
16433         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
16434         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
16435
16436         * reflection.c (mono_image_get_methodspec_token): Take a
16437         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
16438         (mono_image_create_token): Check whether we have a
16439         `method->signature->gen_method' and call
16440         mono_image_get_methodspec_token() if appropriate.
16441         (inflated_method_get_object): Removed.
16442         (mono_reflection_bind_generic_method_parameters): Return a
16443         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
16444         (mono_reflection_inflate_method_or_ctor): Likewise.
16445
16446         * reflection.h (MonoReflectionInflatedMethod): Removed.
16447
16448 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
16449
16450         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
16451         for custom valuetype marshalling.
16452
16453         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
16454
16455 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16456
16457         * icall.c: fixed WSAGetLastError_internal name.
16458
16459 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
16460
16461         * threads.c (mono_thread_attach): Allow this to be called multiple
16462         times for a thread.
16463         
16464         * threads.c (build_wait_tids): Do not wait for ourselves.
16465
16466         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
16467         appdomain list is empty.
16468
16469         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
16470         memory returned by mono_string_builder_to_utf16, since it points into
16471         managed memory. Thanks to Bernie Solomon for noticing this.
16472
16473         * icall.c: Add AppDomainSetup icalls.
16474
16475         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
16476
16477         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
16478         types.
16479
16480         * reflection.c (reflection_methodbuilder_to_mono_method): Save
16481         custom attributes to the method_aux struct. Also fix array indexes etc.
16482
16483         * loader.c (mono_method_get_param_names): Make dynamic case work again.
16484         
16485 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
16486
16487         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
16488         (both static and runtime) and reduce startup time.
16489
16490 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
16491
16492         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
16493         AsAny marshalling conversion instead of crashing.
16494
16495         * marshal.c: Fix warnings.
16496
16497 2004-02-09  Martin Baulig  <martin@ximian.com>
16498
16499         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
16500
16501         * reflection.h (MonoReflectionInflatedMethod): Removed the
16502         `declaring' field, it's now in the unmanaged MonoGenericMethod.
16503
16504         * reflection.c (method_encode_methodspec): Removed the `method'
16505         argument; we get it from `gmethod->declaring'.
16506         (inflated_method_get_object): Removed the `declaring' argument.
16507
16508 2004-02-09  Martin Baulig  <martin@ximian.com>
16509
16510         * class.h (MonoGenericMethod): New type.
16511         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
16512         `generic_method'.
16513
16514         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
16515         a `MonoGenericMethod *gen_method' one.
16516
16517         * class.c (mono_class_inflate_generic_type): Take an additional
16518         `MonoGenericMethod * argument.  This is only non-NULL if we're
16519         inflating types for a generic method.   
16520         (mono_class_inflate_generic_signature): Renamed to
16521         inflate_generic_signature() and made static; take a
16522         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16523         (inflate_generic_header): Take a `MonoGenericMethod *' argument
16524         instead of a `MonoGenericInst *' one.
16525         (mono_class_inflate_generic_method): Likewise.
16526
16527         * reflection.c (encode_generic_method_sig): Take a
16528         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16529         (method_encode_methodspec): Likewise.
16530         (inflated_method_get_object): Likewise. 
16531
16532         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
16533         field with a `MonoGenericMethod *gmethod' one.  
16534
16535 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
16536
16537         * class.h (mono_class_has_parent): add parens to expansion
16538         so you can ! this.
16539
16540 2004-02-08  Martin Baulig  <martin@ximian.com>
16541
16542         * image.h (MonoImage): Removed `generics_cache'.
16543
16544         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
16545         instead of a `MonoType *' argument; removed the `inflate_methods'
16546         argument.  Don't inflate methods here.
16547
16548         * loader.c (find_method): If it's a generic instance, call
16549         mono_class_init() on the `sclass->generic_inst->generic_type'.
16550
16551         * metadata.c (mono_type_size): Make this work on uninitialized
16552         generic instances; call it on the `ginst->generic_type's class.
16553
16554         * reflection.c (mono_reflection_bind_generic_parameters): Call
16555         mono_class_from_generic() to create the `ginst->klass'.
16556
16557 2004-02-08  Martin Baulig  <martin@ximian.com>
16558
16559         * class.h (MonoClass): Changed type of `generic_inst' from
16560         `MonoType *' to `MonoGenericInst *'.
16561
16562 2004-02-08  Martin Baulig  <martin@ximian.com>
16563
16564         * icall.c (ves_icall_Type_BindGenericParameters): Just call
16565         mono_type_get_object(), this is now creating a `MonoGenericInst'
16566         for MONO_TYPE_GENERICINST.
16567         (ves_icall_MonoGenericInst_GetParentType): Likewise.
16568         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
16569
16570         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
16571         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
16572         (inflated_method_get_object): Added `MonoClass *refclass' argument.
16573         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
16574         and reflected type.
16575
16576         * reflection.h (MonoReflectionInflatedMethod): Removed
16577         `declaring_type' and `reflected_type'.
16578
16579 2004-02-08  Martin Baulig  <martin@ximian.com>
16580
16581         * class.h (MonoGenericInst): Added `MonoType *parent' and
16582         `MonoType **ifaces'.
16583
16584         * reflection.h (MonoReflectionGenericInst): Removed `klass',
16585         `parent' and `interfaces'.
16586
16587         * reflection.c (mono_reflection_bind_generic_parameters): Take a
16588         `MonoType *' argument and return a `MonoType *'.
16589
16590         * icall.c
16591         (ves_icall_MonoGenericInst_GetParentType): New interncall.
16592         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
16593
16594 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
16595
16596         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
16597         valuetype marshalling.
16598
16599 2004-02-06  Martin Baulig  <martin@ximian.com>
16600
16601         * class.c
16602         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
16603         (my_mono_class_from_generic_parameter): Likewise.
16604
16605 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
16606
16607         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
16608         contents of the symbol files lazily.
16609
16610         * object.h (MonoThread): Add 'name' and 'name_len' fields.
16611
16612         * threads.h threads.c icall.c: New icalls for getting and setting the
16613         threads name.
16614
16615 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
16616
16617         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
16618         Raise an exception when the domain is not found.
16619
16620 2004-02-03  Martin Baulig  <martin@ximian.com>
16621
16622         * reflection.c (mono_image_get_methodspec_token): Use the
16623         uninflated signature; fixes gen-33.
16624
16625 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
16626
16627         * gc.c threads.c: Make the finalizer thread a normal managed thread so
16628         the finalizer code can use thread functionality.
16629
16630         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
16631         the finalizer thread.
16632
16633         * threads.c: Make some functions more robust.
16634
16635         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
16636
16637         * metadata.h: Add new marshalling conventions.
16638
16639         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
16640         stringbuilder marshalling. Fixes #53700.
16641
16642         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
16643
16644         * reflection.c (mono_image_get_type_info): Save declarative security
16645         info.
16646
16647         * reflection.c (mono_image_get_field_info): Handle uninitialized 
16648         unmanaged fields as well.
16649
16650         * appdomain.c: Bump corlib version.
16651
16652 2004-02-01  Martin Baulig  <martin@ximian.com>
16653
16654         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
16655         method type arguments.  
16656
16657 2004-01-30  Duncan Mak  <duncan@ximian.com>
16658
16659         * marshal.h: Add prototype for
16660         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
16661         and
16662         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
16663         fix the build.
16664
16665 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
16666
16667         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
16668         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
16669
16670 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
16671
16672         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16673         custom marshalling of valuetypes.
16674
16675         * marshal.c: Fix some warnings.
16676
16677 2004-01-29  Martin Baulig  <martin@ximian.com>
16678
16679         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
16680         for generic method parameters.
16681
16682         * reflection.c (method_encode_methodspec): Write the uninflated
16683         signature into the methodspec table.
16684         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
16685         is always the uninflated method.
16686         (reflection_methodbuilder_to_mono_method): Copy the generic
16687         parameters from the MethodBuilder into `header->gen_params'.
16688
16689 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
16690
16691         * class.c (mono_class_from_generic_parameter): Fix warning.
16692
16693 2004-01-27  Martin Baulig  <martin@ximian.com>
16694
16695         * class.c (mono_class_from_generic_parameter): Don't create
16696         `klass->methods' here.  
16697
16698 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
16699
16700         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
16701         extension since it does not work with libraries named lib<FOO>.dll.so.
16702
16703 2004-01-25  Martin Baulig  <martin@ximian.com>
16704
16705         * class.c (mono_class_inflate_generic_type): Added support for
16706         MONO_TYPE_GENERICINST.
16707
16708         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
16709         inflate methods on open constructed types.      
16710
16711 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16712
16713         * object.c: fire ProcessExit event in the root AppDomain after running
16714         Main. Fixes bug #53299.
16715
16716 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
16717
16718         * socket-io.c: include the new socket-wrappers.h header.
16719         Use the wrappers instead of the unix socket functions to make the code
16720         more clear.
16721
16722 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
16723
16724         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
16725
16726         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16727         Fixes #22532.
16728
16729 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
16730
16731         * reflection.c (mono_image_create_pefile): Handle the case when the
16732         entry point is not a MethodBuilder.
16733
16734         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16735         field to ReflectionMethod since it is not allways a builder.
16736
16737         * reflection.c (type_get_fully_qualified_name): New helper function to
16738         return the fully qualified name of a type.
16739
16740         * reflection.c (encode_marshal_blob): Always emit the fully qualified
16741         type name for custom marshallers.
16742
16743         * reflection.c (mono_marshal_spec_from_builder): Ditto.
16744
16745         * class.c (mono_class_setup_vtable): If a parent class already 
16746         implements an interface, use the implementing methods from that class.
16747         Fixes #53148.
16748
16749 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16750
16751         * threadpool.c: just return instead of ExitThread to allow for thread
16752         clean up earlier.
16753
16754 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
16755
16756         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
16757         when closing resource modules.
16758
16759         * reflection.c (mono_image_create_pefile): Handle the case when the
16760         entry point is not a MethodBuilder.
16761
16762         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16763         field to ReflectionMethod since it is not allways a builder.
16764
16765 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
16766
16767         * marshal.c (mono_marshal_get_managed_wrapper): 
16768         mono_marshal_alloc takes native int so CONV_I
16769         the arg for 64bits.
16770
16771 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
16772
16773         * reflection.c (fixup_cattrs): New function to fixup the methoddef
16774         tokens in the cattr table. Fixes #53108.
16775
16776 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16777
16778         * loader.c: don't trim ".dll" before looking up in the config file.
16779         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
16780
16781 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
16782
16783         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
16784         Return the module which contains the resource as well.
16785         (ves_icall_System_Reflection_Module_Close): New icall.
16786
16787         * appdomain.c: Bump corlib version number.
16788
16789         * image.c (mono_image_addref): New public function.
16790
16791         * assembly.c: Call mono_image_addref.
16792
16793         * reflection.c (mono_module_get_object): Increase reference count of 
16794         the image.
16795
16796         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16797         Fixes #22532.
16798
16799         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
16800         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
16801         proper exceptions on DllImport problems.
16802
16803 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
16804
16805         * class.c, metadata.c: eliminate CSIZE macro.
16806
16807 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
16808
16809         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
16810         * object.h: Added async_callback field in MonoAsyncResult.
16811         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
16812         * verify.c: Added async_callback in MonoAsyncResult layout.
16813
16814 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
16815
16816         * reflection.c (mono_reflection_get_custom_attrs): Add support
16817         for Modules.
16818
16819 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
16820
16821         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
16822         marshalling.
16823         (mono_marshal_method_from_wrapper): Add null pointer check.
16824
16825 2004-01-16  Martin Baulig  <martin@ximian.com>
16826
16827         * debug-mono-symfile.h: Set version number to 36 and reflect
16828         latest symbol writer changes.
16829
16830 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
16831
16832         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
16833         multi-dimensional arrays.
16834         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
16835         (mono_class_from_mono_type): Use bounded_array_class_get.
16836         
16837         * class.c (mono_bounded_array_class_get): New function which takes
16838         a 'bounded' bool argument to distinguish vectors from one dimensional
16839         arrays.
16840
16841         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
16842         bounded_array_class_get if the array has bounds.
16843
16844         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
16845         Search modules loaded using AssemblyBuilder:AddModule as well.
16846
16847 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16848
16849         * appdomain.c: increased corlib version.
16850         * filewatcher.c: removed g_print.
16851         * icall.c:
16852         (get_property_info): only allocate what is actually requested.
16853         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
16854
16855 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16856
16857         * Makefile.am: added filewatcher.[ch]
16858         * filewatcher.[ch]: FileSystemWatcher runtime support.
16859         * icall.c: added new FSW icalls.
16860
16861 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
16862
16863         * string-icalls.c: fix stringbuilder regression as suggested by
16864         Iain McCoy <iain@mccoy.id.au>.
16865
16866 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
16867
16868         * process.c (process_read_stringtable_block): Recognize '007f' as
16869         a language neutral stringtable block.
16870
16871 2004-01-12  Patrik Torstensson
16872
16873         * object.h (MonoStringBuilder) : Changed layout to support our
16874         new stringbuilder class.
16875         * marshal.c: Change marshalling to support the new layout of 
16876         string builder.
16877         * appdomain.c: increased version number because new layout of
16878         string builder.
16879
16880 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
16881
16882         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
16883         assembly name as an string instead of an AssemblyName, since it is
16884         easier to extract info from it.
16885
16886         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
16887         the culture subdirectories too. Fixes #52231.
16888
16889 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16890
16891         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
16892         It takes 2 new parameters with an optional name for the method to look
16893         for and case ignoring info.
16894
16895         * threadpool.c: removed unused variable.
16896
16897 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16898
16899         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
16900         It takes 2 new parameters with an optional name for the property to look
16901         for and case ignoring info.
16902         Fixes bug #52753.
16903
16904 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
16905
16906         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
16907         Fix #52451.
16908
16909 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16910
16911         * appdomain.c:
16912         * assembly.c: escape the uri before passing it to g_filename_from_uri.
16913         Fixes bug #52630.
16914
16915 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
16916
16917         * reflection.c: Add support for more than one unmanaged resource.
16918
16919         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
16920         in field->def_value, as done in all other cases.
16921
16922         * reflection.c (mono_reflection_get_custom_attrs): Add support for
16923         TypeBuilders.
16924
16925         * reflection.c (mono_reflection_create_runtime_class): Remove 
16926         errorneous assignment to klass->element_class, since it is already
16927         done in mono_reflection_setup_internal_class.
16928
16929 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16930
16931         * gc.c: added missing LeaveCriticalSection.
16932         * icall.c: indented a couple of lines.
16933         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
16934         if we call EndInvoke inside a callback. Fixes bug #52601.
16935
16936 2004-01-07  Martin Baulig  <martin@ximian.com>
16937
16938         * mono-debug-debugger.h
16939         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
16940
16941 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
16942
16943         * appdomain.c: Use messages in NotImplementedException.
16944
16945         * exception.c (mono_get_exception_not_implemented): Now this takes
16946         a message argument.
16947
16948         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
16949         exception instead of g_asserting an aborting when something is not
16950         implemented.
16951
16952         Add some inline docs.
16953
16954 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
16955
16956         * reflection.h: Update after changes to object layout.
16957
16958         * reflection.c: Implement saving of unmanaged aka win32 resources.
16959
16960         * appdomain.c: Bump version number.
16961
16962         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
16963         Handle missing domains gracefully.
16964
16965 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
16966
16967         * file-io.c : On Windows, there are much more invalid_path_chars.
16968
16969 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
16970
16971         * class.h, object.c: prepare for GetType () speedup.
16972
16973 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
16974
16975         * profiler.c: workaround for --profile null reference exception on
16976           cygwin. Patch by Patrik Torstensson.
16977
16978 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
16979
16980         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
16981         make work for unaligned access.
16982
16983 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
16984
16985         * class.c: small cleanup (class->fields [i] -> field).
16986         * image.c: check address of metadata is valid.
16987
16988 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
16989
16990         * assembly.h assembly.c (mono_assembly_loaded): New public function to
16991         search the list of loaded assemblies.
16992
16993         * reflection.c (mono_reflection_type_from_name): Use 
16994         mono_assembly_loaded instead of mono_image_loaded.
16995
16996         * reflection.c: Fix warnings.
16997
16998 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
16999
17000         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
17001         is dynamic. This is needed since an assembly can contain both dynamic and
17002         non-dynamic images.
17003
17004         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
17005         assembly->dynamic.
17006
17007         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
17008
17009         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
17010         to store modules loaded using AddModule.
17011
17012         * reflection.c (mono_image_fill_file_table): Generalize this so it works
17013         on Modules.
17014
17015         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
17016
17017         * reflection.c (mono_image_fill_export_table_from_module): New function to
17018         fill out the EXPORTEDTYPES table from a module.
17019
17020         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
17021         into a separate function. Also handle loaded non-dynamic modules.
17022
17023         * reflection.c (mono_image_basic_init): Fix memory allocation.
17024
17025         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17026
17027         * assembly.c (mono_assembly_load_references): Make this public.
17028
17029 2003-12-19  Martin Baulig  <martin@ximian.com>
17030
17031         * class.c (mono_class_initialize_generic): Made this static, take
17032         a `MonoGenericInst *' instead of a `MonoClass *'.
17033         (mono_class_from_generic): Call mono_class_initialize_generic()
17034         unless we're already initialized or being called from
17035         do_mono_metadata_parse_generic_inst().
17036
17037         * class.h (MonoGenericInst): Added `initialized' and
17038         `init_pending' flags.
17039
17040         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
17041         `mono_class_init (gklass)' or mono_class_initialize_generic()
17042         here; set `generic_inst->init_pending' while parsing the
17043         `type_argv'.
17044
17045 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
17046
17047         * locales.c: include string.h for memxxx prototypes
17048
17049 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
17050
17051         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
17052         constructor when accessing literal fields.
17053
17054 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
17055
17056         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17057
17058         * reflection.c (assembly_add_resource_manifest): New function to fill
17059         the MANIFESTRESOURCE table.
17060
17061         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
17062
17063         * reflection.h: Update to changes in class layout.
17064
17065         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
17066         Reenable call to mono_runtime_is_shutting_down ().
17067
17068         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
17069         determine if the runtime is shutting down.
17070
17071 2003-12-16  Jackson Harper <jackson@ximian.com>
17072
17073         * icall.c: comment out call to mono_runtime_is_shutting_down to
17074         fix build.
17075         
17076 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
17077
17078         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
17079         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
17080
17081 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
17082
17083         * reflection.c: move definition of swap_with_size
17084         to before its first call
17085
17086 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
17087
17088         * appdomain.c (mono_runtime_is_shutting_down): New public function.
17089
17090         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
17091         icall.
17092
17093         * object.c: Fix warnings.
17094
17095         * icall.c (ves_icall_Type_Get...): Only consider inherited static
17096         members if FlattenHierarchy is set.
17097
17098         * reflection.c (mono_image_add_decl_security): New function to emit
17099         declarative security.
17100
17101         * reflection.h reflection.c: Add support for declarative security.
17102
17103         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17104         
17105 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
17106
17107         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17108         
17109         * appdomain.c verify.c: Moved corlib version checking into its own
17110         function in appdomain.c since it needs to create vtables etc.
17111
17112 2003-12-13  Patrik Torstensson <p@rxc.se>
17113
17114         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
17115         instead of unwrapped server.
17116
17117 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
17118
17119         * verify.c (check_corlib): Fix field index.
17120
17121 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
17122
17123         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
17124         GetGacPath icall.
17125
17126 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
17127
17128         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
17129         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
17130         cope with sizeof(size_t) != sizeof(guint32).
17131
17132 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17133
17134         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
17135         in case of failure.
17136
17137 2003-12-10  Mark Crichton <crichton@gimp.org>
17138
17139         * icall.c: removed the GetNonZeroBytes.  We now handle this case
17140         in managed code.
17141
17142         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
17143
17144 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
17145
17146         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
17147         marked as deleted.
17148
17149 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
17150
17151         * verify.c (check_corlib): Handle the case when the version field is 
17152         initialized by a static constructor.
17153
17154 2003-12-08  Patrik Torstensson  <p@rxc.se>
17155
17156     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
17157
17158 2003-12-08  Martin Baulig  <martin@ximian.com>
17159
17160         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
17161         a MonoReflectionGenericParameter, also take the parameter index
17162         and name as arguments.
17163         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
17164         (ves_icall_MonoGenericParam_initialize): New interncall.
17165         (ves_icall_Type_make_byref_type): New interncall.
17166
17167         * reflection.h (MonoReflectionGenericParam): Derive from
17168         MonoReflectionType, not just from MonoObject.  Added `refobj' and
17169         `index' fields.
17170
17171         * reflection.c (mono_reflection_define_generic_parameter): Create
17172         and return a new MonoReflectionGenericParam; don't initialize the
17173         constraints here.
17174         (mono_reflection_initialize_generic_parameter): New public method;
17175         initializes the constraints and creates the `param->pklass'.
17176
17177 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
17178
17179         * reflection.h reflection.c: Use the new fields 'num_types', 
17180         'num_fields' and 'num_methods' to track the number of types etc.
17181
17182         * verify.c (check_corlib): Check corlib version number.
17183
17184 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
17185
17186         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
17187         function works on all methods.
17188
17189 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
17190
17191         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
17192         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
17193         the custom_type_info flag of the transparent proxy.
17194         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
17195         objects that supports IRemotingTypeInfo.
17196         * object.h: Added custom_type_info field in transparent proxy.
17197
17198 2003-12-06  Martin Baulig  <martin@ximian.com>
17199
17200         * class.c (mono_class_create_from_generic): Removed.
17201         (mono_class_from_generic): Check `ginst->klass' before doing
17202         anything else.  This is important to fully support "recursive"
17203         generic types.
17204
17205         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
17206         empty `generic_inst->klass' before doing anything else.
17207
17208 2003-12-06  Dick Porter  <dick@ximian.com>
17209
17210         * verify.c: 
17211         * object.h:
17212         * icall.c:
17213         * locales.c: Use C structs to access class fields.  Don't do a
17214         conversion between MonoString and UChar because both are
17215         platform-endian UTF-16.  Compare now takes startindex and count
17216         parameters.  Add a char overload for IndexOf.  Speed up the
17217         invariant string IndexOf.
17218
17219 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
17220
17221         * Makefile.am (monosn_LDADD): Fix parallel build.
17222
17223 2003-12-04  Martin Baulig  <martin@ximian.com>
17224
17225         * icall.c
17226         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17227         (ves_icall_Type_make_array_type): New interncall.       
17228
17229 2003-12-04  Martin Baulig  <martin@ximian.com>
17230
17231         * locales.c: also change it in the !HAVE_ICU case.
17232
17233 2003-12-04  Dick Porter  <dick@ximian.com>
17234
17235         * icall.c:
17236         * locales.c: construct_compareinfo is now in CompareInfo, not
17237         CultureInfo.
17238
17239 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
17240
17241         * image.c (mono_image_load_file_for_image): Cache loaded images in the
17242         image->files array.
17243
17244         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
17245         table as well.
17246
17247         * assembly.c (mono_assembly_load_references): Only load references
17248         once.
17249
17250         * class.c (mono_class_from_name): Avoid linear search of the 
17251         EXPORTEDTYPE table.
17252
17253         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
17254
17255 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
17256
17257         * image.h (MonoImage): Add 'field_cache' field.
17258
17259         * loader.c (mono_field_from_token): Cache field lookups.
17260         
17261         * reflection.c (mono_module_get_object): Fix name property.
17262
17263         * icall.c (ves_icall_get_enum_info): Update after changes to 
17264         mono_metadata_get_constant_index ().
17265
17266         * icall.c: Get rid of get_type_info icall, use a separate icall for
17267         each type property to avoid needless memory allocations. Fixes #51514.
17268
17269         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
17270         to avoid needless binary searches.
17271
17272         * class.c (class_compute_field_layout): Move the initialization of
17273         field->def_value to mono_class_vtable ().
17274
17275         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
17276         non-corlib types.
17277
17278         * object.c (mono_object_allocate): Make it inline.
17279
17280         * object.c (mono_object_allocate_spec): Make it inline.
17281         
17282 2003-12-02  Dick Porter  <dick@ximian.com>
17283
17284         * locales.c (create_NumberFormat): NumberFormatInfo construction.
17285         Patch by Mohammad DAMT (mdamt@cdl2000.com).
17286
17287 2003-12-01  Dick Porter  <dick@ximian.com>
17288
17289         * threads.c: Fix signature and call in CreateMutex and
17290         CreateEvent.
17291
17292 2003-12-01  Dick Porter  <dick@ximian.com>
17293
17294         * icall.c: 
17295         * locales.c: Implement string compares and searching
17296
17297         * object.h: Add extra Thread field
17298
17299 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
17300
17301         * reflection.c (fixup_method): Add support for MonoCMethod.
17302
17303 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
17304
17305         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
17306
17307         * reflection.c (assembly_name_to_aname): Allow extra characters in
17308         assembly names. Fixes #51468.
17309
17310 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
17311
17312         * exception.c (mono_exception_from_name_domain): New helper function.
17313
17314         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
17315         exception object in the correct domain.
17316
17317         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
17318         formatting + make a copy a the input data.
17319
17320         * loader.c (mono_get_method_from_token): Methods which contain
17321         native code do not have entries in the ImplMap.
17322
17323         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
17324         Thanks to Gonzalo for spotting this.
17325         
17326         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
17327         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
17328
17329         * assembly.h (mono_assembly_load_from): Split the second part of 
17330         assembly loading into a new public function.
17331
17332         * exception.h (mono_get_exception_bad_image_format): New function.
17333
17334 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
17335
17336         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
17337         Enumerate all modules inside a dynamic assembly. Fixes #51293.
17338         
17339         * icall.c: Add new icall for creating dynamic methods.
17340
17341         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
17342
17343         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
17344
17345         * reflection.c (mono_reflection_create_dynamic_method): New icall to
17346         create a dynamic method.
17347
17348         * reflection.c (resolve_object): New helper function.
17349
17350         * reflection.c: Generalize ReflectionMethodBuilder and the functions
17351         which manipulate it so they can also work on dynamic methods.
17352
17353         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
17354         creating the MonoReflectionMethodAux structure if it is not needed.
17355         
17356         * reflection.h verify.c: Update after changes to object layout.
17357
17358         * reflection.c (method_builder_encode_signature): Fix compilation on
17359         gcc 2.95.x.
17360
17361 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
17362
17363         * appdomain.h: Added support for context static fields. Added static_data
17364           field to MonoAppContext and renamed thread_static_fields to a more
17365           generic special_static_fields in MonoAppDomain, since it can now contain
17366           context static fields.
17367         * domain.c: Updated hashtable name.
17368         * object.c: Replaced field_is_thread_static() for a more generic
17369           field_is_special_static() which also checks for context static attribute.
17370           In mono_class_vtable(), added support for static context fields.
17371         * threads.c: Changed methods that manage thread static fields to more
17372           generic methods so they can be reused both for thread and context static
17373           data.
17374         * threads.h: Declared some new methods.
17375
17376 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
17377
17378         * reflection.h: Update after changes to the managed types.
17379
17380         * reflection.c (encode_custom_modifiers): New helper function.
17381
17382         * reflection.c (method_encode_signature): Emit custom modifiers.
17383
17384         * reflection.c (field_encode_signature): Emit custom modifiers.
17385
17386 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
17387
17388         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
17389
17390         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
17391         implementation.
17392
17393         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
17394         icall.
17395
17396         * object.c (mono_field_get_value_object): New function.
17397
17398         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
17399         specific.
17400
17401 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
17402
17403         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
17404         return a preallocated out-of-memory exception instance.
17405
17406         * object.c (out_of_memory): Use the new function.
17407
17408         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
17409         flag is before the custom modifiers. Fixes #49802.
17410
17411 2003-11-16  Martin Baulig  <martin@ximian.com>
17412
17413         * class.c (mono_class_is_open_constructed_type): Implemented the
17414         MONO_TYPE_GENERICINST case.
17415
17416 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
17417
17418         * assembly.c (mono_assembly_fill_assembly_name): New function to
17419         fill out the MonoAssemblyName structure.
17420         (mono_assembly_open): Use the new function.
17421
17422         * icall.c (fill_reflection_assembly_name): New helper function.
17423
17424         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
17425         new function.
17426
17427         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
17428
17429 2003-11-15  Martin Baulig  <martin@ximian.com>
17430
17431         * class.c (mono_class_is_open_constructed_type): New public
17432         function; checks whether a type is an open constructed type,
17433         ie. whether it still contains type parameters.
17434         (mono_class_inflate_generic_type): If we're a type parameter and
17435         the inflated type is also a MONO_TYPE_(M)VAR, return the original
17436         type.
17437
17438         * class.h (MonoGenericInst): Added `guint32 is_open'.
17439
17440         * loader.c (method_from_methodspec): Check whether we're an open
17441         or closed constructed type and set `ginst->is_open'.
17442
17443         * reflection.c (mono_reflection_bind_generic_parameters): Check
17444         whether we're an open or closed constructed type and set
17445         `ginst->is_open'.
17446         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
17447         from open constructed types.
17448
17449 2003-11-15  Martin Baulig  <martin@ximian.com>
17450
17451         * reflection.c (mono_reflection_bind_generic_parameters): If we're
17452         a generic instance (instead of a generic type declaration) with
17453         unbound generic parameters, bind them to our actual types.
17454
17455 2003-11-14  Martin Baulig  <martin@ximian.com>
17456
17457         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
17458
17459         * reflection.c (mono_reflection_bind_generic_parameters): If we're
17460         an interface type, populate `res->interfaces' with instantiated
17461         versions of all the interfaces we inherit.
17462
17463 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
17464
17465         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
17466         when MONO_PATH is set but doesn't contain the install dir.
17467
17468 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17469
17470         * icall.c:
17471         (ves_icall_Type_GetInterfaces): don't return an interface twice when
17472         it's also implemented in base classes. Fixes bug #50927.
17473
17474 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
17475
17476         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
17477         if this method is called from a finalizer. Fixes #50913.
17478
17479 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
17480
17481         * threads.c: Implement VolatileRead/VolatileWrite
17482
17483         * icall.c: Add new icalls for VolatileRead/VolatileWrite
17484
17485 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17486
17487         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
17488         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
17489         2.95.3.
17490
17491         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
17492         from Peter Ross (pro@missioncriticalit.com).
17493         
17494 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
17495
17496         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
17497
17498 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17499
17500         * assembly.c (mono_assembly_load_references): Disable check because it
17501         triggers on older corlibs which lots of people have.
17502
17503 2003-11-12  Jackson Harper  <jackson@ximian.com>
17504
17505         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
17506         load corlib.dll if mscorlib.dll is not found.
17507         * assembly.h: Remove corlib name define.
17508         * class.c:
17509         * domain.c:
17510         * image.c: Change corlib name to mscorlib.
17511         
17512 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17513
17514         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
17515
17516 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
17517
17518         * appdomain.h: Added loader_optimization here to sync with the C#
17519         code, and add disallow_binding_redirects field.
17520
17521 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
17522
17523         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
17524
17525         * reflection.c (mono_image_build_metadata): Fix crash on modules
17526         with no types.
17527
17528         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
17529
17530         * icall.c (ves_icall_get_method_info): Return callingConvention as
17531         well.
17532
17533         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
17534         namespaces from the EXPORTEDTYPE table as well.
17535
17536         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
17537         from all modules inside the assembly.
17538         
17539 2003-11-11  Martin Baulig  <martin@ximian.com>
17540
17541         * reflection.c (mono_reflection_bind_generic_parameters): Make
17542         this work for interfaces.
17543
17544 2003-11-11  Martin Baulig  <martin@ximian.com>
17545
17546         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
17547
17548 2003-11-11  Martin Baulig  <martin@ximian.com>
17549
17550         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
17551         "MonoInflatedMethod" and "MonoInflatedCtor".
17552
17553 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
17554
17555         * reflection.c (resolution_scope_from_image): Use the assembly table
17556         from the manifest module, since other modules don't have it.
17557
17558         * debug-helpers.c (mono_type_full_name): New helper function.
17559
17560         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
17561
17562         * image.c (mono_image_load_file_for_image): New public function which
17563         is a replacement for the load_file_for_image in class.c.
17564
17565         * assembly.c (mono_assembly_load_module): A wrapper for the function
17566         above which does assembly association and reference loading too.
17567
17568         * class.c (mono_class_from_name): Call mono_assembly_load_module.
17569
17570 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17571
17572         * appdomain.c: not all of the attributes for the full assembly name
17573         are required and the order doesn't matter. Fixes bug #50787.
17574
17575 2003-11-10  Dick Porter  <dick@ximian.com>
17576
17577         * locales.c: Use platform-endian UTF16
17578
17579 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
17580
17581         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17582         
17583 2003-11-10  Martin Baulig  <martin@ximian.com>
17584
17585         * metadata.c
17586         (mono_metadata_load_generic_params): Make this actually work.
17587
17588         * reflection.c (mono_reflection_bind_generic_parameters): If our
17589         parent is a generic instance, pass all the `types' to it, no
17590         matter whether it has the same number of type parameters or not.
17591
17592 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
17593
17594         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17595
17596         * assembly.c (mono_assembly_load_references): Move the image<->assembly
17597         assignment code to this function so it gets called recursively for all
17598         modules.
17599
17600         * image.c (load_modules): Remove the assembly assignment since it is
17601         now done by mono_assembly_load_references.
17602         
17603         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
17604         Add 'module' argument.
17605         (mono_module_get_types): New helper function.
17606         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
17607
17608 2003-11-08  Martin Baulig  <martin@ximian.com>
17609
17610         * class.c (mono_class_inflate_generic_method): Interface method
17611         don't have a header.
17612
17613         * reflection.c (mono_image_get_methodspec_token): Take an
17614         additional `MonoGenericInst *' argument instead of reading it from
17615         the header; this is necessary to support interfaces.
17616         (mono_image_create_token): Pass the `MonoGenericInst *' from the
17617         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
17618         (inflated_method_get_object): Take an additional `MonoGenericInst *'
17619         argument.
17620
17621         * reflection.h (MonoReflectionInflatedMethod): Added
17622         `MonoGenericInst *ginst'.
17623
17624 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
17625
17626         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
17627
17628 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
17629
17630         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
17631
17632 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
17633
17634         * reflection.c 
17635         (reflection_methodbuilder_from_method_builder):
17636         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
17637         initialize a ReflectionMethodBuilder structure.
17638         (mono_image_get_methodbuilder_token):
17639         (mono_image_get_ctorbuilder_token): New functions to emit memberref
17640         tokens which point to types in another module inside the same assembly.
17641
17642         * reflection.c: Use the new helper functions.
17643         
17644         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
17645
17646         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
17647         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
17648
17649         * reflection.c (resolution_scope_from_image): Emit a moduleref if
17650         neccesary.
17651
17652         * reflection.c (mono_image_build_metadata): Emit metadata only for the
17653         current module. Emit the manifest only for the main module.
17654
17655         * reflection.c (mono_image_create_token): Add assertion when a 
17656         memberref needs to be created.
17657
17658         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
17659
17660         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
17661         larger buffer for the custom attribute blob. Fixes #50637.
17662         
17663 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17664
17665         * threadpool.c: notify listener on async processing handles after
17666         invoking the async callback. Thanks to Zoltan.
17667
17668 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17669
17670         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
17671         avoid code duplication.
17672
17673         * reflection.h (MonoDynamicImage): New type which is currently unused,
17674         but will be used through the ref.emit code in place of 
17675         MonoDynamicAssembly.
17676
17677         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17678         object layout.
17679
17680         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
17681         a MonoDynamicImage instead of just a MonoImage.
17682         
17683         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
17684         icalls to ModuleBuilder but keep their semantics, so they will work
17685         with moduleb->assemblyb. This will change later.
17686         
17687 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17688
17689         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17690         object layout.
17691
17692         * reflection.c (mono_image_build_metadata): Avoid creation of a default
17693         main module, since it is now done by the managed code.
17694
17695 2003-11-03  Martin Baulig  <martin@ximian.com>
17696
17697         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
17698         `ginst->klass' here.
17699         (method_encode_methodspec): Don't use the `ginst->generic_method's
17700         klass if it's a generic instance, use `ginst->klass' in this case.
17701
17702 2003-11-03  Martin Baulig  <martin@ximian.com>
17703
17704         * reflection.c (mono_image_get_generic_method_param_info):
17705         Removed, use mono_image_get_generic_param_info() instead.
17706         (mono_image_get_type_info): Write the GenericParam table before
17707         the Method table.  This is neccessary because in the GenericParam
17708         table, type parameters of the class (ie. '!0' etc.) must come
17709         before the ones from its generic methods (ie. '!!0' etc).
17710
17711 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17712
17713         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
17714
17715 2003-11-02  Martin Baulig  <martin@ximian.com>
17716
17717         * reflection.c (create_generic_typespec): Take a
17718         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
17719         the generic parameters from it.
17720
17721 2003-11-02  Martin Baulig  <martin@ximian.com>
17722
17723         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
17724         instead of a `MonoClassField *' since we just need the type.
17725         (create_generic_typespec): New static function.  Creates a
17726         TypeSpec token for a generic type declaration.
17727         (mono_image_get_generic_field_token): New static function.
17728         (mono_image_create_token): If we're a FieldBuilder in a generic
17729         type declaration, call mono_image_get_generic_field_token() to get
17730         the token.
17731
17732 2003-11-02  Martin Baulig  <martin@ximian.com>
17733
17734         * reflection.h
17735         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
17736         `MonoReflectionGenericInst *declaring_type' and
17737         `MonoReflectionGenericInst *reflected_type' fields.
17738
17739         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
17740         `MonoReflectionGenericInst *declaring_type' and a
17741         `MonoReflectionGenericInst *reflected_type' argument instead of a
17742         single `MonoReflectionGenericInst *type' one.  Set
17743         `res->declaring_type' and `res->reflected_type' from them.
17744         (mono_reflection_inflate_field): Likewise.      
17745
17746 2003-11-02  Martin Baulig  <martin@ximian.com>
17747
17748         * class.c (mono_class_setup_vtable): Don't store generic methods
17749         in the vtable.  
17750
17751 2003-11-02  Martin Baulig  <martin@ximian.com>
17752
17753         * reflection.h (MonoReflectionGenericInst): Added
17754         `MonoReflectionType *declaring_type'.
17755
17756         * reflection.c (mono_reflection_bind_generic_parameters): Use
17757         `if (tb->parent)' instead of `klass->parent'.
17758
17759 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
17760
17761         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
17762         with an empty ASSEMBLY table.
17763
17764         * reflection.c (mono_image_build_metadata): Avoid using the same loop
17765         variable in the inner and outer loops.
17766
17767 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
17768
17769         * metadata.h (mono_metadata_make_token): Put parentheses around macro
17770         argument.
17771
17772         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
17773         
17774         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
17775         icalls. Instead, do everything in managed code. This is needed since
17776         it is hard to restore the original domain etc. in unmanaged code in the
17777         presence of undeniable exceptions.
17778
17779         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
17780         New icalls to push and pop appdomain refs.
17781
17782 2003-10-31  Martin Baulig  <martin@ximian.com>
17783
17784         * class.c (inflate_generic_type): Renamed to
17785         mono_class_inflate_generic_type() and made it public.
17786
17787         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
17788         New interncall.
17789
17790         * loader.c (mono_field_from_memberref): Also set the retklass for
17791         typespecs.
17792
17793         * fielder.c (mono_image_get_inflated_field_token): New static
17794         method; creates a metadata token for an inflated field.
17795         (mono_image_create_token, fixup_method): Added support for
17796         "MonoInflatedField".
17797         (fieldbuilder_to_mono_class_field): New static function.
17798         (mono_reflection_inflate_field): New public function.
17799
17800         * reflection.h
17801         (MonoReflectionGenericInst): Added `MonoArray *fields'.
17802         (MonoReflectionInflatedField): New typedef.     
17803
17804 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
17805
17806         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
17807         for Solaris and other platforms without s6_addr16
17808
17809 2003-10-30  Martin Baulig  <martin@ximian.com>
17810
17811         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
17812         argument instead of two.
17813         (mono_class_inflate_generic_signature): Likewise.
17814         (inflate_generic_header): Likewise.
17815         (mono_class_inflate_generic_method): Likewise.  In addition, if
17816         `ginst->klass' is set, it becomes the new `method->klass'.
17817
17818         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
17819         field.
17820
17821         * reflection.c (encode_generic_method_sig): Write a 0xa as the
17822         first byte. [FIXME]
17823         (method_encode_methodspec): If we have generic parameters, create
17824         a MethodSpec instead of a MethodRef.
17825         (fixup_method): Added support for "MonoInflatedMethod" and
17826         "MonoInflatedCtor".
17827         (mono_image_create_token): Added support for "MonoInflatedMethod"
17828         and "MonoInflatedCtor".
17829         (inflated_method_get_object): New static function; returns a
17830         managed "System.Reflection.MonoInflatedMethod" object.
17831         (mono_reflection_bind_generic_method_parameters): Return a
17832         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
17833         (mono_reflection_inflate_method_or_ctor): Likewise.
17834         (mono_image_get_generic_method_param_info): Initialize unused
17835         fields to zero.
17836         (mono_image_get_generic_param_info): Likewise.
17837
17838         * reflection.h (MonoReflectionInflatedMethod): New public
17839         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
17840         "S.R.MonoInflatedCtor" classes.
17841
17842         * loader.c (method_from_memberref): If we're a TypeSpec and it
17843         resolves to a generic instance, inflate the method.
17844
17845 2003-10-28  Dick Porter  <dick@ximian.com>
17846
17847         * object.c (mono_runtime_run_main): Convert command-line arguments
17848         into utf8, falling back to the user's locale encoding to do so.
17849
17850 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
17851
17852         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
17853         at this time.
17854
17855         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
17856
17857         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
17858         up icalls at method definition time. Partially fixes #33569.
17859
17860 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
17861
17862         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
17863         marshalling of arrays. Fixes #50116.
17864
17865         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
17866
17867         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
17868         points to a vtable in the dying appdomain.
17869
17870         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
17871         listeners into unmanaged code inside the lock.
17872
17873         * object.c (mono_class_vtable): Turn off typed allocation in non-root
17874         domains and add some comments.
17875
17876 2003-10-25  Martin Baulig  <martin@ximian.com>
17877
17878         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
17879
17880         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
17881
17882         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
17883         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
17884         currently parsing.  Create the generic class and store it in
17885         `generic_inst->klass' before parsing the type arguments.  This is
17886         required to support "recursive" definitions; see mcs/tests/gen-23.cs
17887         for an example.
17888         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
17889         to support recursive typespec entries.
17890
17891         * class.c (mono_class_setup_parent): If our parent is a generic
17892         instance, we may get called before it has its name set.
17893         (mono_class_from_generic): Splitted into
17894         mono_class_create_from_generic() and mono_class_initialize_generic().
17895
17896 2003-10-25  Martin Baulig  <martin@ximian.com>
17897
17898         * icall.c (ves_icall_Type_BindGenericParameters): Return a
17899         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
17900         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
17901         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
17902
17903         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
17904         (create_typespec): Likewise.
17905         (mono_reflection_bind_generic_parameters): Return a
17906         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
17907         (mono_reflection_inflate_method_or_ctor): New public function.
17908
17909         * reflection.h (MonoReflectionGenericInst): New typedef.        
17910
17911 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
17912
17913         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
17914         inside the domain lock. Fixes #49993.
17915         
17916         * object.c (mono_class_vtable): When typed allocation is used, 
17917         allocate vtables in the GC heap instead of in the mempool, since the
17918         vtables contain GC descriptors which are used by the collector even
17919         after the domain owning the mempool is unloaded.
17920
17921         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
17922
17923         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
17924         reflect what it does. Also invalidate mempools instead of freeing
17925         them if a define is set.
17926
17927         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
17928         of the appdomain.
17929         
17930         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
17931         hold the finalizable objects in this domain.
17932
17933         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
17934         appdomain.
17935
17936         * appdomain.c (mono_domain_set): New function to set the current
17937         appdomain, but only if it is not being unloaded.
17938
17939         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
17940         appdomain which is being unloaded.
17941         
17942         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
17943         unloading of the root appdomain.
17944
17945         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
17946         icall to execute a method in another appdomain. Intended as a 
17947         replacement for InternalSetDomain, which can confuse the code 
17948         generation in the JIT.
17949
17950         * appdomain.c (mono_domain_is_unloading): New function to determine
17951         whenever an appdomain is unloading.
17952
17953         * appdomain.c (mono_domain_unload): New function to correctly unload
17954         an appdomain.
17955
17956         * assembly.c (mono_assembly_load_references): Check that an assembly
17957         does not references itself.
17958
17959         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
17960         domain manually, it asks the finalizer thread to do it, then waits for
17961         the result. Also added a timeout.
17962
17963         * icall.c: Register the new icalls.
17964
17965         * threads.h threads.c: Export the mono_gc_stop_world and 
17966         mono_gc_start_world functions.
17967         
17968         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
17969         function to fill out the mempool with 0x2a.
17970
17971 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
17972
17973         * reflection.h (MonoReflectionMethodAux): New structure to store
17974         information which is rarely used, thus is not in the MonoMethod
17975         structure.
17976
17977         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
17978         store the aux info.
17979
17980         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
17981         and marshalling info into the aux structure.
17982
17983         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
17984         from the aux structure.
17985
17986         * loader.c (mono_method_get_param_names): Retrieve the param names from
17987         the aux structure.
17988         
17989 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
17990
17991         * exception.h exception.c: Add AppDomainUnloadedException && fix 
17992         warning.
17993
17994 2003-10-21  Dick Porter  <dick@ximian.com>
17995
17996         * socket-io.c
17997         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
17998         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
17999
18000 2003-10-21  Martin Baulig  <martin@ximian.com>
18001
18002         * reflection.c (mono_reflection_bind_generic_parameters):
18003         `klass->parent' is NULL for interfaces.
18004
18005 2003-10-21  Martin Baulig  <martin@ximian.com>
18006
18007         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18008
18009 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
18010
18011         * exception.c (mono_exception_from_name_msg): New helper function for
18012         creating exceptions and initializing their message field.
18013
18014         * exception.c: Simplify functions using the new helper.
18015
18016         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
18017         New function.
18018
18019         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
18020         mono_raise_exception, since otherwise gcc doesn't generate the function
18021         epilog for raise_exception, confusing the stack unwinding in the JIT.
18022         Fixes #45043.
18023
18024         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
18025         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
18026         Fixes #49499.
18027
18028 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18029
18030         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
18031         utf8.
18032
18033 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
18034
18035         * icall.c: Removed GetUninitializedObject method because
18036           AllocateUninitializedClassInstance does the same.
18037
18038 2003-10-18  Martin Baulig  <martin@ximian.com>
18039
18040         * class.c (inflate_generic_signature): Renamed to
18041         mono_class_inflate_generic_signature() and made it public.
18042         (my_mono_class_from_generic_parameter): New static function; if we
18043         don't already have the generic parameter's MonoClass, create a
18044         very simple one which is just used internally in the runtime and
18045         not passed back to managed code.
18046
18047         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
18048
18049         * metadata.h (MonoMethodSignature): Moved the
18050         `MonoGenericParam *gen_params' to the MonoMethodHeader.
18051         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
18052
18053         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
18054         ves_icall_MonoMethod_GetGenericArguments(); this is now an
18055         interncall on the MonoMethod class, not on MethodInfo.
18056         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
18057         calling mono_reflection_bind_generic_method_parameters() directly.
18058
18059         * loader.c (mono_method_get_signature): If this is a MethodSpec;
18060         return the already computed `method->signature'.
18061         (method_from_methodspec): New static function to load a method
18062         from a MethodSpec entry.
18063         (mono_get_method_from_token): Call the new method_from_methodspec()
18064         for MethodSpec tokens.  
18065         (mono_get_method_from_token): If we're a generic method, load the
18066         type parameters.
18067
18068         * reflection.c (mono_image_get_memberref_token): Allow
18069         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
18070         table.
18071         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
18072         (mono_image_create_token): First check whether it's a generic
18073         method (so we'd need to create a MethodSpec), then do the other
18074         two alternatives.
18075         (mono_reflection_bind_generic_method_parameters): Return a
18076         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
18077         called directly from the interncall.
18078
18079 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
18080
18081         * reflection.c (load_public_key): Move loading of the public key
18082         into managed code.
18083
18084         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
18085
18086         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
18087         fields.
18088
18089         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
18090         culture, hash_alg and public_key. Fixes #49555.
18091
18092 2003-10-17  Martin Baulig  <martin@ximian.com>
18093
18094         * class.h (MonoGenericInst): Moved this declaration here and added
18095         `MonoMethod *generic_method'.
18096
18097         * icall.c
18098         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
18099         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
18100
18101         * metadata.c (mono_metadata_type_equal): Two types of
18102         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
18103         index; ie. don't compare the address of the `MonoGenericParam'
18104         structure.
18105         (mono_metadata_load_generic_params): Removed the `MonoMethod
18106         *method' argument.
18107
18108         * metadata.h (MonoGenericInst): Moved declaration to class.h.
18109         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
18110
18111         * reflection.c (method_encode_signature): Encode the number of
18112         generic parameters.
18113         (encode_generic_method_sig): New static function.
18114         (method_encode_methodspec): New static function; creates an entry
18115         in the MethodSpec table for a generic method.
18116         (mono_image_get_methodspec_token): New static function.
18117         (mono_image_create_token): Call mono_image_get_methodspec_token()
18118         for generic methods.
18119         (mono_reflection_bind_generic_method_parameters): New public
18120         function.  Instantiates a generic method.
18121
18122 2003-10-16  Martin Baulig  <martin@ximian.com>
18123
18124         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
18125         *gen_params' here from MonoMethodHeader.
18126
18127         * metadata.c (mono_metadata_parse_method_signature): If we have
18128         generic parameters, initialize `method->gen_params' and then set
18129         the correct `type->data.generic_param' in all the parameters.
18130
18131 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
18132
18133         * threads.c (mono_threads_get_default_stacksize): New function to 
18134         return the default stacksize.
18135
18136         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
18137         termination of the finalizer thread, since the previous method had
18138         race conditions. Fixes #49628.
18139
18140         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
18141         as for the other managed threads.
18142
18143 2003-10-16  Martin Baulig  <martin@ximian.com>
18144
18145         * class.c (inflate_generic_signature): Copy `generic_param_count'
18146         and `gen_params'.
18147
18148         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
18149         New interncall.
18150
18151         * metadata.c (mono_metadata_parse_method_signature): Actually set
18152         the `method->generic_param_count' here.
18153         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
18154
18155 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
18156
18157         * object.h: Add a new field to TypedRef to simplify the implementation
18158         of the REFANY opcodes in the JIT.
18159
18160         * icall.c: Make use of the new field.
18161
18162         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
18163         dynamically.
18164
18165 2003-10-15  Martin Baulig  <martin@ximian.com>
18166
18167         * class.c (mono_class_from_gen_param): Renamed to
18168         mono_class_from_generic_parameter() and moved most of the
18169         functionality from mono_reflection_define_generic_parameter()
18170         here; ie. we create a "real" class here.
18171         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
18172         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
18173         previously been called.
18174
18175         * class.h (MonoGenericParam): Moved the declaration of this struct
18176         here from metadata.h and added `MonoMethod *method'.
18177
18178         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
18179         interncall.
18180
18181         * loader.c (mono_get_method_from_token): If we have any generic
18182         parameters, call mono_metadata_load_generic_params() to read them
18183         from the MONO_TABLE_GENERICPAR.
18184
18185         * metadata.c (mono_metadata_load_generic_params): Added
18186         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
18187
18188         * metadata.h (MonoMethodSignature): Replaced
18189         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
18190         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
18191
18192         * reflection.c (mono_reflection_define_generic_parameter): Moved
18193         most of the functionality into the new
18194         mono_class_from_generic_parameter(); set the `method' field if
18195         we're a method parameter.       
18196
18197 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
18198
18199         * marshal.c (emit_struct_conv): if native size is 0
18200         emit no code.
18201
18202 2003-10-14  Martin Baulig  <martin@ximian.com>
18203
18204         * icall.c: The generics API has changed in the spec since it was
18205         added to System.Type; these modifications make it match the spec
18206         again.
18207         (ves_icall_Type_GetGenericParameters): Renamed to
18208         `ves_icall_Type_GetGenericArguments'.
18209         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
18210         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
18211         `ves_icall_MonoType_get_HasGenericArguments'.
18212         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
18213         `ves_icall_MonoType_get_IsGenericParameter'.
18214         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
18215         this is no interncall anymore.
18216         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
18217         `ves_icall_TypeBuilder_get_IsGenericParameter'.
18218
18219 2003-10-14  Martin Baulig  <martin@ximian.com>
18220
18221         * reflection.c (mono_reflection_bind_generic_parameters): Also
18222         inflate generic methods if we're reading the class from IL.
18223
18224 2003-10-13  Martin Baulig  <martin@ximian.com>
18225
18226         * reflection.c (mono_reflection_define_generic_parameter): This
18227         method isn't called directly from the icall anymore; take a
18228         `MonoReflectionAssemblyBuilder *' so we can use this for type and
18229         method generic parameters.
18230         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
18231         (method_builder_encode_signature): Encode generic parameters.
18232         (mono_image_get_method_info): Write generic params to the
18233         MONO_TABLE_GENERICPARAM table.
18234
18235         * reflection.h (MonoReflectionMethodBuilder): Added
18236         `MonoArray *generic_params'.
18237
18238         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
18239
18240         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
18241         wrapper for mono_reflection_define_generic_parameter().
18242         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
18243
18244 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
18245
18246         * marshal.h: Add missing function to fix build.
18247
18248         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
18249         the SetLastError pinvoke attribute.
18250
18251         * marshal.c (mono_marshal_set_last_error): New helper function called
18252         by the generated code.
18253         
18254         * marshal.c (mono_mb_emit_branch): New helper function.
18255
18256         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
18257
18258         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
18259         classes as parameters and return values of delegates. Fixes #29256. 
18260
18261 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
18262
18263         * locales.c: use gint32 in non HAVE_ICU case
18264
18265 2003-10-11  Martin Baulig  <martin@ximian.com>
18266
18267         * mono-debug.c (mono_debug_add_method): Added a workaround for
18268         bug #48591.
18269
18270 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
18271
18272         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
18273         delegates passed to native code must use the STDCALL calling 
18274         convention. Fixes #35987.
18275
18276 2003-10-10  Martin Baulig  <martin@ximian.com>
18277
18278         * class.c (inflate_generic_type): If we're inflating for a generic
18279         type instance (and not for a generic method), return
18280         MONO_TYPE_MVAR unchanged.
18281
18282 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18283
18284         * string-icalls.c: Join ignores null strings in the source array.
18285         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
18286         * threads.c: GetAvailableTheads is slightly more accurate.
18287
18288 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
18289
18290         * threads.h threads.c : add mono_threads_set_default_stacksize
18291         and pass default to CreateThread calls.
18292
18293 2003-10-09  Dick Porter  <dick@ximian.com>
18294
18295         * icall.c:
18296         * locales.h:
18297         * locales.c: Internal calls for constructing CultureInfo and
18298         related objects from libicu (if its available.)
18299
18300 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
18301
18302         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
18303
18304 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18305
18306         * threadpool.c: added an argument to async_invoke_thread that is the
18307         item to process, pass the MonoAsyncResult to the thread start function
18308         when creating a new thread. This way we don't need to acquire any lock
18309         when we're creating a new thread. Readded a semaphore for faster
18310         response times (instead of that Sleep i added).
18311
18312 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
18313
18314         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
18315         get daylight change dates better on Windows, fix handling
18316         of platforms without tm_gmtoff.
18317
18318 2003-10-06  Martin Baulig  <martin@ximian.com>
18319
18320         * class.c (inflate_generic_method): Renamed to
18321         mono_class_inflate_generic_method() and made public.
18322         (mono_class_init): Don't inflate the generic methods here.
18323         (mono_class_from_generic): Added `gboolean inflate_methods'
18324         argument.  Inflate the methods here.
18325
18326         * loader.c (mono_method_get_param_names): Ignore instances of
18327         generic types for the moment.
18328
18329         * reflection.c (fixup_method): Added support for inflated methods.
18330         (mono_image_create_token): Use mono_image_get_methodref_token()
18331         for inflated methods.
18332         (mono_custom_attrs_from_param): Ignore instances of generic types
18333         for the moment.
18334         (mono_reflection_bind_generic_parameters): New public function.
18335         Moved all the functionality from
18336         ves_icall_Type_BindGenericParameters() here and added support for
18337         dynamic types.
18338         (mono_reflection_define_generic_parameter): Initialize
18339         `klass->methods' here.
18340
18341         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
18342         functionality into mono_reflection_define_generic_parameter().
18343         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
18344         TypeBuilder, return that TypeBuilder.
18345
18346 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18347
18348         * appdomain.c: removed mono_delegate_semaphore.
18349
18350         * threadpool.c:
18351         (mono_thread_pool_add): moved hash table creation inside and the thread 
18352         creation outside of the critical region.
18353         (mono_thread_pool_finish): removed obsolete code.
18354         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
18355         continue or exit the thread depending on the queue.
18356
18357 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
18358
18359         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
18360         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
18361         handle more bool marshalling options
18362
18363 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
18364
18365         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
18366         arrays of structs. Also add a more descriptive error message when
18367         a structure member is marshalled as LPArray.
18368
18369 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
18370
18371         * marshal.c (mono_marshal_get_native_wrapper): Add support for
18372         marshalling arrays of complex types. Fixes #29098. Also remove an
18373         usused and incomplete function.
18374
18375 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
18376
18377         * gc.c: report heap_size - free_bytes as total memory allocated
18378         (bug#49362).
18379
18380 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
18381
18382         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
18383         fix timezone handling problems on Windows.
18384         
18385         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
18386         asserts when the year is outside the range handled by ms the functions.
18387
18388         * class.c (setup_interface_offsets): If the class is an interface,
18389         fill out its interface_offsets slot.
18390
18391 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18392
18393         * threadpool.c: mark threadpool threads as background.
18394
18395 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
18396
18397         * decimal.c - define DECINLINE to nothing if not using GCC
18398
18399 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
18400
18401         * assembly.c: More refcount fixes.
18402
18403 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18404
18405         * string-icalls.c: if we're not trimming, return the same string.
18406         When not splitting, don't create a new string.
18407
18408 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18409
18410         * image.c:
18411         (mono_image_open): increment the ref_count inside the critical section.
18412
18413 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
18414
18415         * image.c (mono_image_open): Fix reference counting bug.
18416
18417 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
18418
18419         * marshal.c (mono_marshal_type_size) struct alignment changed for 
18420         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
18421         64bits. Avoid leak in mono_marshal_get_native_wrapper when
18422         mono_lookup_pinvoke_call throws.        
18423
18424 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
18425
18426         * reflection.c (mono_reflection_parse_type): Fix #49114.
18427
18428         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
18429         temporary workaround for cygwin header problem.
18430
18431         * object.c (mono_object_isinst): Synchronize this with the code
18432         generated by the JIT for casts.
18433
18434 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
18435
18436         * reflection.c (encode_type): Fix #38332.
18437
18438 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
18439
18440         * marshal.c (mono_marshal_method_from_wrapper): New function to return
18441         the original method from the wrapper method.
18442
18443 2003-09-25  Martin Baulig  <martin@ximian.com>
18444
18445         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
18446         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
18447         (ves_icall_Type_get_IsGenericInstance): New interncall.
18448
18449 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
18450
18451         * object.c: fix cast warning in big endian code.
18452
18453 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
18454
18455         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
18456         
18457 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18458
18459         * assembly.c: don't call check_env from mono_assembly_load. It's
18460         already done once in mono_assemblies_init and may cause headaches when
18461         multiple threads are loading assemblies.
18462
18463 2003-09-19  Martin Baulig  <martin@ximian.com>
18464
18465         * reflection.c (mono_reflection_define_generic_parameter): Don't
18466         allocate `klass->methods', set `klass->flags' to
18467         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
18468
18469 2003-09-18  Martin Baulig  <martin@ximian.com>
18470
18471         * class.c (mono_class_init): Don't create `class->methods' if it's
18472         already initialized.
18473
18474         * metadata.c (mono_metadata_load_generic_params): Make this
18475         actually work.
18476
18477         * reflection.c (mono_reflection_define_generic_parameter): Set
18478         parent class and interfaces from the constraints.
18479
18480         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
18481         to keep this struct in sync with the declaration in TypeBuilder.cs.
18482
18483 2003-09-17  Martin Baulig  <martin@ximian.com>
18484
18485         * metadata.h (MonoType): Replaced the data's `int type_param'
18486         field with `MonoGenericParam *generic_param'.
18487         (MonoGenericParam): Added `MonoClass *klass'.
18488
18489         * class.c (mono_class_from_gen_param): Removed the
18490         `MonoImage *image' and `int type_num' arguments.
18491
18492         * metadata.c (mono_metadata_parse_generic_param): New static
18493         method; creates a MonoGenericParam which just contains the index.
18494         (do_mono_metadata_parse_type): Call
18495         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
18496         MONO_TYPE_MVAR.
18497
18498         * reflection.c (mono_image_typedef_or_ref): Generic type
18499         parameters may be in the same assembly, but never use a typedef
18500         for them.
18501         (mono_reflection_define_generic_parameter): We're now creating a
18502         "real" class for the type parameter; it's now safe to call
18503         mono_class_from_mono_type() on the class'es type, it'll do the
18504         right thing.
18505
18506 2003-09-16  Martin Baulig  <martin@ximian.com>
18507
18508         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
18509         `symfile->range_entry_size' and `symfile->class_entry_size' here;
18510         the `symfile' data structure must be fully initialized before it
18511         gets added to the table.
18512
18513 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
18514
18515         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
18516
18517         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
18518         class init trampolines.
18519
18520 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
18521
18522         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
18523         to the built-in profiler to turn off time and allocation profiling
18524         respectively.
18525
18526 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
18527
18528         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
18529         g_direct_equal.
18530
18531         * debug-helpers.c (mono_method_full_name): Print the wrapper type
18532         in human readable form.
18533
18534 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
18535
18536         * reflection.c icall.c: Fixed warnings.
18537
18538         * image.c (load_class_names): Use a temporary hash table to hold the
18539         namespaces in order to avoid doing many string comparisons.
18540
18541         * image.h: Fix typo.
18542
18543         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
18544         Pass NULL instead of g_direct_equal to the GHashTable constructor 
18545         since the NULL case is short-circuited inside g_hash_table_lookup, 
18546         leading to better performance.  
18547
18548         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
18549         obtain the first custom attribute for a given index. Depends on the
18550         CustomAttribute table being sorted by the parent field.
18551
18552         * reflection.c (mono_custom_attrs_from_index): Use the new function 
18553         for better performance.
18554
18555 2003-09-07  Martin Baulig  <martin@ximian.com>
18556
18557         * class.c (mono_class_init): If we're a generic instance, inflate
18558         all our methods instead of loading them from the image.
18559         (mono_class_from_generic): Set `class->methods = gklass->methods'.
18560
18561 2003-09-07  Martin Baulig  <martin@ximian.com>
18562
18563         * mono-debug-debugger.c: Added support for constructors.
18564
18565 2003-09-06  Martin Baulig  <martin@ximian.com>
18566
18567         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
18568         New interncall.
18569
18570         * reflection.c (mono_reflection_setup_generic_class): Call
18571         ensure_runtime_vtable() to create the vtable.
18572
18573 2003-09-05  Martin Baulig  <martin@ximian.com>
18574
18575         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
18576         MONO_TYPE_MVAR.
18577
18578 2003-09-04  Martin Baulig  <martin@ximian.com>
18579
18580         * reflection.c (mono_reflection_define_generic_parameter): Generic
18581         parameters start with zero.
18582
18583 2003-09-04  Martin Baulig  <martin@ximian.com>
18584
18585         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18586
18587         * reflection.h (MonoReflectionGenericParam): New typedef.
18588         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
18589         the generic parameters from the managed TypeBuilder.
18590
18591         * reflection.c (mono_reflection_define_generic_parameter): New function.
18592         (mono_reflection_create_runtime_class): Encode generic parameters.
18593         (mono_reflection_setup_generic_class): New function; this is
18594         called after adding adding all generic params to the TypeBuilder.
18595         (encode_type): Added MONO_TYPE_VAR.
18596
18597 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
18598
18599         * class.h class.c (mono_class_needs_cctor_run): Moved this method
18600         here from the JIT.
18601
18602         * assembly.h assembly.c: Moved the AOT loading code into an assembly
18603         load hook.
18604
18605 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
18606
18607         * reflection.h reflection.c class.h class.c: Delete duplicate 
18608         definition of mono_type_get_name () from reflection.c and export the
18609         one in class.c.
18610
18611         * class.c: Class loading fixes from Bernie Solomon 
18612         (bernard@ugsolutions.com).
18613
18614         * reflection.c: Endianness fixes from Bernie Solomon 
18615         (bernard@ugsolutions.com).
18616         
18617 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
18618
18619         * assembly.h assembly.c: Define a file format version for AOT
18620         libraries.
18621         
18622         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
18623
18624         * appdomain.h (MonoJitInfo): New field to determine whenever the
18625         code is domain neutral.
18626         
18627 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
18628
18629         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
18630
18631 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
18632
18633         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
18634         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
18635         Avoid caching the result since strings must be domain specific. Fixes
18636         #48050.
18637
18638 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
18639
18640         * marshal.c (mono_marshal_init): Make this callable multiple times
18641         since it is hard to find a correct place to call it.
18642
18643         * object.c (mono_runtime_class_init): Execute static constructors in
18644         the correct appdomain.
18645
18646         * image.c (build_guid_table): Handle the case when multiple images have
18647         the same GUID.
18648
18649 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18650
18651         * icall.c: added a couple of icalls for System.Web.
18652
18653 2003-08-28  Martin Baulig  <martin@ximian.com>
18654
18655         * icall.c (ves_icall_Type_BindGenericParameters): Use
18656         `klass->generic_inst' instead of `&klass->byval_arg' in the
18657         mono_type_get_object() call.  The returned type must be
18658         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
18659
18660 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
18661
18662         * NOTES: New file.
18663
18664         * object.c (mono_class_proxy_vtable): Make it thread safe.
18665
18666         * pedump.c: Fix warning.
18667
18668         * object.c appdomain.h: Get rid of metadata_section. 
18669         It is no longer needed and it was causing deadlocks with domain->lock.
18670
18671         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
18672
18673 2003-08-26  Martin Baulig  <martin@ximian.com>
18674
18675         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
18676
18677 2003-08-26  Martin Baulig  <martin@ximian.com>
18678
18679         * pedump.c (main): Call mono_metadata_init(),
18680         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
18681         and mono_loader_init().
18682
18683 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
18684
18685         * loader.h: Add missing include to fix build.
18686
18687         * image.h: mono_image_load_references is no more.
18688
18689         * assembly.c: Reworked assembly loading to make it really thread safe.
18690         After these changes, the assembly returned by mono_assembly_open is
18691         fully initialized, i.e. all its references assemblies are loaded.
18692
18693         * assembly.c (mono_image_load_references): Renamed to 
18694         mono_assembly_load_references, and made private, since clients no
18695         longer need to call it.
18696
18697         * class.c: Removed calls to mono_assembly_load_references, since it was
18698         a source of deadlocks.
18699
18700         * loader.h loader.c class.h class.c: Protect data structures using a 
18701         new lock, the loader lock.
18702
18703         * class.c (mono_class_setup_vtable): Create temporary hash tables and
18704         GPtrArrays only when needed.
18705
18706         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
18707         into empty structures by mcs. Fixes pinvoke7.cs.
18708         
18709         * domain.c (mono_init): Call a new initialization function.
18710
18711         * appdomain.c (mono_runtime_init): Call the new initializer function
18712         of the marshal module.
18713
18714         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
18715         inserted into empty structures by mcs. Fixes pinvoke7.cs.
18716
18717         * marshal.h marshal.c: Added locks around the wrapper caches to make
18718         this module thread safe.
18719
18720         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
18721         this argument. Fixes pinvoke1.exe.
18722
18723 2003-08-25  Lluis Sanchez <lluis@ximian.com>
18724
18725         * object.h: Added call_type field to MonoMethodMessage and the corresponding
18726         enumeration of values. Removed fields to store remote call output values in
18727         MonoAsyncResult. Not needed any more.
18728         * object.c: Initialize call_type and async_result fields in mono_message_init.
18729         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
18730         dispatching the message.
18731         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
18732         async call to finish. To do it use a message with EndInvoke call type.
18733
18734 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
18735
18736         * loader.h loader.c (mono_method_hash_marhal_info): New function which
18737         determines whenever a method has marshalling info.
18738
18739 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18740
18741         * assembly.c: fix the build on windows.
18742
18743 2003-08-22 Lluis Sanchez <lluis@ximian.com>
18744
18745         * object.cs: Fixed bug #47785.
18746
18747 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
18748
18749         * string-icalls.c (StringReplace): If their are no occurances of
18750         the old string found return a reference to the supplied
18751         string. This saves some memory and matches MS behavoir.
18752         
18753 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18754
18755         * socket-io.c: fixed compilation for systems that define AF_INET6
18756         and don't define SOL_IP/SOL_IPV6.
18757
18758 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
18759
18760         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
18761         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
18762
18763         * rawbuffer.c rawbuffer.h: Make this module thread safe.
18764
18765         * domain.c: Make this module thread safe.
18766
18767         * domain.c (mono_init): Call new initialization function.
18768
18769         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
18770         reference types too. Fixes #38812.
18771
18772         * image.c (mono_image_init): Fixed warnings.
18773
18774         * class.c (mono_class_from_typeref): Handle assembly load failure
18775         correctly.
18776
18777         * appdomain.c (add_assemblies_to_domain): Handle the case when
18778         the references of an assembly are not yet loaded.
18779
18780         * metadata.c image.c assembly.c: Moved initialization of global
18781         variables to a separate function called at startup since lazy 
18782         initialization of these variables is not thread safe.
18783         
18784         * image.c assembly.c: Made this module thread safe by adding locks in 
18785         the appropriate places.
18786
18787         * domain.c (mono_init): Call the new initialization functions of the
18788         three modules.
18789
18790 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
18791
18792         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
18793           make a direct call. It is proxy's work to make the call asynchronous.
18794           mono_delegate_end_invoke(): If the targe is a proxy, just collect
18795           the return values.
18796         * object.cs: mono_method_call_message_new(): read AsyncResult and
18797           state object from parameters list, if this info is requested.
18798         * object.h: Added fields to store remote call output values in
18799           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
18800
18801 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
18802
18803         * object.h: add needed fields to MonoThread.
18804         * threads.c, threads.h: allow registering a function to cleanup data
18805         allocated per thread by the JIT.
18806
18807 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18808
18809         * loader.h: portability fix by Bernie Solomon
18810         * <bernard@ugsolutions.com>.
18811
18812 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
18813
18814         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
18815         return a MonoArray. This simplifies the code and also ensures that
18816         the cache allways contains an object reference as a value.
18817
18818         * icall.c (ves_icall_get_parameter_info): Simplified using the new
18819         function.
18820
18821 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18822
18823         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
18824         fixes a problem with byte ordering when getting the address family for
18825         a socket.
18826
18827 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
18828
18829         * .cvsignore: Added monosn.
18830
18831         * reflection.h reflection.c loader.c: Added support for parameter
18832         marshalling to dynamically created types. Fixes #47295.
18833
18834 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
18835
18836         * rand.c: remove useless warnings.
18837
18838 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
18839
18840         * class.c: implemented ldtoken for methods and fieldrefs.
18841
18842 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18843
18844         * threadpool.c: when mono_async_invoke was called, no one took care of
18845         monitoring the queue. So if the method invoked took some time and we
18846         got new async invoke requests after 500 ms (the thread created waited
18847         that long in WaitForSingleObject), the new async invoke was not called
18848         until the previous one finished.
18849
18850         This is fixed now. Thanks to Totte for helping with it.
18851
18852 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18853
18854         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
18855
18856 2003-08-11  Martin Baulig  <martin@ximian.com>
18857
18858         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
18859
18860 2003-08-06  Martin Baulig  <martin@ximian.com>
18861
18862         * mono-debug-debugger.c: Added support for static fields,
18863         properties and methods.
18864
18865 2003-08-06  Martin Baulig  <martin@ximian.com>
18866
18867         * mono-debug-debugger.c: Don't store the MonoString's vtable to
18868         make this work for applications with multiple application domains.
18869
18870 2003-08-04  Martin Baulig  <martin@ximian.com>
18871
18872         * mono-debug-debugger.c: Completely reworked the type support; the
18873         most important thing is that we're now just using one single
18874         `MonoType' instance per type.
18875
18876 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
18877
18878         * mono-endian.h, mono-endian.c, icall.c: Added icall
18879         ves_icall_System_Double_AssertEndianity to assert double word endianity
18880         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
18881
18882 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18883
18884         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
18885         support, icalls and fixes.
18886
18887 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
18888
18889         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
18890         classes that are a punctuation character in .NET is not the same a
18891         g_unichar_ispunct.
18892
18893 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18894
18895         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
18896
18897 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
18898
18899         * icall.c: Add new MemCopy internalcall.
18900         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
18901         Simplified code; It is not necessary to handle all the cases here,
18902         as the C# code takes care of it.  Only handle the case of the name
18903         resource embedded into the assembly.
18904
18905         Changed signature to return the data pointer and the size of the
18906         data. 
18907
18908 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
18909
18910         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
18911         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
18912
18913 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
18914
18915         * socket-io.c: ignore EINTR error in select.
18916
18917 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
18918
18919         * class.h, class.c: removed unused subclasses field in MonoClass.
18920
18921 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
18922
18923         * icall.c: improve fix of get_base_definition(). If the parent class
18924           doesn't have the mehod, look at the parent of the parent.
18925         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
18926           to check if a parameter is an in or out parameter
18927           (PARAM_ATTRIBUTE_IN is not set by default).
18928           mono_method_return_message_restore(): Use mono_class_value_size to
18929           get the size of a value type. mono_type_stack_size (parameterType)
18930           does not return the correct value if parameterType is byRef.
18931           mono_load_remote_field(), mono_load_remote_field_new(),
18932           mono_store_remote_field(), mono_store_remote_field_new():
18933           raise exception if the remote call returns an exception.
18934
18935 2003-07-28  Martin Baulig  <martin@ximian.com>
18936
18937         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
18938         method.  This is a wrapper around mono_runtime_invoke() which
18939         boxes the instance object if neccessary.
18940
18941 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18942
18943         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
18944         metadata.h, row-indexes.h, verify.c: first cut of generics support.
18945
18946 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18947
18948         * icall.c: disable mcs bug workaround.
18949
18950 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
18951
18952         * object.c (mono_runtime_class_init): Take the metadata_section
18953         mutex before obtaining the domain mutex.
18954
18955         * appdomain.h: Added definition of metadata_section mutex here. 
18956
18957         * object.c: define metadata_mutex here.
18958
18959 2003-07-24  Ravi Pratap  <ravi@ximian.com>
18960
18961         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
18962         fixed.
18963
18964 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
18965
18966         * reflection.c: Fix bug #46669
18967
18968 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18969
18970         * exception.c:
18971         * exception.h:
18972         * icall.c:
18973         * object.h: fill in the type name for TypeLoadException.
18974
18975 2003-07-23  Ravi Pratap  <ravi@ximian.com>
18976
18977         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
18978         relationship between TypeBuilders while compiling corlib) and bug
18979         45993 (Array types returned from the runtime while compiling
18980         corlib were from the loaded corlib).
18981
18982 2003-07-22  Martin Baulig  <martin@ximian.com>
18983
18984         * mono-debug-debugger.c: Reworked the type support a bit more;
18985         distinguish between types and classes.
18986
18987 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
18988
18989         * icall.c: add IsArrayImpl icall.
18990
18991 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
18992
18993         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
18994         initializing real_size only once. Also fix bug #46602.
18995
18996 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
18997
18998         * object.c: Renamed mono_metadata_section to metadata_section.
18999
19000 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
19001
19002         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
19003           empty array if the type is an array. Fixed.
19004           ves_icall_MonoMethod_get_base_definition: if the base method
19005           is abstract, get the MethodInfo from the list of methods of
19006           the class.
19007         * reflection.c: ParameterInfo.PositionImpl should be zero-based
19008           and it was 1-based. Fixed in mono_param_get_objects.
19009
19010 2003-07-20  Martin Baulig  <martin@ximian.com>
19011
19012         * mono-debug.h: Set version number to 31.
19013         (mono_debug_init): Added `MonoDomain *' argument.
19014
19015         * mono-debug-debugger.c: Reworked the type support; explicitly
19016         tell the debugger about builtin types; pass the `klass' address to
19017         the debugger.
19018
19019 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
19020
19021         * image.c: Allow new metadata tables to be loaded without a
19022         warning. Also update the warning message to give the new constant value.
19023                 
19024 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
19025
19026         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
19027         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
19028         array type representation changes.
19029
19030 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19031
19032         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
19033         on Environment.Exit () call.
19034
19035 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
19036
19037         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
19038         requires a matching corlib.
19039
19040 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
19041
19042         * Changelog: My editor decided to add a CR to each line. Sorry about that.
19043           Committed again without the CRs.
19044         
19045 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
19046
19047         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
19048           getting it from the "this" socket instance. Did not work
19049           if the socket is a subclass of Socket.
19050           Also fixed bug #35371.
19051
19052 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19053
19054         * metadata.c: fixed size for TypedByRef.
19055         * loader.c: when searching for a method, consider the vararg amrker.
19056         * unicode.c, decimal.c: constify some arrays.
19057
19058 2003-07-15  Dick Porter  <dick@ximian.com>
19059
19060         * socket-io.c: Fixed compilation for gcc < 3.2.
19061
19062         Fixed compilation for machines that don't have AF_INET6 (thanks to
19063         Bernie Solomon <bernard@ugsolutions.com> for that part.)
19064
19065         Fixed compile warnings.
19066         
19067         Fixed formatting and line endings.
19068
19069 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
19070
19071         * socket-io.h:
19072         * socket-io.c: Added IPv6 support.
19073
19074 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
19075
19076         * class.c (mono_class_is_assignable_from): New function to implement
19077         the is_assignable_from logic. Used by mono_object_isinst, 
19078         Type::IsAssignableFrom () and the interpreter.
19079
19080         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
19081         Object, even interfaces.
19082         
19083         * object.c (mono_object_isinst): Implement in terms of 
19084         is_assignable_from.
19085
19086         * icall.c (ves_icall_type_is_assignable_from): New icall.
19087
19088 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
19089
19090         * domain.c (foreach_domain): fix compiler warning.
19091
19092 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
19093
19094         * image.c (load_metadata_ptrs): use g_strndup because strndup is
19095         not available on all plattforms
19096
19097 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
19098
19099         * image.h image.c: Store the metadata version string in MonoImage.
19100         * icall.c: New icall to retrieve the image version.
19101         * reflection.c (create_dynamic_image): Fill in the image version field
19102         * reflection.c (build_compressed_metadata): Use the image version
19103         from the image structure.
19104
19105 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19106
19107         * appdomain.c: modified comment.
19108         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
19109         That will be its last iteration when mono_gc_cleanup is called from
19110         mono_runtime_cleanup and before the domain is unloaded.
19111
19112         Fixes bug #45962.
19113
19114 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
19115
19116         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
19117         attributes.
19118
19119 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19120
19121         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
19122         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
19123         Bernie Solomon <bernard@ugsolutions.com>.
19124
19125 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19126
19127         * object.c, object.h: provide mono_object_new_fast() for faster
19128         allocation in some special cases.
19129
19130 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
19131
19132         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
19133         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
19134
19135 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
19136
19137         * threadpool.c: fix leaks.
19138
19139 2003-07-01  Dick Porter  <dick@ximian.com>
19140
19141         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
19142         using MonoGHashTables.  Fixes threadpool bug posted to list.
19143
19144 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
19145
19146         * image.h, image.c: added support to load an assembly from a byte array.
19147         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
19148         assembly bundle support.
19149
19150 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
19151
19152         * threadpool.c (mono_thread_pool_add): keep a reference to the
19153         AsyncResult to prevent GC
19154
19155 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19156
19157         * class.c: leak fix.
19158
19159 2003-06-25  Dick Porter  <dick@ximian.com>
19160
19161         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
19162         for the async object, the WaitHandle object will close the handle.
19163         Fixes bug 45321.
19164
19165 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19166
19167         * class.c: in mono_array_class_get (), lookup from the hash with the
19168         same type we insert: this works around a bug in
19169         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
19170         lluis. The real fix will have to wait for after the release.
19171
19172 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19173
19174         * icall.c: fix memory leak when getting type members.
19175
19176 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19177
19178         * reflection.c: added more pubtoken special cases.
19179
19180 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
19181
19182         * class.c: handle field offset correctly when class size
19183         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
19184
19185 2003-06-20  Martin Baulig  <martin@ximian.com>
19186
19187         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
19188         *image' field.
19189
19190 2003-06-20  Martin Baulig  <martin@ximian.com>
19191
19192         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
19193
19194 2003-06-20  Martin Baulig  <martin@ximian.com>
19195
19196         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
19197         just distinguish between variables in registers and variables at
19198         an offset relative to a register.
19199
19200 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19201
19202         * icall.c: #ifdef out latest changes until mcs is fixed.
19203
19204 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19205
19206         * icall.c: return members in metadata order.
19207
19208 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19209
19210         * icall.c: avoid infinite loop in GetTimeZoneData.
19211
19212 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
19213
19214         * icall.c: added Marshal.Prelink/All icalls.
19215
19216 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19217
19218         * object.c, object.h: fix warnings and do some overflow checking
19219         when creating arrays.
19220
19221 2003-06-17  Dick Porter  <dick@ximian.com>
19222
19223         * file-io.h:
19224         * file-io.c: File attributes need to be tweaked slightly when
19225         passed from the managed to the w32 world.
19226
19227 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
19228         * profiler.h profiler-private.h profiler.c: Rework last patch
19229         based on suggestion by Paolo.
19230         
19231 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
19232
19233         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
19234         instruction level coverage data collection.
19235         * profiler.h profiler.c (: Added new callback function which can be
19236         used by the profiler to limit which functions should have coverage
19237         instrumentation.
19238         * profiler.c (mono_profiler_load): Call g_module_build_path to
19239         generate the file name of the profiler library.
19240
19241 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19242
19243         * profiler.c, profiler.h, profiler-private.h: added basic block 
19244         coverage profiling API.
19245
19246 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
19247
19248         * reflection.c (mono_reflection_create_runtime_class): Add support
19249         for events in dynamically generated code.
19250
19251         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
19252         not allocated.
19253
19254 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19255
19256         * icall.c: when getting timezone info, return reasonable values if we
19257         can't get the actual data.
19258
19259 2003-06-14  Dick Porter  <dick@ximian.com>
19260
19261         * threads.c (start_wrapper): Remove the reference to the thread
19262         object in the TLS data, so the thread object can be finalized.
19263         This won't be reached if the thread threw an uncaught exception,
19264         so those thread handles will stay referenced :-( (This is due to
19265         missing support for scanning thread-specific data in the Boehm GC
19266         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
19267
19268 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
19269
19270         * reflection.c: ensure streams and tables are first allocated with
19271         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
19272
19273 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19274
19275         * icall.c: fixed GetElementType for byrefs (bug# 44792).
19276
19277 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
19278
19279         * reflection.c (mono_reflection_create_runtime_class): Add support for
19280         properties to dynamically created classes.
19281         * reflection.c: Fix a few places where non-MonoObjects were inserted
19282         into the tokens hashtable.
19283
19284 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19285
19286         * object.c: some support to handle out of memory exceptions.
19287
19288 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
19289
19290         * marshal.c (mono_marshal_get_native_wrapper): support reference
19291         return types
19292
19293 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19294
19295         * object.h, object.c: more portability stuff from Bernie Solomon.
19296         Unexport mono_object_allocate(). Added mono_object_unbox ().
19297         Set exitcode when an unhandled exception is thrown.
19298
19299 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
19300
19301         * marshal.c (mono_marshal_get_native_wrapper): use custom
19302         marshaler for return types.
19303
19304 2003-06-10  Dick Porter  <dick@ximian.com>
19305
19306         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
19307         ip_mreq is available
19308
19309 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
19310
19311         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
19312         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
19313         by Bernie Solomon <bernard@ugsolutions.com>.
19314
19315 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
19316
19317         * gc.c (mono_gc_init): Avoid error message on shutdown when
19318         GC_DONT_GC=1 is used.
19319
19320         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
19321         New icall to return the GUID of a module.
19322
19323 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19324
19325         * class.c: ensure instance size always includes the parent's size
19326         even whem class size is set explicitly (fixes bug#44294).
19327
19328 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19329
19330         * profiler.h, profiler.c: made the simple profiler thread-safe,
19331         get more accurate timing info. Allow the loading of an
19332         externally-developed profiler module.
19333
19334 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
19335
19336         * marshal.c (mono_marshal_get_native_wrapper): improved
19337         class/byref arguments.
19338         (mono_marshal_get_native_wrapper): better string marshaling support.
19339
19340 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
19341
19342         * class.c: ensure .pack and .size are handled correctly and
19343         simplified layout of static fields.
19344
19345 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
19346
19347         * appdomain.c
19348         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
19349
19350         * loader.c (mono_lookup_pinvoke_call): look for modules in the
19351         current directory (fix bug 44008)
19352
19353 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
19354
19355         * marshal.c (mono_marshal_get_native_wrapper): started support for
19356         custom marshalers.
19357         (mono_delegate_to_ftnptr): consider marshalling specifications
19358
19359 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
19360
19361         * reflection.c, reflection.h: emit custom marshal info.
19362
19363 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19364
19365         * object.c: free the GError.
19366         * icall.c: added CloseEvent_internal.
19367         * threads.[ch]:
19368         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
19369         call.
19370
19371 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
19372
19373         * loader.c (mono_method_get_signature): Add support for dynamic
19374         assemblies.
19375
19376 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
19377
19378         * reflection.c: fixed bug #43905.
19379
19380 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19381
19382         * class.c, domain.c, icall.c, metadata.h, object.h: support for
19383         handling TypedReference and ArgIterator.
19384         * loader.c, loader.h: added function to get signature at call site.
19385
19386 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19387
19388         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
19389         data readonly. Buglets and warning fixes. Some MethodSpec support.
19390
19391 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19392
19393         * class.h, class.c, object.c: remove relative numbering support.
19394
19395 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
19396
19397         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
19398         free the string, until we get a chance to fix Gtk#
19399
19400 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19401
19402         * marshal.c: revert last patch.
19403
19404 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
19405
19406         * icall.c: updates for new mono_class_vtable() not calling
19407         the type constructor anymore.
19408
19409 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19410
19411         * object.h, object.c: separate vtable creation from type
19412         initialization. Make running the .cctor thread safe.
19413
19414 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
19415
19416         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
19417
19418 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
19419
19420         * loader.c (mono_get_method): consider calling convention
19421
19422 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
19423
19424         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
19425         to return the invisible global type for a module.
19426
19427         * reflection.c (mono_image_build_metadata): Emit global fields too.
19428
19429 2003-05-20  Peter Williams  <peterw@ximian.com>
19430
19431         * loader.c (mono_lookup_internal_call): Add a few newlines.
19432
19433 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
19434
19435         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
19436         literal strings.
19437
19438         * appdomain.c (set_domain_search_path): Recalculate search path when
19439         AppDomainSetup.PrivateBinPath changes.
19440
19441         * object.c (mono_class_compute_gc_descriptor): It turns out some
19442         parts of the class libs (like System.Thread) holds pointers to
19443         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
19444         to treat native int a pointer type here.
19445         
19446 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
19447
19448         * appdomain.h, domain.c: add hashtable for jump target resolution.
19449
19450 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
19451
19452         * reflection.h reflection.c icall.c: Added new icalls 
19453         GetManifestResourceInfoInternal, GetModulesInternal and support
19454         infrastructure.
19455
19456 2003-05-16  Dick Porter  <dick@ximian.com>
19457
19458         * icall.c:
19459         * file-io.h:
19460         * file-io.c: Implement System.IO.MonoIO::GetTempPath
19461
19462 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
19463
19464         * object.c: mono_store_remote_field: little fix to previous patch.
19465
19466 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19467
19468         * class.c: add constructors to array classes.
19469         * icall.c: special case array construction for InternalInvoke (),
19470
19471 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
19472
19473         * class.h class.c reflection.c object.c: Added support for field
19474         defaults in dynamically generated classes.
19475
19476 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
19477
19478         * reflection.c: properly encode charset for ddlimport.
19479
19480 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
19481
19482         * threads.c: allow compiling without GC.
19483
19484 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19485
19486         * appdomain.h, object.c, object.h, threads.c, threads.h: added
19487         handling of thread static data.
19488
19489 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19490
19491         * reflection.h, reflection.c: added mono_custom_attrs_free ().
19492
19493 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
19494
19495         * class.c (mono_array_class_get): always set the serializable flags
19496         (mono_array_class_get): always set the SEALED attribute for array types
19497
19498 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
19499
19500         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
19501         attributes (fix for bug 42021).
19502
19503 2003-05-12  Dick Porter  <dick@ximian.com>
19504
19505         * gc.c: Don't run finalizers when the finalizer thread is
19506         finishing up, because the default domain has already been
19507         destroyed.
19508
19509 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
19510
19511         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
19512         value is null, we should throw an exception.   This is slightly
19513         different than the other conventions used for the constructor.
19514
19515 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19516
19517         * socket-io.c: fixed windows build.
19518
19519 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19520
19521         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
19522
19523 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
19524
19525         * object.c (mono_string_new_wrapper): Compatibility fix for MS
19526         compilers.
19527
19528 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
19529
19530         * class.c (mono_class_layout_fields): Add experimental GC aware
19531         auto layout facility. Requires class library changes to work correctly.
19532
19533         (mono_class_setup_vtable): Avoid overriding explicit interface
19534         method implementations. Fixes iface3.exe test.
19535
19536         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
19537         object reference.
19538         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
19539         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
19540
19541         * metadata.h: Add new type classification macro which determines
19542         whenever the type holds an object reference.
19543
19544 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
19545
19546         * marshal.c (mono_marshal_get_native_wrapper): cleanups
19547
19548 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
19549
19550         * gc.c (finalizer_thread): Work around a GC bug.
19551
19552 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
19553
19554         * marshal.c (emit_struct_conv): allow unions
19555
19556         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
19557
19558 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
19559
19560         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
19561
19562 2003-05-06  Martin Baulig  <martin@ximian.com>
19563
19564         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
19565
19566 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19567
19568         * socket-io.c:
19569         (Select_internal): allow NULLs, don't create arrays if not needed.
19570         Coupled with Socket.cs changes.
19571
19572         * threadpool.c:
19573         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
19574         register a finalizer for it that will close the semaphore handle. This
19575         fixes the leak and make Lupus' test run with > 4080 loops.
19576
19577 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
19578
19579         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
19580         Jerome Laban (bug #42287)
19581
19582 2003-05-02  Martin Baulig  <martin@ximian.com>
19583
19584         * debug-mono-symfile.h
19585         (MonoSymbolFile): Moved declaration into mono-debug.h.
19586         (MonoDebugMethodJitInfo): Likewise.
19587         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
19588         argument.
19589         (_mono_debug_address_from_il_offset): Take a
19590         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
19591
19592         * mono-debug.h
19593         (MonoDebugDomainData): New struct.
19594         (mono_debug_get_domain_data): New function.
19595         (mono_debug_add_method): Take an additional `MonoDomain *'
19596         argument.
19597         (mono_debug_source_location_from_address): Likewise.
19598         (mono_debug_il_offset_from_address): Likewise.
19599         (mono_debug_address_from_il_offset): Likewise.
19600
19601 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
19602
19603         * reflection.c: one more check for null type in custom attrs.
19604
19605 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19606
19607         * reflection.c: avoid warning (comparison is always false due to limited
19608         range of data type).
19609
19610 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19611
19612         * icall.c: throw an exception in Type.GetField if the argument 'name'
19613         is NULL.
19614
19615 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
19616
19617         * reflection.c: fixed handling of enums in named arguments to custom
19618         attributes (bug #42123).
19619
19620 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
19621
19622         * reflection.c: use the right array element type and handle
19623         a null for a Type argument, too.
19624
19625 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
19626
19627         * reflection.c: handle arrays as arguments to custom attributes.
19628
19629 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
19630
19631         * reflection.c: handle a string value in a custom attr
19632         ctor that takes an object.
19633
19634 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
19635
19636         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
19637         (fix bug #42063)
19638
19639 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
19640
19641         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
19642
19643 2003-04-27  Martin Baulig  <martin@ximian.com>
19644
19645         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
19646         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
19647         MONO_DEBUGGER_EVENT_BREAKPOINT.
19648         (mono_breakpoint_trampoline_code): Removed.
19649         (mono_debugger_event_handler): The last argument is now a
19650         `guint32'.
19651         (mono_debugger_insert_breakpoint_full): Removed the
19652         `use_trampoline' argument.
19653         (mono_debugger_method_has_breakpoint): Likewise.
19654         (mono_debugger_trampoline_breakpoint_callback): Renamed to
19655         mono_debugger_breakpoint_callback(); take the method and
19656         breakpoint number as arguments.
19657
19658 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
19659
19660         * metadata.c: fix off by one when loading parameters attributes.
19661
19662 2003-04-24  Martin Baulig  <martin@ximian.com>
19663
19664         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
19665
19666 2003-04-24  Martin Baulig  <martin@ximian.com>
19667
19668         * mono-debug-debugger.c: Moved all code which interacts with the
19669         Mono Debugger here.
19670
19671         * debug-mono-symfile.c: This code now just deals with the symbol
19672         file itself, the debugger code is now in mono-debug-debugger.c.
19673
19674 2003-04-23  Martin Baulig  <martin@ximian.com>
19675
19676         * mono-debug.c (mono_debug_source_location_from_il_offset):
19677         New method; like mono_debug_source_location_from_address(), but
19678         takes an IL offset instead of a machine address.
19679
19680 2003-04-23  Martin Baulig  <martin@ximian.com>
19681
19682         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
19683         `line' field; this is now computed by the debugger.
19684
19685 2003-04-23  Martin Baulig  <martin@ximian.com>
19686
19687         * mono-debug.[ch]: New files.  This is the new debugging interface.
19688
19689         * mono-debug-debugger.[ch]: New files.  Moved all code which
19690         interacts with the Mono Debugger here.
19691
19692 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
19693
19694         * domain.c (mono_init): initialize mono_defaults.monitor_class
19695
19696 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
19697
19698         * reflection.c (method_encode_code): Add a spicy exception to help
19699         future compiler authors.
19700
19701 2003-04-21  Martin Baulig  <martin@ximian.com>
19702
19703         * icall.c
19704         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
19705         Make this work with relative pathnames; g_filename_to_uri() needs
19706         an absolute filename.
19707
19708 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
19709
19710         * icall.c: Track name changes in Object and ValueType.
19711
19712 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
19713
19714         * metadata.c (mono_type_stack_size): size should be a multiple of
19715         sizeof (gpointer)
19716
19717 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19718
19719         * gc.c:
19720         (internal_domain_finalize): moved into mono_domain_finalize. No need
19721         to create another thread because the finalizers will be run in the
19722         finalizer thread.
19723         
19724         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
19725         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
19726         to be run (MS does this too).
19727
19728 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
19729
19730         * object.c (mono_class_compute_gc_descriptor): Update comment.
19731
19732         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
19733
19734         * image.h: Add synchronized wrapper cache.
19735
19736         * image.c (do_mono_image_open): Initialize cache.
19737
19738         * reflection.c (create_dynamic_mono_image): Initialize cache.
19739
19740 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19741
19742         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
19743         ves_icall_System_Buffer_ByteLengthInternal.
19744
19745 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19746
19747         * reflection.c: setup klass->nested_in earlier. Allow
19748         a dash in the assembly name.
19749
19750 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
19751
19752         * metadata.c (mono_type_to_unmanaged): dont access
19753         type->data.klass for MONO_TYPE_OBJECT
19754         (mono_type_to_unmanaged): consider System.Delegate class
19755
19756 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
19757
19758         * class.c: just setup supertypes in the proper place instead of
19759         initializing the full element class for arrays.
19760
19761 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19762
19763         * class.c: ensure the element class of arrays is initialized.
19764         Setup the supertype info for array classes, too.
19765
19766 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
19767
19768         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
19769
19770 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19771
19772         * Makefile.am: re-added -m option when running cygpath. This way,
19773         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
19774         separator.
19775         * mono-config.c: same codepath for locating mono config file for WIN32
19776         and the rest.
19777         * assembly.c: if mono_assembly_setrootdir is called, don't override
19778         the value set.
19779
19780 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19781
19782         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
19783         MONO_ASSEMBLIES variable.
19784
19785 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
19786
19787         * icall.c: added Assembly::GetNamespaces() icall.
19788
19789 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19790
19791         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
19792
19793 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
19794
19795         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
19796         * object.c: fixed bug in the construction of vtable for proxies
19797
19798 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
19799
19800         * object.c (mono_array_new): Mark mono_array_new as an icall.
19801
19802 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19803
19804         * class.c: fixed test for public method when overriding interfaces.
19805         Closes bug #40970.
19806
19807 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19808
19809         * appdomain.h, domain.c: added mono_domain_foreach() to
19810         be able to access the currently loaded appdomains.
19811         * object.c: make string interning work across sppdomains.
19812         Mark some functions for use as icalls.
19813
19814 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
19815
19816         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
19817
19818         * reflection.h reflection.c: Allocate long living data using 
19819         GC_MALLOC_ATOMIC so the collector does not need to scan it.
19820
19821         * reflection.c: Double the allocation size in streams instead of
19822         increasing it, to prevent unneccesary copying on large assemblies.
19823         
19824         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
19825         creation if the assembly does not have the Run flag set.
19826
19827 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
19828
19829         * class.h: avoid the C++ keywords in header files (Jerome Laban
19830         spotted and fixed this).
19831
19832 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19833
19834         * object.c:
19835         (mono_unhandled_exception): fill in the arguments for the
19836         UnhandledException event. Only trigger that event for the default
19837         domain (as MS does).
19838
19839 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
19840
19841         * object.c: Improve typed allocation stuff based on suggestions from
19842         Paolo. Also turn it on if the GC library supports it.
19843
19844 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
19845
19846         * object.c object.h class.h: Added experimental typed allocation
19847         facility using the interfaces in gc_gcj.h.
19848
19849         * os/gc_wrapper.h: Added new include files.
19850         
19851 2003-04-03  Martin Baulig  <martin@ximian.com>
19852
19853         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
19854         which is not yet enabled by default.
19855
19856         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
19857         functions.
19858         (mono_gc_lock, mono_gc_unlock): New static functions.
19859
19860         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
19861         functions; stop/start the world for the garbage collector.  This
19862         is using the windows API; we need to complete the SuspendThread()/
19863         ResumeThread() implementation in the io-layer to make this work on Unix.
19864         (mono_gc_push_all_stacks): New public function; tells the garbage
19865         collector about the stack pointers from all managed threads.
19866
19867 2003-04-03  Martin Baulig  <martin@ximian.com>
19868
19869         * object.h (MonoThread): Added `gpointer stack_ptr'.
19870
19871         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
19872
19873 2003-04-03  Martin Baulig  <martin@ximian.com>
19874
19875         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
19876
19877 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
19878
19879         * reflection.c (typebuilder_setup_fields): Initialize field.first and
19880         field.last.
19881
19882 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
19883
19884         * loader.c (mono_lookup_internal_call): Report the corlib that is
19885         out of sync.
19886
19887 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
19888
19889         * icall.c (ves_icall_type_GetTypeCode): fixed check for
19890         System.DBNull (it's class not valuetype).
19891
19892 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19893
19894         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
19895         if the array method was already assigned a token (fixes bug#40646).
19896
19897 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
19898
19899         * reflection.c (mono_reflection_get_type): Attempt type resolve even
19900         if no assembly is given.
19901
19902 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
19903
19904         * metadata.h: Added the new tables.
19905
19906         * row-indexes.h: Added definitions for new tables.
19907
19908         * metadata.c: Add schemas for new tables, and add support for
19909         computing the sizes of them.
19910
19911         * class.c: Update for handling the new type cases.
19912
19913 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
19914
19915         * metadata.h (MONO_TYPE_IS_VOID): new macro
19916
19917 2003-03-31  Martin Baulig  <martin@ximian.com>
19918
19919         * threads.h (MonoThreadCallbacks): Added `thread_created'.
19920
19921         * threads.c (mono_thread_new_init): Call `thread_created' in the
19922         mono_thread_callbacks.
19923
19924 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
19925
19926         * loader.h: added marshalbyrefobject_class to mono_defaults
19927         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
19928         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
19929           generation of output parameters.
19930           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
19931         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
19932           contextbound and the target object belongs to the context of the caller.
19933         * object.h: added context and unwrapped_server variables in MonoRealProxy.
19934         * object.c: Implemented support for interfaces and abstract classes
19935           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
19936           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
19937
19938 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
19939
19940         * class.h class.c (mono_class_is_subclass_of): New function.
19941         
19942         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
19943         routines for most common case (calls from ArrayList::ToArray).
19944
19945         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
19946         routine so programs which call Environment::Exit() can be profiled.
19947
19948         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
19949         Added MONO_ARCH_SAVE_REGS.
19950
19951         * icall.c (ves_icall_type_is_subtype_of): Use new function.
19952
19953 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
19954
19955         * blob.h: Add a couple of new MonoType types definitions.
19956
19957         * tabledefs.h: Add a couple of new call convs.
19958
19959 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
19960
19961         * reflection.h (MonoReflectionDynamicAssembly): track changes in
19962         the layout of the class.
19963
19964         * reflection.c (alloc_table): double the size on overflow to avoid
19965         unnecessary copying.
19966
19967         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
19968         avoid filling out metadata tables and blobs. Also set mb->ilgen to
19969         null so it can be garbage collected.
19970         
19971 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
19972
19973         * reflection.c (mono_reflection_get_type): Return the resolved type
19974         only if it is in the assembly we searched.
19975
19976         * reflection.c (ensure_runtime_vtable): Initialize method slots.
19977
19978         * class.c (mono_class_setup_vtable): Set the slot of the overriding
19979         method.
19980
19981 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19982
19983         * appdomain.c:
19984         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
19985         the right one is 'file:///blah', but MS allows it.
19986         * assembly.c:
19987         (mono_assembly_open): allow 'file://blah'
19988
19989         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
19990
19991 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
19992
19993         * socket-io.c: fixes bug #40310.
19994
19995 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
19996
19997         * reflection.c (mono_reflection_parse_type): handle deeply nested
19998         types correctly.
19999
20000         * reflection.c (mono_image_create_token): Use unique token values
20001         since they will be put into a hash table.
20002
20003         * class.c (mono_class_setup_vtable): If a method occurs in more than
20004         one place in the vtable, and it gets overriden, then change the
20005         other occurances too.
20006
20007         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
20008         object as return type.
20009
20010 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20011
20012         * icall.c: Deleted "ToString" implementation for double and float
20013         because they are full implemented in managed code.
20014
20015 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20016
20017         * reflection.c, reflection.h: implemented and exported functions
20018         to retrieve info about custom attributes.
20019
20020 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20021
20022         * appdomain.c: moved Uri handling to assembly.c
20023         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
20024         work when using a file Uri in *nix and windows.
20025
20026         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
20027         GetReferencedAssemblies.
20028
20029 2003-03-18  Dick Porter  <dick@ximian.com>
20030
20031         * icall.c: Rename a couple of internal calls
20032
20033         * threads.c: Set the thread state to Stopped when a thread exits.
20034         Fixes bug 39377.
20035
20036 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
20037
20038         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
20039         New icall.
20040
20041         * object.c (mono_class_vtable): fix warning.
20042
20043 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
20044
20045         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
20046
20047         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
20048         memory.
20049         (method_encode_clauses): Create exception info structures in the right
20050         order.
20051         (mono_reflection_setup_internal_class): Initialize supertypes field.
20052
20053         * class.c object.c: Handle interfaces which implement other interfaces 
20054         correctly.
20055
20056         * class.h class.c: Move the supertypes array initialization code into 
20057         a separate function so it can be used for dynamic types too. Also call
20058         it earlier, in mono_class_init(), since it can be used before the
20059         type is initialized.
20060
20061 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20062
20063         * Makefile.am:
20064         * assembly.c:
20065         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
20066
20067         * appdomain.c:
20068         * appdomain.h:
20069         * marshal.c:
20070         * object.c: remove warnings.
20071
20072 2003-03-13  Martin Baulig  <martin@ximian.com>
20073
20074         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
20075         (MonoDebugLexicalBlockEntry): New types.
20076
20077         * debug-mono-symfile.c
20078         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
20079
20080 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20081
20082         * process.c: ret can be any non-zero value accroding to MS doc.
20083
20084 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
20085
20086         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
20087         fixing a warning for a miss-used prototype, would have cause
20088         random memory corruption.
20089
20090 2003-03-07  Martin Baulig  <martin@ximian.com>
20091
20092         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
20093         getting really annoying ....
20094
20095 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
20096
20097         * reflection.c (fixup_method): added support for array methods.
20098
20099 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
20100
20101         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
20102         (pointed out by Michael Adams).
20103
20104 2003-03-04  Dick Porter  <dick@ximian.com>
20105
20106         * icall.c: Temporarily reverted the Double and Single ToString()
20107         change, because it broke nunit.
20108
20109 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
20110
20111         * object.h, threads.h: make include files compatible with C++
20112         (patch by Jerome Laban <jlaban@wanadoo.fr>).
20113
20114 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20115
20116         * icall.c: Erased ToString helper functions for Double and Single.
20117         Now, that implementations ar all in managed code (Double and Single
20118         Formatters).
20119
20120 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
20121
20122         * appdomain.c: Added method for initializing the default context of
20123         a domain. Added internal call for getting the default context.
20124         * appdomain.h: Added context variable in MonoDomain struct.
20125         * domain.c: mono_domain_set also sets the default context of the domain
20126         * icall.c: Mapped internal method InternalGetDefaultContext.
20127         * object.c: mono_object_get_virtual_method returns always a remoting
20128         wrapper if the object is a transparent proxy.
20129         mono_runtime_invoke_array: when creating an object by calling the
20130         constructor, if the created object is a proxy, then the constructor should
20131         be called using the a remoting wrapper.
20132
20133 2003-03-03  Dick Porter  <dick@ximian.com>
20134
20135         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
20136         variable so it compiles on solaris.  Problem spotted by
20137         Christopher Taylor <ct@cs.clemson.edu>
20138
20139 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20140
20141         * appdomain.c:
20142         (get_info_from_assembly_name): don't leak value.
20143
20144         * icall.c:
20145         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
20146         result.
20147
20148 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
20149
20150         * assembly.c: export mono_image_load_references ().
20151         * class.c: handle function pointers. mono_class_from_name() now
20152         supports nested type names directly.
20153
20154 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
20155
20156         * reflection.h reflection.c: Encode already created dynamic methods 
20157         and fields correctly as a DEF instead of a REF.
20158
20159         * reflection.c: Get rid of the force_ref argument to 
20160         mono_image_typedef_or_ref since it was wrong in the first place.
20161
20162         * string-icalls.c: add error checking to string constructors according
20163         to the MSDN docs.
20164
20165         * reflection.c: Emit types in the order their TypeBuilders were 
20166         created. Previously, a new table index was assigned to each type before
20167         the tables were emitted. This was wrong because the signature blob
20168         might already refer to a type by its original table index.
20169
20170 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
20171
20172         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
20173         change.
20174         
20175 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20176
20177         * Makefile.am: make assemblies dir have \ instead of / on windows.
20178
20179 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
20180
20181         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
20182         iterate over the NESTEDCLASS table using a linear search since the
20183         table is not guaranteed to be sorted by the secondary key.
20184
20185         * class.c (mono_class_create_from_typedef): fixed up call to
20186         mono_metadata_nesting_typedef.
20187         
20188 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
20189
20190         * marshal.c (mono_string_to_byvalstr): clear the memory as
20191         suggested by Jerome Laban <jlaban@wanadoo.fr>
20192
20193 2003-02-26  Dick Porter  <dick@ximian.com>
20194
20195         * process.c: Cope with padding in .rsrc blocks
20196
20197 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
20198
20199         * metadata.h: reverted the filter_len change, it breaks reflection
20200         
20201 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
20202
20203         * metadata.h: added a new field to store the filter_len
20204         
20205
20206 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
20207
20208         * reflection.c: handle custom attributes for types and members
20209         created with Reflection.Emit (bug#38422).
20210
20211 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
20212
20213         * reflection.c: define RTSpecialName automatically for constructors for
20214         compatibility with MS.NET.
20215
20216         * reflection.c (mono_reflection_create_runtime_class): initialize
20217         nested_in field of dynamically created classes.
20218
20219 2003-02-22  Martin Baulig  <martin@ximian.com>
20220
20221         * debug-mono-symfile.h: Incremented version number.
20222
20223 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
20224
20225         * object.h icall.c process.c: fix warnings.
20226
20227 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
20228
20229         * appdomain.h appdomain.c:
20230         (mono_domain_try_type_resolve): split the 
20231         name_or_tb argument into a name and a tb argument.
20232         (mono_domain_has_type_resolve): new function to check whenever the
20233         application has registered a TypeResolve event handler.
20234         
20235         * icall.c reflection.h reflection.c: move the type resolve logic into
20236         mono_reflection_get_type () so it will be invoked when 
20237         Assembly::GetType () is called.
20238
20239         * reflection.c:
20240         (mono_reflection_get_type): renamed to get_type_internal.
20241         (mono_reflection_get_type): fixed type name generation so it works 
20242         for nested types too.
20243         (mono_reflection_get_type): call has_type_resolve () to avoid the 
20244         costly type name generation if there is no resolve event handler.
20245
20246 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20247
20248         * class.c, image.c: load exported types from file references.
20249
20250 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
20251
20252         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
20253           used to cache the managed methods used to create proxies and make 
20254           remote invocation of methods.
20255         * class.h: Added in MonoVTable a flag to indicate that a class needs 
20256           to be remotely created.
20257         * object.c: Modified the method mono_class_vtable(). It now initializes 
20258           the remote flag of the vtable. Modified mono_object_new_specific(), 
20259           so now it checks the remote flag.
20260         * icall.c: Added a couple of internal methods, one for enabling instance 
20261           creation interception for a type, and one for creating objects bypassing
20262           the remote check.
20263
20264 2003-02-18  Martin Baulig  <martin@ximian.com>
20265
20266         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
20267         New interncall to get a method's metadata token.
20268
20269         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
20270         New interncall for the debugger.
20271
20272 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
20273
20274         * class.c (mono_class_setup_vtable): allocate supertype array
20275
20276 2003-02-18  Martin Baulig  <martin@ximian.com>
20277
20278         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
20279
20280 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20281
20282         * reflection.c:
20283         (assembly_name_to_aname): jump over unknown properties (i've found
20284         something like: 'type, assembly, version=xxx, custom=null, public...',
20285         so now will ignore custom=null and still get the rest of the values).
20286
20287 2003-02-17  Dick Porter  <dick@ximian.com>
20288
20289         * threads.c: Have Thread.Start() wait for a semaphore to signal
20290         that the thread has set up all its local data.  This fixes bug
20291         34323, where Abort() raced the new thread's TLS data.
20292
20293         Also removes the handle_store() call from start_wrapper, because
20294         threads are now always created suspended and there is no longer a
20295         race between the parent and child threads to store the info.
20296
20297 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
20298
20299         * image.c: explain the #- heap issue in a message, hopefully
20300         avoiding FAQs on mono-list.
20301
20302 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20303
20304         * icall.c:
20305         (GetEntryAssembly): if the domain has not invoked
20306         AppDomain.ExecuteAssembly yet, return the assembly of the default
20307         AppDomain.
20308
20309 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
20310
20311         * class.c (mono_ldtoken): make it work in dynamic assemblies.
20312
20313 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
20314
20315         * metadata.c, reflection.c: simple speedup to type hash
20316         and equals code.
20317
20318 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
20319
20320         * image.c, image.h, class.c, assembly.c: move module loading
20321         to MonoImage. When loading metadata, consider alignemnet from
20322         the start of metadata, not from the metadata address in memory.
20323
20324 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
20325
20326         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
20327         AssemblyBuilder objects. Factored out custom attribute creation into
20328         a separate function.
20329         (create_custom_attr): new function to create custom attributes.
20330
20331 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
20332
20333         * Makefile.am: Got tired of typing the full pathname to pedump.
20334         Until there is another option, am installing this.
20335
20336 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
20337
20338         * class.c (class_compute_field_layout): always set field->parent 
20339         (mono_ldtoken): use mono_defaults.fieldhandle_class;
20340
20341 2003-02-11  Dick Porter  <dick@ximian.com>
20342
20343         * threads-types.h:
20344         * monitor.c: Rewrote Monitor, making lock much faster and
20345         Pulse/Wait work as specified.  Also uses much fewer handles, and only
20346         creates them as needed.
20347
20348         * exception.c: Added SynchronizationLockException
20349
20350         * threads.c: Deleted old Monitor implementation.  The new one is
20351         in a new file.
20352
20353 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
20354
20355         * class.c: handled TypedReference type code. Set the correct size for
20356         class data. Setup interface_offsets for interface classes, too.
20357
20358 2003-02-09  Martin Baulig  <martin@ximian.com>
20359
20360         * debug-mono-symfile.h: Reflect latest symbol writer changes.
20361
20362 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
20363
20364         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
20365         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
20366         * object.c: fixed mono_object_get_virtual_method () for interfaces.
20367         * verify.c: check for code that runs after the end of the method.
20368
20369 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20370
20371         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
20372         "System.Math::Round2".
20373         * sysmath.h: Added Floor, Round and Round2 definitions.
20374         * sysmath.c: Modified certain functions that were not 100% compliant
20375         with MS.NET (math precision) and added the implementation of Floor,
20376         Round and Round2.
20377
20378 2003-02-07  Martin Baulig  <martin@ximian.com>
20379
20380         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
20381
20382 2003-02-07  Martin Baulig  <martin@ximian.com>
20383
20384         * debug-mono-symfile.c: Reflected latest symwriter changes.
20385         (mono_debug_create_mono_symbol_file): Removed.
20386         (mono_debug_open_mono_symbol_file): Take an argument which
20387         specifies whether to create a dynamic symbol file.
20388
20389 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
20390
20391         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
20392
20393 2003-02-05  Martin Baulig  <martin@ximian.com>
20394
20395         * reflection.c (mono_image_build_metadata): Make this public,
20396         protect it against being called multiple times, don't create
20397         resources and don't build the compressed metadata here.
20398         (mono_image_create_pefile): Do this here.
20399
20400         * icall.c
20401         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
20402
20403 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20404
20405         * socket-io.c: fixed bug #36322.
20406
20407 2003-02-06  Piers Haken <piersh@friskit.com>
20408
20409         * appdomain.[ch]:
20410         * class.h:
20411         * debug-mono-symfile.c:
20412         * icall.c:
20413         * loader.c:
20414         * mono-config.c:
20415         * monosn.c:
20416         * reflection.c:
20417         * socket-io.c: warning cleanups
20418
20419 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
20420
20421         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
20422         function. works like remoting invoke, but does a check for the Proxy first.
20423
20424 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
20425
20426         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
20427
20428 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
20429
20430         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
20431         array of pointers.
20432         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
20433         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
20434
20435         * object.c (mono_store_remote_field_new): used by the new jit
20436         instead of mono_store_remote_field
20437         (mono_load_remote_field_new): used by the new jit
20438         instead of mono_load_remote_field
20439
20440 2003-02-05  Patrik Torstensson
20441
20442         * appdomain.c: changed unload to take the domain id instead
20443         of domain
20444         
20445         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
20446
20447
20448 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20449
20450         * appdomain.c: don't look for assemblies in ApplicationBase if
20451         PrivateBinPathProbe is set.
20452
20453 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20454
20455         * object.c: make the first argument in main_args contain the absolute
20456         path to the assembly. Fixes bug #37511.
20457
20458 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20459
20460         * icall.c: get correct UTC offset for countries not using daylight
20461         time saving. Fixes bug #30030.
20462
20463 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20464
20465         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
20466         and 1 are the family).
20467
20468 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
20469
20470         * icall.c (ves_icall_InternalExecute): removed wrong assertion
20471
20472         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
20473
20474 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
20475
20476         * reflection.c: added support for SignatureHelper tokens, which is
20477         needed by the Calli opcode.
20478
20479         * reflection.h: track changes to SignatureHelper class.
20480
20481         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
20482
20483 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20484
20485         * appdomain.c: fixed loading assemblies from PrivateBinPath.
20486
20487 2003-02-03  Patrik Torstensson
20488         * appdomain.[c|h], domain.c : 
20489          - Added support for getting a domain via domain id
20490          - Support for setting and getting domain from System.AppDomain 
20491            (used in cross appdomain channel)
20492          - Added support for get/set for a MonoAppContext on a thread 
20493            (Context class in System.Runtime.Remoting.Contexts),
20494          - Removed hack in Get/SetData and ExecuteAssembly.
20495         
20496         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
20497         the managed world to get control when a proxy is created.
20498
20499         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
20500         
20501 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
20502
20503         * icall.c
20504         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
20505         Populate the codebase field as well.
20506
20507 2003-02-02  Martin Baulig  <martin@ximian.com>
20508
20509         * debug-mono-symfile.c
20510         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
20511         (mono_debug_symfile_add_method): Allow interncalls.
20512
20513 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20514
20515         * icall.c: throw parse exception if strtod fails or the string is empty.
20516
20517 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
20518
20519         * marshal.c: handle object type separately from defined
20520         class types.
20521
20522 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
20523
20524         * marshal.c: handle NATIVE_LPSTR for strings when it's
20525         explicitly specified.
20526
20527 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
20528
20529         * reflection.c, reflection.h, icall.c: setup the reflection
20530         handle cache for ModuleBuilders and AssemblyBuilders.
20531
20532 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
20533
20534         * reflection.c (reflection_methodbuilder_to_mono_method): set
20535         pinvoke flag
20536
20537 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20538
20539         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
20540
20541 2003-01-29  Dick Porter  <dick@ximian.com>
20542
20543         * threads.c: No need for the fake_thread kludge now that Thread
20544         doesn't run a class constructor
20545         
20546 2003-01-29  Dick Porter  <dick@ximian.com>
20547
20548         * threads.c: Use g_direct_hash instead of the rather bogus
20549         g_int_hash
20550
20551 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
20552
20553         * marshal.c (mono_marshal_get_native_wrapper): add check for null
20554         (fix pinvoke12.exe)
20555         (mono_marshal_get_struct_to_ptr): generate valid IL code
20556         (mono_marshal_get_ptr_to_struct): generate valid IL code
20557         (*): correctly set sig->pinvoke, we need to memdup the signature
20558         to do that
20559
20560 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20561
20562         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
20563         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
20564
20565 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20566
20567         * profiler.c: provide more callers information.
20568
20569 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
20570
20571         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
20572
20573         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
20574
20575         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
20576
20577 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20578
20579         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
20580         exception instead of going into an infinite loop on dates which it 
20581         can't yet handle.
20582
20583         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
20584         out-of-range exception if needed.
20585
20586         * class.c (mono_class_setup_vtable): allow a virtual method to provide
20587         an implementation for an interface method and to override an inherited
20588         method at the same time. 
20589         Imagine a scenario when a virtual method is used to override a
20590         virtual abstract method in a parent class, and this same method 
20591         provides an implementation for an method inherited from an interface. 
20592         In this case, the interface resolution code will set im->slot, which 
20593         means that the virtual method override pass will skip this method 
20594         which means a pointer to the abstract method inherited from the parent
20595         will remain in the vtable of this non-abstract class.
20596
20597         * class.c: (mono_class_setup_vtable): continue search for a real 
20598         method if only an abstract method is found.     
20599
20600 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20601
20602         * reflection.c: add size to encoding for ByValStr and ByValArray
20603         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
20604
20605 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20606
20607         * class.c (mono_class_setup_vtable): pass the override info as an
20608         argument.
20609
20610         * class.c (mono_class_setup_vtable): set the slot of overriding methods
20611         correctly.
20612         
20613         * reflection.c (ensure_runtime_vtable); add support for method 
20614         overrides.
20615         
20616 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20617
20618         * reflection.c (resolution_scope_from_image): Hack to work to work with
20619         dynamic assemblies.
20620
20621         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
20622         added a 'force_ref' argument to force this function to allways return 
20623         a TypeRef. This is needed by mono_image_get_memberref_token ().
20624         
20625 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20626
20627         * reflection.c (mono_image_get_type_info): interfaces really don't have
20628         a parent.
20629
20630         * reflection.c (mono_image_basic_init): fill out missing fields of
20631         image structure.
20632
20633         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
20634         dynamic assemblies. This is required so dynamic assemblies show up in
20635         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
20636         Type::GetType() etc. This is consistent with MS behaviour.
20637
20638         * image.c image.h reflection.c: add newly created classes to the name 
20639         cache so mono_class_get () will find them.      
20640
20641 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20642
20643         First part of changes to get IKVM.NET running under mono.
20644         
20645         * appdomain.h, appdomain.c: added new function 
20646         mono_domain_try_type_resolve() which will emit TypeResolve events. 
20647         This function will call AppDomain::DoTypeResolve to do the actual work.
20648
20649         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
20650         moved existing code dealing with dynamic tokens to a new function 
20651         called mono_reflection_lookup_dynamic_token (). This function will 
20652         raise TypeResolve events when appropriate. Since reflection.c is not 
20653         part of libmetadata, a new hook function called 
20654         mono_lookup_dynamic_token() is added to class.c which will call this.
20655
20656         * assembly.h assembly.c: make the invoke_load_hook function public,
20657         so it can be called for dynamic assemblies.
20658
20659         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
20660
20661         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
20662         type isn't found.
20663
20664         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
20665         MonoGHashTable, since it contains pointers to objects which the GC 
20666         needs to track.
20667
20668         * assembly.c (search_loaded): remove unused variable.
20669         
20670 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
20671
20672         * object.c: fixed issue exposed by gcc-generated IL programs
20673         that use RVA data for pointers.
20674
20675 2003-01-25  Martin Baulig  <martin@ximian.com>
20676
20677         * threads.c (start_wrapper): Moved the initialization of
20678         `start_func' above the mono_new_thread_init() call to which we
20679         pass it as argument.
20680
20681 2003-01-24  Martin Baulig  <martin@ximian.com>
20682
20683         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
20684         the MonoThread pointer.
20685
20686 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
20687
20688         * icall.c: Rename `PowImpl' to Pow.
20689
20690 2003-01-23  Dick Porter  <dick@ximian.com>
20691
20692         * threads.c (start_wrapper): Create a Thread object if needed, so
20693         the Main() thread can do the class initialisation in a subthread
20694         that has been set up to allow managed code execution.
20695
20696         Pass the thread ID instead of the MonoThread pointer to the thread
20697         start and attach callbacks.  This change is required, because the
20698         jit thread start callback must be called _before_ the Thread
20699         object can be created.
20700         
20701         (mono_thread_init): Removed much object creation code that is no
20702         longer needed.  No managed code is called from here now.
20703
20704         * object.c (mono_runtime_exec_managed_code): Create a subthread
20705         for Main, and call back to the runtime to use it.
20706         Set the exit code when Main exits.
20707
20708         * gc.c: Make sure domain finalisation happens in a subthread.
20709         Re-enable threaded GC, fixing bug 31333 (again).
20710
20711         * environment.c: System.Environment internall calls (so far just
20712         ExitCode is here, the others are still in icall.c)
20713
20714         * appdomain.c (mono_runtime_cleanup): All threads running managed
20715         code should have finished before mono_runtime_cleanup() is
20716         reached, so no need to clean up threads.
20717
20718 2003-01-22  Martin Baulig  <martin@ximian.com>
20719
20720         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
20721         `gpointer func' arguments.      
20722         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
20723         but added `MonoThread *thread' argument.
20724         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
20725
20726         * threads.c (mono_new_thread_init): Added `gpointer func' argument
20727         and pass it to the mono_thread_start_cb callback.
20728         (mono_install_thread_callbacks): New public function to install a
20729         set of callbacks which are set by the debugger.
20730         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
20731
20732 2003-01-22  Martin Baulig  <martin@ximian.com>
20733
20734         * Makefile.am: Install debug-mono-symfile.h.
20735
20736 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
20737
20738         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
20739
20740 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
20741
20742         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
20743         * class.c (mono_ptr_class_get): correctly set access levels of pointers
20744         (mono_array_class_get): correctly set access levels of arrays
20745
20746 2003-01-20      Patrik Torstensson
20747         * image.h (MonoAssemblyName): changed major, minor, build, revision
20748         from signed to unsigned.
20749
20750 2003-01-20  sean kasun <skasun@azstarnet.com>
20751
20752         * reflection.c (load_cattr_value): Now this handles
20753         MONO_TYPE_SZARRAY.  Fixes bug #35629
20754
20755 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
20756
20757         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
20758         integer value
20759
20760 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20761
20762         * decimal.c: fixed bug #26056.
20763
20764 2003-01-17  Martin Baulig  <martin@ximian.com>
20765
20766         * gc.c: Raise an ExecutionEngineException instead of using g_error().
20767
20768 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20769
20770         * exception.[ch]:
20771         (mono_get_exception_type_initialization): new function.
20772
20773         * object.c: throw a TypeInitializationException when an exception is
20774         thrown invoking the class constructor.
20775
20776 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20777
20778         * reflection.c: fixed attribute reading.
20779
20780 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20781
20782         * icall.c:
20783         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
20784         provided, look for the type in the calling assembly and then in
20785         mscorlib; if the assembly name is provided, only try that one.
20786
20787 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
20788
20789         * object.c: register the vtable before there is a chance it's
20790         queried again recursively.
20791
20792 2003-01-13  Duncan Mak  <duncan@ximian.com>
20793
20794         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
20795         gc-internal.h. 
20796         
20797 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
20798
20799         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
20800
20801 2003-01-11  Martin Baulig  <martin@ximian.com>
20802
20803         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
20804         this to 20 for the release.
20805
20806 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
20807
20808         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
20809
20810         * loader.c (mono_method_get_marshal_info): bug fix
20811
20812         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
20813         structures with explicit layout
20814
20815 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
20816
20817         * profiler.c: made the output more readable (and sorted). 
20818         Added caller information for the allocation profiler.
20819
20820 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
20821
20822         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
20823
20824 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20825
20826         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
20827         to get value types.
20828         
20829 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
20830
20831         * object.c, profiler.h, profiler.c, profiler-private.h:
20832         Added object allocation profiler.
20833
20834 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
20835
20836         * reflection.h, reflection.c: handle global methods.
20837         Compress blob entries.
20838
20839 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
20840
20841         * marshal.c: fix compilation.
20842
20843 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
20844
20845         * loader.c (mono_method_get_marshal_info): impl.
20846
20847         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
20848
20849 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20850
20851         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
20852         for reference types.
20853
20854 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
20855
20856         * loader.c: fixed off by one error in loaded parameter names.
20857
20858 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
20859
20860         * marshal.c (mono_marshal_get_icall_wrapper): like
20861         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
20862         instead of a MonoMethod.
20863
20864 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20865
20866         * decimal.c: fixed bug #36537.
20867
20868 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
20869
20870         * marshal.c: throw a missing method exception if a
20871         P/Invoke method is not found.
20872
20873 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
20874
20875         * icall.c: allow a null this for constructors.
20876
20877 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
20878
20879         * icall.c: raise the proper exceptions if the arguments to the
20880         internal Invoke are incorrect.
20881
20882 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
20883
20884         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
20885
20886 2003-01-03  Martin Baulig  <martin@ximian.com>
20887
20888         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20889
20890 2002-12-31  Martin Baulig  <martin@ximian.com>
20891
20892         * debug-mono-symfile.c: Completely rewrote the type section.
20893         Instead of using individual malloc()ed fields, we use one big
20894         continuous memory area and offsets into this area.
20895         See the comments in the source code for details.
20896
20897 2002-12-30  Martin Baulig  <martin@ximian.com>
20898
20899         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
20900
20901 2002-12-30  Martin Baulig  <martin@ximian.com>
20902
20903         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
20904         line number table in this data blob instead of using an external
20905         pointer.
20906
20907 2002-12-28  Martin Baulig  <martin@ximian.com>
20908
20909         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20910
20911 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
20912
20913         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
20914         as a boxed return type.
20915
20916 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
20917
20918         * appdomain.c
20919         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
20920         g_build_filename to properly get separators on the filename created.
20921
20922         * object.h: Small change, introduce MonoMarshalByRefObject to
20923         track the layout of that structure in the C# universe as we make
20924         changes there.
20925
20926 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
20927
20928         * object.c: removed assert to allow static fields on interfaces.
20929         * loader.c: a TypeSpec may be used for any type, not just arrays.
20930
20931 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20932
20933         * class.c, class.h: added mono_class_array_element_size ().
20934         Ignore static methods in interfaces.
20935
20936 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20937
20938         * threads.c: fixed the build under cygwin.
20939
20940 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
20941
20942         * reflection.c: handle nullref constants. Allocate keys for
20943         reflection handles with the GC.
20944
20945 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20946
20947         * threads.c, threads.h: added mono_thread_get_abort_signal()
20948         to get a suitable signal for thread abort.
20949
20950 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20951
20952         * metadata.c: fix handling of ExportedType table.
20953
20954 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20955
20956         * icall.c: added WriteWindowsDebugString internal call.
20957
20958 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20959
20960         * reflection.h: added fields to match C# implementation.
20961
20962 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20963
20964         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
20965
20966 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
20967
20968         * gc.h, gc-internal.h: Rename header for GC internal calls to
20969         gc-internal.h from gc.h as to not clash with Boehm GC having its
20970         header installed as <gc.h> in outside include paths.
20971         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
20972         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
20973
20974 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20975
20976         * icall.c: assign minor, build and revision in FillName.
20977
20978 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
20979
20980         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
20981         Added support for running code generated by Reflection.Emit.
20982
20983 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20984
20985         * appdomain.c: check for NULL argument in LoadFrom.
20986
20987 2002-12-10  Dick Porter  <dick@ximian.com>
20988
20989         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
20990
20991 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20992
20993         * appdomain.c: fix buglet when building exe file name.  Handle full
20994         assembly name (needed after latest changes to AssemblyName).
20995         * image.c:
20996         (mono_image_close): free some hashtables.
20997
20998 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
20999
21000         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
21001         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
21002         on some systems (redhat 7.3) 
21003
21004 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
21005
21006         * threads.c: delete the critical section of a sync block,
21007         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
21008
21009 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
21010
21011         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
21012
21013 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21014
21015         * appdomain.[ch]: handle the assembly preload event to try loading the
21016         assemblies using the paths we have in the current domain.
21017
21018         * assembly.[ch]: created an assembly preload hook that is called to try
21019         loading the assembly by other means that the ones provided here.
21020
21021         * domain.c: initialize the domain search path.
21022
21023         From now on, assemblies (TODO: except corlib and System) are loaded
21024         according to these rules when using mono_assembly_load ():
21025
21026                 1. It tries to load the assembly from the ApplicationBase
21027                 of the current domain appending .dll and .exe (TODO: have to
21028                 try loading from name/name.dll and name/name.exe).
21029
21030                 2. It tries the search path specified in PrivateBinPath for the
21031                 current domain (if any).
21032
21033                 3. Previous behavior.
21034
21035 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
21036
21037         * icall.c: implemented GetInterfaceMap() related icall.
21038         * domain.c, loader.h: load MethodInfo in mono_defaults.
21039
21040 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21041
21042         * gc.c: disable the finalizer thread for now, untill all the issues
21043         with it are resolved.
21044
21045 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21046
21047         * string-icalls.c: handle embedded nulls in string ctor when the
21048         length is specified.
21049
21050 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21051
21052         * class.c: look for explicit interface implementation in parent
21053         classes, too.
21054
21055 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
21056
21057         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
21058
21059 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21060
21061         * gc.c: protect handles with a critical section.
21062
21063 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21064
21065         * icall.c:
21066         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
21067         parameters. If no assembly specified, try getting the type from all
21068         the assemblies in the current domain, else, load the assembly and get
21069         the type from it.
21070
21071 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21072
21073         * marshal.c: applied patch from Aleksey Demakov that fixes
21074         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
21075
21076 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21077
21078         * icall.c: fixed get_location.
21079
21080 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
21081
21082         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
21083         declarations to make it work with older gcc. 
21084
21085         * loader.c (mono_get_method): set signature->pinvoke for native calls
21086
21087 2002-11-20  Dick Porter  <dick@ximian.com>
21088
21089         * threads.c (mono_thread_init): Set the main thread's handle
21090
21091 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21092
21093         * gc.c: allow compilation without GC support. Changed to match the
21094         mono coding style.
21095
21096 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21097
21098         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
21099
21100 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
21101
21102         * reflection.c: set a public key token on the core assemblies.
21103
21104 2002-11-18  Dick Porter  <dick@ximian.com>
21105
21106         * threads.c: Split out some thread initialisation so that other
21107         files can set the start callback function.
21108
21109         * gc.c: Run finalisers in a separate thread, to avoid stack
21110         overflow.  Fixes bug 31333.
21111
21112         * appdomain.c: Set up GC finalisation thread.
21113
21114         * reflection.c: 
21115         * object.c: 
21116         * domain.c: Use gc.h macros for GC_malloc
21117         
21118 2002-11-15  Dick Porter  <dick@ximian.com>
21119
21120         * threadpool.c: 
21121         * threads.c:
21122         * appdomain.c: Removed mono_runtime_init_with_attach(),
21123         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
21124         merging the extra parameter with the existing function.  Removed
21125         unneeded code in mono_thread_attach().
21126
21127 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
21128
21129         * image.c (mono_image_loaded_by_guid): a method to get loaded
21130         images by guid. 
21131         (load_metadata_ptrs): we store the guid as string.
21132
21133 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
21134
21135         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
21136
21137         * metadata.c (mono_guid_to_string): imported method form Zoltan
21138         Varga (slightly modified)
21139
21140         * assembly.c (mono_assembly_open): load precompiled code
21141
21142         * loader.h (MonoMethod): we store the method token for use in the
21143         aot compiler. 
21144
21145 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21146
21147         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
21148         the hook function called when an assembly is loaded.
21149         
21150         * domain.c: Modified file.
21151         (mono_domain_assembly_load): removed hash table insertion of assemblies.
21152
21153         Fixes bug #33196.
21154
21155 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
21156
21157         * reflection.c: Map PEFileKind to the value expected by the WinNT
21158         image loader. 
21159
21160 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21161
21162         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
21163         Read until the buffer is filled completely.
21164
21165 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21166
21167         * icall.c: implemented MonoType.InternalGetEvent ().
21168
21169 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21170
21171         * appdomain.c: implemented InitAppDomainSetup. Delayed
21172         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
21173         the entry_assembly.
21174
21175         * assembly.c: base_dir is now an absolute path ending with
21176         G_DIR_SEPARATOR.
21177
21178         * icall.c: modified get_location according to the above changes.
21179
21180         * object.c: init AppDomain.SetupInformation for the default domain after
21181         we have the entry assembly.
21182
21183         * domain.c: when unloading a domain, setup = NULL.
21184
21185 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
21186
21187         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
21188
21189 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
21190
21191         * object.h, object.c: introduced mono_object_get_virtual_method ()
21192         to lookup the method invoked on an object when a callvirt is done on
21193         a method.
21194         * icall.c: make MethodInfo::Invoke() always do a virtual call.
21195
21196 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21197
21198         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
21199         current domain when loaded an assembly and failed to load it.
21200
21201         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
21202
21203 2002-10-31  Dick Porter  <dick@ximian.com>
21204
21205         * icall.c: 
21206         * file-io.h: 
21207         * file-io.c: Return the error status in a parameter, as the
21208         GetLastError() value has long since been blown away if we try and
21209         look it up in a subsequent internal call invocation.  Delete the
21210         GetLastError() internal call, because it's useless.
21211
21212 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
21213
21214         * class.[ch]: added cast_class to fix bug 29517
21215
21216 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
21217
21218         * marshal.c: create valid IL code in the filter clause:
21219         the new JIT is less forgiving:-)
21220
21221 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21222
21223         * icall.c: removed get_property internal call.
21224
21225 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
21226
21227         * appdomain.h domain.c: Added an ID to appdomains.
21228         
21229         * threads.c threads.h icall.c: Implement icall
21230         Thread:GetDomainID(), and remove unused icall 
21231         CurrentThreadDomain_internal.
21232
21233 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21234
21235         * icall.c: Don't recurse through the base types in GetConstructor.
21236         Fixes bug #32063. 
21237
21238 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
21239
21240         * mempool.h, mempool.c: added mono_mempool_empty() and
21241         mono_mempool_stats().
21242
21243 2002-10-23  Dick Porter  <dick@ximian.com>
21244
21245         * file-io.c: 
21246         * file-io.h: 
21247         * icall.c: Added MonoIO.GetFileType internal call
21248
21249 2002-10-17  Dick Porter  <dick@ximian.com>
21250
21251         * appdomain.c (mono_runtime_cleanup): Don't signal the async
21252         delegate semaphore before waiting for all threads to finish,
21253         because new threads can also call async delegates.  Fixes bug
21254         32004.
21255
21256         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
21257         of 3 seconds, in case another async job is queued.  (This part is
21258         needed because the bug fix reintroduced the 3s exit lag.)  This
21259         makes the mono_runtime_shutdown flag superfluous.
21260
21261 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
21262
21263         * reflection.c: include ehader size in method section headers.
21264         Really check for suplicated modules entries.
21265
21266 2002-10-17  Martin Baulig  <martin@gnome.org>
21267
21268         * debug-mono-symfile.c: Added back support for locals.
21269
21270 2002-10-14  Martin Baulig  <martin@gnome.org>
21271
21272         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
21273         MONO_TYPE_VOID.
21274
21275 2002-10-14  Martin Baulig  <martin@gnome.org>
21276
21277         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
21278         mono_class_get() instead of looking in the class cache. 
21279
21280 2002-10-13  Martin Baulig  <martin@gnome.org>
21281
21282         * debug-mono-symfile.c: Set version number to 28, include the
21283         signature in method names.
21284
21285 2002-10-13  Martin Baulig  <martin@gnome.org>
21286
21287         * debug-mono-symfile.h: Set version number to 27.
21288
21289 2002-10-11  Martin Baulig  <martin@gnome.org>
21290
21291         * gc.c: Don't register/unregister NULL pointers as disappearing links.
21292
21293 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21294
21295         * metadata.c, metadata.h: added helper function to allocate signatures.
21296
21297 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21298
21299         * icall.c: added internal call to get the location of machine.config.
21300
21301 2002-10-08  Martin Baulig  <martin@gnome.org>
21302
21303         * debug-mono-symfile.c: Ignore classes with a pending init for the
21304         moment.
21305
21306 2002-10-03  Dick Porter  <dick@ximian.com>
21307
21308         * threads.c: Freebsd pthread_t is a pointer
21309
21310 2002-10-03  Dick Porter  <dick@ximian.com>
21311
21312         * socket-io.c: Implemented GetHostName_internal
21313
21314 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21315
21316         * mono-config.c:
21317         (mono_config_parse_file): don't leak the text.
21318
21319 2002-10-02  Martin Baulig  <martin@gnome.org>
21320
21321         * debug-mono-symfile.c: Added support for methods.
21322
21323 2002-10-01  Martin Baulig  <martin@gnome.org>
21324
21325         * debug-mono-symfile.c: Don't emit methods and line numbers for
21326         the dynamic symbol file, just write the type table.  We can easily
21327         have an external helper program which creates a symbol file for an
21328         IL file.        
21329
21330 2002-10-01  Dick Porter  <dick@ximian.com>
21331
21332         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
21333         Only add the handle to the cleanup array when we're about to
21334         launch the thread.  Bug 31425 deadlocked when the test was run on
21335         mono under w32.
21336
21337 2002-10-01  Martin Baulig  <martin@gnome.org>
21338
21339         * debug-mono-symfile.c: Added support for properties.
21340
21341 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21342
21343         * reflection.c: unaligned store fix from Mark Crichton
21344         <crichton@gimp.org>.
21345
21346 2002-09-27  Martin Baulig  <martin@gnome.org>
21347
21348         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
21349         New interncall.
21350
21351 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21352
21353         * assembly.h, assembly.c: use a sane API to hook into the assembly
21354         loading process instead of a useless special-purpouse hack
21355         (ngen needs a hook, too, for example).
21356
21357 2002-09-27  Dick Porter  <dick@ximian.com>
21358
21359         * threads.c (mono_thread_init): Call GetCurrentProcess() so
21360         io-layer can set up some process handle info.  Not needed on w32,
21361         but doesn't hurt either.
21362
21363         * process.c: Pass the program name in the second parameter to
21364         CreateProcess, so the path is searched.  Include the working
21365         directory. Implemented process name, process enumeration, and some
21366         process detail internal calls.
21367         
21368         * icall.c: Added internal calls for process lookup, and some
21369         process details
21370
21371 2002-09-26  Martin Baulig  <martin@gnome.org>
21372
21373         * assembly.c (mono_install_open_assembly_hook): New global
21374         function to install a function to be invoked each time a new
21375         assembly is loaded.
21376         (mono_assembly_open): Run this callback function if set.
21377
21378         * debug-mono-symfile.c: Put back line numbers for the dynamic
21379         symbol file and also record the .il file as source file.  This
21380         allows us to install the temporary symbol file as `file.dbg' just
21381         like a compiler-generated one.
21382
21383 2002-09-26  Nick Zigarovich <nick@chemlab.org>
21384
21385         * Corrected typo in gc.c (BOHEM vs BOEHM).
21386
21387 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21388
21389         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
21390         GetProperties. Also avoid calling g_slist_length in GetProperties and
21391         GetMethods.
21392
21393 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21394
21395         * reflection.c: avoid unaligned stores (bug spotted by
21396         Mark Crichton  <crichton@gimp.org>).
21397
21398 2002-09-25  Martin Baulig  <martin@gnome.org>
21399
21400         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
21401         instead of guint64 for addresses and added prologue/epilogue info.
21402
21403 2002-09-25  Martin Baulig  <martin@gnome.org>
21404
21405         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
21406         store line number info.  For the dynamic symbol file, we only need
21407         to provide the JIT generated dynamic line number info for the dynamic
21408         symbol file.
21409
21410 2002-09-25  Martin Baulig  <martin@gnome.org>
21411
21412         * debug-mono-symfile.h: Incremented version number.
21413
21414 2002-09-24  Martin Baulig  <martin@gnome.org>
21415
21416         * class.c (mono_debugger_class_init_func): New global function
21417         pointer variable.
21418         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
21419         call it.
21420
21421         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
21422         function.  This is called via the mono_debugger_class_init_func
21423         hook to add all types to the dynamic type table.
21424         (ves_icall_MonoDebugger_GetType): New interncall to get a class
21425         from its metadata token.
21426
21427         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
21428         New interncall for the debugger.
21429
21430 2002-09-24  Nick Drochak <ndrochak@gol.com>
21431
21432         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
21433         before using it in case it is null.
21434         
21435 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21436
21437         * metadata.c: allow custom modifiers in local var signatures
21438         (bug spotted by Zoltan Varga).
21439
21440 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21441
21442         * class.c: deal with the <Module> class that may have a NULL vtable.
21443         Eliminate warnings.
21444
21445 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21446
21447         * image.c, image.h: more strong name helpers.
21448         * monosn.c: more work: convert pem keys to cryptoapi format.
21449
21450 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
21451
21452         * string-icalls.c: speedup IndexOf.
21453
21454 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21455
21456         * icall.c: updates from Zoltan.2.Varga@nokia.com.
21457
21458 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21459
21460         * icall.c: cleanup: use mono_object_domain ().
21461
21462 2002-09-23  Martin Baulig  <martin@gnome.org>
21463
21464         * debug-mono-symfile.c: Improved type support.
21465
21466 2002-09-22  Martin Baulig  <martin@gnome.org>
21467
21468         * debug-mono-symfile.c: Added support for reference types and strings.
21469
21470 2002-09-22  Martin Baulig  <martin@gnome.org>
21471
21472         * debug-mono-symfile.c: Started to work on the type table.
21473
21474 2002-09-21  Martin Baulig  <martin@gnome.org>
21475
21476         * debug-mono-symfile.c: Largely reworked the symbol table format.
21477         The symbol table is now incrementally updated each time a new
21478         method is added.  We're now also using our own magic and version
21479         so that you don't need to recompile all your classes if the
21480         dynamic table changes.
21481         (mono_debug_update_mono_symbol_file): Removed.
21482         (mono_debug_symfile_add_method): New function to add a method.
21483
21484 2002-09-21  Martin Baulig  <martin@gnome.org>
21485
21486         * icall.c
21487         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
21488         New interncall.
21489
21490         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
21491         New interncall to get a method from its metadata token.
21492
21493 2002-09-21  Martin Baulig  <martin@gnome.org>
21494
21495         * debug-mono-symfile.c: Create type table.
21496
21497 2002-09-20  Martin Baulig  <martin@gnome.org>
21498
21499         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
21500
21501 2002-09-20  Martin Baulig  <martin@gnome.org>
21502
21503         * debug-mono-symfile.c: Provide information about params and locals.
21504
21505 2002-09-20  Martin Baulig  <martin@gnome.org>
21506
21507         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
21508         New interncall.
21509
21510         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
21511         interncall to get a method from its metadata token.
21512
21513 2002-09-20  Martin Baulig  <martin@gnome.org>
21514
21515         * debug-mono-symfile.c: Added a few checks for method->header
21516         being non-NULL.  This should never happen, but for the moment
21517         let's use a g_warning() rather than a g_assert().
21518
21519 2002-09-19  Mark Crichton  <crichton@gimp.org>
21520
21521         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
21522         even if support for it isn't present.  Added an #ifdef to fix this.
21523
21524         * socket-io.c: Added checks back for Solaris support.
21525
21526 2002-09-19  Martin Baulig  <martin@gnome.org>
21527
21528         * debug-mono-symfile.c (read_string, write_string): Reflect latest
21529         changes in the symbol file format.
21530
21531 2002-09-18  Martin Baulig  <martin@gnome.org>
21532
21533         * debug-mono-symfile.c: Set version number to 21.
21534
21535 2002-09-18  Dick Porter  <dick@ximian.com>
21536
21537         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
21538         on netbsd.  Fixes bug 30051.
21539
21540 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21541
21542         * reflection.c:
21543         (set_version_from_string): little fix.
21544
21545 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21546
21547         * monosn.c, Makefile.am: added strong name utility.
21548         * reflection.h, reflection.c: implemented delayed signing,
21549         locale, version and hash id assembly attributes.
21550
21551 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
21552
21553         * loader.c, metadata.c: load param attributes in signatures.
21554
21555 2002-09-16  Martin Baulig  <martin@gnome.org>
21556
21557         * debug-mono-symfile.c: Added string table with all method names.
21558
21559 2002-09-14  Martin Baulig  <martin@gnome.org>
21560
21561         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
21562         fast method lookup.
21563
21564 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21565
21566         * reflection.c: record the public key token of referenced assemblies.
21567
21568 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21569
21570         * image.c, image.h: added functions to get the strong name and the
21571         public key of an assembly.
21572         * pedump.c: use them.
21573
21574 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
21575
21576         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
21577
21578 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
21579
21580         * marshal.c (mono_marshal_get_managed_wrapper): Added
21581         MONO_TYPE_BOOLEAN 
21582
21583 2002-09-11  Martin Baulig  <martin@gnome.org>
21584
21585         * gc.c: Call GC_unregister_disappearing_link() on all links when
21586         finalizing them, this is necessary to aviod a crash in boehm's
21587         finalize handler.
21588
21589 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21590
21591         * gc.c: handle GetTarget for finalized objects spotted and fixed by
21592         nick@chemlab.org.
21593
21594 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
21595
21596         * icall.c: implemented MonoType::Module.
21597         * reflection.c, reflection.h: mono_module_get_object () from
21598         Tomi Pakarinen <tomi.pakarinen@welho.com>.
21599
21600 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21601
21602         * icall.c: ignore overridden methods in GetMethods ().
21603         Fix for FieldInfo::SetValue().
21604         * object.c: handle float/double in runtime invoke.
21605
21606 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21607
21608         * object.c: allow a constructor to be called again on an object.
21609
21610 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21611
21612         * class.h, class.c: move field layout code to it's own function and
21613         export it. Get an interface id earlier. Move fields in MonoClass
21614         so they are more cache friendly and align the bitfields.
21615         * loader.c: temporary handle get_param_names() for a runtime method.
21616         * reflection.c, reflection.h: more code to handle runtime creation of
21617         types.
21618
21619 2002-09-09  Martin Baulig  <martin@gnome.org>
21620
21621         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
21622         signature with the pinvoke field being set for the actual call.
21623
21624 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21625
21626         * icall.c: removed some unused icalls. Start of map of glib charsets
21627         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
21628
21629 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21630
21631         * debug-helpers.c: break infinite loop (found and fixed by
21632         Holger Arnold <harnold@gmx.de>).
21633
21634 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21635
21636         * icall.c: target may be null in create_delegate.
21637
21638 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21639
21640         * marshal.c: handle a boolean return type.
21641
21642 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21643
21644         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
21645
21646 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21647
21648         * gc.c: fix weakreferences.
21649
21650 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
21651
21652         * icall.c: added icall to get default codepage.
21653
21654 2002-09-03  Dick Porter  <dick@ximian.com>
21655
21656         * threads.h: 
21657         * threads.c: Use MonoThread instead of MonoObject where
21658         apropriate.
21659
21660         Store running thread objects in a hash table, so that we have all
21661         the info to hand when waiting for them to finish
21662         (means we don't need OpenThread() any more, so mingw builds should
21663         be fully functional again.)
21664
21665         * verify.c:
21666         * object.h: Added thread ID to MonoThread
21667
21668 2002-09-03  Martin Baulig  <martin@gnome.org>
21669
21670         * icall.c (System.Reflection.Assembly::get_location): New interncall.
21671
21672 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21673
21674         * icall.c: fixed leak in get_temp_path. Thanks lupus.
21675
21676 2002-09-03  Martin Baulig  <martin@gnome.org>
21677
21678         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
21679         argument to store the end address of the disassembled instruction.
21680
21681         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
21682         here from debug-symfile.h.
21683         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
21684         JIT into this struct.
21685         (MonoSymbolFile): Added `char *image_file' field.
21686         (MonoDebugGetMethodFunc): Removed.
21687         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
21688         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
21689         (mono_debug_find_method): New method.
21690
21691         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
21692         create a full symbol file.
21693         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
21694         and static symbol files.
21695         (mono_debug_find_method): The symbol file keeps an internal method hash,
21696         call this to get a MonoDebugMethodInfo from a MonoMethod.
21697
21698         * debug-symfile.[ch]: Removed.
21699
21700 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
21701
21702         * image.c (do_mono_image_open): Remove linker version check.
21703
21704 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
21705
21706         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
21707         wrappers for instance methods.
21708         
21709 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21710
21711         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
21712
21713 2002-08-28  Dick Porter  <dick@ximian.com>
21714
21715         * Makefile.am: Export HOST_CC for w32 builds
21716
21717 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21718
21719         * file-io.c process.c: MonoString are null terminated, no
21720         need for mono_string_to_utf16() anymore.
21721
21722 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21723
21724         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
21725
21726 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
21727
21728         * icall.c, reflection.h: speedup System.MonoType.
21729
21730 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21731
21732         * reflection.c: allow null as the value of a string argument in
21733         custom attributes constructors.
21734
21735 2002-08-27  Martin Baulig  <martin@gnome.org>
21736
21737         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
21738         `trampoline_address' field.
21739
21740 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
21741
21742         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
21743         check (fixes bug #29486) 
21744
21745 2002-08-27  Martin Baulig  <martin@gnome.org>
21746
21747         * debug-mono-symfile.c: Changed the file format in a way that allows us
21748         open it read-only and to use a specially malloced area for all the
21749         dynamic data.  We can now also generate a symbol file on-the-fly if we're
21750         debugging IL code and there is no MCS generated symbol file for it.
21751
21752 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21753
21754         * object.c: added a define for a good string and array
21755         creation speedup (not enabled by default because we need to deal with
21756         the synch stuff).
21757
21758 2002-08-26  Martin Baulig  <martin@gnome.org>
21759
21760         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
21761         function to create a dynamic symbol file.  This is used by the
21762         debugger to create a symbol file for IL code on-the-fly.
21763
21764 2002-08-26  Martin Baulig  <martin@gnome.org>
21765
21766         * loader.c (mono_lookup_pinvoke_call): Include the error message
21767         from g_module_error() in the error message.
21768
21769 2002-08-24  Martin Baulig  <martin@gnome.org>
21770
21771         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
21772         function to update the symbol file.  The symbol file is mmap()ed
21773         writable, but private.  This allows us to install the symbol file
21774         together with the assembly.
21775
21776 2002-08-24  Martin Baulig  <martin@gnome.org>
21777
21778         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
21779         but they can read the new symbol file format which mcs is now creating.
21780
21781         * debug-symfile.c (mono_debug_find_source_location): Moved to
21782         debug-mono-symfile.c; this is now operating on the new symbol file.
21783
21784 2002-08-23  Martin Baulig  <martin@gnome.org>
21785
21786         * debug-helpers.c (mono_method_desc_from_method): New function to get
21787         a MonoMethodDesc from a MonoMethod.
21788
21789 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21790
21791         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
21792         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
21793
21794 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
21795
21796         * string-icalls.[ch]: make helper methods static.
21797
21798 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21799
21800         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
21801         types to it and to SetValueInternal.
21802
21803         * object.c: Moved handle_enum label to its proper place. This was the
21804         f... bug! ;-)
21805
21806         This time i compiled mcs and gtk-sharp and they both work.
21807
21808 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21809
21810         * icall.c: reverted partially my previous patch until 
21811         object.c:set_value handles enums correcly.
21812
21813 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21814
21815         * icall.c:
21816         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
21817         (ves_icall_System_Environment_get_MachineName): removed warning when
21818         compiling under cygwin.
21819
21820 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21821
21822         * object.c: fixed field_get_value() for reference types.
21823
21824 2002-08-22  Dick Porter  <dick@ximian.com>
21825
21826         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
21827         Don't free a buffer while it's still needed.  Patch from Jonathan
21828         Liger <Jonathan.liger@wanadoo.fr>
21829
21830 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
21831
21832         * icall.c (ves_icall_System_Environment_get_Platform): Add new
21833         internal call.
21834
21835 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
21836
21837         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
21838         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
21839
21840         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
21841         we call unmanaged code which throws exceptions.
21842
21843 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21844
21845         * appdomain.h: added per-domain entry_assembly.
21846         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
21847         arguments.
21848         * icall.c: Assembly::GetEntryAssembly icall.
21849         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
21850         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
21851
21852 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21853
21854         * appdomain.h, gc.c: added mono_domain_finalize ().
21855
21856 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21857
21858         * object.c:
21859         (mono_print_unhandled_exception): changed g_warning by g_printerr
21860         because g_log has a 1024 characters limit (yeah, i got a big stack
21861         trace). Don't print exception name, that should be in ToString 
21862         returned string.
21863
21864 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21865
21866         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
21867         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
21868
21869 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21870
21871         * object.c:
21872         (mono_print_unhandled_exception): after previous commit, i realized
21873         that MS calls ToString on the exception. I changed this function to
21874         do that. This way we get stack_trace for free.
21875
21876 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21877
21878         * object.c:
21879         (mono_print_unhandled_exception): invoke Message property instead of
21880         getting 'message' field from Exception. Don't allocate memory for
21881         'trace' and 'message' if not needed.
21882
21883 2002-08-18  Dick Porter  <dick@ximian.com>
21884
21885         * unicode.c: Fix asserts to match Encoder.cs checks
21886
21887 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21888
21889         * marshal.c: fix unaligned store issue and a few wrong
21890         opcode argument types.
21891
21892 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21893
21894         * icall.c: added GetUninitializedObjectInternal internal call.
21895
21896 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
21897
21898         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
21899         to the right domain.
21900
21901 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
21902
21903         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
21904
21905         * class.c (class_compute_field_layout): set blittable to false for Strings
21906
21907         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
21908
21909 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21910
21911         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
21912         first chunk of code to create types at runtime. Code to
21913         handle ReflectedType/DeclaringType. Make reflection handles
21914         domain specific.
21915
21916 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
21917
21918         * class.c: set correct name in arrays.
21919
21920 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
21921
21922         * appdomain.c (mono_domain_transfer_object): make it work with
21923         valuetypes. bug fixes.
21924
21925 2002-08-12  Dick Porter  <dick@ximian.com>
21926
21927         * object.h: Rename some parameters to avoid c++ keywords (Patch
21928         from Joseph Wenninger <kde@jowenn.at>)
21929
21930 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
21931
21932         * icall.c: added icall to implement Assembly.GetFile*.
21933
21934 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21935
21936         * reflection.h, reflection.c: code to embed managed resources.
21937
21938 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21939
21940         * class.c: move all the type size stuff into
21941         class_compute_field_layout().
21942
21943 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21944
21945         * class.c: ensure enums have always the correct instance size.
21946         * unicode.c: remove wrong assert.
21947
21948 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21949
21950         * assembly.c: fix mem corruption issue.
21951         * image.h, image.c: added mono_image_get_resource () to access
21952         managed resources.
21953         * icall.c: implemented Assembly.EntryPoint property and some
21954         Managed Resources related internalcalls.
21955
21956
21957 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21958
21959         * image.c, image.h: impemented mono_image_get_entry_point ().
21960         * appdomain.c: use mono_image_get_entry_point.
21961
21962 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21963
21964         * reflection.c: support the object type argument when loading
21965         custom attributes.
21966
21967 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
21968
21969         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
21970         String as return type.
21971
21972 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
21973
21974         * reflection.c: fix encoding of named args for custom attrs to match
21975         the ms implementation. Read them back when instantiating custom
21976         attributes.
21977
21978 2002-08-02  Radek Doulik  <rodo@ximian.com>
21979
21980         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
21981         by Dietmar as quick fix
21982         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
21983         16 as stack size, used on more places as quick fix before Dietmar
21984         will fix it properly
21985
21986 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21987
21988         * object.h, object.c: added accessors for fields and properties.
21989
21990 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21991
21992         * class.c, class.h: made mono_class_get_field_from_name ()
21993         loop on parent types.
21994         Added mono_class_get_property_from_name ().
21995
21996 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21997
21998         * class.c, class.h: move the code to setup the type vtable in its own
21999         function so that it can be reused also for types created at runtime.
22000         Eliminate the "class" identifier from the header file.
22001         * reflection.c: setup the vtable for enums so that we can create
22002         objects for use in SetConstant ().
22003
22004 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
22005
22006         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
22007         instead of the delegate itself as this pointer (bug #28383)
22008
22009 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
22010
22011         * marshal.c (mono_marshal_get_managed_wrapper): added return type
22012         conversions.
22013
22014 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22015
22016         * loader.c: don't set the pinvoke bit on icalls.
22017
22018 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
22019
22020         * debug-helpers.c (mono_method_full_name): only print a number to
22021         indicate wrapper type (so that the output is more readable in traces).
22022
22023 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
22024
22025         * class.c (mono_class_init): include method override patch from Paolo
22026
22027 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
22028
22029         * icall.c: fixed GetTypeCode().
22030
22031 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
22032
22033         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
22034         use real delegate invoke function to make it work with multicast
22035         delegates (fix bug# 28291).
22036
22037 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22038
22039         * object.c: load constant strings.
22040
22041 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22042
22043         * reflection.c: no magic numbers.
22044         * tabledefs.h: security action enum.
22045
22046 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22047
22048         * assembly.c: fix possible memory corruption.
22049
22050 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22051
22052         * reflection.h, reflection.c: added support for linking resources.
22053         * verify.c: check we have an updated corlib.
22054
22055 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
22056
22057         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
22058         string arrays.
22059         (mono_marshal_string_array): null terminate unmanaged string arrays.
22060         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
22061
22062 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22063
22064         * icall.c: Type.GetType () can now return also types from the
22065         calling assembly.
22066
22067 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22068
22069         * loader.h, loader.c: stack walking support.
22070         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
22071         GetCallingAssembly.
22072
22073 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
22074
22075         * marshal.c: added optimisations for blittable types 
22076
22077         * class.c (mono_array_class_get): do not set blittable attribute on arrays
22078         (mono_class_setup_mono_type): set blittable attribute for single
22079         and double.
22080
22081         * marshal.c (mono_string_utf8_to_builder): impl.
22082         (mono_string_builder_to_utf8): impl.
22083         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
22084
22085 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
22086
22087         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
22088         (mono_marshal_get_managed_wrapper): impl. byref types
22089
22090 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22091
22092         * icall.c:
22093         (search_method): don't display debug message. 
22094
22095 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
22096
22097         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
22098
22099 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22100
22101         * appdomain.c: set the missing filename when throwing exception.
22102
22103 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
22104
22105         * metadata.c (mono_type_size): code cleanup
22106         (mono_type_stack_size): removed some test code
22107
22108 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
22109
22110         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
22111         mono_get_exception_file_not_found now.
22112
22113         * exception.c (mono_exception_from_name_two_strings): New version
22114         that will call a constructor with two string arguments. 
22115         (mono_get_exception_file_not_found): New helper routine, used to
22116         report file-not-found errors.
22117
22118 2002-07-20  Dick Porter  <dick@ximian.com>
22119
22120         * process.h:
22121         * process.c: Pass file handles to CreateProcess
22122         
22123         * icall.c:
22124         * file-io.h:
22125         * file-io.c: Implemented CreatePipe
22126
22127 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
22128
22129         * metadata.c (mono_get_param_info): set alignment for value types
22130
22131 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22132
22133         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
22134         Constify mono_domain_assembly_open().
22135         * loader.c: handle null namespace in icalls.
22136
22137 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
22138
22139         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
22140         (emit_str_to_ptr_conv): marshal object as structs
22141
22142         * metadata.c (mono_type_to_unmanaged): marshal object as structs
22143
22144         * marshal.c (mono_marshal_get_runtime_invoke): support value types
22145
22146 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
22147
22148         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
22149         (mono_marshal_get_native_wrapper): we an now return value types
22150
22151 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22152
22153         * verify.c: more checks implemented.
22154
22155 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
22156
22157         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
22158         (fix bug #27695)
22159         (mono_marshal_get_native_wrapper): allow byref arguments
22160         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
22161         impl. PtrToStringXXX methods
22162         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
22163         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
22164         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
22165         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
22166         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
22167
22168 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22169
22170         * reflection.c: fix buglet in parsing an assembly name.
22171
22172 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
22173
22174         * marshal.c (emit_ptr_to_str_conv): first impl.
22175
22176 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22177
22178         * object.c, class.h: cache the vtable in the class as suggested by
22179         vargaz@freemail.hu (Zoltan Varga).
22180
22181 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22182
22183         * class.h, loader.c: added mono_field_from_token().
22184         * verify.c: first cut of type checking code.
22185
22186 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
22187
22188         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
22189
22190 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
22191
22192         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
22193         (fix bug #27782)
22194         (mono_marshal_get_remoting_invoke): impl.
22195         (mono_delegate_begin_invoke): impl.
22196         (mono_mb_emit_save_args): impl.
22197         (mono_delegate_end_invoke): impl.
22198         (mono_marshal_get_delegate_begin_invoke):
22199         (mono_marshal_get_delegate_end_invoke):
22200         (mono_marshal_get_delegate_invoke): generate a special name for
22201         those methods (including the signature) and associate them whith
22202         the delegate class. 
22203
22204 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
22205
22206         * reflection.[ch]: 
22207         (mono_reflection_type_from_name): now it has a MonoImage parameter
22208         which is used as the default image to search the type in. If the image
22209         is NULL or getting the type from it fails, it defaults to corlib.
22210
22211         * icall.c: changed 1 call to mono_reflection_type_from_name to match
22212         new parameter.
22213
22214 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22215
22216         * reflection.c: update the parameter table index.
22217
22218 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22219
22220         * domain.c: don't include the mark byte in the string hash.
22221
22222 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22223
22224         * icall.cs: icall for Type.GetTypeCode ().
22225         * verify: a couple of fixes and disabled local initialization checks.
22226
22227 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
22228
22229         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
22230
22231         * debug-helpers.c (mono_method_full_name): print the type of the
22232         runtime wrapper
22233
22234         * metadata.c (mono_signature_hash): a hash function for signatures
22235         (mono_signature_hash): better hash algorithm
22236
22237         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
22238
22239         * debug-helpers.c (mono_method_full_name): this can now generate
22240         method names with signatures
22241
22242         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
22243         method dont have this pointers.
22244
22245 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22246
22247         * reflection.c: fixup typebuilder tokens.
22248         * image.c: fix buglet.
22249         * marshal.h: remove whitespace.
22250         * metadata.h, metadata.c: reinstate code that was removed.
22251         * verify.c: handle catch directives and fix another couple of bugs.
22252
22253 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
22254
22255         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
22256         (mono_marshal_get_native_wrapper): make it comp. with the old code
22257         (mono_marshal_get_native_wrapper): support boolean
22258         (mono_marshal_get_managed_wrapper): support more types
22259
22260 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
22261
22262         * class.c (class_compute_field_layout): compute class->blittable attribute.
22263
22264 2002-07-09  Dick Porter  <dick@ximian.com>
22265
22266         * threads.c: Make the thread cleaning up cope with threads that
22267         call ExitThread()
22268
22269 2002-07-08  Radek Doulik  <rodo@ximian.com>
22270
22271         * reflection.c (method_encode_code): use non-translated values to
22272         compute finally_start, this fixes exception handling on ppc, yay!
22273
22274         * decimal.h (struct signscale): fix endianess
22275
22276 2002-07-07  Radek Doulik  <rodo@ximian.com>
22277
22278         * reflection.c: swap box_val and not val
22279
22280 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22281
22282         * reflection.c, reflection.h: handle full assembly info in type name.
22283         Handle Type arguments when loading custom attributes.
22284         * icall.c: updated to use new mono_reflection_type_from_name () method.
22285
22286 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22287
22288         * loader.c:
22289         (method_from_memberref): also print assembly name when method not found.
22290
22291 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22292
22293         * icall.c:
22294         (ves_icall_TypeGetProperties): fixed bug #27473. 
22295
22296 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22297
22298         * reflection.c: display image name and token when cannot find the
22299         .ctor for an attribute.
22300
22301 2002-07-05  Martin Baulig  <martin@gnome.org>
22302
22303         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
22304
22305 2002-07-04  Dick Porter  <dick@ximian.com>
22306
22307         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
22308         compile on mingw.  This will cause mingw builds to not wait for
22309         subthreads to terminate after the main thread does.  I've lodged a
22310         bug with the mingw developers for them to wrap OpenThread().
22311
22312 2002-07-03  Dick Porter  <dick@ximian.com>
22313
22314         * threads.c: Store thread IDs instead of handles, because
22315         GetCurrentThread() returns a pseudohandle and therefore stores
22316         useless values.  mono_thread_cleanup() continues checking the
22317         array of threads until it is empty, to cope with subthreads
22318         spawning new threads after the main thread has finished.
22319
22320         * profiler.h:
22321         * profiler.c:
22322         * profiler-private.h: Pass the thread ID to thread profiler
22323         functions, instead of a handle
22324
22325 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22326
22327         * verify.c: fixes to make it more usable.
22328         * pedump.c: added --verify code to verify IL code in an assembly.
22329
22330 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22331
22332         * reflection.c: turn errors into warnings to allow compiling corlib.
22333
22334 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
22335
22336         * reflection.c: add special cases to compile corlib.
22337
22338 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22339
22340         * reflection.c: handle properties with only a set method.
22341
22342 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22343
22344         * opcodes.h: add enum with opcodes in opval order.
22345
22346 2002-07-01  Dick Porter  <dick@ximian.com>
22347         
22348         * object.h:
22349         * object.c (mono_runtime_run_main): Removed unneeded argument
22350
22351 2002-06-28  Martin Baulig  <martin@gnome.org>
22352
22353         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
22354
22355 2002-06-27  Dick Porter  <dick@ximian.com>
22356
22357         * threads.c: Store the handle in both the parent thread and in the
22358         subthread, to minimise the time between starting a new thread and
22359         storing its ID.
22360
22361 2002-06-26  Dick Porter  <dick@ximian.com>
22362
22363         * appdomain.c (mono_runtime_cleanup): Close the socket library
22364         after all the threads have finished, not before
22365
22366 2002-06-26  Martin Baulig  <martin@gnome.org>
22367
22368         * debug-symfile.c (mono_debug_find_source_location): Added
22369         `guint32 *line_number' argument.  If it's not NULL, store the line number
22370         there and return the file name without the line number.
22371
22372 2002-06-25  Dick Porter  <dick@ximian.com>
22373
22374         * icall.c:
22375         * process.h:
22376         * process.c: Process forking and other support functions
22377
22378 2002-06-25  Dick Porter  <dick@ximian.com>
22379
22380         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
22381         things dont happen when the image is closed.
22382         (mono_image_lookup_resource): Walk the resource section looking
22383         for a particular entry
22384
22385         * cil-coff.h: PE resource section decoding
22386
22387 2002-06-25  Dick Porter  <dick@ximian.com>
22388         
22389         * assembly.h:
22390         * assembly.c: 
22391         (mono_assembly_foreach): Accessor functions to walk the list of
22392         loaded assemblies
22393         (mono_assembly_set_main):
22394         (mono_assembly_get_main): Process methods need to know which
22395         assembly is the "main" one
22396
22397         * object.c (mono_runtime_run_main): Record the main assembly
22398
22399         * debug-helpers.c: Fix typo
22400
22401 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
22402
22403         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
22404         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
22405
22406 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22407
22408         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
22409
22410 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
22411
22412         * image.c (do_mono_image_open): Initialize reference count,
22413         otherwise we leak the MonoImage.
22414
22415 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22416
22417         * reflection.c: small tweak to handle self-hosting.
22418
22419 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22420
22421         * reflection.c: fix type name parse code.
22422
22423 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22424
22425         * reflection.c: break out of the loop.
22426         * image.c: special case corlib.
22427
22428 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22429
22430         * reflection.c: add all the custom attrs at the end to ensure the
22431         ctors have been properly initialized when the attributes are defined
22432         in the current assembly.
22433
22434 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22435
22436         * reflection.c: handle correctly multiple-nested types.
22437
22438 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
22439
22440         * row-indexes.h: fix typos.
22441         * reflection.c: adjust for typos and fix method_def_or_ref
22442         encoding in MethodImpl table.
22443
22444 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22445
22446         * reflection.c: fix entry point patching (thanks Serge!).
22447
22448 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
22449
22450         * verify.c: add check for System.Exception
22451
22452 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22453
22454         * image.c, class.c: minifix for code just c&p'ed.
22455         * reflection.c: warning fix.
22456         * object.h, loader.h, domain.c: load also StringBuilder.
22457
22458 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22459
22460         * marshal.h, marshal.c: some support code to handle complex marshaling.
22461
22462 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22463
22464         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
22465         Better signatures with vtable error dump.
22466
22467 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
22468
22469         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
22470
22471 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
22472
22473         * icall.c (ves_icall_Type_GetField): impl.
22474
22475 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22476
22477         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
22478         to retrieve a marshal description blob for a field or param.
22479
22480 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22481
22482         * reflection.h, reflection.c: change order of nested type emission
22483         to avoid table corruption. The NestedTypes table is sorted.
22484         * icall.c: change order of GetConstructor results to workaround mcs bug.
22485
22486 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22487
22488         * reflection.h, reflection.c: handle field and param marshal
22489         information.
22490
22491 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22492
22493         * icall.c, marshal.c marshal.h: more Marshal class implementation.
22494
22495 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22496
22497         * reflection.c: fix call convention.
22498
22499 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22500
22501         * reflection.h, reflection.c: mono_image_get_memberref_token()
22502         takes a type instead of a class, now. Added
22503         mono_image_get_array_token() to create tokens for the special
22504         multi-dim array methods.
22505
22506 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22507
22508         * assembly.c: handle modules (no assembly table). Split
22509         loading references in its own function.
22510         * class.c: handle moduleref resolution scope.
22511         * image.c, image.h: cache module name in image.
22512
22513 2002-06-07  Martin Baulig  <martin@gnome.org>
22514
22515         * reflection.c (mono_image_get_type_info): Only add a class layout entry
22516         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
22517
22518 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22519
22520         * icall.c: more signature fixes that used uint instead of int.
22521
22522 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22523
22524         * reflection.c: fixed signature of field refs.
22525
22526 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22527
22528         * class.c, reflection.c: handle typerefs of nested types
22529         (both on read and when writing files).
22530
22531 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
22532
22533         * icall.c: fix method signatures that tried to workaround the previous
22534         typo, d'oh!
22535
22536 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22537
22538         * debug-helpers.c: fix typo.
22539
22540 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22541
22542         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
22543         rewrote the PE/COFF writing code (our programs are understood by the
22544         ms runtime, now).
22545
22546 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22547
22548         * gc.c, gc.h, icall.c: weakreference support.
22549
22550 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22551
22552         * Makefile.am, mono-config.c: use $(sysconfdir).
22553
22554 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22555
22556         * icall.c: changed default precision of Double.ToString() to 15.
22557         Fixed memory leak. Unified with Single.ToString.
22558
22559 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
22560
22561         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
22562
22563 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22564
22565         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
22566         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
22567         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
22568         and myself.
22569
22570 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22571
22572         * debug-symfile.c, sysmath.c: yet more compilation fixes.
22573
22574 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22575
22576         * reflection.c, socket-io.c: more compilation fixes.
22577
22578 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22579
22580         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
22581         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
22582         unicode.c: warning and compiler compatibility fixes.
22583
22584 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22585
22586         * class.h, metadata.c: fixed warnings/compilation errors.
22587
22588 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22589
22590         * Makefile.am, mono-config.c, mono-config.h: configuration file
22591         support routines.
22592         * loader.c, loader.h: make Dll mapping configurable at runtime in the
22593         config file. Export methods to insert and lookup mappings.
22594
22595 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22596
22597         * reflection.c: handle types and boxed objects in custom attr
22598         constructors.
22599
22600 2002-05-30  Martin Baulig  <martin@gnome.org>
22601
22602         * debug-symfile.c
22603         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
22604
22605 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
22606
22607         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
22608         to lookup the implmap row for a P/Invoke method.
22609         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
22610         P/Invoke method from the runtime on an as needed basis.
22611
22612 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
22613
22614         * metadata.c (mono_metadata_parse_signature): impl.
22615
22616 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22617
22618         * class.c: handle .pack directive.
22619
22620 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22621
22622         * object.c: initialize static fields with RVA data.
22623
22624 2002-05-25  Martin Baulig  <martin@gnome.org>
22625
22626         * debug-symfile.c
22627         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
22628
22629 2002-05-24  Martin Baulig  <martin@gnome.org>
22630
22631         * debug-symfile.c
22632         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
22633         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
22634         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
22635
22636 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22637
22638         * object.c: special case string ctros in invoke.
22639         * gc.c: silly whitespace changes.
22640
22641 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
22642
22643         * threadpool.[ch]: impl. a threadpool that can
22644         be used by mint and mono.
22645
22646 2002-05-22  Martin Baulig  <martin@gnome.org>
22647
22648         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
22649         The first argument is now a `MonoReflectionModuleBuilder *', the return
22650         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
22651         `methods' field to get the method builder.  The `token' argument is the
22652         unfixed token.
22653
22654         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
22655         invalid characters instead of g_assert_not_reached()ing.  This seems
22656         to be the behaviour of mscorlib.
22657
22658 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
22659
22660         * object.c (mono_runtime_invoke_array): applied patch from Rachel
22661         Hestilow to fix bug #25104
22662
22663 2002-05-21  Martin Baulig  <martin@gnome.org>
22664
22665         * debug-symfile.c (mono_debug_find_source_location): New function.
22666         Looks up an IL offset in the line number table and returns the source
22667         location as a string.
22668
22669 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22670
22671         * icall.c:
22672         (mono_double_ToStringImpl): changed %f by %g until we have something
22673         better.
22674
22675 2002-05-21  Nick Drochak  <ndrochak@gol.com>
22676
22677         * icall.c : Use different name for Math.Pow's icall.  Needed to check
22678         parameters first in C#.
22679
22680 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22681
22682         * icall.c, reflection.h: added icall to get info about an event.
22683
22684 2002-05-20  Radek Doulik  <rodo@ximian.com>
22685
22686         * object.c (mono_value_box): don't use memcpy for boxing on BIG
22687         endian
22688         (mono_value_box): don't use memcpy for small sizes on
22689         architectures with unaligned access
22690
22691 2002-05-20  Martin Baulig  <martin@gnome.org>
22692
22693         * reflection.c (mono_reflection_setup_internal_class): Don't crash
22694         if `tb->parent == NULL'.
22695         (mono_reflection_create_internal_class): New function.  This is
22696         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
22697         for enum types.
22698
22699         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
22700         New interncall.
22701
22702 2002-05-19  Martin Baulig  <martin@gnome.org>
22703
22704         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
22705         argument to get the length, don't default to the array length.
22706
22707 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
22708
22709         * assembly.c (mono_assembly_setrootdir): New function used to
22710         override the MONO_ASSEMBLIES directory.
22711
22712 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22713
22714         * icall.c: ValueType_GetHashCode() initialize local var.
22715
22716 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22717
22718         * reflection.c: sort custom attributes table.
22719
22720 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22721
22722         * reflection.c: support named args in custom attributes (write support).
22723
22724 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22725
22726         * reflection.c: fix finally position calculation.
22727
22728 2002-05-15  Radek Doulik  <rodo@ximian.com>
22729
22730         * reflection.c: fixed endianess at many places
22731
22732         * icall.c (ves_icall_InitializeArray): comment out debug msg
22733
22734 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
22735
22736         * object.c (mono_unhandled_exception): new function to handle
22737         unhandled exceptions.
22738         (mono_unhandled_exception): call the UnhandledException event.
22739         (mono_runtime_delegate_invoke): impl.
22740
22741 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
22742
22743         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
22744         returns the RVA, not the direct pointer to the data. Handle the case
22745         when the class size is fixed.
22746
22747 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22748
22749         * reflection.c: fix some endianess issues.
22750
22751 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
22752
22753         * object.c (mono_runtime_invoke): is now able to catch exceptions.
22754
22755         * threads.c (mono_thread_init): added a callback which is invoked
22756         at thread start.
22757
22758 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
22759         
22760         * icall.c: make GetHashCode return non-negative values.
22761
22762 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
22763
22764         * object.c, icall.c, gc.c: revert to address-based hashcode.
22765
22766 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
22767
22768         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
22769
22770 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22771
22772         * icall.c, class.c: special case <Module>.
22773
22774 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
22775
22776         * icall.c: fix bug in GetNow().
22777
22778 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
22779
22780         * object.c (mono_runtime_class_init): make sure that we call all
22781         static class constructors.
22782
22783 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22784
22785         * reflection.c: sort methodsemantics table.
22786
22787 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22788
22789         * reflection.h, reflection.c: honour init locals setting.
22790
22791 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
22792
22793         * icall.c: copied Double ToStringImpl for Single ToStringImpl
22794
22795 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22796
22797         * reflection.c: support ContructorBuilders in attribute blob creation.
22798
22799 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22800
22801         * reflection.c: some changes to build a binary that can be run
22802         directly in windows.
22803
22804 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
22805
22806         * loader.c: print a big message when an icall can't be found.
22807
22808 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22809
22810         * string-icalls.c: fix bug 24248.
22811
22812 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
22813
22814         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
22815         icall.c, reflection.h: separate assembly loading by pathname and by
22816         assembly name. Use the MONO_PATH env var to search for assemblies.
22817
22818 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22819
22820         * assembly.c, image.h: add some support for assemblies
22821         with multiple modules.
22822         * class.c, class.h: export mono_class_from_typeref().
22823         * loader.c: remove duplicated code and use mono_class_from_typeref(),
22824         instead.
22825
22826 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22827
22828         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
22829         documentation says (the ECMA one is correct).
22830
22831 2002-05-02  Dick Porter  <dick@ximian.com>
22832
22833         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
22834         Don't name the synchronisation mutex.
22835
22836 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
22837
22838         * rand.c
22839         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
22840         Make the prototypes match.
22841         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
22842         Same.
22843
22844         * icall.c
22845         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
22846         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
22847         all systems have tm.tm_zone, so use strftime() with %Z to print
22848         the timezone abreviation into a temp string.
22849
22850         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
22851         rather than mono_array_addr() on a MonoString on Big Endian
22852         machines.
22853
22854 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
22855
22856         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
22857         fix bug 24041
22858
22859 2002-04-30  Dick Porter  <dick@ximian.com>
22860
22861         * socket-io.c: Cope with SOCKET being an integer rather than a
22862         pointer now.
22863
22864         * threads.c: Added Thread_free_internal, to deal with thread
22865         handle cleanup.  Moved calls to handle_store() and handle_remove()
22866         to start_wrapper(), so each can only be called once.  Allocate
22867         synchronisation blocks with GC_malloc(), and use GC finalisation
22868         to close the handles.
22869
22870         * icall.c: added System.Threading.Thread::Thread_free_internal
22871
22872 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22873
22874         * icall.c: support Environment.Exit, CommandLineArgs().
22875
22876 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22877
22878         * object.c, object.h: added mono_runtime_run_main () and
22879         mono_runtime_get_main_args () for use in System.Environment.
22880
22881 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22882
22883         * gc.c: fix thinko, enable actual finalization since the jit is now
22884         fixed.
22885
22886 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22887
22888         * gc.c, object.c: take into account that an object may be offset wrt the address
22889         returned by GC_malloc().
22890
22891 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
22892
22893         * image.c: handle files without entries in the assembly table (modules).
22894
22895 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
22896
22897         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
22898         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
22899         allowed to be null when it's System.Object class setup.
22900
22901 2002-04-27  Martin Baulig  <martin@gnome.org>
22902
22903         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
22904         if `tb->parent == NULL' rather than crashing.
22905
22906 2002-04-28  Nick Drochak  <ndrochak@gol.com>
22907
22908         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
22909         calling acos() where asin() should have been called.
22910
22911 2002-04-26  Martin Baulig  <martin@gnome.org>
22912
22913         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
22914         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
22915         there's a subdirectory called `System', but we don't want to read that
22916         subdirectory as an assembly.
22917
22918 2002-04-25  Martin Baulig  <martin@gnome.org>
22919
22920         * debug-symfile.c: Reflect latest MonoString changes.
22921
22922 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22923
22924         * rand.c, rand.h: instance method icalls need to have an explicit
22925         this pointer as first argument in the C implementation.
22926
22927 2002-04-25  Nick Drochak <ndrochak@gol.com>
22928
22929         * icall.c: Fix typo in map for GetNonZeroBytes
22930
22931 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22932
22933         * string-icalls.c : String does now passes unit tests without any 
22934         errors, the following changes has been made:
22935         
22936         Implemented replace methods.
22937         Renaming of methods to (try) follow the standard.
22938         Fixed compare ordinal
22939         Made all memory allocated directly to function instead of via icall function.
22940         Small performance fix in is_in_array function
22941                         
22942  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
22943
22944         c (mono_string_Internal_ctor_charp_int_int):
22945         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
22946         sindex < 0, throw ArgumentOutOfRangeException instead of
22947         ArgumentNullException.
22948
22949         Added new check for length == 0, however
22950         I need to make it return String.Empty from the C code.
22951         
22952         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
22953         that calculate the length for us here.
22954         
22955         (mono_string_Internal_ctor_sbytep_int_int): Replaced
22956         mono_string_new_utf16 with mono_string_new, since value is utf8.
22957
22958 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22959
22960         * object.c: register the object for finalization if needed.
22961         Allocate one more char in the string for the terminating 0 char.
22962
22963 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22964
22965         * class.c, class.h, image.c: check if a type implemenst a destructor.
22966         Use the proper key for array class lookups.
22967         * icall.c: register the icalls in the System.GC class.
22968         * gc.c, gc.h: GC-related functions and icalls.
22969
22970 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22971
22972         * icall.c:
22973         * socket-io.c:
22974         * unicode.c: free some strings gotten from mono_string_to_utf8 and
22975         changed a couple of free () by g_free ().
22976
22977         * decimal.c: one-liner in the comments for decimal2string ().
22978
22979 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22980
22981         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
22982
22983 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22984
22985         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
22986         * object.c (mono_runtime_invoke_array) : handle null in params
22987
22988 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22989
22990         * string-icalls.c: fixed bug in split (one off bug)
22991
22992 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22993
22994         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
22995         * icalls.c: added String::Equals as internal method
22996
22997 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22998
22999         * threads.c: fixed bug in the double interlocked functions
23000
23001 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
23002
23003         * threads.c: implemented all of the new interlocked icalls.
23004         * string-icalls.c: fix a bug in insert.
23005         * icalls.c: added the icalls for interlocked, removed old string functions.
23006         
23007 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23008
23009         * loader.c: fix off-by-one error when reading argument names.
23010
23011 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23012
23013         * profiler.c: win32 counter implementation (untested).
23014         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
23015         (the latter needs testing and more complete impl. from win32 folks).
23016
23017 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
23018
23019         * object.c: mono_array_new_full workaround mono_array_class_get
23020         problem.
23021
23022 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23023
23024         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
23025         * object.h (mono_string_chars): Changed casting type.
23026
23027 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23028
23029         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
23030                            method signatures to use gunichar2 instead of gint16.
23031
23032 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
23033
23034         * object.h, object.c: domain-specific versions of mono_object_new and
23035         mono_array_new.
23036
23037 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
23038
23039         * object.c: changed String layout
23040
23041         * string-icalls.c (mono_string_Internal_ctor_chara): added
23042         internal string constructors.
23043
23044 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
23045
23046         * threads.c: pass 'this' to the thread start routine.
23047
23048 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23049
23050         * string-icalls.c: fix IndexOf and LastIndexOf. Now
23051         InternalCompareStr don't call twice mono_string_cmp_char for the last
23052         character. Improved performance in mono_string_cmp_char.
23053
23054 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23055
23056         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
23057         code into its own library: libmonoruntime.
23058
23059 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
23060
23061         * object.h, object.c: changed array format so that szarrays do not
23062         require a bounds structure.
23063         * icall.c, appdomain.c: support for new szarray format.
23064
23065 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
23066
23067         * metadata.c: compare also the retuns type when comparing signatures:
23068         we didn't do this as an optimization since really overloaded methods
23069         must differ also in the arguments, but this doesn't work with
23070         low-level IL code (or when using explicit conversion operators: see
23071         bug#23498 for an example).
23072
23073 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23074
23075         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
23076
23077 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23078
23079         * icall.c: make MonoType::GetElementType its own icall.
23080
23081 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23082
23083         * icall.c: remove MonoMethod_get_Name().
23084         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
23085         object.
23086
23087 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23088
23089         * string-icalls.c: optimized a few methods.
23090
23091 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23092
23093         * icall.c: added all new string internal calls
23094         * string-icalls.c: added, new string internal call implementation.
23095         * object.c: added mono_string_new_size for allocating a string a size
23096
23097 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
23098
23099         * object.c (mono_object_isinst): use the same code as in the
23100         optimized x86 version.
23101
23102 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23103
23104         * profiler.c: TSC-based timer code (faster and more accurate).
23105         Not hooked up in configure, yet (set USE_X86TSC to 1).
23106
23107 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
23108
23109         * profiler.c, profiler.h: track time spent compiling methods.
23110         * threads.c: track thread creation/destruction.
23111
23112 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
23113
23114         * profiler.c, profiler.h, profiler-private.h: profiling interface
23115         and sample implementation. Moved here so that it can be used also by
23116         the jit.
23117
23118 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
23119
23120         * reflection.c, reflection.h: keep types and other handles separate in
23121         the hash tables for referred tokens. Add guid for modules.
23122
23123 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
23124
23125         * assembly.c: fix bugs found with valgrind.
23126         * metadata.h, metadata.c: added mono_metadata_guid_heap().
23127
23128 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
23129
23130         * threads: added icall support for getting current domain for
23131                    the thread.
23132  
23133 2002-04-13  Martin Baulig  <martin@gnome.org>
23134
23135         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
23136         (MonoDebugVarInfo): Added `index' field for register based addresses.
23137         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
23138         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
23139         `MonoDebugVarInfo *params' and `guint32 this_offset' with
23140         `MonoDebugVarInfo *this_var'.
23141
23142         * debug-symfile.c (relocate_variable): New static function to write
23143         a location description for a local variable or method parameter.
23144
23145 2002-04-12  Martin Baulig  <martin@gnome.org>
23146
23147         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
23148         stack offset and begin/end scope address of a local variable.
23149         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
23150         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
23151         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
23152
23153         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
23154         Added new relocation types for start/end scope of a local variable.
23155
23156 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23157
23158         * object.h: add mono_object_domain() macro.
23159         * reflection.c: handle typespecs.
23160         * icall.c: MonoMethod::get_Name() implementation.
23161
23162 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23163
23164         * icall.c: String::GetHashCode() icall implementation.
23165
23166 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23167
23168         * icall.c: String::IndexOfAny icall.
23169         * object.c, object.h: make array->max_length more useful.
23170         Intrduced mono_object_class() and mono_string_length() macros.
23171
23172 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23173
23174         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
23175         instead of g_unichar_isdigit.
23176
23177 2002-04-11  Nick Drochak  <ndrochak@gol.com>
23178
23179         * icall.c: Implement a simple Double.ToString().
23180
23181 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23182
23183         * appdomain.h: only io-layer.h is supposed to be included.
23184         * icall.c: explicitly import environ. Fix warning.
23185
23186 2002-04-10  Nick Drochak  <ndrochak@gol.com>
23187
23188         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
23189                 return true even if it's not Daylight Savings time.
23190                 Only return false for the case where the function isn't
23191                 implemented for a plaform (read Windows).
23192
23193 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23194
23195         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
23196         data with a mutex.
23197
23198 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
23199
23200         * mempool.c (mono_mempool_alloc): only use g_malloc when
23201         absolutely necessary.
23202
23203 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
23204
23205         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
23206
23207         * class.c (mono_class_vtable): use domain mempool to allocate vtable
23208         (mono_class_proxy_vtable): use domain mempool
23209
23210 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23211
23212         * appdomain.h, appdomain.c: split initialization that requires the
23213         execution engine support into mono_runtime_init().
23214
23215 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
23216
23217         * class.c (mono_class_init): don't include vtable inside MonoClass
23218         to save some memory, gather some statistics.
23219         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
23220
23221 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23222
23223         * icall.c: internalcall implementation for ValueType.Equals().
23224
23225 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
23226
23227         * object.c (mono_message_init): moved 
23228         (mono_runtime_exec_main): new arch. independent impl.
23229         (mono_runtime_invoke_array): new method - like
23230         mono_runtime_invoke, but you can pass an array of objects.
23231         (mono_remoting_invoke): new arch. independent impl.
23232         (mono_message_invoke): new arch. independent impl.
23233         (mono_runtime_class_init): new arch. independent impl.
23234         (mono_runtime_object_init): new arch. independent impl.
23235
23236 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23237
23238         * metadata.c, object.c, reflection.c: documented the exported
23239         functions.
23240
23241 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
23242
23243         * icall.c: simpler code to pass the assembly builder data to corlib.
23244         Implement GetNestedTypes() internalcall.
23245
23246 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23247
23248         * class.c: warn if a type can't be loaded.
23249
23250 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
23251
23252         * image.h: typedef MonoImageOpenStatus
23253         * types.h: removed unused file
23254         
23255 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
23256
23257         * icall.c: Enum_ToObject accepts enum value arguments.
23258
23259 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23260
23261         * class.c: move initialization of properties, events and nested
23262         classes, so that they happen for interfaces, too.
23263
23264 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23265
23266         * icall.c: cleanup some ugly casts in Array_SetValue*.
23267
23268 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23269
23270         * icall.c: the values array fro enums is of the correct type, now.
23271         Implement (correctly) getFullName instead of assQualifiedName for
23272         MonoType.
23273         * reflection.h, reflection.c: added mono_type_get_name ().
23274
23275 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23276
23277         * assembly.c, image.h: for each MonoImage, record from wich assembly
23278         it was loaded.
23279         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
23280         Make Type.Assembly work.
23281
23282 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
23283
23284         * debug-symfile.h: use char* instead of gpointer to avoid
23285         unnecessary casts.
23286
23287         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
23288
23289         * icall.c (ves_icall_InternalExecute): impl. FielSetter
23290         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
23291
23292 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
23293
23294         * icall.c (mono_message_init): impl. (code cleanup)
23295         (ves_icall_InternalExecute): impl. FieldGetter
23296
23297         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
23298         defined we call all (non-static)methods through the vtable. 
23299
23300 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
23301
23302         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
23303         finalizer even though the memory is still referenced (and the chunk of
23304         memory is not freed).
23305
23306 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
23307
23308         * assembly.c: fix brokeness.
23309
23310 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
23311
23312         * class.c: kill some warnings. Check explicit interface method
23313         implementation also without considering the namespace.
23314         Load also literal strings in static class data.
23315
23316 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
23317
23318         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
23319         (default_assembly_name_resolver): Make the resolver take the
23320         "base" directory where the assembly was originally defined, so we
23321         can load DLLs that are in the same directory as the assembly that
23322         is being referenced.
23323
23324 2002-03-28  Dick Porter  <dick@ximian.com>
23325
23326         * file-io.h: 
23327         * file-io.c:
23328         * socket-io.c: 
23329         * unicode.h: 
23330         * unicode.c: Warning cleanups
23331
23332 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
23333
23334         * object.h, reflection.h: use the correct type instead of MonoObject.
23335
23336 2002-03-28  Martin Baulig  <martin@gnome.org>
23337
23338         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
23339         (mono_debug_update_symbol_file): Initialize classes if necessary.
23340
23341 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23342
23343         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
23344         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
23345
23346 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
23347
23348         * assembly.h: fix function prototype.
23349         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
23350         * mono-endian.h: use const cast.
23351
23352 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
23353
23354         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
23355
23356 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23357
23358         * loader.c: don't assert when a typeref can't be loaded, give
23359         a chance to the runtime to trow an exception instead.
23360         * loader.h: fix warning.
23361
23362 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
23363
23364         * class.c (mono_class_proxy_vtable): added proxy support
23365
23366 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
23367
23368         * icall.c: removed last of PAL calls, added System.Environment
23369         * file-io.h, file-io.c: MonoIO implementation
23370         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
23371
23372 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23373
23374         * appdomain.c: do not use the byte marker in ldstr table lookup.
23375         * debug-helpers.c: allow two ':' to separate class and method name.
23376         * object.c: allocate arrays bounds with the GC, too.
23377         * verify: add a few more checks.
23378
23379 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
23380
23381         * reflection.c: output also literal strings. Allocate parameter data
23382         with GC_malloc() (thanks, Martin, for catching this!).
23383
23384 2002-03-26  Martin Baulig  <martin@gnome.org>
23385
23386         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
23387         include the `this' offset in the `param_offsets'.
23388
23389 2002-03-25  Martin Baulig  <martin@gnome.org>
23390
23391         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
23392         mono_debug_get_class() function to get the classes. Added new
23393         relocation types for arrays and strings.
23394         (mono_debug_get_class): New static function to search in all
23395         referenced assemblies for a metadata token.
23396
23397         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
23398
23399 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
23400
23401         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
23402         hold gc-allocated objects. Make the string heap a stream like the
23403         others. Removed duplicated code when writing stream info.
23404         Added asserts to catch possible buffer overflows. Set the sorted map
23405         for tables that need sorting. Added some documentation.
23406
23407 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
23408
23409         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
23410         for interned strings and vtables.
23411
23412 2002-03-24  Martin Baulig  <martin@gnome.org>
23413
23414         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
23415         it in the array since it was created with g_slist_prepend().
23416
23417 2002-03-24  Martin Baulig  <martin@gnome.org>
23418
23419         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
23420         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
23421         (mono_debug_method_from_token): Renamed to
23422         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
23423         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
23424
23425         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
23426         relocation types.
23427
23428         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
23429
23430 2002-03-24  Martin Baulig  <martin@gnome.org>
23431
23432         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
23433         (mono_debug_method_from_token): New func.
23434
23435         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
23436         New interncall, calls mono_debug_local_type_from_signature().
23437         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
23438         calls mono_debug_method_from_token().
23439
23440 2002-03-23  Martin Baulig  <martin@gnome.org>
23441
23442         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
23443         specifies the number of bytes to be converted, not the array size.
23444         Return the number of chars, not the number of bytes.
23445         (ves_icall_iconv_get_chars): The `byteCount' argument
23446         specifies the number of bytes to be converted, not the array size.
23447
23448 2002-03-23  Martin Baulig  <martin@gnome.org>
23449
23450         * reflection.h (MonoReflectionSigHelper): New type.
23451
23452         * reflection.c (mono_reflection_sighelper_get_signature_local),
23453         (mono_reflection_sighelper_get_signature_local): New functions.
23454
23455         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
23456         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
23457         interncalls.
23458
23459 2002-03-23  Martin Baulig  <martin@gnome.org>
23460
23461         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
23462         is_writeable is set.
23463         (mono_raw_buffer_update): New function to write the modified map
23464         back to disk.
23465
23466         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
23467
23468         * debug-symfile.c (mono_debug_update_symbol_file): Call
23469         mono_raw_buffer_update() when done writing.
23470
23471 2002-03-23  Martin Baulig  <martin@gnome.org>
23472
23473         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
23474
23475         * debug-symfile.c: Added support for arguments and local variables.
23476
23477 2002-03-23  Dick Porter  <dick@ximian.com>
23478
23479         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
23480         protected by ifdefs, hence breaking the w32 build.
23481
23482 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23483
23484         * object.c: implement is_interned() the right way.
23485
23486 2002-03-21  Martin Baulig  <martin@gnome.org>
23487
23488         * debug-symfile.[ch]: New files to handle debugging information
23489         files. There's also support to dynamically update these symbol
23490         files to include machine dependent information.
23491
23492 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
23493
23494         * threads.c (mono_thread_create): new function to create thread
23495         from C
23496
23497 2002-03-20  Martin Baulig  <martin@gnome.org>
23498
23499         * icall.c (ves_icall_InternalInvoke): Create a new object if the
23500         method is a constructor.
23501         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
23502         points to ves_icall_InternalInvoke().
23503
23504 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
23505
23506         * file-io.c: Flush shouldn't throw exceptions.
23507
23508 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
23509
23510         * file-io.c: FileStream flush support; FileSetLength now
23511         restores file pointer.
23512
23513 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23514
23515         * class.c: set image for pointer classes.
23516
23517 2002/03/19  Nick Drochak <ndrochak@gol.com>
23518
23519         * sysmath.c: Forgot one.
23520
23521 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
23522
23523         * sysmath.c: Avoid redefining existing names.
23524
23525 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
23526
23527         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
23528         handled by runtime as icall rather than dllimport from libm.so
23529         * file-io.c, file-io.h: fixed handle argument type.
23530
23531 2002-03-18  Dick Porter  <dick@ximian.com>
23532
23533         * reflection.c (mono_image_get_type_info): rename interface to
23534         iface, because of "#define interface struct" on windows.
23535
23536 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
23537
23538         * class.c, class.h: rename and export mono_ptr_class_get().
23539         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
23540         * reflection.c, reflection.h, icall.c: better/saner type name
23541         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
23542         method signatures.
23543
23544 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
23545
23546         * class.c (mono_class_init): removed hardcoded GHC_SLOT
23547
23548         * icall.c (ves_icall_InternalInvoke): impl.
23549
23550 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23551
23552         * reflection.c: output the interface map table, too.
23553
23554 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
23555
23556         * class.c (class_compute_field_layout): separate computation of 
23557         static field layout
23558
23559 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
23560
23561         * icall.c: added System.Buffer support.
23562         * file-io.c: moved file icalls from PAL to FileStream.
23563
23564 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
23565
23566         * icall.c (ves_icall_System_Object_GetHashCode): impl.
23567
23568 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
23569
23570         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
23571
23572 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23573
23574         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
23575
23576 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
23577
23578         * debug-helpers.{c,h}: moved here from monograph some useful functions
23579         to locate a method by name/signature in a class or image. Included
23580         also a small and flexible IL disassembler.
23581
23582 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23583
23584         * reflection.c: fixup tokens in methods with small header size, too.
23585
23586 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
23587
23588         * object.c (mono_string_to_utf8): remove assert(!error), instead
23589         print a warning. 
23590
23591 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
23592
23593         * icall.c: update to the new mono_Array_class_get interface.
23594
23595 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23596
23597         * appdomain.c, object.c: Boehm-GC enable.
23598         * icall.c: make get_data_chunk() support split data requests.
23599         Ensure a class is initialized in more cases. Return only the first
23600         property found in GetProperties() or the compiler gets confused. 
23601         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
23602         * reflection.h, reflection.c: add fixup mechanism for field and method
23603         tokens. Initialize assembly->typeref in a single place. Output
23604         properties after events. Support custom attributes for events, too.
23605         Typo fix for paramter custom attrs.
23606
23607 2002-03-07  Martin Baulig  <martin@gnome.org>
23608
23609         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
23610
23611 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
23612
23613         * class.c (mono_array_class_get): fix. for multi. dim. arrays
23614
23615 2002-03-06  Martin Baulig  <martin@gnome.org>
23616
23617         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
23618         non-zero lower bounds. See testcases #F10-#F13.
23619
23620 2002-03-05  Martin Baulig  <martin@gnome.org>
23621
23622         * exception.c (mono_get_exception_argument_out_of_range): New exception.
23623
23624         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
23625         ves_icall_System_Array_GetValue(), only calculate the absolute array position
23626         here.
23627         (ves_icall_System_Array_SetValue): Likewise.
23628         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
23629         as argument and does the actual work. This function is used when copying a
23630         multi-dimensional array.
23631         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
23632         now do all the widening conversions of value types.
23633         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
23634
23635 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23636
23637         * class.c: remove some magic numbers and use the smbolic names,
23638         instead. Added init_events() to load event info at class init time.
23639         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
23640         and mono_metadata_methods_from_event().
23641         * reflection.h, reflection.c: added support for writing out the evnets
23642         related information.
23643
23644 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23645
23646         * reflection.h, icall.c: use a different method (GetInterfaces)
23647         to gather interface info and add isbyref, isprimitive and
23648         ispointer to the ves_icall_get_type_info() return value.
23649
23650 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23651
23652         * class.h: stared adding support for events.
23653         * icall.c: split find_members implementation. Added debug icall to get
23654         the address of an object.
23655         * reflection.c: handle TypeBuilders in mono_type_get_object().
23656
23657 2002-03-01  Martin Baulig  <martin@gnome.org>
23658
23659         * icall.c (ves_icall_System_Array_GetLength): This must throw an
23660         ArgumentOutOfRangeException(), not an ArgumentException().
23661         (ves_icall_System_Array_GetLowerBound): Likewise.
23662         (ves_icall_System_Array_GetValue): Improved argument checking.
23663         (ves_icall_System_Array_SetValue): Improved argument checking.
23664
23665 2002-03-01  Martin Baulig  <martin@gnome.org>
23666
23667         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
23668         called with invalid arguments rather than just dying with g_assert().
23669         (ves_icall_System_Array_SetValue): Likewise.
23670         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
23671         raise a NotImplementedException instead.
23672         (ves_icall_System_Array_GetLength): Added argument checking.
23673         (ves_icall_System_Array_GetLowerBound): Added argument checking.
23674
23675 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
23676
23677         * object.h (mono_assert): new macros mono_assert and
23678         mono_assert_not_reached
23679
23680 2002-02-28  Martin Baulig  <martin@gnome.org>
23681
23682         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
23683         and "System::String::IsInterned" to "System::String::_IsInterned".
23684
23685 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
23686
23687         * icall.c: remove hacks for typebuilder. Added icall to create a
23688         modified type from a tybebuilder.
23689         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
23690         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
23691         to create a backing MonoClass for a TypeBuilder.
23692
23693 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23694
23695         * class.c, class.h: more refactoring of class init.
23696         Export mono_class_setup_mono_type() and mono_class_setup_parent().
23697
23698 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
23699
23700         * marshal.c, marshal.h: start of marshaling interface.
23701
23702 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
23703
23704         * icall.c: fix order in assembly qualified name icall.
23705
23706 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
23707
23708         * class.c: do not free str, since we store it in the hash table.
23709         * reflection.h: add label field to MonoILExceptionInfo.
23710         * reflection.c: handle references to more than one assembly. Handle
23711         case when there isn't a module created in the assembly.
23712
23713 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23714
23715         * class.c: Fix typo. Start refactoring of class init code.
23716
23717 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23718
23719         * appdomain.c: exit with 1 on error.
23720         * class.c: we already have the name in MonoClassField.
23721         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
23722         MonoStreamHeader instead of an offset of image->raw_metadata.
23723
23724 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
23725
23726         * appdomain.c (mono_init): Be even more descriptive about the error.
23727
23728 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
23729
23730         * appdomain.c: give the user an informative message when corlib can't
23731         be loaded.
23732
23733 2002-02-26  Martin Baulig  <martin@gnome.org>
23734
23735         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
23736         New icall to get the time zone data.
23737
23738 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23739
23740         * reflection.c: set virtual and raw size of section correctly.
23741         * threads.c: transfer domain information to newly created threads.
23742
23743 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
23744
23745         * class.c: when instancing a class in a domain, load the default
23746         vaules for static fields from the constant table. Fix System.Enum to
23747         not be an enum.
23748         * icall.c: implement Object::GetType() internalcall. Implemented
23749         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
23750         Fixed checking of binding flags in find_members().
23751         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
23752         * reflection.c: handle enumerations when writing to the constant
23753         table. Use a different object cache for types.
23754
23755
23756 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
23757
23758         * object.c (mono_object_isinst): fix for arrays
23759
23760         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
23761
23762 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
23763
23764         * object.c: don't use mprotect ()  and fix intern pool hash table
23765         lookup for big endian systems.
23766
23767 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23768
23769         * icall.c: change type_is_subtype_of () signature.
23770
23771 2002-02-21  Mark Crichton  <crichton@gimp.org>
23772
23773         * rand.c, rand.h: Added random number generator for
23774         System.Security.Cryptography classes.
23775
23776         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
23777
23778         * icall.c: Added System.Security.Cryptography calls.
23779
23780 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
23781
23782         * class.c, icall.c, metadata.c: better support for pointer types.
23783         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
23784         * reflection.c: Add support for getting custom attrs for properties
23785         and simplify some code.
23786
23787 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23788
23789         * icall.c: change getToken () and add custom attribute GetBlob()helper
23790         method.
23791         * reflection.h: add custom attrs array to the reflection builder structures.
23792         * reflection.c: encode and emit custom attributes for all the relevant
23793         reflection objects. Cache fieldref and methodref tokens. Change
23794         mono_image_create_token() interface to take a MonoDynamicAssembly.
23795         More complete custom attributes decoder. Load custom attributes for
23796         Assembly, Field, Method and Constructor objects, too. Make the
23797         returned array an Attribute[] one, not object[]. Added
23798         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
23799         custom attribute constructor.
23800
23801 2002-02-20  Dick Porter  <dick@ximian.com>
23802
23803         * icall.c:
23804         * rawbuffer.c:
23805         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
23806         problem code out for now).
23807
23808 2002-02-19  Radek Doulik  <rodo@ximian.com>
23809
23810         * object.c (mono_ldstr): use hash table to avoid multiple swapping
23811
23812 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
23813
23814         * icall.c: register the GetCustomAttributes method.
23815         * object.c, object.h: add mono_string_new_len ().
23816         * reflection.h, reflection.c: added mono_runtime_invoke(),
23817         mono_install_runtime_invoke(). Added
23818         mono_reflection_get_custom_attrs () to load custom attributes and
23819         create the attribute objects.
23820
23821 2002-02-19  Dick Porter  <dick@ximian.com>
23822         * threads-dummy-types.c:
23823         * threads-dummy-types.h:
23824         * threads-dummy.c:
23825         * threads-dummy.h:
23826         * threads-pthread-types.c:
23827         * threads-pthread-types.h:
23828         * threads-pthread.c:
23829         * threads-pthread.h:  Deleted obsolete files
23830
23831 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
23832
23833         * class.c (mono_class_vtable): runtime init the class when we
23834         allocate static class data.
23835
23836         * icall.c (ves_icall_System_Array_SetValue): check for null values.
23837
23838         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
23839         and String - but we will need generic marshalling support in the
23840         future. 
23841         (mono_init): set the domain name in a ms compatible way
23842
23843         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
23844         String[].
23845
23846 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
23847
23848         * object.c (mono_array_clone): use alloca() instead of g_malloc  
23849         for sizes
23850
23851         * appdomain.c (mono_domain_unload): impl.
23852
23853 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
23854
23855         * appdomain.c, object.c: fix intern pool implementation.
23856         * class.c: fix alignment code.
23857
23858 2002-02-16  Radek Doulik  <rodo@ximian.com>
23859
23860         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
23861         and s2 > s1, just copy lower bytes to be compatible with little
23862         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
23863         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
23864
23865         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
23866         force big_endian to be 1 for big endian machines 
23867         (ves_icall_iconv_new_decoder): ditto
23868
23869 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
23870
23871         * socket-io.c (convert_sockopt_level_and_name): If the system
23872         doesn't define SOL_IP or SOL_TCP, get them by hand using
23873         getprotobyname() and caching the values (because this could be a
23874         slow operation).
23875         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
23876         Use the appropriate struct when the system does support it. Ie,
23877         not all systems have struct ip_mreqn so use struct ip_mreq when
23878         appropriate.
23879
23880 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
23881
23882         * reflection.c: handle finally clauses.
23883
23884 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
23885
23886         * socket-io.c: use g_snprintf() instead of snprintf.
23887
23888 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
23889
23890         * reflection.c (mono_param_get_objects): Cast second argument to
23891         mono_method_get_param_names to a const char** to silence the
23892         compiler warning.
23893
23894         * appdomain.c (mono_domain_assembly_open): Put parens around the
23895         truth statement in the for-loop.
23896
23897         * unicode.c (iconv_convert): Got rid of a compiler warning about
23898         int i being unused when the system has a new iconv.
23899         (iconv_get_length): Same.
23900
23901         * image.c (load_class_names): Cast the second argument to
23902         g_hash_table_insert() to char* to hush compiler warnings about the
23903         arg being a const.
23904         (mono_image_open): Same here.
23905
23906         * socket-io.c: Don't conditionally include sys/filio.h or
23907         sys/sockio.h here anymore since we now get them from
23908         io-layer/io-layer.h
23909         (inet_pton): If the system doesn't support inet_aton, implement
23910         using inet_addr and also #define INADDR_NONE if it isn't defined
23911         by the system.
23912
23913 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
23914
23915         * metadata.c, metadata.h: added function to get packing and size info
23916         of a typedef.
23917         * reflection.h, reflection.c: handle field RVA data. Save info about
23918         the table layout if needed. Assign typedef indexes to all the types
23919         before dumping the info about them to avoid forward reference problems.
23920
23921 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
23922
23923         * socket-io.c (convert_sockopt_level_and_name): ifdef
23924         SO_ACCEPTCONN because it is not defined on my system (old debian)
23925
23926 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23927
23928         * opcode.c: use stddef.h to get NULL.
23929
23930 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
23931
23932         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
23933         for FIONBIO, FIONREAD and SIOCATMARK.
23934         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
23935         define INADDR_NONE and besides, inet_addr() is deprecated and
23936         should not be used. Use inet_pton() instead - it also has the
23937         added bonus that it can easily handle IPv6 addresses as well.
23938         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
23939
23940 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23941
23942         * decimal.c: remove _MSC_VER conditional.
23943
23944 2002-02-13  Dick Porter  <dick@ximian.com>
23945
23946         * socket-io.c: 
23947         * icall.c: Internal calls for Blocking, Select, Shutdown,
23948         GetSocketOption and SetSocketOption
23949
23950 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23951
23952         * assembly.cs: better resolver: use it instead of some kludgy
23953         code.
23954
23955 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
23956
23957         * reflection.c: the best way to speed-up the compiler is to avoid
23958         infinite loops.
23959
23960 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
23961
23962         * class.c (mono_class_vtable): changed the object layout
23963         (obj->vtable->class). 
23964         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
23965
23966 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23967
23968         * assembly.c: look for assemblies in the assembly dir, too.
23969
23970 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23971
23972         * class.c: fix thinko in mono_class_from_type().
23973
23974 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23975
23976         * exception.h, exception.c: added TypeLoadException.
23977         * object.h, object.c: added mono_array_clone ().
23978         * icall.c: handle throwOnError in AssemblyGetType().
23979         Added Array.Clone().
23980         * opcode.h, opcode.c: use a single value for the opcode val.
23981         Compile fix for non-gcc compilers.
23982
23983 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
23984
23985         * opcodes.c, opcodes.h: export interesting info about opcodes.
23986
23987 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
23988
23989         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
23990         icalls. 
23991
23992         * class.c (class_compute_field_layout): set element_class for enums
23993         (mono_class_create_from_typedef): set element_class for normal classes
23994
23995         * icall.c (ves_icall_System_Enum_get_value): impl.
23996
23997         * class.c (mono_class_create_from_typedef): do not set valuetype
23998         flag for System.ValueType and System.Enum
23999
24000 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
24001
24002         * unicode.c (iconv_convert): fix big endian problem.
24003
24004 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24005
24006         * class.c: add asserts if we are ever going to scribble over memory.
24007         * socket-io.c: not all systems have AF_IRDA defined.
24008
24009 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
24010
24011         * class.c (class_compute_field_layout): do not consider static
24012         fields to compute alignment
24013
24014 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
24015
24016         * appdomain.c (mono_appdomain_get): impl.
24017         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
24018
24019 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
24020
24021         * icall.c: ignore "file://" prefix when loading an assembly.
24022
24023 2002-01-23  Dick Porter  <dick@ximian.com>
24024
24025         * socket-io.c:
24026         * icall.c:
24027         * Makefile.am: Added socket support
24028
24029 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
24030
24031         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
24032         code back.  This should return the assemblies that are loaded by
24033         the runtime on behalf of an application domain. 
24034
24035         The current implementation is still broken, it just returns every
24036         assembly loaded, but until we get real applications domain this
24037         will do.
24038
24039 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
24040
24041         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
24042         AppDomain object.
24043
24044 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
24045
24046         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
24047         the mono_class_from_name lookup.
24048         (ves_icall_get_parameter_info): ditto.
24049         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
24050         method.
24051         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
24052
24053 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
24054
24055         * class.c: load also nested classes on class init.
24056         System.ValueType instance methods gets passed boxed
24057         values, unless methods in derived classed that get a pointer to the
24058         data.
24059         * icall.c: use better name parsing code in GetType().
24060         * image.c, image.h: add mono_image_loaded ().
24061         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
24062         * reflection.c, reflection.h: added mono_reflection_parse_type().
24063
24064 2002-01-22  Veronica De Santis <veron78@interfree.it>
24065
24066         * icall.c : Added mapping of internal calls for Manual and Auto reset events
24067         * threads.c : Added the implementation of internal calls for events
24068         * threads.h : Added prototypes of internal calls for events
24069         
24070 2002-01-21  Radek Doulik  <rodo@ximian.com>
24071
24072         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
24073
24074 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
24075
24076         * class.c (mono_class_init): set min_align to 1 (instead of 0)
24077         (mono_class_value_size): use min_align
24078
24079 2002-01-20  Dick Porter  <dick@ximian.com>
24080
24081         * threads.h:
24082         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
24083         so it compiles on w32.
24084
24085 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
24086
24087         * metadata.c (mono_type_stack_size): impl.
24088
24089         * class.c (mono_class_get_field): impl. memberref token
24090
24091 2002-01-16 Veronica De Santis <veron78@@interfree.it>
24092
24093         * icall.h : Added the internal calls mapping for CreateMutex_internal
24094                     and ReleaseMutex_internal.
24095         * threads.h : Added the prototype of mutexes internal calls.
24096         * threads.c : Added the implementations of mutexes internal calls.
24097
24098 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
24099
24100         * metaparse.h: removed unused file.
24101         * reflection.c, reflection.h: added stream_data_align () function 
24102         to align data in streams and keep stream aligned. Add support for
24103         exception support in method headers.
24104
24105 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
24106
24107         * unicode.c: make iconv_convert () return the number of bytess written
24108         in the output buffer.
24109
24110 2002-01-15  Dick Porter  <dick@ximian.com>
24111         * threads.c: Make the runtime's idea of infinite timeouts coincide
24112         with the class library's
24113
24114         Fix a particularly egregious bug in mono_thread_cleanup(). That
24115         code was so utterly bogus it must have been written on a Monday.
24116
24117 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
24118
24119         * reflection.h: add subtypes field to TypeBuilder.
24120         * reflection.c: encode constants for literal fields.
24121         Handle subtypes. Fix user string token (and add a zero byte)
24122         at the end.
24123         
24124 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
24125
24126         * class.c (mono_class_init): bug fix: assign slot numbers for
24127         abstract methods.
24128
24129 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24130
24131         * reflection.c: don't try to output a code RVA for abstract methods.
24132         Small fixes for method header format. Output parameter info to the
24133         ParamDef table. Save method overriding info to MethodImpl table.
24134         Fix property support. Allow typedef.extends to be a type in the
24135         building assembly.
24136         * verify.c: fix off-by-one error.
24137
24138 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
24139
24140         * class.c: fix mono_class_from_mono_type () for szarray types.
24141         Remove unused cache check in mono_class_from_type_spec().
24142         * icall.c: *type_from_name () functions handle simple arrays and byref.
24143         * reflection.c: handle byref and szarray types. Handle methods without
24144         body (gets P/Invoke compilation working). Handle types and fields in
24145         get_token ().
24146         * reflection.h: add rank to MonoTypeInfo.
24147
24148 2002-01-10  Dick Porter  <dick@ximian.com>
24149
24150         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
24151         internal calls
24152
24153 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
24154
24155         * icall.c: initialize class in type_from_handle ().
24156         Loop also in parent classes for get_method ().
24157         * reflection.c: properly encode class and valuetype types.
24158         Start on encoding TypeBuilder types. Handle fieldrefs.
24159         Use correct length when registering a user string.
24160         Handle ConstructorBuilder and MonoMethod in get_token ().
24161         Make mono_type_get_object () aware of cached types.
24162         * object.c: back out change to mono_string_new ().
24163
24164 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
24165         * object.c: mono_string_new should return a NULL when the string 
24166         passed in is NULL -- not try to deference it.
24167         
24168 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
24169
24170         * icall.c: hack to make IsSubType work for TypeBuilders.
24171         * reflection.c: emit constructors before methods.
24172         Retrieve param names in mono_param_get_objects().
24173
24174 2002/01/05  Nick Drochak  <ndrochak@gol.com>
24175
24176         * Makefile.am: fix list of headers and sources so automake 1.5
24177         doesn't complain. Removed \# at end of list.
24178
24179 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
24180
24181         * reflection.c: get token for a method ref. Set return type of
24182         constructor to void.
24183         * loader.c: debug message.
24184         * class.c: typo fix.
24185
24186 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
24187
24188         * icall.c: fix array init with rank > 1. FindMembers
24189         loops in parent class as well.
24190         * image.c: do not insert nested types in name cache.
24191         * reflection.c: warning fix.
24192         * reflection.h: add override method (for interface impl).
24193
24194 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
24195
24196         * metadata.c: fix customattr decoding.
24197
24198 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
24199
24200         * rawbuffer.cs: Added native Win32 implementation, avoids using
24201         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
24202
24203 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
24204
24205         * class.c: make the low-level routines handle the cache.
24206
24207 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
24208
24209         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
24210
24211 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
24212
24213         * class.c: fix mono_array_element_size() for objects.
24214         * class.h, class.c: add properties to MonoClass and load them
24215         at init time.
24216         * icall.c: check with isinst() when assigning a value to an array
24217         instead of requiring the classes to match exactly.
24218         Implemented icall for System.Type::GetType().
24219         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
24220         enums. Handle bindingflags when looking for methods and fields.
24221         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
24222         and mono_metadata_methods_from_property().
24223         * reflection.h, reflection.c: added structures for propreties,
24224         parameters and enums. Implemented mono_property_get_object() and
24225         mono_param_get_objects().
24226
24227 2001-12-18  Dick Porter  <dick@ximian.com>
24228
24229         * file-io.c: Use mono_string_to_utf16() instead of
24230         mono_string_chars()
24231
24232         * object.c: Added mono_string_to_utf16(), which copies the non
24233         NULL-terminated MonoString into a new double-null-terminated
24234         buffer.
24235
24236 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
24237
24238         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
24239
24240 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
24241
24242         * file-io.c: raise exceptions if handle is invalid.
24243
24244 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
24245
24246         * assembly.c: yet another check for mscorlib.
24247         * class.c, class.h: load nesting info for classes.
24248         * icall.c: many new functions to support the Reflection classes.
24249         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
24250         * reflection.h, reflection.c: mono_image_create_token(),
24251         mono_assembly_get_object(), mono_type_get_object(),
24252         mono_method_get_object(), mono_field_get_object(): methods to return
24253         objects that parallel the C representation of assemblies, types,
24254         methods, fields.
24255
24256 2001-12-11  Dick Porter  <dick@ximian.com>
24257
24258         * icall.c:
24259         * file-io.c: Internal calls for file IO.
24260
24261 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
24262
24263         * tabledefs.h: missing FileAttributes.
24264         * verify.h, verify.c: use is_valid_string () to simplify and check for
24265         valid strings more correctly. Fix warnings and speeling.
24266         Check more tables: Filed, File, ModuleRef, StandAloneSig.
24267         Check code: branches, maxstack, method calls.
24268
24269 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
24270
24271         * object.c (mono_object_allocate): removed static, so that the jit
24272         can allocate value types.
24273
24274         * icall.c (ves_icall_System_DateTime_GetNow): impl.
24275
24276 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24277
24278         * class.c: init enum types right away and register the
24279         token->MonoClass map in mono_class_create_from_typedef ().
24280         * verify.h, verify.c: first cut of the verifier.
24281         * pedump.c: add --verify switch to verify metadata tables.
24282         * tabledefs.h: add some missing enums.
24283
24284 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
24285
24286         * class.c (mono_install_runtime_class_init): impl.
24287         (mono_class_init): renamed mono_class_metadata_init to
24288         mono_class_init, also removed the metadata_inited flag
24289
24290         * object.c (mono_object_isinst): use faster algorithm
24291
24292 2001-11-30  Radek Doulik  <rodo@ximian.com>
24293
24294         * mono-endian.h: reverted last change
24295         added function prototypes
24296
24297         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
24298         add mono-endian.c back
24299
24300         * mono-endian.c: returned back, as Paolo pointed out, it's needed
24301         for unaligned access, I've mistaked it with endianess. I am
24302         sorry.
24303         (mono_read16): fix reverted endianess
24304         (mono_read64): ditto
24305         (mono_read32): ditto
24306
24307 2001-11-30  Dick Porter  <dick@ximian.com>
24308
24309         * exception.c: Implement mono_exception_from_name()
24310
24311 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24312
24313         * metadata.h, metadata.c: remove params_size and locals_size and their
24314         calculation from the metadata code: they are only usefult to the
24315         interp.
24316
24317 2001-11-29  Radek Doulik  <rodo@ximian.com>
24318
24319         * object.c (mono_ldstr): swap bytes here, it's probably not the
24320         best place, but works for me now, I'll redo it once I know mono
24321         better, also note that I add PROT_WRITE and don't reset back, also
24322         note that it's only affects big endians, so x86 should be OK
24323
24324         * mono-endian.h (read16): use just glib macros for both endians
24325
24326         * mono-endian.c: removed as glib macros are used in in
24327         mono-endian.h so we don't need to care about endianess for read
24328         macros as glib does that for us already
24329
24330 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
24331
24332         * class.h, class.h: take minimum alignment into consideration so
24333         that the fields of a class remain aligned also when in an array.
24334
24335 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24336
24337         * loader.h, loader.c: add mono_method_get_param_names().
24338         * class.c: 0-init class fields.
24339
24340 2001-11-26  Dick Porter  <dick@ximian.com>
24341
24342         * icall.c:
24343         * threads-types.h:
24344         * threads.c: New file that handles System.Threading on all platforms
24345
24346         * object.c: 
24347         * object.h: Remove the synchronisation struct from MonoObject,
24348         replace it with a pointer that gets initialised on demand
24349
24350         * Makefile.am: Replace all the system-specific threading code with
24351         a single file that uses the new wrapper library
24352
24353 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
24354
24355         * class.c, class.h: add mono_install_trampoline() so that the runtime
24356         can register a function to create a trampoline: removes the ugly
24357         requirement that a runtime needed to export arch_create_jit_trampoline.
24358         * object.h, object.c: added mono_install_handler() so that the runtime
24359         can install an handler for exceptions generated in C code (with
24360         mono_raise_exception()). Added C struct for System.Delegate.
24361         * pedump.c: removed arch_create_jit_trampoline.
24362         * reflection.c: some cleanups to allow registering user strings and
24363         later getting a token for methodrefs and fieldrefs before the assembly
24364         is built.
24365         * row-indexes.h: updates and fixes from the new ECMA specs.
24366
24367 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
24368
24369         * class.h, class.c: add enum_basetype field to MonoClass.
24370         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
24371         to get index in the constant table reated to a field, param or
24372         property.
24373         * reflection.h, reflection.c: handle constructors. Set public-key and
24374         version number of the built assembly to 0.
24375         * row-indexes.h: update from new ECMA spec.
24376
24377 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24378
24379         * class.h, class.c: add a max_interface_id to MonoClass.
24380         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
24381         since it's used to do that. Added mono_type_type_from_obj().
24382         Make GetType() return NULL instead of segfaulting if the type was not
24383         found. Handle simple arrays in assQualifiedName.
24384         * object.h: add a struct to represent an Exception.
24385         * reflection.c: output call convention in method signature.
24386         Add code to support P/Invoke methods and fixed offsets for fields.
24387
24388 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
24389
24390         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
24391         the value.
24392         * icall.c: use mono_array_addr instead of array->vector: fixes the
24393         reflection image writing.
24394         * reflection.c: init call convention byte to 0 in method signature.
24395         Encode the property signature. Don't output property-related methods
24396         twice. Really process the properties for a type (don't cast a field to
24397         a property, my mom always told me that).
24398         Fix 64 bit issues in pointer alignment in a different and more
24399         readable way.
24400
24401 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
24402
24403         * loader.h: Removed type class from MonoDefaults, added monotype
24404
24405         * loader.c: Loaded MonoType, removed loading of Type
24406
24407         * icall.c (my_mono_new_object): Now returns a System.MonoType,
24408         and fills in System.Type._impl with a RuntimeTypeHandle rather
24409         than the actual MonoClass *
24410
24411         (ves_icall_type_from_handle): change from type_class to
24412         monotype_class
24413
24414         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
24415         implemented
24416
24417         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
24418         implemented
24419
24420         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
24421
24422         (ves_icall_System_Reflection_Assembly_GetType): implemented
24423
24424         (ves_icall_System_MonoType_assQualifiedName): implemented
24425
24426         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
24427
24428 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
24429
24430         * assembly.c (mono_assembly_open): Implement a cache for the
24431         assemblies. 
24432
24433         (mono_assembly_close): only destroy the assembly when the last
24434         reference is gone.
24435         
24436 2001-11-09  Dick Porter  <dick@ximian.com>
24437
24438         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
24439
24440 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
24441
24442         * class.c (mono_class_metadata_init): bug fix: compute the right slot
24443
24444 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24445
24446         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
24447         from Martin Weindel.
24448         * object.h: add mono_string_chars ().
24449
24450 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
24451
24452         * reflection.c (build_compressed_metadata): Eliminates warnings
24453         and uses 64-bit clean code.
24454
24455         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
24456         (mono_type_equal): Change signature to eliminate warnings.
24457
24458 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24459
24460         * icall.c, loader.c: remove the internalcall array constructors.
24461         Changes to match the new MonoArray structure.
24462         * object.h, object.c: an array object doesn't allocate an extra
24463         vector. Add mono_array_new_full () to create jagged arrays easily.
24464
24465 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24466
24467         * metadata.h, metadata.c: add mono_metadata_field_info () to
24468         retreive all the info about a field from vairous tables.
24469         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
24470         * class.h, class.c: augment MonoClassField with more info.
24471         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
24472         policy and load a field's RVA if needed.
24473
24474 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
24475
24476         * class.c (mono_class_metadata_init): create a trampoline for all
24477         virtual functions instead of actually compiling them.
24478
24479 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
24480
24481         * class.h, class.c: include name in MonoClassField.
24482         * class.c: fix fundamental type of System.Object and System.String.
24483         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
24484         tokens in ldtoken.
24485         * icall.c: remove internalcalls for the Reflection stuff that is now
24486         done in C# code.
24487         * loader.c: mono_field_from_memberref () implementation.
24488         * mono-endian.c: thinko (s/struct/union/g).
24489         * object.c, object.h: make the mono_string_* prototypes actually use
24490         MonoString instead of MonoObject.
24491         * reflection.c, reflection.h: updates for changes in the reflection
24492         code in corlib: we use C structures that map to the actual C# classes.
24493         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
24494         fat method header if needed and use the info from the ILGenerator for
24495         methods. Handle fields in types. Misc fixes.
24496
24497 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
24498
24499         * class.c (mono_class_metadata_init): bug fix: always allocate
24500         space for static class data
24501
24502 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
24503
24504         * class.c (mono_compute_relative_numbering): use relative
24505         numbering to support fast runtime type checks.
24506
24507 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
24508
24509         * class.c (mono_class_create_from_typeref): added debugging output
24510         to print class name when MonoDummy is returned instead of real class
24511
24512 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
24513
24514         * class.c (mono_class_metadata_init): interface offset table now
24515         contains pointers into the vtable - this is more efficient for the jit
24516
24517 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
24518
24519         * class.c (mono_class_metadata_init): use a temporary vtable (the
24520         old algorithm only worked for the interpreter, but not for the jit)
24521
24522 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
24523
24524         * loader.c (method_from_memberref): use mono_class_get to get the
24525         class of an array instead of using System.Array directly.
24526         (mono_get_method): also add MEMBERREF methods to the method cache
24527         which usefull for arrays.
24528
24529 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
24530
24531         * pedump.c (arch_compile_method): added to compute vtable entry
24532
24533         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
24534         number of interfaces.
24535         
24536         * class.h: merged MonoArrayClass into MonoClass
24537
24538         * class.c (mono_class_create_from_typedef): compute the vtable size and
24539         allocate space to include the vtable inside MonoClass
24540         (mono_class_metadata_init): initialize the vtable
24541
24542 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
24543
24544         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
24545         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
24546         * image.c: endian fixes by Laurent Rioux.
24547         * object.h, object.c: rename MonoStringObject to MonoString and
24548         MonoArrayObject to MonoArray. Change some function names to conform to
24549         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
24550         guint16* as first argument, so don't use char*.
24551         Provide macros to do the interesting things on arrays in a portable way.
24552         * threads-pthread.c: updates for the API changes and #include <sched.h>
24553         (required for sched_yield()).
24554         * icall.c: updates for the API changes above.
24555         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
24556         platforms that need them.
24557
24558 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24559
24560         * class.c: set the correct type for all the fundamental
24561         type when loading the class.
24562
24563 2001-10-05  Dick Porter  <dick@ximian.com>
24564
24565         * threads-pthread.c (pthread_mutex_timedlock): Simple
24566         compatibility version for C libraries that lack this call.
24567
24568 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24569
24570         * class.c: MonoTypes stored in MonoClass are stored as
24571         fundamental MonoTypes when the class represents a
24572         fundamental type (System.Int32, ...).
24573         The TypeHandle return by ldtoken is a MonoType*.
24574         * icall.c: ves_icall_get_data_chunk () write out all the
24575         PE/COFF stuff. Implement ves_icall_define_method (),
24576         ves_icall_set_method_body (), ves_icall_type_from_handle ().
24577         * image.c: properly skip unknown streams.
24578         * loader.h, loader.c: add type_class to mono_defaults.
24579         * metadata.c, metadata.h: export compute_size () as
24580         mono_metadata_compute_size () with a better interface.
24581         Typo and C&P fixes.
24582         * pedump.c: don't try to print the entry point RVA if there is no entry point.
24583         * reflection.c, reflection.h: many cleanups, fixes, output method
24584         signatures and headers, typedef and typeref info, compress the metadata
24585         tables, output all the heap streams, cli header etc.
24586         * row-indexes.h: typo fixes.
24587
24588 2001-10-04  Dick Porter  <dick@ximian.com>
24589
24590         * object.h: Add a synchronisation mutex struct to MonoObject
24591
24592         * object.c (mono_new_object): Initialise the object
24593         synchronisation mutexes
24594
24595         * icall.c: System.Threading.Monitor internal calls
24596         
24597         * threads-pthread.h:
24598         * threads-pthread.c: System.Threading.Monitor internal calls
24599
24600         * threads-types.h: New file, includes the system-specific thread
24601         structures
24602         
24603         * threads-pthread-types.h:
24604         * threads-pthread-types.c: New files, handle pthread-specific
24605         synchronisation types
24606
24607         * threads-dummy-types.h: 
24608         * threads-dummy-types.c: New files of dummy support for
24609         thread-specific types
24610
24611         * metadata.c:
24612         * image.c:
24613         * pedump.c: include mono-endian.h not endian.h
24614         
24615         * Makefile.am: More threads files.
24616         Name mono-endian.h not endian.h
24617
24618 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
24619
24620         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
24621         stuff and implement a few more bits.
24622         * icall.c: a field needs to be dereferenced twice. Do not use the same
24623         name for two variables in the same scope.
24624         * image.c, image.h: cleanups.
24625
24626 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
24627
24628         * class.c (mono_class_metadata_init): bug fix: compute the right size
24629
24630 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
24631
24632         * icall.c: implemented some of the Reflection internalcalls.
24633         * image.c, image.h: start writing out the PE/COFF image.
24634         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
24635         that does the reverse than decode_blob_size ().
24636         * object.c: use mono_metadata_encode_value (). Move here
24637         temporary implementation of mono_string_to_utf8 ().
24638         * rawbuffer.c: make malloc_map static.
24639
24640 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24641
24642         * metadata.c: fix type comparison for arrays.
24643         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
24644         Added a couple of new classes to monodefaults.
24645         * icall.c: added a couple of Reflection-related internalcalls.
24646         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
24647         Added a byval_arg MonoType to MonoClass.
24648
24649 2001-09-28  Dick Porter  <dick@ximian.com>
24650
24651         * icall.c:
24652         * threads-pthread.h: 
24653         * threads-pthread.c: Implemented internal calls for
24654         LocalDataStoreSlot operations.  Applied mutexes around all shared
24655         data.  Reworked the thread creation and Start() operations to
24656         avoid a race condition.
24657         
24658         * threads-dummy.h:
24659         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
24660
24661 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
24662
24663         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
24664
24665 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
24666
24667         * class.c, loader.c: warn and return NULL instead of erroring out.
24668         * icall.c: added System.AppDomain::getCurDomain().
24669         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
24670
24671 2001-09-25  Dick Porter  <dick@ximian.com>
24672
24673         * threads-pthread.h:
24674         * threads-pthread.c: Implemented timed thread joining and added
24675         System.Threading.Thread::Join_internal internal call
24676
24677         * icall.c: Added System.Threading.Thread::Join_internal internal call
24678
24679         * threads-dummy.h:
24680         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
24681
24682 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
24683
24684         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
24685         mono_string_intern () to implement the semantics of the ldstr opcode
24686         and the interning of System.Strings.
24687         * icall.c: provide hooks to make String::IsIntern and String::Intern
24688         internalcalls.
24689
24690 2001-09-23  Dick Porter  <dick@ximian.com>
24691
24692         * threads-dummy.c: 
24693         * threads-dummy.h: New files of dummy threading routines
24694
24695         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
24696         support code based on system specifics
24697
24698         Rename PTHREAD_LIBS to THREAD_LIBS
24699         
24700 2001-09-23  Dick Porter  <dick@ximian.com>
24701
24702         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
24703         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
24704         internal calls.
24705         (mono_thread_init): Set up a Thread object instance to return when
24706         the main thread calls Thread.CurrentThread
24707         (mono_thread_cleanup): Wait for all subthreads to exit
24708
24709         * icall.c: New internal calls for System.Threading.Thread::Sleep
24710         (including Schedule) and CurrentThread
24711
24712         * threads.h: New file, to insulate thread-specific stuff from the
24713         rest of the code
24714
24715 2001-09-21  Dick Porter  <dick@ximian.com>
24716
24717         * threads-pthread.h: 
24718         * threads-pthread.c: New file, for handling pthreads-style
24719         threading support.  Start() now starts a new thread and executes
24720         the ThreadStart delegate instance.
24721
24722         * icall.c: Added the internalcall for
24723         System.Threading.Thread::Start_internal
24724
24725         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
24726
24727 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
24728
24729         * loader.c: work around the different signatures for delegates
24730         constructors csc generates in compiled code vs the ones compiled in mscorlib.
24731
24732 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
24733
24734         * class.h, class.c: add mono_class_get_field_from_name ().
24735         * *: Fix C comments and other ANSI C issues.
24736
24737 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
24738
24739         * endian.h, assembly.c: fix some endianness issues.
24740
24741 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
24742
24743         * loader.h, load.c: add delegate_class to mono_defaults.
24744         Handle runtime provided methods in mono_get_method ().
24745
24746 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
24747
24748         * loader.c (mono_get_method): use pinvoke for internal call
24749
24750         * icall.c: use pinvoke for internal call
24751
24752         * loader.c (method_from_memberref): set the method name
24753
24754 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
24755
24756         * metadata.c: help the compiler generate better code for
24757         mono_class_from_mono_type ().
24758
24759 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
24760
24761         * class.c (mono_class_metadata_init): delayed computing of the
24762         class size to mono_class_metadata_init ()
24763
24764 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
24765
24766         * class.c, class.h: add an interfaces member to MonoClass.
24767         * image.c, image.h: add assembly_name field to MonoImage
24768         from the assembly table.
24769         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
24770
24771 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24772
24773         * class.c: Handle Array in mono_class_from_mono_type ().
24774         * metadata.c, pedump.c: some endian fixes.
24775
24776 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24777
24778         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
24779         * metadata.c: fix small problem introduced with the latest commit.
24780
24781 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
24782
24783         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
24784         We don't need a MonoMetadata pointer anymore to compare signatures in
24785         mono_metadata_signature_equal (), update callers.
24786         Reduced memory usage an number of allocations for MonoMethodHeader and
24787         MonoMethodSignature.
24788
24789 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
24790
24791         * metadata.c: added compare for szarray.
24792
24793 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
24794
24795         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
24796         and add a couple more types to it and mono_defaults. Give an hint on
24797         classes that need implementing in our corlib and are referenced
24798         in mscorlib.
24799
24800 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
24801
24802         * class.h, class.c: keep track if a class is also an Enum.
24803         * loader.c: Implement a couple more types for use in libffi
24804         marshalling. Gives better diagnostics when failing to dlopen
24805         a library. Set method->klass for P/Invoke methods, too.
24806
24807 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
24808
24809         * class.c, class.h: add a MonoType this_arg to MonoClass that
24810         represents a pointer to an object of the class' type that
24811         can be used by the interpreter and later the type cache.
24812         Add best guess alignment info for valuetype objects.
24813
24814 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
24815
24816         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
24817         into MonoType: one less level of indirection and allocation and
24818         simplifies quite a bit of code. Added cache for MonoTypes that are
24819         used frequently, so that we don't need to allocate them all the time.
24820
24821 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
24822
24823         * class.c (mono_class_create_from_typedef): System.Enum is also a
24824         value type, although it does not derive from System.ValueType
24825         (maybe a bug in the ms compiler?)
24826
24827         * metadata.c (mono_type_size): return the right size for value types
24828
24829         * loader.c (mono_get_method): only initialize method header if not abstract
24830
24831         * class.c (mono_class_from_mono_type): use mono_default values. 
24832
24833 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
24834
24835         * *: use MonoClass pointers instead of <type_tokens>
24836         
24837         * class.h: new flag: metadata_inited.
24838
24839         * class.c (mono_class_metadata_init): impl.
24840         (mono_class_instance_size): impl.
24841         (mono_class_data_size): impl.
24842
24843 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24844
24845         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
24846         MonoClass now has the name and name_space fields. 
24847         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
24848         mono_get_method () takes and optional MonoClass as argument.
24849         Removed mono_typedef_from_name() and added mono_class_token_from_name()
24850         instead that takes advantage of a map from class names to typedef
24851         tokens in MonoImage.
24852
24853 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
24854
24855         * metadata.c: zero is not a valid alignment boundary.
24856         Merge MONO_TYPE_VOID in default decoding code.
24857
24858 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
24859
24860         * image.h: merged MonoMetadata into MonoImage
24861
24862         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
24863         identify the type of elements.
24864
24865 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
24866
24867         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
24868         * cil-coff.h: split MonoMSDOSHeader and add size info.
24869         * image.c: add some consistency checks.
24870         * metadata.c: fix row size computation: one programmer
24871         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
24872         add explanation for the locator routine.
24873         Fix decoding of size in method header.
24874         
24875 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
24876
24877         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
24878         (g_concat_dir_and_file): Bring g_concat_dir_and_file
24879         function from gnome-libs.  This uses the right path separator
24880         based on the OS, and also works around a bug in some systems where
24881         a double slash is not allowed. 
24882         (default_assembly_name_resolver): Use g_concat_dir_and_file
24883         (mono_assembly_open): ditto.
24884
24885 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
24886
24887         * metadata.c (mono_metadata_signature_equal): impl.
24888
24889         * *: void is now a realy MonoType (instead of using NULL)
24890         
24891         * metadata.c (do_mono_metadata_parse_type): use
24892         mono_metadata_parse_type to parse void value.
24893
24894 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
24895
24896         * metadata.c, metadata.h: in the signature and method header store
24897         only the space required for holding the loca vars and incoming arguments.
24898
24899 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
24900
24901         * metadata.c (do_mono_metadata_parse_type): treat void like any
24902         other type (instead of assigning NULL);
24903
24904 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
24905
24906         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
24907
24908 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
24909
24910         * image.c (do_mono_image_open): added a cache for arrays.
24911
24912 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24913
24914         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
24915         decode a single column from a row in a metadata table and changes
24916         to take advantage of it in the typedef locator (gives a nice speed up).
24917         Store offset info for function params.
24918
24919 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
24920
24921         * image.h (MONO_IMAGE_IS_CORLIB): removed 
24922
24923 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
24924
24925         * assembly.c: how could mono_assembly_close () had ever worked?
24926         * metadata.c, metadata.h: provide offset info for local vars.
24927         Implement mono_type_size () to take care of alignment as well
24928         as size (it was mono_field_type_size in cli/class.c before).
24929
24930 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
24931
24932         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
24933
24934         * assembly.h (CORLIB_NAME): set to corlib.dll
24935
24936         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
24937
24938 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24939
24940         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
24941         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
24942         tokentype.h: massive namespace cleanup.
24943
24944 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24945
24946         * metadata.h, metadata.c: decode exception clauses when parsing method header.
24947
24948 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
24949
24950         * metadata.c (mono_metadata_free_type): added check for type !=
24951         NULL (void) before calling mono_metadata_free_type()
24952
24953 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
24954
24955         * metadata.h, row_indexes.h: added header with enumerations to use
24956         to index in the columns from tables in metadata and to decode coded
24957         tokens: we should start using this instead of embedding magic numbers
24958         all over the code.
24959
24960 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
24961
24962         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
24963         Move metadata_t info from cli_image_info_t to MonoImage, where
24964         it's easily accessible. Changed all the uses accordingly.
24965         Added the method and class caches to MonoImage.
24966         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
24967         and mono_metadata_decode_value () signature to be more consistent
24968         with the other parse functions (and simplify code). Taken advantage
24969         of zero-length array allocation with GCC. Removed reduntant (and
24970         wrong) MonoFieldType struct and use MonoParam instead. Changed
24971         mono_metadata_parse_field_type () to use common code for parsing.
24972         Added mono_metadata_typedef_from_field () and
24973         mono_metadata_typedef_from_method () to lookup a typedef index from a
24974         field or method token.
24975         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
24976
24977 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
24978
24979         * metadata.c (mono_metadata_parse_field_type): Implement. 
24980         (do_mono_metadata_parse_type): Split engine from
24981         mono_metadata_parse_type, so that we can create smaller structures
24982         for things that just have one pointer to the MonoType (look at
24983         the MonoFieldType)
24984
24985 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
24986
24987         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
24988         as Jan Gray found out, it is incorrect. 
24989
24990 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
24991
24992         * assembly.c: Implement asssembly loading.  This loads an image
24993         and loads all the referenced assemblies.  Come to think of it, we
24994         could always do lazy loading of the assemblies. 
24995
24996         * image.c (mono_image_open): Keep loaded images in a hashtable.
24997
24998         * image.h (MonoImage): Add reference count.
24999
25000 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
25001
25002         * assembly.c (mono_assembly_open): Keep track of the file name in
25003         case the assembly has no ASSEMBLY table.
25004
25005         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
25006         from get.c here.
25007
25008 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
25009
25010         * metadata.c, metadata.h: decode local vars in method header
25011         parse function. Change callers accordingly.
25012
25013 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
25014
25015         * metadata.h, cil-coff.h: protect against multiple inclusion.
25016         Added some new structures to hold information decoded from metadata:
25017         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
25018         and relevant decoding/free functions.
25019         * metadata.c: implement decoding functions. Add warning for out of bounds
25020         index in mono_metadata_locate(). Implement mono_get_method () to retreive
25021         all the info about a method signature and invocation. Remove check on
25022         uninitialized local var in parse_mh() and fix memory leak.
25023
25024 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
25025
25026         * metadata.h: More macros.
25027
25028         * tokentype.h: New file.
25029
25030 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
25031
25032         * assembly.c: added a consistency check and initialize
25033         some structures with g_new0().
25034         * metadata.c: fixed a couple more bugs in table size computation
25035         and add other checks for out-of bound access to metadata.
25036
25037 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
25038
25039         * metatada.c: fix bugs computing table sizes. Spew a
25040         warning when index in string heap is out of bounds.
25041
25042 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
25043
25044         * metadata.h: Add a couple of macros to manipulate tokens. 
25045
25046 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
25047
25048         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
25049         cli_section_tables).
25050
25051 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
25052
25053         * metadata.c (mono_metadata_user_string): New function, provides
25054         access to the UserString heap. 
25055
25056 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
25057
25058         * metadata.c: Add inline documentation.
25059
25060 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
25061
25062         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
25063         files. 
25064
25065 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
25066
25067         * typeattr.h: New file, TypeAttribute flags. 
25068
25069 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
25070
25071         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
25072         mono_assembly_ensure_section): Section loading code.
25073         (load_section_tables): Load the sections.
25074
25075         * mono/metadata/metadata.c (mono_metadata_locate_token,
25076         mono_metadata_locate): Functions to locate the information
25077         definition given a token or a table and an index.
25078         (mono_metadata_compute_table_bases): New.
25079         (compute_size): New function to compute the sizes of the various
25080         tables.
25081
25082         * mono/metadata/metadata.h: Finish listing the different index
25083         types. 
25084
25085         * mono/metadata/pedump.c: Improve to dump new information.
25086
25087 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
25088
25089         * mono/metadata/metadata.c: Entered all the tables matching
25090         Beta2. 
25091
25092         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
25093
25094
25095