2008-03-11 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / metadata / ChangeLog
1 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
2
3         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
4         and return value.
5
6 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
7
8         * image.c: when someone loads a mscorlib from a file, return the
9         currently loaded mscorlib (fixes bug #369253).
10
11 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
12
13         * class.c: handle types with no parents by forcing them to have
14         System.Object as a parent and marking them as broken (this currently
15         allows the first part of bug #369173 to work as well, likely because
16         we don't check for typeload exceptions everywhere yet).
17
18 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
19
20         * class.c: more complete check that types belong to corlib
21         (fixes second part of bug #369173).
22
23 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
24
25         * generic-sharing.c:  Including glib.h for the MSVC builds to define
26           "inline" to "__inline" before including mono-membar.h.
27           
28         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
29           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
30           MSVC builds.
31
32         Contributed under MIT/X11 license.
33
34 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
35
36         * verify.c (do_invoke_method): Remove return type validation.
37
38         * verify.c (do_ret): Do return type validation at return site instead of
39         call site.
40
41 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
42
43         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
44
45         * verify.c: Some todos cleaned and improved a few error messages.
46
47 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
48
49         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
50
51 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
52
53         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
54         system types correctly.
55
56         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
57         function.
58
59 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
60
61         * assembly.c (build_assembly_name): Fix a warning.
62
63 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
64
65         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
66         the called function takes an object type argument. Fixes storing or
67         valuetypes across remoting as well as reducing memory usage.
68         * image.c, metadata-internals.h: remove now unused ldfld_remote and
69         stfld_remote wrapper caches.
70
71 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
72
73         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
74         is not found.
75
76         * reflection.c (mono_image_register_token): New helper function to save
77         a token->object mapping.        
78
79         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
80         managed code.
81
82         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
83         one dimension arrays. Fixes #367670.
84         (mono_reflection_get_type_internal): Ditto.
85
86 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
87
88         * marshal.c: mono_load_remote_field_new() always returns object.
89         so use the proper signature (fixes bug #366445).
90
91 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
92         
93         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
94         add an 'inline_failure' flag instead.
95
96 2008-03-04  Mark Probst  <mark.probst@gmail.com>
97
98         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
99         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
100         contains the location of "this", used for exception handling.
101
102 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
103
104         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
105         their size on all platforms for perf reasons.
106
107 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
108
109         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
110         object-internal.h
111
112         * object-internal.h: Same.
113
114 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
115
116         * reflection.h: Fix the build I just broke.
117
118 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
119
120         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
121         Test if a token is valid, this remove explicit usage of 
122         MonoDynamicImage::tokens from the verifier code.
123
124         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
125
126         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
127         instead of direct access to MonoDynamicImage::tokens.
128
129 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
130
131         * verify.c (token_bounds_check): Fix the build I just broke.
132
133 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
134
135         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
136
137         * verify.c (verifier_load_method): Fixed the errors message.
138
139         * verify.c (mono_method_verify): Fixed a debug message.
140
141 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
142
143         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
144         mono-perfcounters.h, class-internals.h: support for predefined
145         writable counters, query of categories and counters, bugfixes.
146
147 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
148
149         * verify.c (do_refanytype): Verify the refanytype opcode.
150
151         * verify.c (mono_method_verify): Use do_refanytype.
152
153 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
154
155         * verify.c (do_mkrefany): Verify the mkrefany opcode.
156
157         * verify.c (mono_method_verify): Use do_mkrefany.
158
159 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
160
161         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
162         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
163         implementation.
164
165 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
166
167         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
168         the type load exception.
169
170 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
171
172         * verify.c: Added a few FIXME for method signatures
173
174         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
175         of mono_method_get_signature and get vararg call working. Removed unused
176         checks for return value.
177
178         * verify.c (do_refanyval): Verify the refanyval opcode.
179
180         * verify.c (mono_method_verify): Implemented verification of arglist and
181         use do_refanyval.
182
183 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
184
185         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
186         vtypes to marshal.c.
187
188         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
189         it works for AOT as well.
190
191 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
192
193         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
194         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
195         the system time is adjusted.
196
197 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
198
199         * icall.c, icall-def.h: use the new time functions (fixes the
200         non-monotonic behaviour of TickCount).
201
202 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
203
204         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
205         it breaks the build.
206         
207         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
208         cattr is not finished yet.
209
210 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
211
212         * verify.c: Proper token validation for field, method and type.
213
214 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
215
216         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
217
218         * loader.c (method_from_memberref): Generate type load error instead of method missing
219         if the type is not found.
220
221 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
222
223         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
224         some of the conversions caused the generation of a marshal directive exception.
225
226 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
227
228         verify.c: Report which exception should be thrown by the JIT.
229         Added a lot of FIXME notes.
230
231 2008-02-22  Mark Probst  <mark.probst@gmail.com>
232
233         * generic-sharing.c: Runtime generic context slots are not
234         instantiated on init anymore.  Instead, provide function to do the
235         instantiating on demand.
236
237         * class-internals.h: Added vtable to runtime generic context.
238         Macros for encoding direct and indirect slot offsets in one
239         guint32.
240
241 2008-02-21  Mark Probst  <mark.probst@gmail.com>
242
243         * object.c, generic-sharing.c: Moved some generic sharing code
244         from object.c to generic-sharing.c.
245
246         * generic-sharing.c: Added support for extensible runtime generic
247         context.
248
249         * metadata-internals.h: Two new hash tables in MonoImage for
250         extensible runtime generic context support.
251
252         * domain.c: Unregister generic vtables upon domain unloading.
253
254         * image.c: Destroy new hash tables upon image unloading.
255
256         * metadata.c: Unregister generic subclasses upon image unloading.
257
258         * class-internals.h: New data structure for runtime generic
259         context template.  New fields in the runtime generic context for
260         extensible part.
261
262         * Makefile.am: Added generic-sharing.c.
263
264 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
265
266         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
267         there is a pending loader exception, raise it.
268
269         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
270         same.
271
272         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
273         same.
274
275         Fixes #363450.
276
277 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
278
279         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
280
281         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
282         
283         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
284         ref-only requests for compatibility with MS.
285
286 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
287
288         * reflection.c (mono_custom_attrs_from_method): Don't silently
289         return an empty list for generic method instances.
290         (mono_custom_attrs_from_param): Likewise.
291
292 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
293             Raja R Harinath  <harinath@hurrynot.org>
294
295         Fix #354757
296         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
297         * class.c (mono_class_inflate_generic_method_full): Initialize it
298         when a fully-open method is instantiated.
299         * metadata.c (inflated_method_equal, inflated_method_hash): Update
300         to new field.
301         * reflection.c (inflate_mono_method): Don't create a temporary context.
302
303 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
304
305         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
306         Compute correct value, to prepare for imethod->reflection_info going away.
307
308 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
309
310         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
311
312 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
313
314         * verify.c: Implement skip visibility flag.
315
316 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
317
318         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
319         which contains an extra field to tell the kind of exception that should be thrown.
320
321         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
322
323 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
324
325         * loader.c (mono_method_get_param_names): Initialize 'klass' after
326         'method' is updated.
327
328 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
329
330         * class.c (mono_class_layout_fields): Set class->min_align for classes using
331         explicit layout as well. Fixes #360375.
332
333 2008-02-11  Geoff Norton  <gnorton@novell.com>
334
335         * loader.c: Guard and dereference against inflated generic methods
336
337 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
338
339         * class.c: Include Retargetable spec in assembly name.
340         * assembly.c: Always include PublicKeyToken spec in assembly name
341         (with value "null" if assembly is not signed), and include
342         Retargetable spec.
343         * icall-def.h: Added icall for Assembly.get_fullname.
344         * icall.c: Added icall returning the fullname of an assembly.
345
346 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
347
348         * class.c (mono_class_setup_vtable_general): Add a missing call to
349         mono_class_setup_methods () which is needed in the AOT case.
350
351 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
352
353         * verify.c (mono_type_get_stack_name): Added. Return the name for the
354         stack type of the given MonoType.
355
356         * verify.c (verify_type_compatibility_full): Handle the void type.
357
358         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
359         way stack merging works.
360
361         * verify.c (store_local): Improved verification message.
362
363         * verify.c (do_branch_op): If the merging is invalid, the method
364         is unverifiable and not invalid. Improved error message.
365
366         * verify.c (merge_stacks): Properly merge a boxed valuetype and
367         a reference type diferent than System.Object. Improved error
368         message.
369
370 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
371
372         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
373
374         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
375         type of an enum even if the argument is byref.
376
377         * verify.c: Replace all explicit uses of enumtype and enum_basetype
378         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
379
380         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
381
382         *verify.c (verify_type_compatibility_full): Make enum types
383         compatible with their base types.
384
385         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
386         types are compatible for the special case of a boxed valuetype and
387         System.Object.
388
389         * verify.c (verify_stack_type_compatibility): The function
390         is_compatible_boxed_valuetype was extracted from here.
391
392         * verify.c (push_arg): Only set ctx->has_this_store if the method
393         is not static.
394
395         * verify.c (do_ldelem): Fixed a typo in an error message and added
396         strict check for mixing int32 and native int as the array type
397         and ldelem type.
398
399         * verify.c (merge_stacks): Consider boxed valuetypes in the
400         compatibility checks.
401
402 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
403         * profiler.h: (MonoGCEvent): Added start-stop the world events.
404
405 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
406         *class.c: use_new_interface_vtable_code: renamed the env var to have
407         a "MONO_" prefix, and fix the logic to enable it by default.
408
409 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
410         *class.c:
411         mono_class_setup_vtable_general: rewrote the way in which interface
412         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
413         makes the code more maintainable.
414         For now the old code is still there, and can be activated setting
415         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
416
417 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
418
419         * verify.c: guarded some debug functions around and #ifdef.
420
421         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
422
423 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
424
425         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
426         changes for now since they seem to break too many things.
427
428 2008-02-05  Mark Probst  <mark.probst@gmail.com>
429
430         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
431         mono_marshal_find_nonzero_bit_offset): Added macro and function
432         for finding the byte- and bit-offset of a bitfield within a
433         struct.
434
435 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
436
437         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
438         (mono_marshal_get_struct_to_ptr): Ditto.
439
440         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
441         cctor_signature.
442
443 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
444
445         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
446         between methods for non-corlib types.
447
448 2008-02-02  Geoff Norton  <gnorton@novell.com>
449
450         * loader.c (mono_method_get_param_names): Populate the parameter name for 
451         generic parameters as well. (Fixes #342536)
452
453 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
454
455         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
456
457         * verify.c (do_invoke_method): Fix for calling with byref structs.
458
459         * verify.c (do_cast): push a boxed value type based on the type token and not
460         the type of stack.
461
462 2008-01-31  William Holmes  <billholmes54@gmail.com>
463
464         * process.c (process_module_string_read): Check the size returned form 
465           VerQueryValue to avoid out of memory exception. 
466
467 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
468
469         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
470         Handle properly modules which are not in the moduleref table. Fixes
471         #356938.
472
473 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
474
475         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
476         the dynamic case which is now in managed code.
477         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
478
479         * marshal.c (mono_string_to_bstr): Fix a warning.
480         (init_com_provider_ms): Ditto.
481
482         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
483
484         * exception.c (mono_get_exception_out_of_memory): New helper function.
485
486 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
487
488         * marshal.c: Add support for BSTR marshalling
489         using other COM systems.
490
491         Code is contributed under MIT/X11 license.
492
493 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
494
495         * object.c (mono_runtime_invoke_array): reverted previous
496         commit as it breaks the build.
497
498 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
499
500         * object.c (mono_runtime_invoke_array): Verify arguments for
501         invalid types. Fixes #348522.
502
503 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
504
505         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
506         non-final virtual calls using call. 
507
508         * verify.c (do_invoke): fixed some TODOs.
509
510         * verify.c (push_arg): set has_this_store for "ldarga 0".
511
512 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
513
514         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
515         which belong to an inflated class. Fixes #356531.
516
517 2008-01-26  Robert Jordan  <robertj@gmx.net>
518
519         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
520         which resort to FindFirstFile when a certain error condition
521         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
522         Code is contributed under MIT/X11 license.
523
524 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
525
526         * marshal.c (emit_marshal_string): Fix out string marshalling
527         to use specified encoding. Fixes #323900.
528
529         Code is contributed under MIT/X11 license.
530
531 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
532
533         * class.c (mono_class_inflate_generic_method_full): Don't modify
534         iresult->context after cache check.
535
536 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
537
538         * class.c (mono_class_inflate_generic_method_full): Change the
539         struct assignments to memcpy for better visibility and add some comments.
540
541 2008-01-23  Dick Porter  <dick@ximian.com>
542
543         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
544         procedure, and make it work on windows.
545
546 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
547
548         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
549         a MonoReflectionTypeBuilder since it is always of that type.
550
551         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
552
553         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
554
555         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
556         
557         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
558
559         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
560
561         * reflection.c (mono_reflection_create_runtime_class): Remove already created
562         instantiations from the type cache.
563
564 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
565
566         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
567
568         * verify.c (do_unbox_value): push a controled mutability managed pointer.
569
570 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
571
572         * verify.c (do_ldstr): added, verifies if the #US token is valid.
573
574         * verify.c (mono_method_verify): removed old TODO
575
576 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
577
578         * verify.c (do_newobj): add visibility check.
579
580 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
581
582         * verify.c (do_load_function_ptr): add visibility check.
583
584 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
585         *class.c:
586         mono_generic_class_get_class: hook profiler events.
587         mono_field_get_offset: added to support heap-shot in the new profiler.
588         *class.h: exported mono_field_get_offset.
589         * reflection.c:
590         mono_reflection_setup_internal_class: hook profiler events.
591
592 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
593
594         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
595         argument here too and use it to avoid checking for pending exceptions if 
596         possible.
597
598 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
599
600         * assembly.c (build_assembly_name): add arg for passing the assembly
601         flags. Do not consider a PublicKey with value "null" valid.
602         (mono_assembly_name_parse_full): added boolean argument that will be
603         set if the assembly name contains a PublicKeyToken spec. Added support
604         for the Retargetable spec for which only Yes or No are allowed as valid
605         value. Consider assembly name invalid if Retargetable spec is set, but
606         either version, culture or public key (token) are not specified.
607         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
608         with implementation in assembly.c.
609         * icall.c (fill_reflection_assembly_name): also copy assembly flags
610         from MonoAssemblyName.
611         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
612         introduced argument for mono_assembly_name_parse_full to know if the
613         assembly name has a PublicKeyToken spec, and if it has instruct
614         fill_reflection_assembly_name to use default value for keyToken (if
615         PublicKeyToken is null).
616
617 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
618
619         * verify.c (mono_method_verify): fixed ovf ops with
620         float values. They are unverifiable now.
621
622 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
623
624         * class.c (set_failure_from_loader_error): add BadImageException to the
625         list of exceptions that can cause a type to fail to load.
626
627         * class.c (mono_class_get_exception_for_failure): same.
628
629 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
630
631         * verify.c (in_any_exception_block): added, check if offset
632         is part of any exception handling clause.
633
634         * verify.c (get_stack_type): added VAR and MVAR types.
635
636         * verify.c (do_stobj): better error messages.
637
638         * verify.c (do_cpobj): added, check cpobj.
639
640         * verify.c (do_initobj): added, check initobj.
641
642         * verify.c (do_sizeof): added, check sizeof.
643
644         * verify.c (do_localloc): added, check localloc.
645
646         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
647
648 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
649
650         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
651         save_lmf/restore_lmf opcodes.
652
653         * threads.c (mono_threads_install_notify_pending_exc): New function to
654         install a callback notifying the JIT there is a pending exception on a thread.
655         (mono_thread_request_interruption): Call the new callback.
656         (mono_thread_get_and_clear_pending_exception): New function to return the
657         exception pending on a thread.
658
659         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
660         to turn off checking for pending exceptions.
661         (mono_marshal_get_native_wrapper): Ditto.
662
663 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
664
665         * threads-types.h: Get rid of the unnecessary extern declarations.
666
667 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
668
669         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
670         return field from parent class if not private.
671         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
672         returns fields from parent class if they are not private.
673         (method_nonpublic): added function to determine if a given method
674         should be considered non-public. Returns false for private methods
675         on parent class, and internal methods from parent on the 1.0 profile.
676         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
677         use method_nonpublic function to determine whether method should be
678         returned.
679         (property_accessor_public): use newly introduced method_nonpublic
680         function to determine whether accessor is non-public. 
681         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
682         event from parent class if not private. Only return static event if
683         Static flag is set, and only return static event from parent class if
684         FlattenHierarchy flag is set.
685         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
686         include non-private events from parent class.
687
688 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
689
690         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
691         warning.
692
693 2008-01-16  Wade Berrier <wberrier@novell.com>
694
695         * security.c: Add assembly.h header to appease some warnings
696
697 2008-01-16  Dick Porter  <dick@ximian.com>
698
699         * process.c (process_module_string_read): Remove trailing null
700         when saving string.
701
702 2008-01-16  Mark Probst  <mark.probst@gmail.com>
703
704         * class-internals.h: A new data structure describing the layout of
705         a runtime generic context (MonoRuntimeGenericContextTemplate).
706
707         * metadata-internals.h: Added a hash table to MonoDomain that maps
708         from open generic classes to their runtime generic context
709         templates.
710
711         * object.c: Building of the runtime generic context, including
712         proper handling of generic type arguments of superclasses.
713         Building of the runtime generic context according to the template.
714
715 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
716
717         * class.c (mono_class_setup_fields): Set field.count for generic instances.
718         Fixes #350856.
719
720         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
721         mono_portability_find_file (). Fixes #325466.
722         (mono_image_get_public_key): Fix a warning.
723
724 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
725
726         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
727         Fixes #353550.
728         (mono_class_from_name_case): Ditto.
729
730 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
731
732         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
733           common storage for the tables used in the System/NumberFormatter class.
734
735 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
736
737         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
738
739 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
740
741         * verify.c (get_boxable_mono_type): check if the token is valid.
742
743         * verify.c (set_stack_value): changed to add an error if an
744         invalid type is set on stack. Changed all callers due to signature change.
745
746         * verify.c (do_stobj): implement stobj validation.
747
748 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
749
750         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
751         set container->is_method, it was set earlier.
752
753         * metadata.c (type_in_image): Handle MVARs which belong to not finished
754         generic methods.
755
756         * reflection.c (mono_reflection_initialize_generic_parameter): Set
757         is_method of the generic container to TRUE for methods.
758
759 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
760
761         * metadata.c (type_in_image): Handle type parameters properly.
762
763         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
764         memory ownership of this structure.
765
766 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
767
768         * verify.c (get_boxable_mono_type): make typedref types been just
769         unverifiable. check for void type.
770
771         * verify.c (do_unbox_any): added, verify opcode unbox.any.
772
773         * verify.c (do_load_function_ptr): accept method spec tokens.
774
775 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
776
777         * marshal.c (mono_class_native_size): Always set *align even if this is called
778         recursively.
779
780 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
781
782         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
783         out-of-date.
784
785 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
786
787         * verify.c: removed some old unused tables. A huge bunch of small fixes
788         to things found while testing the verifier with mono basic.
789
790         * verify.c (dump_stack_value): dump null literal flag to.
791
792         * verify.c (verify_type_compatibility_full): fix comparison
793         for types that have a generic super type.
794
795         * verify.c (verify_stack_type_compatibility): fix compatibility
796         between null literals and reference types. fix compatibility between
797         boxed valuetypes and object. fix corner case test for enums.
798
799         * verify.c (do_cmp_op): proper verification of cgt.un in case
800         of reference types.
801
802         * verify.c (do_invoke_method): fix error message.
803
804         * verify.c (do_store_indirect
805
806         * verify.c (check_is_valid_type_for_field_ops): proper verification
807         of managed pointers to valuetypes and boxed valuetypes. proper verification
808         of null literals.
809
810         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
811         allow token to be a reference type.
812
813         * verify.c (do_cast): proper handling of boxes valuetypes.
814
815         * verify.c (do_stelem): proper handling of storing a boxed valuetype
816         in object[].
817
818         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
819         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
820         fixed the decoding of unbox_any
821
822 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
823
824         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
825
826 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
827
828         * verify.c (do_newobj): do delegate verification.
829
830         * verify.c (verify_delegate_compatibility): perform delegate
831         verification.
832
833         * verify.c (verify_ldftn_delegate): perform tests related to
834         ldftn delegates.
835
836         * verify.c (mono_delegate_signature_equal): perform the
837         slightly diferent signature comparison required by delegates.
838
839         * metadata.c (mono_metadata_type_equal_full): added and exported
840         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
841         allows signature only comparison.
842
843         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
844         as MONO_INTERNAL.
845
846 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
847
848         * verify.c: added a bunch of stack_slot_* functions to
849         make access to stack slot type easier. This is required to
850         allow optional flags, like null literal, boxed value and
851         this pointer.
852         All access paths to IlStackDesc::stype have been changed 
853         to use these new funcions.
854         Removed a bunch of unused functions and cleared all warnings.
855         This patch introduces the usage of the this pointer and 
856         boxed value flags.
857
858 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
859
860         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
861
862 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
863
864         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
865         match managed version.
866
867         * appdomain.c: Bump corlib version.
868         
869         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
870         argument.
871
872 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
873
874         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
875         Set public key token to zero-length byte array if assembly is not
876         strongnamed.
877
878 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
879
880         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
881         writing a vtype array elem.
882
883 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
884
885         * assembly.c (build_assembly_name): return FALSE if length of token is
886         not 16 (if not "null").
887         (mono_assembly_name_parse_full): return FALSE if value of version,
888         culture, token or key is 0.
889         * icall.c (fill_reflection_assembly_name): add boolean arguments to
890         specify whether public key and public key token must be set to default
891         value (zero-length byte array) if not available. Set versioncompat to
892         SameMachine. If public key is available or the default is set, then
893         set PublicKey flag.
894         (ves_icall_System_Reflection_Assembly_FillName): if no public key
895         is available, use empty byte array as default value. On the 2.0
896         profile, use default value for public key token if not set.
897         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
898         profile, use default value for public key if not set. On the 2.0
899         profile, use default value for public key token if not set.
900         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
901         default values for public key and public key token.
902
903 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
904
905         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
906         field to keep it in synch with the managed object.
907
908         * marshal.c (emit_marshal_object): Add support for byref marshalling of
909         delegates. Fixes #351520.
910
911         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
912         contains defined memory.
913         
914         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
915
916         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
917         
918         * sgen-gc.c (check_consistency): New helper function to do a consistency check
919         of the GC data structures.
920
921         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
922
923         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
924         
925         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
926         barrier.
927         (mono_array_clone_in_domain): Ditto.
928         (mono_array_clone_in_domain): Ditto.
929
930         * threads.c (start_wrapper): Register the thread start argument as a GC root.
931         (cache_culture): Use a write barrier.
932
933         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
934         (ves_icall_get_property_info): Ditto.
935
936         * object.h (MONO_STRUCT_SETREF): New macro.
937
938         * class-internals.h (MonoStats): Add some GC statistics.
939
940         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
941
942 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
943
944         * exception.c (mono_exception_from_name_two_strings):
945         Break from loop after method is found.
946
947 2008-01-04  Dick Porter  <dick@ximian.com>
948
949         * process.c (process_module_string_read): Rename variable to
950         reflect correct usage, after fixing bug 345972.
951
952 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
953
954         * verify.c (mono_type_create_fnptr_from_mono_method): 
955         created a MonoType function pointer instance to be used during
956         verification. The verifier releases this memory at end.
957
958         * verify.c (mono_method_is_constructor): extracted repeated
959         checks for constructor into a single class.
960
961         * verify.c (do_push_field): use new extracted method
962         for constructor check.
963
964         * verify.c (do_newobj): same.
965
966         * verify.c (do_ldftn): renamed to do_load_function_ptr
967         and make it verify ldvirtftn too.
968
969         * verify.c (mono_method_verify: proper verification
970         of ldvirtftn. release created MonoMethod instances.
971
972 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
973
974         * verify.c (token_bounds_check): added.
975
976         * verify.c (do_ldftn): added.
977
978         * verify.c (mono_method_verify): proper verificartion of ldftn.
979
980 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
981
982         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
983         than the table row count. It's the resposibility of the caller to
984         make the bounds check and raise the correct error.
985
986         * metadata.c (mono_metadata_decode_row_col): Same.
987
988         * loader.c (mono_get_method_from_token): perform bounds check
989         on token for methoddef table.
990
991 2007-12-29  Miguel de Icaza  <miguel@novell.com>
992
993         * icall.c
994         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
995         assert into a negative result, the managed code already coped with
996         that.
997
998         Some folks on Windows reported this error. 
999
1000 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
1001
1002         * appdomain.c: Bump corlib version.
1003         * icall.c:
1004         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
1005         CultureInfo.CreateCulture to create CultureInfo for name.
1006         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
1007         create CultureInfo for name. Fixes bug #347174.
1008
1009 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
1010
1011         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
1012         flags.
1013
1014         * verify.c (is_valid_branch_instruction): allow branching to the
1015         first instruction of the protected block.
1016
1017         * verify.c (is_valid_cmp_branch_instruction): same.
1018
1019         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
1020         avoid double initialization.
1021
1022         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
1023         detect which cases the eval stack should just be copied.
1024
1025         * verify.c (mono_method_verify): check if the eval stack
1026         is empty when entering a protected block.
1027
1028 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
1029
1030         * verify.c: added is_clause_in_range, is_clause_inside_range,
1031         is_clause_nested and verify_clause_relationship. They perform
1032         the verifications stated in P1 12.4.2.7.
1033
1034         * verify.c (mono_method_verify): remove some unused variables,
1035         add the new exception clause checks, add instruction border
1036         checks for protected block start/end, improved some error 
1037         messages and fixed a bug in the way invalid instruction access
1038         is detected.
1039
1040 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
1041
1042         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
1043         from GC 7.0 if available.
1044
1045         * object.c: Remove an unused define.
1046         
1047         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
1048
1049         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
1050
1051         * null-gc.c (mono_gc_make_descr_for_array): Implement.
1052
1053         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
1054
1055         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
1056         to take the same arguments as the other make_descr functions.
1057
1058         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
1059
1060         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
1061         directly.
1062
1063         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
1064         mini.c.
1065
1066         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
1067         call to boehm-gc.c.
1068
1069         * boehm-gc.c (mono_gc_register_root): Fix a warning.
1070
1071         * null-gc.c (mono_gc_register_root): Fix a warning.
1072
1073         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
1074
1075         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
1076         (mono_gc_base_init): Call GC_init ().
1077
1078         * null-gc.c: Define mono_gc_register_root () as a no-op.
1079
1080         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
1081
1082 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
1083
1084         * verify.c: add prototype for merge_stacks at top
1085
1086         * verify.c (do_switch): added.
1087
1088         * verify.c (merge_stacks): on some cases the stack merging
1089         was not happening properly. Unequal stack sizes at merge
1090         points should be invalid.
1091
1092         * verify.c (mono_method_verify): added more debug info on stack state.
1093         verify switch properly.
1094
1095 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
1096
1097         * method-builder.h: New file, moved the mono_mb_ declarations here from 
1098         marshal.h.
1099
1100         * boehm-gc.c marshal.c: Include method-builder.h.
1101
1102         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
1103
1104         * marshal.c: Remove some code which is now in method-builder.c.
1105
1106 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
1107
1108         * method-builder.c: New file, extraction of the method builder functionality 
1109         from marshal.c.
1110
1111         * marshal.c: Move the mb functions into method-builder.c.
1112
1113         * marshal.h marshal.c: Export some mono_mb_... functions.
1114
1115         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
1116
1117         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
1118         the caller.
1119
1120         * class.c (mono_class_get_full): Check the token type in the dynamic case.
1121
1122         * loader.c (mono_field_from_token): Ditto.      
1123
1124         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
1125         type as well.
1126         
1127         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
1128         Fixes #342565.
1129
1130         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
1131         a helper function for setting it.
1132
1133         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
1134
1135         
1136         * assembly.c: Significally simplify code now that referenced assemblies are 
1137         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
1138
1139         * threads.h: Don't include  the internal threads-types.h header file. Fixes
1140         #349952.
1141
1142 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
1143
1144         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
1145         instructions that were target of branches or are at protected block boundaries.
1146
1147         * verify.c (in_same_block): handle filter clauses.
1148
1149         * verify.c (is_valid_branch_instruction): added. checks the target of
1150         instructions br or brtrue/false.
1151
1152         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
1153         binary branch instructions such as beq and bge.
1154
1155         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
1156         and made it pin the instruction as been part of the exception block.
1157
1158         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
1159         of in_same_block.
1160
1161         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
1162         of in_same_block.
1163
1164         * verify.c (do_ret): ret from a protected block is unverifiable and
1165         not invalid.
1166
1167         * verify.c (do_static_branch): verify br and br.s instructions.
1168
1169         * verify.c (merge_stacks): add extra param to support detection
1170         of branches in the middle of instructions.
1171         
1172         * verify.c (mono_method_verify): verify branches and exception blocks
1173         that target the middle of instructions. Proper verification of br and br.s.
1174
1175 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
1176
1177         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
1178         skip_visibility field.
1179         (reflection_methodbuilder_from_dynamic_method): Ditto.
1180
1181         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
1182         registrations. Fixes #348193.
1183
1184         * threads.h: Move the internal mono_thread_get_pending_exception () to
1185         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
1186
1187 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
1188
1189         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
1190         icall registration. Fixes #348193.
1191
1192         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
1193         for corlib classes into object. Fixes #349621.
1194
1195 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
1196
1197         * icall.c (property_accessor_nonpublic): new function to determine
1198         whether an accessor allows a property to be considered non-public.
1199         Returns false for private accessor(s) from parent class, and internal
1200         accessor(s) from parent on 2.0 profile (and higher).
1201         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
1202         to determine whether property should be included if NonPublic flag
1203         is set. Fixes bug #349078.
1204
1205 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
1206
1207         * verify.c (init_stack_with_value): added.
1208
1209         * verify.c (mono_method_verify): extracted common
1210         code for exception initialization into init_stack_with_value.
1211
1212         * verify.c (mono_method_verify): initialize the exception
1213         for handler clauses as well.
1214
1215         * verify.c (mono_method_verify): fix the exception clause
1216         ordering rules, it should use handler end offset and not
1217         start offset.
1218
1219 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
1220
1221         * rawbuffer.c: remove useless warning.
1222
1223 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
1224
1225         * threads.h, threads-types.h: move functions to the correct header
1226         (fixes bug#349952).
1227
1228 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1229
1230         * verify.c (mono_method_verify): proper verification
1231         of exception handling clauses ranges and fallthru in
1232         and out of protected blocks.
1233
1234 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1235
1236         * verify.c (mono_method_verify): fixed compilation issue.
1237
1238 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1239
1240         * verify.c (mono_method_verify): a printf slipped in, changed
1241         to use verifier debug macro.
1242
1243 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
1244
1245         * verify.c (is_correct_leave): check for filter clauses.
1246
1247         * verify.c (do_filter): added.
1248
1249         * verify.c (mono_method_verify): property verification of leave.
1250
1251
1252 2007-12-18  Mark Probst  <mark.probst@gmail.com>
1253
1254         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
1255         Win32 build, until we figure out how to do the proper thing on
1256         Win32.
1257
1258 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
1259
1260         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
1261         by the previous patch.
1262         
1263         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
1264         the assembly resolve handler for refonly assemblies.
1265
1266 2007-12-17  Mark Probst  <mark.probst@gmail.com>
1267
1268         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
1269         Make sure only one thread is allowed to commence shutdown, and
1270         don't allow new threads to be started once shutdown is in
1271         progress.
1272
1273 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
1274
1275         * verify.c (is_correct_endfilter): added.
1276
1277         * verify.c (is_unverifiable_endfilter): added.
1278
1279         * verify.c (do_endfilter): added.
1280
1281         * verify.c (mono_method_verify): property verification of endfilter
1282         and fixed a corner case or endfinally.
1283
1284 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
1285
1286         * verify.h: new flags to support fail fast of unverifiable code and
1287         do non-strict verification. Non-strict verification is required to
1288         have MS runtime compatibility. There are a huge amount of unverifiable
1289         code that it accepts as verifiable. The strict mode verifies the code
1290         as the specs says.
1291         Non-strict mode will be required in cases where code needs to be
1292         accepted as verifiable but fails under strict mode.
1293
1294         * pedump.c: added support to fail fast and non-strict verification.
1295
1296         * verify.c: added support for both fail fast and non-strict verification.
1297
1298 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
1299
1300         * verify.c (is_correct_endfinally): added.
1301
1302         * verify.c (mono_method_verify): property verification of endfinally.
1303
1304 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
1305
1306         * verify.c (in_any_block): check for filter clauses.
1307
1308         * verify.c (is_correct_rethrow): added.
1309
1310         * verify.c (mono_method_verify): property verification of rethrow.
1311
1312         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
1313
1314 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
1315
1316         * verify.c (do_throw): added.
1317
1318         * verify.c (mono_method_verify): property verification of throw
1319
1320 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
1321
1322         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
1323         assemblies. Fixes #346425.
1324
1325 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
1326
1327         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
1328         FieldBuilders.
1329
1330         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
1331
1332         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
1333         prevent asserts when this is called with a token which might not be valid.
1334
1335         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
1336         lookup_dynamic_token_class with valid_token == FALSE.
1337
1338         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
1339
1340         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
1341
1342         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1343         
1344 2007-12-10  Mark Probst  <mark.probst@gmail.com>
1345
1346         * gc.c: Don't delay threadpool thread finalization unless Mono is
1347         shutting down.
1348
1349 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1350
1351         * threads.c: turn an assert into a non-fatal warning.
1352
1353 2007-12-09  Robert Jordan  <robertj@gmx.net>
1354
1355         * icall.c (GetVirtualMethod): Add missing argument validation.
1356
1357 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1358
1359         * verify.c (do_cast): added.
1360
1361         * verify.c (mono_method_verify): property verification of castclass and isinst.
1362
1363
1364 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1365
1366         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
1367
1368         * verify.c (do_stelem): added.
1369
1370         * verify.c (mono_method_verify): property verification of stelem.X.
1371
1372 2007-12-07  Mark Probst  <mark.probst@gmail.com>
1373
1374         * class.c, class-internals.h: Introduce an environment variable
1375         (MONO_GENERIC_SHARING) through which the extent of generic code
1376         sharing can be controlled (share all classes, share only corlib
1377         classes, or share nothing).
1378
1379         * object.c: Only create runtime generic context for classes for
1380         which sharing is enabled.
1381
1382 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1383
1384         * verify.c (do_ldelem): refactor it to work with ldelem.any.
1385
1386         * verify.c (mono_method_verify): property verification of ldelem.any.
1387
1388 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1389
1390         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
1391         added ldelem.X opcodes.
1392
1393         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
1394
1395         * verify.c: proper verification of ldelem.X 
1396
1397 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
1398
1399         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
1400
1401 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
1402
1403         * verify.c (mono_method_verify): null literal requires special handling,
1404         the value pushed on stack need to be flagged as so.
1405
1406         * verify.c (do_ldelema): Verify ldelema properly.
1407
1408 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
1409
1410         * verify.c: Verify ldlen properly.
1411
1412 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
1413
1414         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
1415         to the target object's type. Fixes #346160.
1416
1417 2007-12-05  Dick Porter  <dick@ximian.com>
1418
1419         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
1420         Solaris needs the same workaround as BSD-derived systems.  Fixes
1421         bug 323524, patch by Burkhard Linke
1422         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
1423
1424 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
1425
1426         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
1427         handle to use when error dialog is shown; otherwise, update mask
1428         to show no error dialog when an error occurs.
1429
1430 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
1431
1432         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
1433
1434         * class.c (mono_class_get_field_default_value): New helper function to initialize
1435         field->def_type and field->data.
1436
1437 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
1438
1439         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
1440         the general one.
1441
1442         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
1443
1444         * marshal.c: Avoid depending on delegate->method_info being set.
1445
1446         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
1447         
1448         * object.c (mono_delegate_ctor): Set delegate->method.
1449
1450         * object-internals.h (struct _MonoDelegate): Add 'method' field.
1451
1452         * appdomain.c: Bump corlib version.
1453
1454 2007-11-27  Raja R Harinath  <harinath@gmail.com>
1455
1456         * metadata.c (mono_generic_inst_equal_full): Short-circuit
1457         equality check if we're comparing canonicalized MonoGenericInsts.
1458
1459 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
1460
1461         * class.c (generic_array_methods): Call mono_class_setup_methods () before
1462         accessing class->methods.
1463
1464 2007-11-22  Dick Porter  <dick@ximian.com>
1465
1466         * threads.c: Ensure that the synch_cs is set before trying to use
1467         it.
1468
1469 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
1470
1471         * profiler.c: r89126 broke the statistial profiler, unbreak.
1472
1473 2007-11-22  Martin Baulig  <martin@ximian.com>
1474
1475         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
1476
1477         * mono-debug.c
1478         (mono_debug_debugger_version): Bump to 3.
1479         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
1480         -> mono_debugger_class_initialized().
1481
1482         * mono-debug-debugger.c
1483         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
1484
1485         * class.c
1486         (mono_debugger_start_class_init_func): Removed.
1487         (mono_debugger_class_loaded_methods_func): Added.
1488         (mono_class_setup_methods): Call it here.
1489
1490 2007-11-22  Martin Baulig  <martin@ximian.com>
1491
1492         * mono-debug.c
1493         (mono_debug_add_delegate_trampoline): New public method.
1494         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
1495
1496         * mono-debug.h
1497         (MonoSymbolTable): Added `global_data_table'.
1498         (MonoDebuggerTypeKind): Removed.
1499
1500 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
1501
1502         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
1503         these methods.
1504
1505         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1506         
1507 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1508
1509         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
1510
1511 2007-11-20  Martin Baulig  <martin@ximian.com>
1512
1513         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
1514
1515         * mono-debug-debugger.c
1516         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
1517         (mono_debugger_remove_breakpoint): Likewise.
1518         (mono_debugger_check_breakpoints): Likewise.
1519         (mono_debugger_register_class_init_callback): New public method.
1520         (mono_debugger_remove_class_init_callback): Likewise.
1521         (mono_debugger_add_type): Likewise.
1522
1523         * mono-debug-debugger.h
1524         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
1525
1526 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
1527
1528         * class.c: more interface implementations needed for the
1529         array enumerator (fixes bug #341112).
1530
1531 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
1532
1533         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
1534         fix ParamName of ArgumentNullExceptions.
1535
1536 2007-11-17  Miguel de Icaza  <miguel@novell.com>
1537
1538         * reflection.c (mono_reflection_encode_sighelper): Generate the
1539         modopts and modreqs.   I have a useless test that crashes monodis,
1540         but that shows the code working.
1541
1542 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
1543
1544         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
1545         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
1546
1547 2007-11-15  Dick Porter  <dick@ximian.com>
1548
1549         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
1550         When joining a thread, it's the thread that's calling Join that
1551         gets WaitSleepJoin state not the target.  Fixes the standalone
1552         test case in bug 334740, and hopefully the whole bug too.
1553
1554 2007-11-15  Dick Porter  <dick@ximian.com>
1555
1556         * process.c: Read file version info from the files pointed at by
1557         process modules, not the current process.  Fixes bug 315969.
1558
1559         Use windows typedef names in some places to fix warnings on the
1560         windows build.
1561
1562 2007-11-15  Mark Probst  <mark.probst@gmail.com>
1563
1564         * image.c, metadata-internals.h: Added a generic_class_cache hash
1565         to MonoImage for looking up generic classes when sharing generics.
1566
1567 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1568
1569         * sgen-gc.c: warning cleanups.
1570
1571 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
1572
1573         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
1574         inherited properties.
1575
1576 2007-11-14  Mark Probst  <mark.probst@gmail.com>
1577
1578         * object.c, class-internals.h: Added more information to the
1579         runtime generic context.
1580
1581 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
1582
1583         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
1584         instead of just the target method. Generalize the abstract method handling to
1585         handle any non-static method.
1586
1587         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1588         mono_marshal_get_delegate_invoke () signature change.
1589
1590 2007-11-13  Mark Probst  <mark.probst@gmail.com>
1591
1592         * class.c, class-internals.h: Made
1593         mono_type_get_basic_type_from_generic () public.  Fixed member
1594         access check for shared generics.
1595
1596         * loader.c: Don't insert field into field cache if it's part of a
1597         non-inflated generic class.
1598
1599         * domain.c, domain-internals.h: The generic sharing context is now
1600         part of the jit info data structure.  Added two accessor
1601         functions.
1602
1603 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
1604
1605         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
1606         the array Get/Set/Address methods, since the JIT inlines them.
1607
1608         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
1609
1610         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
1611         (mono_image_init): Initialize runtime_invoke_direct_cache.      
1612
1613         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1614         mono_marshal_get_delegate_invoke signature change.
1615
1616         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
1617         an additional argument. Add support for invoking abstract methods.
1618
1619         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
1620
1621         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
1622
1623 2007-11-09  Mark Probst  <mark.probst@gmail.com>
1624
1625         * class.c: Do field layout for open generic classes as well.
1626
1627 2007-11-09  Mark Probst  <mark.probst@gmail.com>
1628
1629         * gc.c, gc-internal.h: Don't finalize threadpool threads with
1630         other objects, because the threadpool is still around.  Put them
1631         in a list instead and after finalizing all other objects in the
1632         root domain shut down the thread pool and then finalize the
1633         threads.  Fixes bug #337383.
1634
1635         * threads.c, thread-types.h: New mono_thread_create_internal()
1636         function for marking a thread with the threadpool flag before it
1637         started.  Set synch_cs to NULL after freeing it.
1638
1639         * threadpool.c: Mark threadpool threads before they start.
1640
1641 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1642
1643         * reflection.h, reflection.c: don't export random functions
1644         and lazy load dbnull and missing objects.
1645
1646 2007-11-07  Jonathan Chambers <joncham@gmail.com>
1647
1648         * class.c: Initialize COM types if COM interfaces
1649         are present (not just COM classes).
1650         
1651         Code is contributed under MIT/X11 license.
1652
1653 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
1654         * reflection.c:
1655         create_dynamic_mono_image: hook module profiler events (dynamic case).
1656         mono_image_basic_init: hook assembly profiler events (dynamic case).
1657
1658 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
1659         * profiler.c:
1660         simple_appdomain_unload: completely terminate the profiler
1661         instead of only processing the statistical samples.
1662         simple_shutdown: make sure this is really called exactly once,
1663         even in multithreaded applications, and always listen to
1664         appdomain events.
1665         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
1666         here, the "[un]load" functions will do it.
1667         Fixes bugs #333791 and #325261.
1668
1669 2007-11-07  Geoff Norton  <gnorton@novell.com>
1670
1671         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
1672         rather than depend on __APPLE__.
1673
1674 2007-11-07  Mark Probst  <mark.probst@gmail.com>
1675
1676         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
1677
1678 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
1679
1680         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
1681         UTF16 MonoString. Fix the crash from bug #335488
1682
1683 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
1684
1685         * marshal.c: Correct (for non-Win32 OS) length != size in 
1686         mono_string_from_bstr. Fix #339530.
1687
1688 2007-11-06  Geoff Norton  <gnorton@novell.com>
1689
1690         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
1691         to succeed
1692
1693 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
1694
1695         * process.c: Added run-time GetProcessId API detection for Windows.
1696
1697 2007-11-04  Miguel de Icaza  <miguel@novell.com>
1698
1699         * reflection.c  (mono_param_get_objects): If a parameter has the
1700         attribute [System.Runtime.InteropServices.Optional] we should
1701         set the DefaultValue of the ParameterInfo to be
1702         System.Reflection.Missing instead of DBNull.
1703
1704         See bug #339013.
1705
1706         (mono_get_reflection_missing_object): New method,
1707         returns the System.Reflection.Missing.Value singleton instance.
1708
1709 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
1710
1711         * culture-info-table.h : regenerated.
1712
1713 2007-11-02  Jonathan Chambers <joncham@gmail.com>
1714
1715         * icall.c: Use GetEnvironmentStrings on windows
1716         so we are using the same environment block as 
1717         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
1718         #333740.
1719         
1720         Code is contributed under MIT/X11 license.
1721
1722 2007-10-31  Martin Baulig  <martin@ximian.com>
1723
1724         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
1725
1726         * mono-debug-debugger.h
1727         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
1728
1729 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
1730
1731         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
1732         classes.
1733
1734 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
1735
1736         * culture-info-table.h : regenerated.
1737
1738 2007-10-30  Robert Jordan  <robertj@gmx.net>
1739
1740         * icall-def.h, icall.c:
1741         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
1742
1743         Code is contributed under MIT/X11 license.
1744
1745 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
1746
1747         * class.c (mono_class_setup_vtable): Find the inflated methods in the
1748         inflated class instead of inflating them again.
1749         
1750         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
1751         dynamic case.
1752
1753         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
1754         Call setup_supertypes () after klass->parent is set.
1755         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
1756
1757         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
1758         for inflated instances of not yet created dynamic generic classes.
1759         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
1760         times from inflated_method.
1761         (methodbuilder_to_mono_method): Ditto.
1762
1763 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1764
1765         * gc.c: code cleanup and removed old untested option of not creating the
1766         finalizer thread.
1767
1768 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
1769
1770         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
1771         creating a jump trampoline for dynamic methods.
1772
1773 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
1774
1775         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
1776         generic TypeBuilders when called from another method of the same type (bug #335131).
1777
1778
1779 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
1780
1781         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
1782         doesn't seem to work perfectly.
1783         
1784         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
1785         called multiple times.
1786         (methodbuilder_to_mono_method): Ditto.
1787         (resolve_object): Inflate FieldBuilder's.
1788
1789 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1790
1791         * string-icalls.c, string-icalls.h, appdomain.c: patch from
1792         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
1793         RemoveEmptyEntries in the string.Split implementation (bug #322375).
1794
1795 2007-10-26  Dick Porter  <dick@ximian.com>
1796
1797         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
1798         Thread initialisation changes
1799
1800 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
1801
1802         * verify.c: fix compatibility check between arrays and System.Array
1803
1804 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
1805
1806         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
1807         too. Fixes #336999.
1808
1809 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
1810
1811         * object.c (mono_value_box): Use typed allocation here.
1812
1813 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
1814
1815         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
1816         trampoline instead of compiling the method right away.
1817
1818         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
1819
1820 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
1821
1822         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
1823         related fields for dynamic classes. Fixes #334493.
1824
1825 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
1826
1827         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
1828         
1829         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
1830
1831         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
1832         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
1833
1834         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
1835
1836         * reflection.c (create_generic_typespec): Initialize klass->generic_container
1837         if needed.
1838         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
1839
1840 2007-10-18  Jonathan Chambers <joncham@gmail.com>
1841
1842         * marshal.c: Use correct key when removing item
1843         from ccw_hash.
1844         
1845         Code is contributed under MIT/X11 license.
1846
1847 2007-10-17  William Holmes  <billholmes54@gmail.com>
1848
1849         *marshal.c: Adding a case to marshal booleans to U1
1850
1851         Code is contributed under MIT/X11 license.
1852
1853 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
1854
1855         * class.c (mono_class_from_name): Search the modules compromising dynamic
1856         assemblies. Fixes #331601.
1857
1858 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
1859
1860         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
1861         exception if the type name contains an assembly component. Fixes #334203.
1862
1863         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
1864         modules inside dynamic assemblies. Fixes #334200.
1865         
1866         * reflection.c: Set image->public_key and image->public_key_length;
1867
1868         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
1869         fields.
1870
1871         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
1872         
1873 2007-10-16  Mark Probst  <mark.probst@gmail.com>
1874
1875         * metadata.c: Implemented correct comparing of generic classes.
1876         An inflated generic class can be equal to a non-inflated one if it
1877         is inflated with generic type variables as type arguments.  Fixes
1878         bug #333798.
1879
1880 2007-10-15  Dick Porter  <dick@ximian.com>
1881
1882         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
1883         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
1884         81646.
1885
1886         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
1887         instead of a monitor lock.  This means that monitor_try_enter and
1888         co can set the thread state safely.
1889         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
1890         thread_interrupt_requested, so interrupt actually works.
1891
1892         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
1893         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
1894         state accessor function
1895
1896 2007-10-15  Martin Baulig  <martin@ximian.com>
1897
1898         * mono-debug.h
1899         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
1900         the debugger with the current runtime.
1901
1902 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
1903
1904         * object.c, object-internals.h: added the ability to set a single
1905         trampoline for all the slots in a vtable.
1906
1907 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1908
1909         * marshal.c: deal with a possible race condition during multicast
1910         delegate invocation.
1911
1912 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1913
1914         * class.c: ensure value type methods don't have the synchronized
1915         flag set.
1916
1917 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
1918
1919         * string-icalls.c, string-icalls.h: reverted unapproved patch that
1920         breaks the build.
1921
1922 2007-10-11  Joel Reed  <joelwreed@comcast.com>
1923
1924         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
1925         to take an options parameter so that empty entries can be removed during
1926         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
1927
1928 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
1929
1930         * marshal.c: make sure we don't store the signature from a dynamic
1931         method into the runtime invoke cache (bug #327189).
1932
1933 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1934
1935         * marshal.c: make sure the wrapper methods are properly initialized.
1936
1937 2007-10-11  Mark Probst  <mark.probst@gmail.com>
1938
1939         * metadata.c, metadata-internals.h: Generalized
1940         mono_type_stack_size() to mono_type_stack_size_internal() which
1941         takes an additional argument specifying whether it allows open
1942         types.
1943
1944 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
1945
1946         * verify.c (do_invoke_method): handle typedbyref params
1947         correctly and check for unverifiable return values.
1948
1949         * verify.c (do_newobj): fix a warning.
1950
1951 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
1952
1953         * verify.c: don't tread typedbyref as allways unverifable,
1954         so uses, like (ld/st)loc.0 are valid. verify for the cases
1955         that it matters, like boxing related operations.
1956
1957 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
1958
1959         * verify.c: add verification of the newobj opcode. verification
1960         of delegate instantation still missing due ldftn and virldftn not
1961         pushing the function type on stack
1962
1963 2007-10-08  Mark Probst  <mark.probst@gmail.com>
1964
1965         * class-internals.h: Runtime generic context data structure
1966         definition.
1967
1968         * object.c: Initialization of runtime generic context at runtime
1969         vtable creation time.
1970
1971 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
1972         * class.c (mono_class_create_from_typedef,
1973         mono_class_from_generic_parameter, mono_ptr_class_get,
1974         mono_fnptr_class_get, mono_bounded_array_class_get)
1975         * domain.c (mono_domain_create, mono_domain_free)
1976         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
1977         * image.c (do_mono_image_load, mono_image_close):
1978         Hooked up load-unload profiler events.
1979
1980 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
1981
1982         * domain.c: track statistics about the actual amount of native code
1983         allocated.
1984
1985 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
1986
1987         * class.c: the valuetype enumerators don't have the additional
1988         supertypes interfaces.
1989
1990 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1991
1992         * class.c: need more interfaces setup for the IEnumerator<T>
1993         object created for arrays (tests/ienumerator-interfaces.2.cs).
1994
1995 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
1996
1997         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
1998
1999 2007-10-05  Alp Toker  <alp@atoker.com>
2000
2001         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
2002         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
2003         #315863.
2004
2005 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
2006
2007         * verify.c (verify_type_compatibility_full): verification of
2008         compatibility improved, validates correctly non-strict checks between
2009         native int and I4 types different than (unsigned)int32.
2010
2011         * verify.c (do_store_indirect): added, do all verification of
2012         ldind.X opcodes. 
2013
2014         * verify.c (get_load_indirect_mono_type): renamed to
2015         get_indirect_op_mono_type, as it now returns the MonoType for 
2016         ldind.X and stind.X opcodes.
2017
2018 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
2019
2020         * reflection.c: Fix the encoding of generic type definition for
2021         TypeBuilders.
2022
2023         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
2024         mono_image_typedef_or_ref but allows to specify if typespec lookups should
2025         be made. Typespec check is done prior to typeref cache lookup.
2026
2027         * reflection.c (mono_image_typedef_or_ref): now just delegate to
2028         mono_image_typedef_or_ref_full.
2029
2030         * reflection.c (encode_generic_class): encode the generic class
2031         directly instead of calling encode_type.
2032
2033         * reflection.c (encode_type): encode the generic type definition
2034         MonoClass as a generic instantiation.
2035
2036         * reflection.c (create_typespec): cache typespec tokens in
2037         the assembly->typespec cache. Don't create typespec for a generic
2038         instance MonoClass. Create typespec for the generic type defintion.
2039
2040         * reflection.c (create_generic_typespec): encode the generic
2041         class directly instead of calling encode_type.
2042
2043         * reflection.c (mono_image_create_token): encode the generic
2044         type definition not using a typespec for MonoType instances.
2045
2046
2047 2007-10-04  Raja R Harinath  <rharinath@novell.com>
2048
2049         Fix #328812
2050         * class.c (mono_image_init_name_cache): Don't return nested
2051         'protected internal' classes.
2052         (mono_class_from_name_case): Likewise.
2053
2054 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2055
2056         * icall-def.h, icall.c : get_bundled_machine_config() is now the
2057           common function used by both DefaultConfig in System.dll and
2058           InternalConfigurationHost in System.Configuration.dll.
2059
2060 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2061
2062         * class.c: automatically add to vectors only a few essential explicit
2063         generic interfaces. The rest of the interfaces that arrays should
2064         provide are currently implicitly added (but still not lazily, see the
2065         design in the discussion of bug#325495 for the details of what is
2066         needed for that). Additionally, implicit interfaces are assigned the
2067         same vtable slot as the explicit interfaces (as they are compatible):
2068         this enables huge memory savings since we don't need to instantiate
2069         as many memthods and as large vtables anymore. Also, Since
2070         GetEnumerator<T> returns an instance of a type that is required to
2071         support a similarly large set of interfaces as arrays, we add
2072         implicit interfaces and interface offset sharing support to those
2073         types, too. This change adds all the required interfaces so that
2074         the anonarray.cs test case in the bug report works (we don't add
2075         all the interfaces to arrays of arrays 3-level deep and more because
2076         of the memory requirements explained in the bug and since they are much
2077         less common: the lazy-loading support will enabled them to work, too).
2078
2079 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
2080
2081         * verify.c (merge_stacks): major clean up, all type compatibility
2082         checks are done by verify_type_compatibility. This fix my earlier lack
2083         of understanding of the CLR type system and merge_stacks no longer looks
2084         scary.
2085
2086         * verify.c: fixed some bad spelling.
2087
2088 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
2089
2090         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
2091         a given stack slock.
2092         
2093         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
2094         verify_type_compatibility_full. This removed a near indentical function and fixed
2095         handling of Int32 and IntPtr across all opcodes.
2096
2097 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2098
2099         * class.c: only vectors have the additional generic interfaces.
2100
2101 2007-10-01  Jonathan Chambers <joncham@gmail.com>
2102
2103         * mono-config.c: Use g_strcasecmp instead of
2104         strcasecmp like everywhere else to fix
2105         compilation with MSVC.
2106         
2107         Code is contributed under MIT/X11 license.
2108
2109 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2110
2111         * object.c, object-internals.h: refactored the IMT code to enable
2112         building a single slot at a time and lazily creating the IMT trampolines
2113         and thunks.
2114
2115 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
2116
2117         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
2118
2119         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
2120         Fixes #328501.
2121         
2122 2007-09-29  Raja R Harinath  <harinath@gmail.com>
2123
2124         * loader.c (method_from_methodspec): Rearrange to avoid
2125         un-necessary exposition.  Don't assert out if the method's
2126         declaring type is a generic type definition.
2127
2128 2007-09-28  Martin Baulig  <martin@ximian.com>
2129
2130         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
2131
2132 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
2133
2134         * class-internals.h: optimize field layout of MonoClass to
2135         requires less cachelines at runtime and save a few bytes on 64 bit
2136         systems.
2137
2138 2007-09-28  Jb Evain  <jbevain@novell.com>
2139
2140         * reflection.c: when encoding type names in custom attributes,
2141         if the type is a closed generic type, its generic arguments
2142         have to be serialized as AssemblyQualifiedName, so that when
2143         they are deserialized, it's possible to re-create them properly.
2144         Fixes #329450.
2145
2146
2147 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2148
2149         * object.c, class-internals.h: added delegate-creation counter.
2150
2151 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
2152
2153         * class.c: cleanup of the code that synthetizes interfaces for
2154         arrays in 2.0: saves quit a bit of corlib mempool memory.
2155         Code to fix bug #325495 ifdeffed out for now until the issues
2156         with memory usage and O(n^2) behaviour are fixed.
2157
2158 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2159
2160         * marshal.c: when possible, do not duplicate the name of the methods
2161         in the method builder and in the generated MonoMethod.
2162
2163 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
2164         * verify.c: added support for type checking ldind_* opcodes.
2165
2166 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
2167
2168         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
2169         which is used to distinguish the fully open instantiation of a TypeBuilder
2170         with the rest. This temporary hack is required to restore the property that
2171         the fully open instantiation is the same type of the generic type definition.
2172
2173         * class-internals.h (mono_generic_class_is_generic_type_definition):
2174         new function as part of the internal API.
2175
2176         * class.c (inflate_generic_type): return NULL when the generic inst is
2177         fully open. The fully open generic type is now the same as the generic type
2178         definition for non TypeBuilder types.
2179
2180         * class.c (mono_generic_class_get_class): removed assert since it is
2181         no longer valid, gklass->cached_class can point to the generic type definition.
2182
2183         * class.c (mono_generic_class_is_generic_type_definition): new.
2184
2185         * metadata.c (mono_generic_class_hash): added is_tb_open field
2186         to the hash calculation.
2187
2188         * metadata.c (free_generic_class): if the generic class is associated
2189         with the generic type definition, its field will come from the mempool and
2190         must not be freed.
2191
2192         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
2193         new, this function identifies the corner case of a TypeBuilder fully open
2194         instantiation.
2195
2196         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
2197         for lookup. Set gclass->cached_class to be the container class in case of
2198         the fully open instantiation of non TypeBuilder types.
2199
2200         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
2201         to compare generic classes.
2202
2203         * reflection.c (method_encode_methodspec): remove assert that
2204         no longer is valid.
2205
2206         * reflection.c (mono_reflection_generic_class_initialize): add
2207         an aditional assert to ensure the proper type is used.
2208
2209 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
2210
2211         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
2212         to enjoy it.
2213
2214 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
2215
2216         * verify.c (push_arg): Fixed support for ldarga
2217         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
2218         MonoType used as first arg in case of instance calls.
2219
2220 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
2221
2222         * verify.c: Support for verifying VAR and MVAR types, 
2223
2224 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
2225
2226         * icall.c (ves_icall_get_property_info): Set the reflected type of the
2227         accessors correctly.
2228
2229 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
2230
2231         * threads.c: support OSX and other systems in
2232         mono_thread_get_stack_bounds (bug #328026).
2233
2234 2007-09-25  Martin Baulig  <martin@ximian.com>
2235
2236         * mono-debug.h
2237         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
2238
2239 2007-09-24  Martin Baulig  <martin@ximian.com>
2240
2241         * mono-debug.h
2242         (MonoDebugClassEntry): Moved the definition of this struct into
2243         mono-debug.c to make it private.
2244
2245         * mono-debug.c
2246         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
2247         type table per symbol file, we don't need to store the symfile id
2248         any longer.
2249
2250 2007-09-24  Martin Baulig  <martin@ximian.com>
2251
2252         Create one type table per symbol file, since a `MonoClass *' gets
2253         invalid when its image is unloaded.
2254
2255         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
2256         (MonoDebugHandle): Added `type_table'.
2257
2258 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
2259
2260         * mempool.c, mempool.h: added mono_mempool_new_size () API
2261         to be able to specify a smaller initial size for the pool.
2262         Adjusted the code to slowly increase pool size before using
2263         the previous default size.
2264         * image.c: use a small initial size for image mempools.
2265
2266 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
2267
2268         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
2269         Fixes ##320990.
2270
2271         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
2272         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
2273
2274 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
2275
2276         * metadata.c (mono_type_create_from_typespec): Remove an invalid
2277         free. Fixes #327438.
2278
2279 2007-09-21  Raja R Harinath  <harinath@gmail.com>
2280
2281         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
2282         generic instantiations, etc.
2283         <MONO_TYPE_ARRAY>: Likewise.
2284
2285 2007-09-21  Martin Baulig  <martin@ximian.com>
2286
2287         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
2288         these structs were never defined.
2289         (MonoDebugHandle): Removed the `_priv' field, it was never used.
2290
2291 2007-09-21  Martin Baulig  <martin@ximian.com>
2292
2293         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
2294
2295 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
2296
2297         * image.c: removed the guid hash tables: we can get the same info
2298         without the additional memory usage hit (partially fixes also bug #327052).
2299
2300 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2301
2302         * profiler.h, profiler-private.h, profiler.c: add a new profiler
2303         event to handle unloading methods. After the event is called, the
2304         corresponding MonoMethod* must be considered invalid.
2305         * loader.c (mono_free_method): call the new mono_profiler_method_free
2306         event.
2307
2308 2007-09-20  Mark Probst  <mark.probst@gmail.com>
2309
2310         * domain-internals.h: New flag in MonoJitInfo which marks shared
2311         generic methods.  New hash table (shared_generics_hash) in
2312         MonoDomain to keep track of shared generic methods.  Prototypes
2313         for functions to register and lookup shared generic methods.
2314
2315         * domain.c: Support for registering and looking up shared generic
2316         methods via a hash table (shared_generics_hash) in MonoDomain.
2317
2318         * class-internals.h: New exception to signal failure of shared
2319         compilation of a generic method.  New counters for generics
2320         sharing in MonoStats.
2321
2322 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
2323
2324         * image.c, metadata-internals.h: don't keep a file descriptor open
2325         for loaded assemblies (bug#325988).
2326
2327 2007-09-19  Raja R Harinath  <rharinath@novell.com>
2328
2329         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
2330         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
2331         use the corresponding datatypes.
2332         (type_in_image): Update to changes.
2333         (CleanForImageUserData): Simplify.
2334         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
2335         Avoid quadratic behaviour in handling the "stolen" list by
2336         separating the filter predicate out, and by prepending the stolen
2337         items rather than appending them.
2338         (steal_ginst_in_image): Likewise.
2339         (mono_metadata_clean_for_image): Update to changes.
2340
2341 2007-09-19  Martin Baulig  <martin@ximian.com>
2342
2343         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
2344
2345 2007-09-19  Martin Baulig  <martin@ximian.com>
2346
2347         * mono-debug.c (mono_debug_cleanup): Don't call
2348         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
2349
2350 2007-09-19  Raja R Harinath  <harinath@gmail.com>
2351
2352         Fix crash on 'make run-test' in mcs/errors
2353         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
2354         Avoid more potential allocations in mono_class_from_mono_type.
2355         (ginst_in_image): Update to changes.
2356         (gclass_in_image): Rearrange slightly.
2357
2358 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
2359
2360         * class.c (mono_class_init): Move the code that sets up class->methods to 
2361         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
2362
2363         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
2364         canonical instance of an inflated generic signature.
2365         (mono_type_create_from_typespec): Remove an invalid free.
2366
2367         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
2368
2369 2007-09-18  Marek Habersack  <mhabersack@novell.com>
2370
2371         * domain-internals.h: added a declaration of the
2372         mono_assembly_load_full_nosearch internal function.
2373
2374         * assembly.c (mono_assembly_load_with_partial_name): use
2375         mono_try_assembly_resolve return value properly.
2376         (mono_assembly_load_full_nosearch): copied the function body from
2377         mono_assembly_load_full, without the code to invoke assembly
2378         search hooks.
2379         (mono_assembly_load_full): calls the above new function and if the
2380         assembly is not resolved, invokes the search hooks.
2381
2382         * appdomain.c (mono_runtime_init): restore the global postload
2383         assembly search handlers.
2384
2385 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
2386
2387         * class.c (mono_class_init): Make sure class->methods and class->properties
2388         are never NULL in the generics case.
2389
2390         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
2391
2392 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
2393
2394         * metadata.c (free_generic_class): Disable some code to fix the build.
2395
2396         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
2397
2398         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
2399         from the image mempool.
2400
2401         * metadata.c (free_generic_class): Free more data from the inflated class.
2402
2403         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
2404
2405         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
2406         mempool.
2407         (mono_type_create_from_typespec): Ditto.
2408
2409         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
2410         MonoImage to the caller.
2411         (mono_init_internal): Save the opened image in a global variable.
2412         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
2413
2414         * reflection.c (resolve_object): Fix a leak.
2415
2416         * metadata.c: Fix the freeing of data in the generics caches.
2417         
2418         * metadata.c (free_generic_inst): Comment this out to fix the build.
2419         (free_generic_class): Ditto.
2420
2421         * metadata.c: Free cached generic methods, instantinations and classes when
2422         they are removed from the caches.
2423         (mono_metadata_free_type): Free the type itself.
2424
2425         * class.c: Free the result of mono_class_inflate_generic_type () in a few
2426         places.
2427
2428 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2429
2430         * boehm-gc.c: restrict managed allocs to __thread supporting
2431         architectures.
2432
2433 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
2434
2435         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
2436         (mono_generic_class_get_class): Fix a leak.
2437
2438         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
2439         mono_metadata_free_type ().
2440         (mono_metadata_inflate_generic_inst): Fix a leak.
2441
2442 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2443
2444         * mono-debug.c (free_header_data): Fix a leak missed earlier.
2445
2446         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
2447         mempool.
2448
2449         * mono-debug.c (mono_debug_close_image): Fix call to 
2450         g_hash_table_remove ().
2451
2452 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2453
2454         * icall-def.h: redirect all the string ctor to the managed
2455         CreateString () methods.
2456         * string-icalls.c, string-icalls.h: removed dead code for string
2457         ctors and icalls.
2458
2459 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2460
2461         * mono-debug.c: Fix memory leaks.
2462
2463 2007-09-14  Jonathan Chambers <joncham@gmail.com>
2464
2465         * threads-types.h: Implement mono_hazard_pointer_set and 
2466         mono_hazard_pointer_clear macros using do/while(0) to fix
2467         compilation with MSVC.
2468         
2469         Code is contributed under MIT/X11 license.
2470
2471 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2472
2473         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
2474         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
2475
2476 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2477
2478         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
2479         icalls.
2480
2481 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2482
2483         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
2484         managed-code allocated as well.
2485
2486 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
2487
2488         * class.c (mono_class_is_assignable_from): Add support for generic variance.
2489
2490 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
2491
2492         * boehm-gc.c: fixed the build after the AOT changes.
2493
2494 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
2495
2496         * wrapper-types.h: Add an ALLOC wrapper type.
2497
2498         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
2499         reference managed allocator methods.
2500
2501 2007-09-12  Marek Safar  <marek.safar@gmail.com>
2502
2503         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
2504         of Type array and not MonoType, a fix suggested by Hari.
2505         
2506 2007-09-12  Jonathan Chambers <joncham@gmail.com>
2507
2508         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
2509         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
2510         
2511         Code is contributed under MIT/X11 license.
2512
2513 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2514
2515         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
2516
2517 2007-09-12  Marek Habersack  <mhabersack@novell.com>
2518
2519         * image.c (do_mono_image_open): if assembly file fails to open and
2520         MONO_IOMAP is in effect, try to find the path in a
2521         case-insensitive way.
2522
2523         * appdomain.c (mono_runtime_init): do not install postload hooks -
2524         tests show that MS.NET doesn't use anything of that sort to
2525         trigger the AppDomain.AssemblyResolve event.
2526         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
2527         made non-static.
2528         (mono_runtime_init): init portability helpers here.
2529
2530         * assembly.c (mono_assembly_load_with_partial_name): if other   
2531         attempts fail, trigger the AppDomain.AssemblyResolve event handler
2532         to resolve the assembly.
2533
2534         * domain-internals.h: added mono_try_assembly_resolve and marked
2535         it as internal.
2536
2537 2007-09-11  Jb Evain  <jbevain@novell.com>
2538
2539         * object-internals.h (MonoReflectionDynamicMethod): add
2540         a `MonoReflectionType *owner` field. The owner is used
2541         * reflection.c:
2542         (mono_reflection_create_dynamic_method): use the owner of the dynamic
2543         method as the class declaring the dynamic method.
2544         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
2545         dynamic method to the declaring type of the methodbuilder.
2546
2547 2007-09-11  Mark Probst  <mark.probst@gmail.com>
2548
2549         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
2550         rules for calling methods via reflection.
2551
2552 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
2553
2554         * reflection.c (resolve_object): Add support for MonoGenericClass. 
2555         Inflate MonoType's.
2556
2557 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
2558
2559         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
2560         provide a managed method that does fast allocations without needing
2561         a managed->unmanaged transition. Boehm GC implementation currently
2562         enabled for ptrfree objects on sane architectures.
2563
2564 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2565
2566         * marshal.c, marshal.h: exported a couple of useful functions and
2567         added mono_mb_get_label () to easily handle backward branches.
2568
2569 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
2570
2571         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
2572
2573 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2574
2575         * loader.c (find_method): Fixed the regression introduced while
2576         fixing bug #81466.
2577
2578 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
2579
2580         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
2581         well.
2582         
2583         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
2584         icall.c reflection.c: Pass a MonoGenericContext argument to 
2585         mono_lookup_dynamic_token ().
2586
2587         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
2588         #82744.
2589         
2590 2007-09-09  Robert Jordan  <robertj@gmx.net>
2591
2592         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
2593         for generic methods.
2594
2595         * object.c (mono_object_get_virtual_method): Handle generic methods.
2596         Fixes bug #78882.
2597
2598         Code is contributed under MIT/X11 license.
2599
2600 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
2601
2602         * image.c: fix locking in mono_image_load_file_for_image ().
2603
2604 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
2605
2606         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
2607         used only as a cache: added an icall to fill it.
2608
2609 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
2610
2611         * reflection.h: exposed mono_reflection_free_type_info
2612         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
2613         since mono_reflection_bind_generic_parameters makes a copy of it.
2614         * reflection.c (free_type_info): subinfos should be freed.
2615         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
2616         made non static.
2617         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
2618         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
2619         this fixes #82695 and #81726.
2620    
2621
2622 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
2623
2624         * process.h, process.c:  added support for user profile/info in
2625           ProcessStartInfo. For now only Windows works.
2626
2627 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2628
2629         * metadata.c: consider the generic arguments when comparing
2630         signatures (bug #82614).
2631
2632 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2633
2634         * cil-coff.h, image.c: updated assembly loader to cope with the
2635         PE32+ 64 bit file format.
2636
2637 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2638
2639         * assembly.c, class.c, domain.c, loader.c: remove useless
2640         inclusion of cil-coff.h.
2641
2642 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
2643
2644         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
2645         if interface is marked with CoClassAttribute. 
2646    
2647         Code is contributed under MIT/X11 license.
2648
2649 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2650
2651         * sgen-gc.c: ensure no object from the to space is copied again or finalized
2652         if it's seen twice in major collections.
2653
2654 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2655
2656         * sgen-gc.c: big objects are not copied to the gray area, but they
2657         need to be considered for scanning, too, if they are brought alive
2658         by an object ready for finalizations or a survived one.
2659
2660 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2661
2662         * sgen-gc.c: properly account the number of disappearing links when
2663         they are nullified.
2664
2665 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2666
2667         * sgen-gc.c: share the code to scan the registered roots between the
2668         different types of collections.
2669
2670 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
2671
2672         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
2673
2674 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
2675
2676         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
2677         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
2678
2679 2007-08-28  Mark Probst  <mark.probst@gmail.com>
2680
2681         * security-manager.c (mono_security_manager_get_methods):
2682         LinkDemandSecurityException now has 2 arguments instead of 3.
2683
2684 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
2685
2686         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
2687         platforms which need it.
2688
2689 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2690
2691         * sgen-gc.c: unregister thread data structures with a pthread_key_t
2692         dtor.
2693
2694 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2695
2696         * threads.c: free the thread static data on thread exit.
2697
2698 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
2699
2700         * class.c: walk the hierarchy to find the generic definition for
2701         a class (fixes runtime part of bug #82498).
2702
2703 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
2704
2705         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
2706         ...
2707
2708         * image.c (mono_image_close): Here. Hopefully fixes #82510.
2709
2710 2007-08-24  Mark Probst  <mark.probst@gmail.com>
2711
2712         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
2713
2714 2007-08-24  Robert Jordan  <robertj@gmx.net>
2715
2716         * appdomain.c: don't perform the ':'->';' substitution on Win32.
2717
2718 2007-08-24  Jb Evain  <jbevain@novell.com>
2719
2720         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
2721         for byref types.
2722
2723 2007-08-24  Mark Probst  <mark.probst@gmail.com>
2724
2725         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
2726         #82286.
2727
2728 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
2729
2730         * assembly.c: Fix a warning.
2731         
2732 2007-08-23  Marek Habersack  <mhabersack@novell.com>
2733
2734         * appdomain.c: parse the <runtime> section looking for the probing
2735         element with the 'privatePath' attribute, which sets additional
2736         directories in which the runtime should look for assemblies.
2737
2738 2007-08-23  Robert Jordan  <robertj@gmx.net>
2739
2740         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
2741         Fixes #82499.
2742
2743 2007-08-23  Martin Baulig  <martin@ximian.com>
2744
2745         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
2746         _mono_debug_init_corlib() and remove it from the header file.
2747
2748 2007-08-23  Martin Baulig  <martin@ximian.com>
2749
2750         * mono-debug-debugger.c
2751         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
2752         don't notify the debugger about it.
2753
2754         * mono-debug-debugger.h
2755         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
2756
2757 2007-08-23  Robert Jordan  <robertj@gmx.net>
2758
2759         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
2760         Code is contributed under MIT/X11 license.
2761
2762 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2763
2764         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
2765
2766 2007-08-22  Martin Baulig  <martin@ximian.com>
2767
2768         * mono-debug.c: Store debugging info on a per-domain basis and
2769         free it on domain unload.  Add support for unloading symbol files.
2770
2771         * mono-debug.h
2772         (MonoDebugList): New typedef.
2773         (MonoSymbolTable):
2774         - add `data_tables and `type_table'.
2775         - replace 'symbol_files' and `num_symbol_files' with a
2776           `MonoDebugList *'.
2777         (mono_debug_data_table): Removed.
2778         (mono_debug_list_add): New public function.
2779         (mono_debug_list_remove): New public function.
2780         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
2781         (mono_debug_init_2_memory): Renamed into
2782         mono_debug_open_image_from_memory().
2783         (mono_debug_close_image): New public function.
2784         (mono_debug_domain_create): Likewise.
2785         (mono_debug_domain_unload): Likewise.
2786         (MONO_DEBUGGER_VERSION): Bump to 60.
2787
2788         * mono-debug-debugger.h
2789         (MonoDebuggerEvent):
2790         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
2791         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
2792         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
2793         - rename `THREAD_CREATED' and `THREAD_EXITED' into
2794           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
2795         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
2796           meaning.
2797         (mono_debugger_add_symbol_file): Removed.
2798         (mono_debugger_add_type): Removed.
2799         (mono_debugger_lookup_type): Removed.
2800         (mono_debugger_lookup_assembly): Removed.
2801
2802         * domain.c
2803         (mono_domain_create): Call mono_debug_domain_create().
2804         (mono_init_internal): Call mono_debug_init_corlib().
2805
2806         * assembly.c
2807         (mono_assembly_close): Call mono_debug_close_image().
2808
2809 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
2810
2811         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
2812         mmap call.
2813
2814 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
2815
2816         * sgen-gc.c: ensure section->pin_queue_end is initialized
2817         correctly when non pinning objects in the section have been found.
2818
2819 2007-08-22  Marek Habersack  <mhabersack@novell.com>
2820
2821         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
2822         containing a list of directories separated by ':'. MSDN docs say
2823         the directories should be separated with ';'. Part of a bugfix for
2824         bug #81446
2825
2826 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
2827
2828         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
2829         it should MonoType and not MonoClass.
2830
2831 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
2832
2833         * culture-info-table.h : regenerated.
2834
2835 2007-08-20  William Holmes  <billholmes54@gmail.com>
2836
2837         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
2838          to call ReplaceFile Kernel32 on windows or in io-layer.
2839         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
2840         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
2841          as an internal call.
2842
2843         Code is contributed under MIT/X11 license.
2844
2845 2007-08-20  Jb Evain  <jbevain@novell.com>
2846
2847         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
2848         and MONO_EXCEPTION_FIELD_ACCESS.
2849
2850         * debug-helpers.[c|h]: new mono_field_full_name function.
2851
2852 2007-08-20  Mark Probst  <mark.probst@gmail.com>
2853
2854         * class.c: Removed class_security_level() and moved it to
2855         security-core-clr.c.
2856
2857         * security-core-clr.c, security-core-clr.h: class_security_level()
2858         is now public and renamed to mono_security_core_clr_class_level().
2859         It also looks for security attributes in the classes a class is
2860         nested in.
2861
2862 2007-08-20  Mark Probst  <mark.probst@gmail.com>
2863
2864         * security-core-clr.c, security-core-clr.h: CoreCLR security
2865         utility functions.
2866
2867         * Makefile.am: Added security-core-clr.[ch].
2868
2869         * security-manager.c, security-manager.h: Functions and enum for
2870         setting and getting the security mode.
2871
2872         * class.c: CoreCLR security checks.
2873
2874 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
2875
2876         * icall-def.h, process.c, process.h: implemented icall to get
2877         user/system processor times.
2878
2879 2007-08-17  Mark Probst  <mark.probst@gmail.com>
2880
2881         * domain.c, threads.c, class-internals.h, domain-internals.h: New
2882         reader-lock-free jit_info_table.
2883
2884 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
2885
2886         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
2887
2888         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
2889
2890         * object-internals.h (MonoException): Add missing _data member.
2891
2892 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
2893
2894         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
2895         checking that only methods with matching qname or fqname are picked
2896         from implemented interfaces.
2897
2898 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2899
2900         * verify.c (do_newarr):added, do type verification of
2901         newarr ops, push the right value on the eval stack.
2902         * verify.c (mono_method_verify): use do_newarr
2903
2904
2905 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2906
2907         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
2908         factored the common code into get_boxable_mono_type, which
2909         is now using mono_type_get_full, this fixed byref related tests.
2910
2911 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2912
2913         * class.c: added mono_type_get_full, this function has the same
2914         behavior of mono_class_get_full but the returned MonoType has
2915         all metadata of the associated token in case of a typespec token.
2916         * class.c: added mono_type_retrieve_from_typespec, used by 
2917         mono_type_get_full to retrieve the token type.
2918         * class.c (mono_class_create_from_typespec): changed to use
2919         mono_type_retrieve_from_typespec.
2920         * class.c (mono_ldtoken): changed to use mono_type_get_full
2921         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
2922         * class-internals.h: exported mono_type_get_full for internal use.
2923
2924 2007-08-16  Jb Evain  <jbevain@novell.com>
2925
2926         * domain.c (supported_runtimes): add entry for
2927         the 'moonlight' runtime version.
2928
2929 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2930
2931         * verify.c (mono_method_verify): small typo sliped in.  
2932
2933 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2934
2935         * verify.c (do_unbox_value): added, do type verification of
2936         unboxing ops
2937         * verify.c (mono_method_verify): use do_unbox_value
2938
2939
2940 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2941
2942         * verify.c (dump_stack_value): fixed typo, was printing string
2943         instead of object on stack.
2944         * verify.c (do_box_value): moved the byref check up as it leads
2945         to invalid code and should be done earlier.
2946         * verify.c: improved error messages for and ldobj
2947
2948 2007-08-15  William Holmes  <billholmes54@gmail.com>
2949
2950         * marshal.c (emit_marshal_custom): Omit the call to 
2951           marshal_native_to_managed when calling native to managed 
2952           and the argument is specified as an out argument.
2953
2954         Code is contributed under MIT/X11 license.
2955
2956 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2957
2958         * verify.c: fixed the type checks for generics, function pointers and vectors.
2959         Added type verification for ldobj and ldtoken. The verifier
2960         would segfault if header or signature of a method contained references
2961         to non-existant types.
2962
2963 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
2964
2965         * marshal.c (cominterop_get_ccw): Patch from
2966         Bill Holmes to no walk up interface hierarchy. 
2967         All parent methods should be present in the interface for COM.
2968    
2969         Code is contributed under MIT/X11 license.
2970
2971 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
2972
2973         * marshal.c (emit_marshal_com_interface): Patch from
2974         Bill Holmes to handle COM Interfaces as return values
2975         for native->managed calls.
2976    
2977         Code is contributed under MIT/X11 license.
2978
2979 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
2980
2981         * marshal.c (cominterop_get_idispatch_for_object): Implement
2982         for runtime callable wrappers.
2983    
2984         Code is contributed under MIT/X11 license.
2985
2986 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
2987
2988         * pedump.c (main): changed from mono_init to mono_init_from_assembly
2989         so 2.0 types are accessible
2990
2991
2992 2007-08-13  Miguel de Icaza  <miguel@novell.com>
2993
2994         * domain.c (mono_init_internal): Call mono_assembly_load_friends
2995         once we load mscorlib.   Due to the order in which we initialize,
2996         the mono_assembly_load_full routine that loads mscorlib did not
2997         load friends.   We now load it once we load the
2998         mono_defaults.internals_visible_class class. 
2999
3000         * assembly.c: Expose the mono_load_friend_assemblies method.
3001
3002 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
3003
3004         * verify.c: improved the handling of boxing, better
3005         type checking for unary ops and conversion. Fix bug
3006         regarding managed pointer compatibility checking
3007
3008 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
3009
3010         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
3011
3012         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
3013
3014 2007-08-09  Raja R Harinath  <rharinath@novell.com>
3015
3016         * reflection.c (dup_type): Remove.
3017         * class.c (dup_type): Remove.
3018         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
3019         instead of the dodgy 'dup_type'.
3020         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
3021         handle the case where 'dup_type' needed the second argument.
3022
3023 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
3024
3025         * domain.c: Fix a warning.
3026
3027 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
3028
3029         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
3030         checking that methods with the same fqname are not overridden
3031         with a method from an ancestor.
3032
3033 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
3034
3035         * threads.c (free_thread_static_data_helper): Avoid a crash if
3036         thread->static_data is not yet set.
3037
3038 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
3039
3040         * marshal.c: Use correct image when emitting
3041         native wrapper for COM calls.
3042    
3043         Code is contributed under MIT/X11 license.
3044
3045 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
3046
3047         * icall-def.h, security.c, security.h :
3048           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
3049
3050 2007-08-07  Martin Baulig  <martin@ximian.com>
3051
3052         * mono-debug-debugger.h
3053         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
3054
3055         * domain.c (mono_domain_free): Call
3056         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
3057
3058 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
3059
3060         * verify.c (check_underflow, check_overflow): error message now returns IL offset
3061         * verify.c (in_same_block): code should test if either offset is inside the clauses
3062         * verify.c (mono_method_verify): push the exception into the eval stack of exception
3063         and filter blocks
3064
3065 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
3066
3067         * image.c (mono_image_close): Fix a leak.
3068
3069         * object.c (mono_runtime_invoke_array): Avoid using alloca.
3070
3071         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
3072
3073 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
3074
3075         * domain.c, threads.c, threads-types.h: fix memory retention issue
3076         with thread static variables not being cleared on domain unload.
3077         Reuse thread static slots after domain unload.
3078
3079 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
3080
3081         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
3082         nullable type.
3083
3084         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
3085         now done in mono_runtime_invoke_array.
3086
3087         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
3088         receiver is a nullable type.
3089
3090         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
3091         generic parameter.
3092
3093 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
3094
3095         * marshal.c: Implement COM Objects as return type for 
3096         managed->unmanaged calls. Added Release calls for COM Object
3097         out/return values in managed->unmanaged calls.
3098
3099         Code is contributed under MIT/X11 license.
3100
3101 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
3102
3103         * threads.h, threads-type.h: move the hazard pointer declarations
3104         to the private header.
3105
3106 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
3107
3108         * file-io.c, appdomain.c: memory leak fixes.
3109
3110 2007-08-02  Dick Porter  <dick@ximian.com>
3111
3112         * socket-io.c
3113         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
3114         SO_REUSEADDR setting into io-layer/sockets.c.
3115
3116 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
3117
3118         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
3119         from Object when called on a generic parameter. Fixes #82211.
3120
3121 2007-08-01  Dick Porter  <dick@ximian.com>
3122
3123         * file-io.c (convert_share): Test FileShare values bit-by-bit.
3124         Fixes bug 79250 yet again.
3125
3126 2007-07-30  Martin Baulig  <martin@ximian.com>
3127
3128         Merged the `debugger-dublin' branch.
3129
3130         * mono-debug.h
3131         (MonoDebugDataTable): New typedef.
3132         (MonoDebugMethodAddressList): New typedef.
3133         (MonoDebugWrapperData): Removed.
3134         (MonoDebugSymbolTable): Removed `current_data_table',
3135         `current_data_table_size', `current_data_table_offset'.
3136         (MonoDebugDataItemType): Moved into mono-debug.c.
3137         (MonoDebugMethodJitInfo): Remove `address'.
3138         (mono_debug_data_table): New global variable.
3139         (mono_debug_lookup_method_addresses): New public function.
3140         (mono_debug_find_method): Take a `MonoMethod *', not a
3141         `MonoDebugMethodInfo *'.
3142
3143         * mono-debug.c: Drop support for the old symbol tables.
3144
3145 2007-06-28  Martin Baulig  <martin@ximian.com>
3146
3147         * mono-debug.c (mono_debug_debugger_version): New public variable.
3148
3149 2007-07-31  William Holmes  <billholmes54@gmail.com>
3150
3151         * metadata.c Changed mono_type_create_from_typespec to not insert
3152           the type into the hash map until after
3153           do_mono_metadata_parse_type has completed.
3154         Fixes Bug #82194
3155         Code is contributed under MIT/X11 license.
3156
3157 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
3158
3159         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
3160         generic parameter. Fixes #82211.
3161
3162 2007-07-27  Jb Evain  <jbevain@novell.com>
3163
3164         * pedump.c (dump_metadata, dump_metadata_header): dump
3165         versions contained in the metadata header.
3166
3167 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3168
3169         * threads.c: register small_id_table with the GC.
3170
3171 2007-07-27  Mark Probst  <mark.probst@gmail.com>
3172
3173         * threads.c, threads.h, class-internals.h, object-internals.h:
3174         Hazard pointers, to be used by lock-free parallel algorithms.
3175
3176 2007-07-26  Dick Porter  <dick@ximian.com>
3177
3178         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
3179         routine on non-windows platforms, as I've not managed to think of
3180         a non-kludgy way of doing this.  Finishes off bug 78739.
3181
3182 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
3183
3184         * object.c: properly setup interface_bitmap in proxy vtables.
3185
3186 2007-07-25  Marek Habersack  <mhabersack@novell.com>
3187
3188         * appdomain.c (get_shadow_assembly_location): do not use TickCount
3189         to create unique shadow copy target directories, use the domain's
3190         serial number instead. Each domain gets a unique target directory
3191         that way.
3192
3193         * domain.c (mono_domain_create): added code to increment domain
3194         shadow copy serial number and cache the value in the current
3195         domain structure.
3196
3197         * domain-internals.h (struct _MonoDomain): added a new field -
3198         shadow_serial to hold the serial number used in generation of
3199         shadow-copy directories. This is to make sure that the directory
3200         name is unique for each and every domain created. We avoid a race
3201         condition with overriding assemblies already in use by other app
3202         domains.
3203
3204 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
3205
3206         * class.c (mono_bounded_array_class_get): fixed memory leak when 
3207         binding generic parameters.
3208
3209 2007-07-24  Raja R Harinath  <rharinath@novell.com>
3210
3211         * metadata.c (do_mono_metadata_parse_generic_class): Use
3212         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
3213         error.
3214
3215 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
3216
3217         * loader.c, class-internals.h, reflection.c: removed the per-method
3218         generics hashtable: we use the global one through the call of
3219         mono_class_inflate_generic_method ().
3220
3221 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
3222
3223         * class.c, metadata.c, class-internals.h: introduce yet another
3224         generics global cache for inflated methods (fixes 98% of the perf
3225         issue in bug #81806).
3226
3227 2007-07-23  Raja R Harinath  <rharinath@novell.com>
3228
3229         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
3230         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
3231         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
3232         return a MonoGenericInst containing (a copy) of those types.
3233         (mono_metadata_inflate_generic_inst): Update to changes.
3234         (mono_metadata_parse_generic_inst): Likewise.
3235         (mono_get_shared_generic_inst): Likewise.
3236         * reflection.c (mono_class_bind_generic_parameters): Likewise.
3237         (mono_reflection_bind_generic_method_parameters): Likewise.
3238         * metadata-internals.h: Likewise.
3239         * icall.c (free_generic_context): Kill.
3240         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
3241
3242         * reflection.c (reflection_methodbuilder_to_mono_method): Use
3243         mono_metadata_type_dup.
3244         * marshal.c (mono_mb_create_method): Likewise.
3245
3246         * metadata.c (mono_metadata_type_dup): Rename from
3247         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
3248         MonoImage.  Handle a few more cases, esp. when no mempool is given.
3249         * marshal.c, metadata-internals.h: Update to changes.
3250
3251 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3252
3253         * class.c: fixed a small leak for array classes and removed warning.
3254
3255 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
3256
3257         * loader.c (mono_method_get_param_token): Make this work on generic methods.
3258         Return 0x8000000 for return parameters. Fixes #82161.
3259
3260 2007-07-21  Marek Habersack  <grendello@gmail.com>
3261
3262         * appdomain.c (get_shadow_assembly_location): append the current
3263         ticks value to the path. Avoids overwriting the same assemblies by
3264         several threads at the same time.
3265
3266 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3267         and Raja R Harinath  <rharinath@novell.com>
3268
3269         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3270         Simplify slightly.
3271         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
3272         property for testing if a method is a generic method definition.
3273
3274 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3275
3276         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
3277
3278 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3279
3280         * verify.c: used function from private branch, reverted to the one in class.h 
3281
3282 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3283
3284         * verify.c: a typo slipped in and the code wont compile
3285
3286 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3287
3288         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
3289         disabled box instruction as it is doing the wrong thing
3290         improved stack dump messages, now it is easier to debug type related issues
3291
3292
3293 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
3294
3295         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
3296
3297 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3298
3299         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
3300         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
3301         grouped with class and valuetype. This change will simply 
3302         the code as it should be handled just like unmanaged pointers.
3303
3304 2007-07-19  Mark Probst  <mark.probst@gmail.com>
3305
3306         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
3307
3308 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3309
3310         * verify.c: several stack merge issues fixed, reference comparisons now
3311         check the type size. strict type check now works correctly.
3312         added more uses of IS_MANAGED_POINTER macro.
3313         fixed issues pointed by running the test suite against .net.
3314         
3315
3316 2007-07-19  Mark Probst  <mark.probst@gmail.com>
3317
3318         * class.c, loader.c, class-internals.h: Removed the
3319         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
3320         defines.
3321
3322         * icall.c: Better error checking in some internal reflection
3323         methods.
3324
3325 2007-07-18  William Holmes  <billholmes54@gmail.com>
3326
3327         * filewatcher.c : removed unused variable 'filename' in 
3328           ves_icall_System_IO_FSW_SupportsFSW
3329
3330 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
3331
3332         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
3333         obsolete, removed.
3334
3335 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
3336
3337         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
3338         
3339         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
3340
3341 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
3342
3343         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
3344         Implement generics support.
3345         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3346
3347         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
3348         type_args and method_args arguments.
3349         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
3350         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3351         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
3352
3353 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
3354
3355         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
3356           It adds a rootimage parameter to mono_reflection_get_type_internal,
3357           adds new function mono_reflection_get_type_with_rootimage and use
3358           the rootimage to resolve the types instead of the current image
3359
3360 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3361
3362         * culture-info-table.h: Forgot to update after r78304.
3363
3364 2007-07-13  Raja R Harinath  <rharinath@novell.com>
3365
3366         * class.c (mono_class_is_open_constructed_type)
3367         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
3368
3369 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
3370
3371         * class.c (mono_bounded_array_class_get):  method fails if used with
3372         an incomplete TypeBuilder enum (no basetype field), fixed it by 
3373         avoiding calculating the size for such array as it cannot be instantiated.
3374         Fix bug #82015
3375
3376 2007-07-12  Raja R Harinath  <rharinath@novell.com>
3377
3378         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
3379         field.
3380         * metadata.c, reflection.c: Update to changes.
3381
3382 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
3383
3384         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
3385         mono_class_is_valid_enum, they are used to valide a enum when loading.
3386         * reflection.c: used new functions to throw TypeLoadException when and
3387         invalid enum is build with TypeBuilder. Fixes #82018
3388   
3389 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
3390
3391         * object.c: forgot commit of mono_class_setup_methods () to access
3392         iface->methods.
3393         * object-internals.h: added a few more handy fields to
3394         MonoIMTCheckItem.
3395
3396 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
3397
3398         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
3399         iface->methods.
3400
3401 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
3402
3403         * class-internals.h, object-internals.h, object.c: IMT-based
3404         interface invocation core from Massimiliano Mantione
3405         (massi@ximian.com) with a reworked arch-specific interface,
3406         bsearch implementation and a few bugfixes and memory savings by me.
3407
3408 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
3409
3410         * class.c (mono_class_create_from_typedef): mono would segfault if 
3411         an enum did not have a __value field. It now throws a TypeLoadException
3412         for such cases. Fix bug #82022
3413
3414 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
3415
3416         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
3417
3418 2007-07-09  Mark Probst  <mark.probst@gmail.com>
3419
3420         * class.c (mono_class_init): If a class is already inited but has
3421         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
3422
3423 2007-07-09  Mark Probst  <mark.probst@gmail.com>
3424
3425         * class.c: Properly handle the case of an unimplemented interface
3426         method.  Fixes: 81673.
3427
3428 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
3429
3430         * class-internals.h, object.c: cleanup patch from massi: use
3431         MonoVTable->interface_bitmap since the vtable interfaces offset array
3432         is going away.
3433
3434 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
3435
3436         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
3437         GetMDStreamVersion icall instead.
3438
3439 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
3440
3441         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
3442         not use mono_dl_build_path() with a full library name: makes
3443         fallbacks to libgaim and libfam work.
3444
3445 2007-07-06  William Holmes  <billholmes54@gmail.com>
3446
3447         * assembly.c: Added a continue statement in probe_for_partial_name when
3448          parse_assembly_directory_name fails.  Fixes : 82002
3449
3450 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
3451
3452         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
3453         and added a verification  for TYPEDBYREF.
3454         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
3455         make native int interchangeable with int32 and some small cleanup and formating.
3456         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
3457         handle byref of byref.
3458         * verify.c (push_local): handle byref of byref.
3459         * verify.c (do_binop): invalid mix of values is unverifiable
3460         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
3461         added visibility checks
3462         * verify.c (field related method): added visibility checks
3463         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
3464
3465 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
3466
3467         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
3468         string.
3469
3470 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
3471
3472         * profiler.c (mono_profiler_load): Fix an off-by-one error.
3473
3474         * marshal.c (emit_marshal_string): When returning a string from managed code,
3475         allways make a copy even for unicode strings. Fixes #81990.
3476
3477 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
3478
3479         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
3480         of byref generic inst types (bug #81997).
3481
3482 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
3483
3484         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
3485         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
3486
3487 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
3488
3489         * marshal.c (emit_marshal_string): Add support for unicode strings in
3490         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
3491
3492 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
3493
3494         * verify.c: field load/store are now verified, missing only access checks now
3495
3496 2007-06-28  Martin Baulig  <martin@ximian.com>
3497
3498         * mono-debug.c (mono_debug_debugger_version): New public variable.
3499
3500 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
3501
3502         * locales.c: When constructing DateTimeFormat or NumberFormat for
3503         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
3504         MonoCultureInfo contructed from the current locale is always
3505         read-only and has UseUserOverride set to true. All MonoCultureInfo
3506         instances returned for GetCultures have both IsReadOnly and
3507         UseUserOverride set to true. Fixes part of bug #81930.
3508
3509 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
3510
3511        * icall-def.h: Update System.__ComObject icalls
3512        * marshal.c: Avoid managed transition (and object creation)
3513        when looking up COM interface in RCW.
3514        * marshal.h: Ditto.
3515        
3516        Code is contributed under MIT/X11 license.
3517
3518 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
3519
3520         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
3521         to avoid crashes during assembly unloading.
3522
3523 2007-06-22  Raja R Harinath  <rharinath@novell.com>
3524
3525         Fix MethodInfo.IsGenericMethodDefinition
3526         * reflection.c (mono_reflection_bind_generic_method_parameters):
3527         Rearrange code to ensure we always uses a generic method definition.
3528         * class.c (mono_class_inflate_generic_method_full): Set
3529         'generic_container' field only for generic method definitions.
3530         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3531         Use presense of 'generic_container' field as indication of being a
3532         generic method definition.
3533
3534 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
3535
3536         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3537
3538         * object-internals.h: Reflect changes in the layout of the managed Delegate
3539         class.
3540         
3541         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
3542         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
3543         runtime memory used by the dynamic method. Fixes #77146.
3544
3545 2007-06-21  Dick Porter  <dick@ximian.com>
3546
3547         * file-io.h: 
3548         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
3549         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
3550         81767.
3551
3552 2007-06-21  Raja R Harinath  <rharinath@novell.com>
3553
3554         * reflection.c (method_encode_methodspec): Add a tripwire.
3555         * class.c (inflate_generic_type): The fully open generic type is
3556         not the same as the generic type definition.
3557
3558 2007-06-21  Martin Baulig  <martin@ximian.com>
3559
3560         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
3561
3562         * mono-debug-debugger.h
3563         (MonoDebuggerBreakpointInfo): Removed.
3564         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
3565         (mono_debugger_remove_breakpoint): Likewise.
3566         (mono_debugger_breakpoint_callback): Likewise.
3567         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
3568
3569 2007-06-21  Raja R Harinath  <rharinath@novell.com>
3570
3571         * metadata.c (mono_metadata_lookup_generic_class): The fully open
3572         generic type is not the same as the generic type definition.
3573         * class.c (mono_generic_class_get_class): Likewise.
3574
3575 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
3576
3577         * icall.c: The second argument to 
3578         System.Reflection.MethodBase.GetMethodFromHandleInternalType
3579         is a MonoType not a MonoClass.
3580
3581 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
3582
3583         * verify.c: support for function pointers in the verifier
3584
3585 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
3586
3587         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
3588
3589 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
3590
3591         * assembly.c: removed Mono.Data.SqliteClient from the list of
3592         forward-compatible assemblies as it breaks the ABI (bug #81899).
3593
3594 2007-06-19  Raja R Harinath  <rharinath@novell.com>
3595
3596         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
3597         lookup/update with the loader lock.
3598         * reflection.c (mono_class_bind_generic_parameters): No need to
3599         protect mono_metadata_lookup_* with the loader lock.
3600         * class.c (inflate_generic_type): Likewise.
3601         
3602         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
3603         on a generic instantiated type.
3604
3605 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
3606
3607         *verify.c: produce meanfull error messages on verification error
3608         *verify.c: fixed some cases of verification errors reported as validation errors
3609         *pedump.c: fixed the error name array, now it shows validation errors properly
3610         *verify.h: fixed the contant that should be used for verification errors
3611
3612 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
3613
3614         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
3615         for bug #77596, 81858 and 80743 (generics data structures on domain
3616         unload).
3617
3618 2007-06-15  Raja R Harinath  <rharinath@novell.com>
3619
3620         Avoid allocating 'MonoGenericContext' on the heap.
3621         * class-internals (_MonoMethodInflated::context): Make field
3622         inline, not a pointer.
3623         * loader.c (method_from_methodspec): Allocate 'new_context' on the
3624         stack.  Use the context embedded within the inflated method as the
3625         hash key, rather than 'new_context'.
3626         * class.c (inflate_generic_context): Simplify.  Return a struct
3627         rather than allocating on the heap.
3628         (mono_class_inflate_generic_method_full): Update to changes.  Now,
3629         doesn't salt away a copy of the context -- simplifying the
3630         lifetime rules of a 'MonoGenericContext *'.
3631         (mono_method_get_context): Return pointer to embedded context.
3632         (setup_generic_array_ifaces): Allocate temporary context on stack.
3633         * reflection.c (inflate_mono_method): Likewise.
3634         (mono_reflection_bind_generic_method_parameters): Likewise.
3635         Use the context embedded within the inflated method as the hash key.
3636
3637         Avoid a source of allocation of 'MonoGenericContext'.
3638         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
3639         and 'cached_context' fields into embedded 'MonoGenericContext' field.
3640         * class.c: Update to changes.
3641         (mono_generic_class_get_context): Simplify drastically.  Now just
3642         returns a pointer to the field.
3643         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
3644         argument as a const pointer.
3645         (mono_metadata_generic_context_equal): Likewise.
3646         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
3647         Update to changes.
3648
3649 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
3650
3651         * verify.c improved the handling of brtrue/brfalse, factored out common code
3652
3653 2007-06-14  Raja R Harinath  <rharinath@novell.com>
3654
3655         Kill MonoGenericMethod.
3656         * class-internals.h (MonoGenericContext::method_inst): Rename from
3657         'gmethod' and convert to a MonoGenericInst.
3658         (MonoGenericMethod): Remove.
3659         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
3660         * loader.c (method_from_methodspec): Update to changes.  Use a
3661         MonoGenericContext as the key to the hashtable.
3662         * metadata.c (mono_metadata_generic_context_equal): Rename from 
3663         'mono_metadata_generic_method_equal' and take MonoGenericContext.
3664         (mono_metadata_generic_context_hash): Likewise from
3665         'mono_metadata_generic_method_hash'.  Change hash function.
3666         (mono_metadata_load_generic_params): Update to changes.
3667         (mono_get_shared_generic_method): Remove.
3668         * metadata-internals.h (mono_get_shared_generic_method): Remove.
3669         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
3670         (inflate_generic_context): Likewise.
3671         (mono_class_inflate_generic_method_full): Likewise.
3672         (setup_generic_array_ifaces): Likewise.
3673         (mono_class_create_from_typespec): Likewise.
3674         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
3675         (method_encode_methodspec): Update callsite.
3676         (reflection_methodbuilder_to_mono_method): Update to changes.
3677         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
3678         MonoGenericContext as the key to the hashtable.
3679         (inflate_mono_method): Update to changes.
3680
3681         * class-internals.h (MonoGenericMethod::container): Remove.
3682         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
3683
3684 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
3685
3686         * profiler-private.h, profiler.c, profiler.h: added API to profile
3687         exception events.
3688
3689 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
3690
3691         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
3692
3693 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
3694
3695         * verify.c: method invocation is now validated, now we verify parameter types on stack.
3696         Fixed overflow and underflow not aborting the verification process.
3697
3698 2007-06-13  Mark Probst  <mark.probst@gmail.com>
3699
3700         * class-internals.h (MonoStats): Added stats entries for dynamic
3701         code allocations.
3702
3703 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
3704
3705         * loader.c (mono_free_method): Free header->locals and header->clauses.
3706
3707         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
3708         dynamic case.
3709
3710         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
3711
3712         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
3713
3714 2007-06-12  Raja R Harinath  <rharinath@novell.com>
3715
3716         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
3717         the tables.
3718
3719 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3720
3721         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
3722
3723 2007-06-11  Raja R Harinath  <harinath@gmail.com>
3724
3725         MonoGenericMethod on a diet
3726         * class-internals.h (_MonoMethodInflated::reflection_info): Move
3727         here ...
3728         (_MonoGenericMethod::reflection_info): ... from here.
3729         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
3730         Update to changes.
3731         * reflection.c (inflate_mono_method): Likewise.
3732         (mono_reflection_bind_generic_method_parameters): Likewise.
3733
3734 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3735
3736         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
3737         *verify.c: factored long ldarg forms to share code with short forms
3738
3739 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3740
3741         *verify.c: fixed code formating factored some duplicate code
3742         into a new function
3743
3744         *verify.h: fixed binary incompatibility introduced earlier
3745
3746         *pedump.c: fixed formating
3747
3748 2007-06-11  Raja R Harinath  <harinath@gmail.com>
3749
3750         Fix assertion when disassembling Mono.C5.dll
3751         * loader.c (method_from_methodspec): Avoid inflating a method
3752         twice with the same context.  If the methodref is inflated, use
3753         the declaring method instead.
3754
3755         * class.c (mono_class_from_generic_parameter): Fix case similar to
3756         bug #81830 handled below, but for method containers.
3757
3758 2007-06-10  Raja R Harinath  <harinath@gmail.com>
3759
3760         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
3761         get_shared_generic_class.  Directly inflate the instance.
3762         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
3763         (inflate_generic_class): Delete.
3764         (get_shared_generic_class): Delete.  Move setting of
3765         'cached_class' and 'cached_context' ...
3766         * metadata.c (mono_metadata_lookup_generic_class): ... here.
3767
3768         * metadata.c (mono_metadata_lookup_generic_class): Change
3769         signature to take the components of a MonoGenericClass rather than
3770         an allocated MonoGenericClass.  Change semantics to be intern-like.
3771         * reflection.c (mono_class_bind_generic_parameters): Update to
3772         changes.  Make locking region tighter.
3773         * class.c (inflate_generic_class): Update to changes.
3774         (get_shared_generic_class): Likewise.
3775         * metadata-internals.h: Likewise.
3776
3777         * reflection.c (mono_class_bind_generic_parameters): Take and
3778         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
3779         (mono_reflection_bind_generic_parameters): Use
3780         'mono_class_bind_generic_parameters' rather than duplicate the code.
3781         * class.c (mono_bounded_array_class_get): Update to changes.
3782         * object-internals.h: Likewise.
3783
3784         * reflection.c (mono_class_bind_generic_parameters): Only support
3785         parameterizing generic type definitions.  Remove support for other
3786         open types.
3787
3788 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
3789
3790         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
3791
3792         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
3793         in the dynamic case.
3794
3795 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
3796
3797         * threads.c: When cleaning up thread, reset the Background bit.
3798         Fixes bug #81720.
3799
3800 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
3801
3802        * metadata.c: Move variable declarations to top of scope.
3803        * verify.c: Move variable declarations to top of scope.
3804
3805        Code is contributed under MIT/X11 license.
3806
3807 2007-06-08  Raja R Harinath  <rharinath@novell.com>
3808
3809         * reflection.c (mono_class_bind_generic_parameters): Replace
3810         open-coded loop with mono_metadata_inflate_generic_inst.
3811
3812         * class.c (get_shared_generic_class): Don't call
3813         mono_get_shared_generic_inst.  Use the container's own
3814         'class_inst'.
3815
3816         * metadata.c (mono_metadata_load_generic_params): Move
3817         initialization of 'context' field here from ...
3818         * class.c (mono_class_create_from_typedef): ... here, and ...
3819         * loader.c (mono_get_method_from_token): ... here.
3820
3821         * class.c (get_shared_generic_class): Rename from
3822         mono_get_shared_generic_class and make static.
3823         (mono_get_shared_generic_inst): Move to metadata.c.
3824         * loader.c (mono_get_shared_generic_method): Likewise.
3825         * class-internals.h, metadata-internals.h: Update to changes.
3826
3827         Fix #81830
3828         * class.c (mono_class_from_generic_parameter): Don't assume a
3829         generic container owner exists.  Generic containers from monodis
3830         don't have any.
3831
3832 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
3833
3834         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
3835         * verify.h: new typedefs to returns the non-verifiable status
3836         * verify.c: initial implementation of generics, stack merging and object compatibility check
3837
3838 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3839
3840         * class.c, image.c, class-internals.h (MonoImage): class_cache is
3841         a MonoInternalHashTable again (fixed bug in internal hash table
3842         code).
3843
3844 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3845
3846         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
3847         MonoInternalHashTable again (fixed bug in internal hash table
3848         code).
3849
3850 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3851
3852         * class.c, image.c, class-internals.h, domain.c,
3853         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
3854         changes.  Have to figure out what makes them break the SWF
3855         regression.
3856
3857 2007-06-04  Mark Probst  <mark.probst@gmail.com>
3858
3859         * class.c, image.c, class-internals.h (MonoImage): class_cache is
3860         a MonoInternalHashTable now.
3861
3862 2007-06-04  Mark Probst  <mark.probst@gmail.com>
3863
3864         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
3865         MonoInternalHashTable now.
3866
3867 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
3868
3869         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
3870         invoke_impl code.
3871
3872         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
3873
3874         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
3875         dependent trampoline.
3876
3877         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3878
3879         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
3880
3881 2007-05-29  Robert Jordan  <robertj@gmx.net>
3882
3883         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
3884
3885 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
3886
3887         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
3888
3889 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
3890
3891        * marshal.c: Fix interface lookup loops for
3892        cominterop_get_com_slot_for_method and 
3893        cominterop_get_method_interface. Only need to lookup
3894        if type is a class, else use interface type method is on.
3895
3896        Code is contributed under MIT/X11 license.
3897
3898 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
3899
3900         * reflection.c: HasSecurity can be present even if no specially 
3901         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
3902         SecurityAttribute). Fix CAS regression tests on buildbot.
3903
3904 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
3905
3906        * appdomain.c: Add configure checks for header files.
3907        * image.c: Add configure checks for header files.
3908        * file-io.c: Add configure checks for header files.
3909        * debug-mono-symfile.c: Add configure checks for header files.
3910        * threadpool.c: Add configure checks for header files.
3911        * console-io.c: Add configure checks for header files.
3912        * profiler.c: Add configure checks for header files.
3913        * rawbuffer.c: Add configure checks for header files.
3914        * icall.c: Add configure checks for header files.
3915        * rand.c: Add configure checks for header files.
3916        * socket-io.c: Add configure checks for header files.
3917
3918        Code is contributed under MIT/X11 license.
3919
3920 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
3921
3922         * reflection.c (mono_custom_attrs_from_builders): Remove the 
3923         assertion as it breaks the build.
3924         
3925         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
3926
3927         * reflection.c (lookup_custom_attr): Make a copy here too.
3928
3929         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
3930         dynamic images.
3931
3932         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
3933         images.
3934
3935         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
3936         info.
3937
3938 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
3939
3940         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
3941         (load_cattr_value): Ditto.
3942
3943 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
3944
3945         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
3946
3947 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
3948
3949         * threads.c: In "start_wrapper", set apartment_state to MTA if
3950         apartment_state is Unknown and we're running on 2.0 profile or
3951         higher.
3952         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
3953         to main method, then set apartment_state to Unknown on 1.0 profile,
3954         and MTA on 2.0 profile.
3955
3956 2007-05-16  Jb Evain  <jb@nurv.fr>
3957
3958         * class-internals.h (MonoDefaults): Add an attribute_class and
3959           customattribute_data_class.
3960         * domain.c (mono_init_internal): Populate them.
3961         * reflection.c: Use them to remove duplicates. Make a vew
3962         MonoClass variables `static'.
3963
3964 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
3965
3966         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
3967         step in implementing IMT, so that all isinst checks now can go
3968         through the bitmap.
3969         This was needed because vtables for TransparentProxy need to look
3970         like the vtable of the "target" class, so they need to point to
3971         its interface bitmap directly.
3972
3973         * object.c: inside "mono_class_create_runtime_vtable" and
3974         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
3975
3976 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
3977
3978         * object-internals.h
3979           culture-info.h : added territory field in MonoCulture and
3980           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
3981         * locales.c : fill territory field above too.
3982         * culture-info-table.h : regenerated.
3983
3984 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
3985
3986         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
3987         Fixes #81599.
3988
3989 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
3990
3991         * object.c: Always initialize apartment, even if 
3992         there is no custom attributes on entry point.
3993         
3994         Code is contributed under MIT/X11 license.
3995
3996 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
3997
3998         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
3999         * metadata.c: If no encoding is set, check for unicode
4000         on class.
4001         
4002         Code is contributed under MIT/X11 license.
4003
4004 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
4005
4006         * threads.c: Handle if mono_thread_current returns NULL 
4007         
4008         Code is contributed under MIT/X11 license.
4009
4010 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
4011
4012         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
4013         in start_wrapper. Added mono_thread_init_apartment_state and
4014         mono_thread_cleanup_apartment_state.
4015         * object.c: Initialize thread apartment state on main thread
4016         by checking for STAThreadAttribute on entry point.
4017         * object-internals.h: Add apartment_state field to MonoThread.
4018         * threads-types.h: Add unmanaged definition of 
4019         System.Threading.ApartmentState, MonoThreadApartmentState.
4020         
4021         Code is contributed under MIT/X11 license.
4022         
4023 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
4024
4025         * class.c: Fix windows build.
4026         * class-internals.h: Fix windows build.
4027         
4028         Code is contributed under MIT/X11 license.
4029
4030 2007-05-08  Robert Jordan  <robertj@gmx.net>
4031
4032         * process.c (CreateProcess_internal):
4033         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
4034         .CreateNoWindow was specified. Fixes #81496.
4035
4036 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
4037
4038         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
4039         step in implementing IMT, replaced it with two compact arrays
4040         (interfaces_packed and interface_offsets_packed) and a bitmap that
4041         is used for isinst checks (interface_bitmap).
4042
4043         * class.c: (compare_interface_ids): compare function to pass to
4044         bsearch when looking for an interface with a given id.
4045         (mono_class_interface_offset): reimplemented using bsearch on
4046         interfaces_packed, getting the offset from interface_offsets_packed.
4047         (print_implemented_interfaces): utility debugging function.
4048         (setup_interface_offsets): reworked to initialize interfaces_packed,
4049         interface_offsets_packed and interface_bitmap.
4050
4051         * object.c: replaced all accesses to "MonoClass.interface_offsets"
4052         with uses of interfaces_packed and interface_offsets_packed.
4053
4054 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
4055
4056         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
4057         mono_class_interface_offset prototype to wrap all accesses to
4058         "MonoClass.interface_offsets".
4059
4060         * class.c: Implemented mono_class_interface_offset, and wrapped all
4061         accesses to "MonoClass.interface_offsets".
4062
4063         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
4064         "MonoClass.interface_offsets".
4065
4066 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
4067
4068         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
4069         GetMethodFromHandle overloads (bug #78637).
4070
4071 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
4072
4073         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
4074         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
4075
4076 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
4077
4078         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
4079         #81498.
4080
4081         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
4082         gracefully.
4083         (mono_custom_attrs_from_index): Ditto.
4084
4085         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
4086         Fixes #81501.
4087
4088 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
4089
4090         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
4091         is now allocated from a mempool.
4092
4093 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
4094
4095         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
4096         caller holds threads_lock, leading to deadlocks. Fixes #81476.
4097
4098 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
4099
4100         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
4101         mono_loader_clear_error () too late. Fixes #81463.
4102
4103 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
4104
4105         * culture-info-table.h : regenerated.
4106
4107 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
4108
4109         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
4110         is missing.
4111
4112 2007-04-25  Dick Porter  <dick@ximian.com>
4113
4114         * Makefile.am: Put the mingw enforced-optimisation back into the
4115         PLATFORM_WIN32 section.
4116
4117 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
4118
4119         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
4120         patch.
4121
4122         * image.c (mono_image_load_module): New API function to load a module reference.
4123
4124         * image.c (load_modules): Load modules lazily. Fixes #80812.
4125
4126         * class.c (mono_class_from_typeref): Use mono_image_load_module.
4127         
4128         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
4129
4130         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
4131         to mono_image_load_module_dynamic.
4132
4133 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
4134
4135         * marshal.c: Fix calling convention for CCW on non-windows
4136         platforms. STDCALL on windows, CDECL everywhere else to work 
4137         with XPCOM and MainWin COM.
4138         
4139         Code is contributed under MIT/X11 license.
4140
4141 2007-04-23  Martin Baulig  <martin@ximian.com>
4142
4143         Fix #80969.
4144
4145         * loader.c
4146         (method_from_memberref): Added `gboolean *used_context' argument.
4147         (mono_get_method_from_token): Likewise.
4148         (mono_get_method_full): Don't insert the method in the cache when
4149         `used_context' is true.
4150
4151 2007-04-23  Raja R Harinath  <rharinath@novell.com>
4152
4153         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
4154
4155         * reflection.c (mono_reflection_bind_generic_parameters): Don't
4156         create new MonoTypes for returned types.
4157         * class.c (mono_generic_class_get_class): Export mono-internal.
4158         * class-internals.h: Update to changes.
4159
4160 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
4161
4162         * threadpool.c, threadpool.h, icall-def.h: patch from
4163         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
4164
4165 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
4166
4167         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
4168         
4169         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
4170
4171         * threads.c (mono_thread_get_stack_bounds): New helper function.
4172
4173         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
4174         Correctly compute stack bounds when attaching. Fixes #81394.
4175
4176 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
4177
4178         * reflection.c: fix handling of doubles in custom attributes
4179         for the arm-fpa format (bug #81368).
4180
4181 2007-04-18  Raja R Harinath  <rharinath@novell.com>
4182
4183         * reflection.c (assembly_add_win32_resources): Mildly relax an
4184         bounds check to let the end pointer point just past the end of the
4185         allocated buffer.  (may fix #81384)
4186
4187 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
4188
4189         * culture-info-table.h : regenerated.
4190
4191 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
4192
4193         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
4194         the thread is aborted early.
4195
4196 2007-04-05  Dick Porter  <dick@ximian.com>
4197
4198         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
4199         FindFirstFile()/FindNextFile() to find entries.  This lets the
4200         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
4201         81038.
4202
4203         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
4204         the parameters of
4205         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
4206
4207 2007-04-04  Martin Baulig  <martin@ximian.com>
4208
4209         * debug-helpers.c
4210         (mono_method_desc_full_match): Add support for nested classes.
4211
4212 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
4213
4214         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
4215
4216 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
4217
4218         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
4219         waiting for too many threads.
4220
4221 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
4222
4223         * environment.c: Fix return value check on uname so we can get the 
4224         executing version on Solaris operating systems.
4225
4226 2007-03-28  Jb Evain  <jbevain@gmail.com>
4227
4228         * class.c (mono_type_get_name_recurse): Complete the
4229         fix for the creation of assembly qualified names for
4230         pointer types. Fixes #81208.
4231
4232 2007-03-27  Dick Porter  <dick@ximian.com>
4233
4234         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
4235         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
4236         changed.
4237
4238         * threads.c
4239         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
4240         the value of ReleaseMutex().
4241
4242 2007-03-27  Dick Porter  <dick@ximian.com>
4243
4244         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
4245         in little-endian order, not network endian, so must be converted
4246         to host endian here.  Fixes bug 80593.
4247
4248 2007-03-22  Jb Evain  <jbevain@gmail.com>
4249
4250         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
4251         qualified names for pointer types. Fixes #81208.
4252
4253 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
4254
4255         * marshal.c: Add support for PreserveSigAttribute. 
4256         
4257         Code is contributed under MIT/X11 license.
4258
4259 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
4260
4261         * process.c: Fix endianness issues. Fixes #81126.
4262
4263         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
4264         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
4265
4266         * image.c (mono_image_lookup_resource): Make this work on big-endian
4267         machines.Change API contract so the caller needs to free the return value.
4268         
4269         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
4270         API change.
4271         
4272 2007-03-14  Martin Baulig  <martin@ximian.com>
4273
4274         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
4275         mono_type_get_desc() as well.
4276
4277 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
4278
4279         * icall.c:  Fix environ access in VS.  
4280         
4281 2007-03-13  Alp Toker  <alp@atoker.com>
4282
4283         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
4284         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
4285         #63841.
4286
4287 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
4288
4289         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
4290         circular references among dynamic methods. Fixes #81091.
4291
4292         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
4293
4294 2007-03-09  Martin Baulig  <martin@ximian.com>
4295
4296         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
4297
4298 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
4299
4300         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
4301         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
4302         
4303         Code is contributed under MIT/X11 license.
4304         
4305 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
4306
4307         * loader.c: Reapply patch for bug #79424.
4308
4309 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
4310
4311         * metadata.c (mono_type_to_unmanaged): Only convert object to
4312         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
4313
4314 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
4315
4316         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
4317         (and incorrectly set) is_reference field from MonoGenericInst.
4318
4319 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
4320
4321         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
4322         a little earlier.
4323
4324         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
4325
4326         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
4327
4328 2007-03-05  Miguel de Icaza  <miguel@novell.com>
4329
4330         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
4331         FileOptions.1 value to mean "temporary", map that to
4332         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
4333
4334         Fixes 80688
4335
4336 2007-03-03  Marek Habersack  <mhabersack@novell.com>
4337
4338         * appdomain.c: implement MS .Net style shadow copying. Copies of
4339         the assemblies are made in a subdirectory of the dynamic base
4340         directory, the assembly names are preserved.
4341         Copy .mdb and .config files along with the assemblies being shadowed.
4342
4343 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
4344
4345         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
4346         (emit_marshal_handleref): Ditto.
4347
4348         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
4349         on Visual C++. Fixes #80671.
4350
4351 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
4352
4353         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
4354         for clone operations.
4355
4356 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
4357
4358         * marshal.c: Fix warnings.
4359
4360 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
4361
4362         * loader.c: allow case-insensitive matching of the dll name
4363         in dllmap handling when prefixed with "i:".
4364
4365 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
4366
4367         * threads.c: Fix #ifdef for dummy_apc function for VS.
4368
4369 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
4370
4371         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
4372
4373 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
4374         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
4375         giving precedence to the methods with a fully qualified name
4376         (InterfaceName.MethodName) when building the interface sections
4377         of the vtable.
4378
4379 2007-02-16  Dick Porter  <dick@ximian.com>
4380
4381         * threadpool.c (append_job): Fix fast-path array handling, so it's
4382         less likely the array will grow exponentially when the load is
4383         heavy.
4384
4385 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4386
4387         * metadata-internals.h, loader.c: fix dllmap lookup order
4388         for non-function maps, too, and prepare for fallback code.
4389
4390 2007-02-12  Robert Jordan  <robertj@gmx.net>
4391
4392         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
4393         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
4394         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
4395         GlobalFree. Fixes a part of bug #77075.
4396
4397 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
4398
4399         * loader.c: implemented typedef parent in field memberref.
4400
4401 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
4402
4403         * marshal.c: Fix warnings and remember to call Release on
4404         IUnknown of RCW.
4405         
4406         Code is contributed under MIT/X11 license.
4407
4408 2007-02-10  Miguel de Icaza  <miguel@novell.com>
4409
4410         * class-internals.h: Add MonoHandleRef definition, and
4411         handleref_class to mono_defaults. 
4412
4413         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
4414         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
4415
4416         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
4417         (do nothing on this stage)
4418         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
4419         (emit_marshal_handleref): New method, used for argument handling
4420         of HandleRefs. 
4421
4422 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
4423
4424         * class.c (mono_class_setup_parent): Lazily init com types.
4425         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
4426         init com types.
4427         * object.c (mono_remote_class_vtable): Lazily init com types.
4428         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
4429         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
4430         * domain-internals.h: Expose mono_init_com_types.
4431         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
4432         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
4433         Add support for COM Callable Wrapper marshalling.
4434         * marshal.h: Add icall definitions.
4435         * gc.c: Handle freeing of CCWs in finalizer code.
4436         
4437         Code is contributed under MIT/X11 license.
4438
4439 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
4440
4441         * reflection.c: changed all the signature encoding code to use
4442         a variable-sized buffer.
4443
4444 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4445
4446         * marshal.c: locking fixes: never take the loader lock
4447         or other runtime locks when holding the marshal lock
4448         (fixes bug#80664).
4449
4450 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
4451
4452         * marshal.c: make the delegate function pointer mapping
4453         work for the moving GC.
4454
4455 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
4456
4457         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
4458         for bug #80618.
4459
4460 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4461
4462         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
4463         gmodule.
4464
4465 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
4466
4467         * threadpool.c: made the code moving-GC safe.
4468
4469 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
4470
4471         * assembly.c, boehm-gc.c, class-internals.h, class.c,
4472         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
4473         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
4474         warning cleanup.
4475         * reflection.c: warning cleanup, some threading and moving GC fixes.
4476
4477 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
4478
4479         * class.c, loader.c: create the needed Set/Get/Address array methods
4480         as well as the .ctors in mono_class_init (), fixes bug #80567.
4481
4482 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
4483
4484         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
4485         we doesn't decrease its alignment. Should fix the sparc build.
4486
4487 2007-01-24  Dick Porter  <dick@ximian.com>
4488
4489         * socket-io.c
4490         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4491         Create the returned object if we need to ignore an unsupported
4492         socket option.  Fixes a segfault reported by Atsushi.
4493
4494 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
4495
4496         * class.c, object.c: restrict GC-tracked fields to
4497         UIntPtr fields used inside corlib, so we provide better
4498         type info to the GC and also allow broken packing as in
4499         bug #80580.
4500
4501 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
4502
4503         * sgen-gc.c: removed duplicated function.
4504
4505 2007-01-19  Miguel de Icaza  <miguel@novell.com>
4506
4507         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
4508         value that means that the value is not supported, but that we
4509         should not return a failure, but instead report this as a
4510         successful operation.
4511
4512 2007-01-19  Raja R Harinath  <rharinath@novell.com>
4513
4514         Fix tests/bug79956.2.il
4515         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
4516         (mono_generic_class_get_class): If the generic definition in an
4517         enum, copy over other fields related to it.
4518
4519 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
4520
4521         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
4522         genericinst enums (bug #79215).
4523
4524 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
4525         * class.c: Fix bug 80307.
4526
4527 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
4528
4529         * image.c: if the file table is not present, try to load
4530         all the modules, since we don't have info about them
4531         having or not metadata (bug #80517).
4532         * assembly.c: allow mono_assembly_load_references () to
4533         work for netmodules.
4534
4535 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4536
4537         * image.c, metadata-internals.h, object.c: execute module
4538         cctors when running on the 2 runtime if present (bug #80487).
4539
4540 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
4541
4542         * icall.c: optimized InitializeArray() on bigendian.
4543
4544 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
4545
4546         * icall.c: fix for the broken ARM FPA double format.
4547
4548 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
4549
4550         * icall.c: handle endian issues for r4 and r8 types, too, in
4551         the InitializeArray() icall.
4552
4553 2007-01-15  Miguel de Icaza  <miguel@novell.com>
4554
4555         * loader.c (mono_loader_error_prepare_exception): Clear the error
4556         once we have extracted the information from it, do this before we
4557         call into the JIT's class loading mechanisms.
4558
4559         * object.c (mono_class_create_runtime_vtable): Do not clear the
4560         loader error before calling mono_class_get_exception_for_failure
4561         as the loader error is needed inside
4562         mono_class_get_exception_for_failure to throw the error (thinko).
4563
4564         Fixes #80521
4565         
4566 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
4567
4568         * reflection.c: align fields rva data so it's faster to load at
4569         runtime.
4570
4571 2007-01-12  Raja R Harinath  <rharinath@novell.com>
4572
4573         Prepare to simplify GenericMethod handling.
4574         * class-internals.h (mono_method_get_context): New accessor function.
4575         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
4576         rather than directly accessing '->context' field.
4577
4578         * class-internals.h (_MonoGenericParam.method): Move ...
4579         (_MonoGenericContainer): ... here.  Add into union with klass field.
4580         * class.c, icall.c, loader.c, metadata.c, reflection.c:
4581         Update to changes.
4582
4583 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
4584
4585         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
4586         the wrapper type enum and reduce relocations.
4587
4588 2007-01-12  Raja R Harinath  <rharinath@novell.com>
4589
4590         * reflection.c (inflate_mono_method): Reuse method instantiation
4591         from the generic method, if available.
4592
4593 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4594
4595         * marshal.c (emit_marshal_variant): Fix conv_arg
4596         type in last commit, based on whether parameter is byref.
4597         
4598 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4599
4600         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
4601         marshalling.
4602         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
4603         MONO_TYPE_OBJECT back for VARIANT support.
4604
4605 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4606
4607         * marshal.c, marshal.h, icall-def.h: Implement 
4608         Marshal.ReAllocCoTaskMem.
4609
4610 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
4611
4612         * marshal.c: memory retention fixes: use the proper
4613         image cache for runtime_invoke method lookups.
4614
4615 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
4616
4617         * mempool.c: added code to help debug mempool allocations.
4618
4619 2007-01-11  Dick Porter  <dick@ximian.com>
4620
4621         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
4622         support (experimenting with faking it with IP_MTU_DISCOVER for
4623         systems that don't have IP_DONTFRAGMENT.)
4624         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
4625         icall.
4626
4627         * icall-def.h: new System.Net.Sockets.Disconnect icall.
4628
4629         * socket-io.h: Add new fields to MonoSocketAsyncResult
4630         corresponding to the new ones in Socket.cs.
4631
4632 2007-01-11  Raja R Harinath  <rharinath@novell.com>
4633
4634         Fix IronPython regression mentioned in #80249
4635         * metadata.c (do_mono_metadata_parse_generic_class): Clear
4636         'cached_context' field, since it may have been initialized as a
4637         side-effect of metadata parsing.
4638
4639         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
4640         (_MonoGenericClass.cached_class): Move here and rename from lone
4641         remaining field of ...
4642         (_MonoInflatedGenericClass): ... this.  Remove.
4643         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
4644         to changes.
4645
4646         Fix mcs/tests/test-128.cs regression.
4647         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
4648         2007-01-10 change below.
4649         [MONO_TYPE_OBJECT]: Recurse into array case.
4650
4651 2007-01-11  Raja R Harinath  <harinath@gmail.com>
4652
4653         * class-internals.h (mono_get_inflated_generic_class): Remove.
4654         * class.c (mono_get_inflated_generic_class): Remove.
4655         (mono_generic_class_get_class): Rename from
4656         mono_class_create_generic.
4657         (mono_class_from_mono_type) [GENERICINST]: Use it.
4658         * reflection.c, metadata.c: Update to changes.  Use
4659         'mono_class_from_mono_type'.
4660
4661 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
4662
4663         * reflection.c: use passed type when encoding an array element
4664         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
4665
4666 2007-01-09  Robert Jordan  <robertj@gmx.net>
4667
4668         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
4669         result arguments (someDelegate.EndInvoke (unrelatedAres)).
4670         Fixes bug #80392.
4671
4672 2007-01-09  Raja R Harinath  <rharinath@novell.com>
4673
4674         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
4675
4676         * object.c (set_value): Avoid aliasing between type->data.klass
4677         and type->data.generic_class.
4678
4679         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
4680
4681 2007-01-08  Raja R Harinath  <rharinath@novell.com>
4682
4683         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
4684         between type->data.klass and type->data.generic_class.
4685
4686 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
4687
4688         * marshal.c: In MS.NET, StringBuilder objects are not copied by
4689         value in out parameters.
4690
4691 2007-01-08  Raja R Harinath  <rharinath@novell.com>
4692
4693         Simplify invariant for MonoGenericClass::klass field.
4694         * class.c (mono_class_create_generic): Verify 'klass' is null.
4695         * metadata.c (do_mono_metadata_parse_generic_class): Don't
4696         initialize 'klass' field.
4697
4698 2007-01-05  Raja R Harinath  <rharinath@novell.com>
4699
4700         Ongoing work to avoid redundant data and simplify invariants.
4701         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
4702         'generic_class', and change type to a GenericInst.
4703         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
4704         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
4705
4706 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
4707
4708         * class.c : skip io-layer under PLATFORM_WIN32.
4709
4710 2007-01-03  Tor Lillqvist  <tml@novell.com>
4711
4712         Fix #80305: In a bundled executable, look in the bundled exe
4713         assembly to determine the runtime version. Add the possibility to
4714         bundle also the machine.config file.
4715         
4716         * assembly.c (mono_assembly_open_from_bundle): Make
4717         non-static. Allow being called even if we have no bundled
4718         assemblies, and return NULL right away in that case.
4719
4720         * domain-internals.h: Declare mono_assembly_open_from_bundle()
4721         here.
4722
4723         * domain.c (app_config_parse): Take an assembly exe file name as
4724         parameter instead of a config file name. Check for a bundled
4725         config file for that assembly by calling
4726         mono_config_string_for_assembly_file() (see below) before looking
4727         for one in the file system.
4728         (get_runtimes_from_exe): Corrsponding change to call of
4729         app_config_parse().
4730         (get_runtimes_from_exe): Check for bundled assembly exe file first
4731         by calling mono_assembly_open_from_bundle(). If no bundled
4732         assembly exe file is found, call mono_image_open() as before to
4733         look it up in the file system.
4734
4735         * mono-config.c: Add variable bundled_machinec_onfig.
4736         (mono_config_string_for_assembly_file): New function.
4737         (mono_config_for_assembly): Move code snippet that looks for a
4738         bundled assembly .config file into the above new function. Call
4739         it.
4740         (mono_register_machine_config, mono_get_machine_config): New
4741         functions to set and retrieve
4742
4743         * assembly.h: Declare mono_register_machine_config().
4744
4745         * mono-config.h: Declare mono_get_machine_config() and
4746         mono_config_string_for_assembly_file().
4747
4748         * icall.c: No declaration of environ necessary on Win32. It is
4749         declared (as a macro expanding to a function call) in stdlib.h.
4750         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
4751         New internal mono function. Returns the value of
4752         mono_get_machine_config() as a Mono string.
4753
4754         * icall-def.h: Add get_bundled_machine_config().
4755
4756 2007-01-04  Raja R Harinath  <rharinath@novell.com>
4757
4758         Remove redundant field
4759         * class-internals.h (_MonoGenericContext.container): Remove field.
4760         * loader.c (mono_method_get_signature_full): Don't parse a
4761         "container" for a signature parse when the signature is inflated
4762         immediately.
4763         (method_from_methodspec): Likewise, for a generic_inst.
4764         * class.c, metadata.c, reflection.c: Update to changes.
4765
4766 2006-01-04  Raja R Harinath  <rharinath@novell.com>
4767
4768         * class-internals.h (_MonoGenericClass): Rename 'context' field to
4769         'cached_context', and change semantics -- it starts off NULL, and
4770         is initialized on demand.
4771         * class.c (mono_generic_class_get_context): New accessor to
4772         replace 'context' field accesses.
4773         (mono_class_get_context): New helper.
4774         (*): Update to changes.
4775         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
4776
4777 2007-01-03  Miguel de Icaza  <miguel@novell.com>
4778
4779         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
4780         before the memcpy.   Fixes Marshal2 regression.
4781
4782 2007-01-02  Jb Evain  <jbevain@gmail.com>
4783
4784         * blob.h: add a MONO_TYPE_ENUM definition
4785         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
4786         fix the encoding of arrays of enums in custom attributes.
4787
4788         Fixes #79666.
4789
4790 2007-01-01  Miguel de Icaza  <miguel@novell.com>
4791
4792         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
4793         string is null terminated, but only cut the string short if it
4794         overflows the buffer.   
4795         
4796         (mono_string_to_byvalstr): Also fix this routine.   The code here
4797         was not properly terminating a string (it was only terminated
4798         because of the previous catch-all memset). 
4799
4800         I left the memset, because I do not know if applications expect
4801         the runtime to clear this region. 
4802
4803         Fixes #79944.
4804
4805         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
4806         Clear the error before returning to unmanaged code to prevent the
4807         runtime from being confused later on (fixes  80420).
4808         (ves_icall_type_from_name): Always call mono_loader_clear_error
4809         after parsing a type that could have failed.
4810         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
4811
4812         * loader.c (mono_loader_clear_error): Fix indentation.
4813
4814 2006-12-28  Martin Baulig  <martin@ximian.com>
4815
4816         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
4817
4818 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
4819
4820         * reflection.c: patch from Rolf Bjarne Kvinge to fix
4821         getting a token for an EnumBuilder.
4822
4823 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4824
4825         * reflection.c: be more careful in case resource generation
4826         fails to create the data array.
4827
4828 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
4829
4830         * sgen-gc.c: write barrier for clone and fix unregister handles.
4831
4832 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
4833
4834         * reflection.c: some fixes needed in the generics code for the moving GC.
4835
4836 2006-12-22  Robert Jordan  <robertj@gmx.net>
4837
4838         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
4839         account. Fixes bug #80299.
4840
4841 2006-12-21  Raja R Harinath  <rharinath@novell.com>
4842
4843         Fix WaitHandle usage in delegates.
4844         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
4845         * object.c (mono_wait_handle_new): Use the property set method to
4846         initialize the handle.
4847         (mono_wait_handle_get_handle): New.
4848         * threadpool.c (mono_async_invoke): Use it.
4849         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
4850         Likewise.
4851         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
4852
4853 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
4854
4855         * marshal.c (emit_marshal): Call emit_marshal_variant and
4856         emit_marshal_com_interface when applicable.
4857         (emit_marshal_variant, emit_marshal_com_interface): Add
4858         methods for this case and remove if's from emit_marshal_object.
4859         
4860 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
4861
4862         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
4863
4864 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
4865
4866         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
4867         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
4868         and GlobalFree on Windows. Remove FIXME.
4869
4870 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
4871
4872         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
4873         implementation for managed objects.
4874
4875 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
4876
4877         * object.c: implemented code to be used for checking
4878         that no reference field overlaps with non-references.
4879
4880 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4881
4882         * threadpool.c: fix queue code to be compatible with the
4883         moving GC.
4884
4885 2006-12-18  Miguel de Icaza  <miguel@novell.com>
4886
4887         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
4888         in structures by throwing ArgumentNullException.
4889
4890         (emit_marshal_safehandle): Also when they are null parameters.
4891
4892         (emit_marshal_safehandle): Add support for ref
4893         SafeHandles parameters
4894
4895 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4896
4897         * profiler.c: updated to use the mono-dl API instead of
4898         gmodule.
4899
4900 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4901
4902         * profiler.c: updated to use the mono-dl dynamic loading
4903         API instead of gmodule.
4904
4905 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
4906
4907         * profiler.c: use readlink, older versions of glib don't have
4908         g_file_read_link ().
4909
4910 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4911
4912         * profiler.c: try to detect the path to mono if libc fails to provide
4913         a useful name (bug #80286).
4914
4915 2006-12-16  Raja R Harinath  <rharinath@novell.com>
4916
4917         Fix #80242
4918         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
4919         instance, use the generic type definition instead.
4920         (ves_icall_Type_GetNestedTypes): Likewise.
4921         * class.c (mono_class_create_generic): Always set the
4922         nested_classes of a generic instance to NULL, even if the generic
4923         type definition has nested types.
4924
4925 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
4926
4927         * marshal.c (mono_string_from_bstr): Revert previous Windows change
4928         and fix on Linux.
4929         
4930 2006-12-15  Miguel de Icaza  <miguel@novell.com>
4931
4932         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
4933         my arguments were in the wrong order.   I also fixed the Windows
4934         version which seems to have had the same issue.
4935
4936         (mono_free_bstr): On Unix, this is g_free.
4937         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
4938         conversions (for the tests in corlib to pass).
4939
4940 2006-12-14  Miguel de Icaza  <miguel@novell.com>
4941
4942         * marshal.c (emit_ptr_to_object_conv): For now, ignore
4943         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
4944         exception if a ref SafeHandle in a struct has changed).
4945         
4946         (emit_struct_conv): Do not perform layout checks for classes
4947         derived from SafeHandle, as those are specially handled. 
4948
4949         (emit_object_to_ptr_conv): Add support for
4950         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
4951
4952         (emit_marshal_safehandle): Implement conversion of return values
4953         of safehandles (MARSHAL_ACTION_CONV_RESULT).
4954         
4955         * threads.c: WaitHandle now is compiled with two different handles
4956         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
4957         for 2.0.
4958         
4959         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
4960         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
4961         these routines to cope with both kinds of fields.
4962
4963 2006-12-12  Miguel de Icaza  <miguel@novell.com>
4964
4965         * metadata.c (mono_type_to_unmanaged): Handle the case where
4966         type->data.klass is a SafeHandle, and in that case, return the
4967         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
4968         MONO_MARSHAL_CONV_SAFEHANDLE. 
4969
4970 2006-12-11  Miguel de Icaza  <miguel@novell.com>
4971
4972         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
4973         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
4974         calling emit_marshal_object.
4975
4976         (emit_marshal_safehandle): Implement marshalling of
4977         SafeHandle parameters (no ref support yet).
4978
4979         (MarshalAction): Document the defines as I implement
4980         them for SafeHandle.
4981
4982         (emit_marshal_object): indentation police.
4983
4984         * class-internals.h: Define MonoSafeHandle.
4985         Add safehandle_class to MonoDefaults type.
4986
4987         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
4988         list of classes to check for fields. 
4989
4990         * domain.c (mono_init_internal): Add SafeHandle to the list of
4991         mono_defaults loaded.
4992
4993 2006-12-15  Raja R Harinath  <rharinath@novell.com>
4994
4995         Fix #80253
4996         * reflection.c (mono_reflection_bind_generic_parameters): If the
4997         generic type definition is a type builder, ensure that it is fully
4998         initialized before instantiating it.  Kill some dead code.
4999
5000 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
5001
5002         * object.c: clear the loader_error () before loading
5003         more metadata stuff (bug #80258).
5004
5005 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
5006
5007         * icall.c, icall-defs.h: type modifiers icalls for
5008         parameters and properties.
5009
5010 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
5011
5012         * object.c, icall.c: fixed warnings.
5013
5014 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
5015
5016         * marshal.c: fixed a couple of leaks and coding style in a few places.
5017
5018 2006-12-08  Dick Porter  <dick@ximian.com>
5019
5020         * process.c: Cope with NULL ProcessStartInfo arguments on windows
5021         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
5022         80173.
5023
5024 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
5025
5026         * process.c: ProcessStartInfo may have only filename set and
5027         arguments can be NULL.
5028
5029 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5030
5031         * icall.c: fix leak found by Robert Jordan.
5032
5033 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
5034
5035         * marshal.c, marshal.h: generate managed method to access an element
5036         of a multi-dimensional array.
5037
5038 2006-11-30  Paolo Molaro (lupus@ximian.com)
5039
5040         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
5041
5042 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5043
5044         * icall.c: back out GetFields () fix until the serialization code is
5045         fixed to not depend on the incorrect behaviour.
5046
5047 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
5048
5049         * profiler.c: provide defaults if none are set.
5050
5051 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
5052
5053         * Makefile.am, attrdefs.h: new public header file with
5054         constants for attributes for use by embedders.
5055
5056 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
5057
5058         * icall.c: GetFields () fix for bug #80064.
5059
5060 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
5061
5062         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
5063         removed long unused icalls.
5064
5065 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
5066   
5067         * marshal.c: 
5068                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
5069                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
5070                 can be generated without a delegate class.
5071                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
5072         
5073         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5074
5075 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5076
5077         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
5078         #80069.
5079
5080 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5081
5082         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
5083         icall-def.h: added icalls needed by System.GC.
5084
5085 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
5086
5087         * loader.c: ensure the class in catch clauses is handled
5088         correctly for generics methods (fixes bug#79980).
5089
5090 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
5091
5092         * monitor.h, monitor.c: added mono_locks_dump () function
5093         to help debug deadlocks involving managed locks.
5094
5095 2006-11-13  Dick Porter  <dick@ximian.com>
5096
5097         * file-io.c (get_file_attributes): If the file is a symlink try
5098         and get the stat data for the target, but also add the
5099         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
5100         the specs for the windows symlink support, but will probably have
5101         to be reworked when I have test data from a vista machine.  Fixes
5102         bug 79887.
5103
5104 2006-11-13  Dick Porter  <dick@ximian.com>
5105
5106         * gc.c (mono_domain_finalize): 
5107         * marshal.c (mono_delegate_begin_invoke): 
5108         * threadpool.c (socket_io_init, mono_thread_pool_init)
5109         (mono_thread_pool_finish): 
5110         * monitor.c (mono_monitor_try_enter_internal): 
5111         * threads.c (mono_thread_resume, mono_thread_init)
5112         (mono_thread_suspend_all_other_threads)
5113         (mono_thread_execute_interruption): 
5114         * appdomain.c (mono_domain_unload): Check for NULL error returns
5115         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
5116         75733.
5117
5118 2006-11-11  Miguel de Icaza  <miguel@novell.com>
5119
5120         * process.c
5121         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
5122         Only close the handle if the value of the handle is not
5123         INVALID_HANDLE_VALUE.  This just makes the process a bit more
5124         robust.
5125
5126         Improvement for #75733, so that we do not run into this problem. 
5127
5128         
5129         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
5130         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
5131         internal variables.  Fixes #79462 
5132         
5133
5134 2006-11-09  Dick Porter  <dick@ximian.com>
5135
5136         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5137         Use poll() not select().  Fixes bug 79397.
5138
5139 2006-11-09  Raja R Harinath  <rharinath@novell.com>
5140
5141         Fix #79872
5142         * assembly.c (mono_assembly_load_from_full): Check that the given
5143         image has an assembly manifest.
5144
5145 2006-11-09  Ankit Jain  <jankit@novell.com>
5146
5147         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
5148         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
5149         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
5150
5151 2006-11-07  Dick Porter  <dick@ximian.com>
5152
5153         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5154         Put the old resolver behaviour back for pre-2.0 profiles.
5155
5156 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5157
5158         * threadpool.c: precise GC and locking fixes.
5159
5160 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
5161
5162         * class.c: don't load types that have an explicit unaligned
5163         managed reference. Provide better info in the TypeLoad exception.
5164         Part of the fix for bug #79744.
5165         * object.c: use the correct check for class type load issues.
5166
5167 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5168
5169         * class.c: enforce alignment of fields with managed references
5170         even when Pack=1 is forced by the user (bug #77788).
5171
5172 2006-11-03  Dick Porter  <dick@ximian.com>
5173
5174         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5175         If the address reverse lookup fails, return it as the hostname
5176         anyway.  Fixes bug 79721.
5177
5178 2006-11-03  Dick Porter  <dick@ximian.com>
5179
5180         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
5181         Fix build on Windows.
5182
5183 2006-11-02  Dick Porter  <dick@ximian.com>
5184
5185         * icall-def.h: 
5186         * object-internals.h: 
5187         * exception.c (mono_get_exception_thread_interrupted): 
5188         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
5189         Fixes bug 74525.
5190
5191         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
5192         Check for pending Thread.Interrupt.
5193
5194 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
5195         * loader.c: Fixed bug 79684.
5196
5197 2006-10-27  Dick Porter  <dick@ximian.com>
5198
5199         * file-io.c (get_file_attributes): Force symlinks to directories
5200         to be returned as a regular file.  Fixes bug 79733.
5201 2006-10-26  Dick Porter  <dick@ximian.com>
5202
5203         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
5204         CreateFile to open a directory then we need to set the
5205         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
5206
5207 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
5208
5209         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
5210         friends.
5211
5212 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5213
5214         * sgengc.c: small cleanup of timer code.
5215
5216 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
5217
5218         * sgen-gc.c: fix some warnings and start adding support for
5219         complete object removal on domain unload.
5220
5221 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
5222
5223         * assembly.c: build_assembly_name should not consider a version
5224         number without build or revision number invalid. Fixes bug #79715.
5225
5226 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
5227
5228         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
5229         call kernel32 function OutputDebugString directly.
5230         
5231         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5232         
5233 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
5234
5235         * reflection.c: small cleanup, using a function to insert a MonoString
5236         in the string heap.
5237
5238 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
5239
5240         * reflection.c: moving GC fixes.
5241
5242 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
5243
5244         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
5245         all the objects with finalizers belonging to an unloading appdomain.
5246
5247 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
5248
5249         * sgen-gc.c: added ability to allocate even when the nursery is fully
5250         pinned and fixed a couple of bugs.
5251
5252 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
5253
5254         * threads.h: Revert the last change for now.
5255
5256         * threads.h (mono_thread_get_pending_exception): Rename this to
5257         mono_thread_get_undeniable_exception ().
5258
5259 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
5260
5261         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
5262         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
5263         when fname does not refer to valid assembly. This result in a more
5264         meaningful error message.
5265         * exception.c: added mono_get_exception_bad_image_format2 which 
5266         constructs a BadImageFormatException using the ctor taking a custom
5267         message and the file name. Passing in a NULL msg results in a default
5268         message.
5269         * exception.h: define mono_get_exception_bad_image_format2 function.
5270         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
5271         when file name pointed to an invalid IL image. Use 
5272         mono_get_exception_file_not_found2 to construct FileNotFoundException,
5273         as this results in a more meaningful error message.
5274
5275 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
5276
5277         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
5278         #79465.
5279
5280 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
5281
5282         * metadata.c (mono_type_size): Change the align parameter to guint32 for
5283         consistency with the other _size functions.
5284         (mono_type_stack_size): Ditto.
5285
5286         * class.c object.c icall.c: Fix warnings caused by the above change.
5287
5288         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
5289
5290         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
5291
5292         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
5293
5294 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
5295
5296         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
5297         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
5298         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
5299         threadpool.h, threads-types.h: mark more internal functions.
5300
5301 2006-10-11  Dick Porter  <dick@ximian.com>
5302
5303         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5304         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
5305         reproduce the bug even before applying the fix.)
5306
5307 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
5308
5309         * reflection.c: allow retrieving attributes for arguments in generic
5310         methods (bug #79241).
5311
5312 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
5313
5314         * debug-mono-symfile.c: properly check fopen () result (found by
5315         coverity).
5316
5317 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
5318
5319         * reflection.c: make error message clearer and fixed two
5320         issuelets found by Coverity.
5321
5322 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
5323
5324         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
5325
5326 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
5327
5328         * object-internals.h, gc-internal.h, profiler-private.h:
5329         mark internal functions.
5330
5331 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
5332
5333         * reflection.c: put data in the text section.
5334         * icall.c: recognize more types in type_from_typename ().
5335         * process.c, marshal.c: added some GC FIXMEs.
5336
5337 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5338
5339         * loader.c: check for NULL before initializing.
5340
5341 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
5342
5343         * gc.c (finalizer_thread): Use a non-alertable wait here.
5344
5345         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
5346         until the correct solution is found.
5347
5348 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
5349
5350         * reflection.c (mono_module_get_object): Avoid an assert when operating on
5351         modules with no metadata. Fixes #79596.
5352
5353         * image.c (load_metadata_ptrs): Put back the error message when
5354         the #- heap is encountered since the support is not complete yet.
5355
5356 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5357
5358         * gc.c: do not allow the user to SuppressFinalize () a
5359         delegate because it would leak the trampoline if present.
5360
5361 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
5362
5363         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
5364         PropertyPtr table.
5365
5366 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
5367
5368         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
5369
5370         * metadata.c (mono_metadata_get_param_attrs): Ditto.
5371
5372         * row-indexes.h: Add definitions for *Ptr tables.
5373
5374         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
5375
5376         * metadata.c (mono_metadata_translate_token_index): New helper function to
5377         translate table indexes used in uncompressed metadata.
5378         (mono_metadata_decode_table_row): Ditto.
5379         (mono_metadata_decode_table_row_col): Ditto.
5380
5381         * metadata.c: Add table schema for *Ptr tables.
5382
5383         * class.c loader.c: Use the new helper function to access the affected metadata
5384         tables.
5385         
5386         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
5387         #38532.
5388         
5389 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
5390
5391         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
5392         sequences which can be unbounded in size. Fixes #79583.
5393
5394 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
5395
5396         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
5397         static initialization.
5398
5399         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
5400
5401         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
5402
5403         * domain.c (mono_domain_free): Free up type_init_exception_hash.
5404
5405         * object.c (mono_runtime_class_init): Implement correct semantics when a static
5406         ctor fails, i.e. throw the same exception on subsequent accesses.
5407         
5408 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
5409
5410         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
5411         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
5412         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
5413         Handle marshalling of interfaces and VARIANTs contained in structs.
5414         
5415         Code is contributed under MIT/X11 license.
5416         
5417 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
5418
5419         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
5420         
5421         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
5422         mempool.
5423
5424 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5425
5426         * console-io.c: ignore previous SIGINT handler.
5427
5428 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
5429
5430         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
5431         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
5432         #79460, #79461, #79485.
5433
5434         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
5435
5436         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
5437         #79217.
5438
5439 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
5440
5441         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
5442         could be generated from it.
5443
5444 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
5445
5446         * rand.c: fix read loop to correctly handle EINTR.
5447
5448 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5449
5450         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
5451         internal calls are defined to keep methods closer to the declaring
5452         type and allow a significant reduction in runtime relocations and
5453         memory usage.
5454
5455 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
5456
5457         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
5458         exception message to have FileNotFoundException use the default
5459         assembly load error message. Fixes bug #79426.
5460         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
5461
5462 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5463
5464         * threadpool.c: (start_thread_or_queue) use the root domain when
5465         creating the thread instead of the async object one.
5466
5467 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
5468
5469         * class.c, object.c, class-internals.h, reflection.c:
5470         for arrays, store element_size inside MonoClass (speedup
5471         for array object creation).
5472
5473 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
5474
5475         * icall.c: fixed CodeBase to use the file name and not the module
5476         name (bug #79365).
5477
5478 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5479
5480         * mono-debug.c, mono-debug.h: export find_method as
5481         mono_debug_find_method ().
5482
5483 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5484
5485         * debug-helpers.c, class-internals.h: added a few functions useful
5486         when debugging under gdb.
5487
5488 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5489
5490         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
5491         characters that need special handling.
5492
5493 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
5494
5495         * mono-config.c: make the os/cpu specification more flexible,
5496         allowing lists and negation.
5497
5498 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
5499
5500         * marshal.c: COM Interop fixes. Handle case where method->klass.
5501         is interface. Handle BSTR/MonoString when null. Use CDECL as 
5502         calling convention on non-windows platforms. This is for
5503         compatibility with XPCOM and MainWin COM.
5504         
5505         Code is contributed under MIT/X11 license.
5506         
5507
5508 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
5509
5510         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
5511         correctly. Fixes #79217.
5512
5513         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
5514
5515 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
5516
5517         * mono-config.c: allow both an os and cpu attribute for dllmap
5518         and dllentry elemnets to enable a single config file to be used
5519         for multiple architectures.
5520
5521 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
5522
5523         * loader.c: MonoLoaderError was cleared too soon on load failure.
5524         Fixes bug #79424.
5525
5526 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
5527
5528         * icall.c: use the defining class vtable when accessing a
5529         static field, not a pobblibly derived class.
5530
5531 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
5532
5533         * icall.c string-icalls.c: Remove references to unicode.h.
5534
5535         * unicode.h unicode.c Makefile.am: Remove these unused source files.
5536
5537         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
5538
5539         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
5540         indicating the image where custom marshaller types should be looked up.
5541         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
5542         custom marshallers, instead of corlib. Fixes #79425.
5543
5544 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
5545
5546         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
5547
5548 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
5549
5550         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
5551         Implement Environment.ProcessorCount.
5552         
5553         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
5554         Implement Environment.ProcessorCount.
5555         
5556         * icall.c: 
5557         Add Environment.ProcessorCount icall.
5558         
5559         Patch by Jason McFall.
5560
5561 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5562
5563         * assembly.c: don't append .exe/.dll when the filename already contains
5564         one of those extensions.
5565
5566 2006-09-12  Martin Baulig  <martin@ximian.com>
5567
5568         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
5569         to array interfaces.
5570
5571 2006-09-11  Martin Baulig  <martin@ximian.com>
5572
5573         * reflection.c (mono_image_build_metadata): Create the
5574         MethodImpl's after emitting all types and methods, so we don't
5575         need another fixup pass for them.
5576
5577 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
5578
5579         * class.c (mono_class_from_name_case): Fix regression introduced by the last
5580         change.
5581
5582 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
5583
5584         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
5585         unload.
5586
5587 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
5588
5589         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
5590         args is not set. Fixes #78926.
5591
5592 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
5593
5594         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
5595
5596         * image.c (load_class_names): Move this to class.c, and rename it to 
5597         'mono_image_init_name_cache'.
5598         (load_modules): Fix a warning.
5599
5600         * class.c icall.c image.c: Initialize image->name_cache lazily.
5601
5602         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
5603         on its name using information in the AOT file.
5604
5605         * class.c (mono_class_from_name): Use the new hook function.
5606
5607 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
5608
5609         * reflection.c (mono_param_get_objects): Handle enum default parameter values
5610         correctly.
5611
5612         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
5613         Fixes #79289.
5614         
5615 2006-09-06  Martin Baulig  <martin@ximian.com>
5616
5617         * icall.c (mono_lookup_internal_call): Small fix.
5618
5619 2006-09-05  Raja R Harinath  <rharinath@novell.com>
5620
5621         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
5622         double g_free.
5623
5624 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
5625
5626         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
5627         when --debug is specified.
5628
5629 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
5630
5631         * class.c (setup_generic_array_ifaces): Fix a warning.
5632
5633 2006-09-04  Miguel de Icaza  <miguel@novell.com>
5634
5635         * Temporarily remove the patch to assemly.c that checks the
5636         assembly versions as it breaks our gacutil.
5637
5638 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
5639
5640         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
5641
5642         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
5643         a net 1.0 runtime.
5644
5645         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
5646         created using the default ctor. Fixes #79152.
5647         (mono_string_builder_to_utf16): Ditto.
5648
5649 2006-09-01  Martin Baulig  <martin@ximian.com>
5650
5651         Fix handling of the generic array interfaces.
5652
5653         * class-internals.h
5654         (MonoDefaults): Removed `generic_array_class' and added
5655         `generic_ilist' class.
5656
5657         * class.c
5658         (mono_bounded_array_class_get): Add the new generic array interfaces.
5659         (setup_generic_array_ifaces): New static method; create vtable
5660         entries for each method in the generic array interfaces.
5661
5662         * metadata.c
5663         (select_container): Allow "parent-less" generic methods.
5664
5665         * marshal.c
5666         (mono_marshal_get_generic_array_helper): New public method.
5667
5668         * icall.c
5669         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
5670         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
5671         moved the interncall into System.Array.
5672
5673 2006-09-01  Raja R Harinath  <rharinath@novell.com>
5674
5675         A few more cases of avoiding work on types with ->byref set.
5676         Has the real fix for #79238
5677         * icall.c (is_generic_parameter): New helper.
5678         (ves_icall_Type_GetGenericParameterPosition): Use it.
5679         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
5680         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
5681         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5682         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
5683         reference types.
5684         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
5685         reference types.
5686         (ves_icall_Type_get_IsGenericInstance): Likewise.
5687         (ves_icall_Type_get_IsGenericType): Likewise.
5688
5689 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
5690
5691         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
5692         class if possible.
5693
5694         * mempool.h (mono_mempool_get_allocated): New helper function.
5695
5696         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
5697         change.
5698
5699         * mempool.c: Fix warnings and the calculation of stats.
5700
5701         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
5702
5703         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
5704
5705         * loader.c (mono_get_method_from_token): Update method_count stat.
5706
5707         * class-internals.h (MonoStats): Add some stats.
5708
5709 2006-08-31 Robert Jordan  <robertj@gmx.net>
5710
5711         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
5712         with managed variants.
5713         All code is contributed under the MIT/X11 license.
5714         
5715 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
5716
5717         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
5718         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
5719
5720         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
5721
5722         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
5723         with cycles in classes.
5724
5725         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
5726
5727         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
5728         missing a [MarshalAs] directive. Fixes #79203.
5729
5730         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
5731         klass->marshal_info. Fixes #79217.
5732
5733 2006-08-30  Martin Baulig  <martin@ximian.com>
5734
5735         Committing a patch from Joachim Ante <joe@otee.dk>:
5736         Add support for binary data symbol stores.
5737
5738         * debug-mono-symfile.c
5739         (mono_debug_open_mono_symbol_file): Renamed into
5740         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
5741         arguments.
5742
5743         * mono-debug.c
5744         (mono_debug_open_image): Added `raw_contents' and `size' args.
5745         (mono_debug_init_2_memory): New public function.
5746
5747 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
5748
5749         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
5750
5751 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5752
5753         * appdomain.c: implement support for ShadowCopyFiles.
5754
5755 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
5756
5757         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
5758         when value is NULL (and should remove CID #51).
5759
5760 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5761
5762         * image.c: moved 2 functions to ../utils.
5763
5764 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
5765
5766         * gc.c: cope with the target object of a GC handle being NULL
5767         (bug #78877).
5768
5769 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
5770
5771         * class.c: recursively check parent's explicit implementations
5772         of interface methods (fixes bug #79125).
5773
5774 2006-08-19  Miguel de Icaza  <miguel@novell.com>
5775
5776         * filewatcher.c: Avoid warnings when building, do not redefine
5777         constants that are defined.
5778
5779         Remove warnings.
5780
5781 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5782
5783         * image.c: don't fail when the link points to an absolute path.
5784
5785 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
5786
5787         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
5788         Fix CID #3.
5789
5790 2006-08-17  Miguel de Icaza  <miguel@novell.com>
5791
5792         * image.c (full_path): A new method used to obtain the actual path
5793         of an assembly even in the presence of symbolic links.  
5794
5795         This is necessary for the case where we are running a binary that
5796         has been GACed, but we are using the "published" path name
5797         ($prefix/mono/1.0/blah.exe) which happens to point to the real
5798         file in the GAC.
5799
5800         This was the source of the failure for the `xsp' command with the
5801         recent AppDomain changes, as far as the runtime was concerned,
5802         there were two different assemblies: $prefix/mono/1.0/blah.exe and
5803         $prefix/mono/gac/blah/version/blah.exe.
5804
5805         (do_mono_image_open): use full path
5806
5807 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5808
5809         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
5810
5811 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
5812
5813         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
5814         domain_id is supplied. Fix CID #241 and corlib's unit tests.
5815
5816 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5817
5818         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
5819         small structures. Fixes #78990.
5820
5821 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5822
5823         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
5824
5825         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
5826
5827 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5828
5829         * appdomain.c:
5830         * marshal.c: don't load all the assemblies from a domain into newly
5831         created ones. The new domains might have different rules and load
5832         assemblies from different locations. Fixes bug #76757.
5833
5834         Patch by Lluis. Conflicts resolved by Brian Crowell.
5835
5836 2006-08-16  Alp Toker  <alp@atoker.com>
5837
5838         * socket-io.c: First half of the fix for #79084.
5839         Set sa_size to the length of the content, not that of the struct.
5840         Don't add NULL suffix to the content, this should be done in
5841         managed code if needed.
5842
5843 2006-08-14  Raja R Harinath  <rharinath@novell.com>
5844
5845         Fix part of #79012
5846         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
5847         mono_metadata_parse_type returns NULL.
5848
5849 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
5850
5851         * normalization-tables.h : new file for string normalization data.
5852         * locales.c, locales.h, icall.c :
5853           added load_normalization_resource() for string normalization,
5854           and icall as well.
5855         * Makefile.am : added normalization-tables.h to the sources.
5856
5857 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
5858
5859         * marshal.c: Add more helper functions to reduce code duplication and use them
5860         everywhere.
5861
5862 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
5863
5864         * marshal.c: Fix non-x86 stdcall warnings.
5865         
5866         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
5867         them everywhere.
5868
5869 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
5870
5871         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
5872         type check on multi-dimensional arrays. Fixes #79000.
5873
5874 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
5875
5876         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
5877         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
5878         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
5879         * class-internals.h: add is_com_object to class structure.
5880         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
5881         null checks to COM object marshalling. Fix .ctor call on RCW.
5882         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
5883         
5884         All code is contributed under the MIT/X11 license.
5885
5886 2006-08-09  Dick Porter  <dick@ximian.com>
5887
5888         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
5889         racing mono_monitor_allocator_lock() somewhere, so don't delete
5890         the critical section for now.  Found by running and exiting
5891         monodevelop.
5892
5893 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
5894
5895         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
5896         (ves_icall_System_ComObject_FindInterface): Ditto.
5897         (ves_icall_System_ComObject_CacheInterface): Ditto.
5898
5899         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
5900         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
5901
5902 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5903
5904         * threadpool.c: treat pipes from process asynchronous reads as sockets
5905         when reading from them, so we get select/poll or epoll to wait for
5906         data.
5907
5908 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
5909
5910         * loader.c: Fix a typo (CID #233) in the null check.
5911
5912 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
5913
5914         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
5915         Hopefully fixes #78949.
5916         
5917         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
5918         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
5919         bytes. Fixes #78972.
5920
5921 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5922
5923         * filewatcher.c: we need to set errno here.
5924
5925 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5926
5927         * filewatcher.c: let Win32Exception get the error value.
5928
5929 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5930
5931         * filewatcher.c: translate errno into win32 errors for Win32Exception
5932         to know what happened.
5933
5934 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
5935
5936         * threadpool.c: Fix more warnings.
5937
5938         * assembly.c (search_loaded): Fix warnings.
5939
5940         * threadpool.c (mono_thread_pool_finish): Fix warnings.
5941         (mono_async_invoke): Ditto.
5942
5943 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
5944
5945         * object.c (mono_remote_class_vtable): Need to create proxy vtable
5946         entries for __ComObject type in addition to ComImport types.
5947         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
5948         about hash table.
5949         
5950         All code is contributed under the MIT/X11 license.
5951
5952 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5953
5954         * image.c: avoid tentative loading of modulerefs that contain
5955         no metadata (P/Invoke library names).
5956
5957 2006-07-28  Dick Porter  <dick@ximian.com>
5958
5959         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
5960         mono_loader_lock() somewhere, so don't delete the critical section
5961         for now.  Found by running and exiting monodevelop.
5962
5963 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5964
5965         * filewatcher.c: define the inotify syscalls when we're building on
5966         linux and have sys/syscall.h. The build system might not have support
5967         for inotify but the target system might have it.
5968
5969 2006-07-26  Miguel de Icaza  <miguel@novell.com>
5970
5971         * domain.c: Documentation updates.
5972
5973         * loader.c (mono_free_method): Do not release the method
5974         information if we are being profiled, as profilers will use this
5975         information at shut down to present some data to the user.
5976
5977         This is needed so that the profiler does not crash, as the
5978         profiler tends to keep MonoMethods around, and they might become
5979         invalid if we free these.
5980
5981         (mono_get_method_constrained): Return the original CIL stream
5982         method as well, so verification can be performed against it.
5983
5984 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5985
5986         * filewatcher.[ch]: support for inotify file system watcher.
5987         * icall.c: add new internal calls for the inotify file system watcher.
5988
5989 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5990
5991         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
5992         #78888.
5993
5994 2006-07-20  Dick Porter  <dick@ximian.com>
5995
5996         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
5997         warning.
5998
5999 2006-07-20  Dick Porter  <dick@ximian.com>
6000
6001         * threads.c (start_wrapper): Do the thread cleanup while we still
6002         hold a reference to its object.  Fixes bug 78123.
6003
6004 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
6005
6006         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
6007         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
6008           "managed-to-managed".
6009         * icall.c: Redirect string constructors that take sbyte* to
6010           ves_icall_System_String_ctor_RedirectToCreateString.
6011         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
6012           to CreateString () methods with matching signature.
6013         * reflection.c: Use original security informations for
6014           MONO_WRAPPER_MANAGED_TO_MANAGED.
6015         * security-manager.c: Use original security informations for
6016           MONO_WRAPPER_MANAGED_TO_MANAGED.
6017         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
6018           that is a placeholder and only its address should be used.
6019         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
6020           that is a placeholder and only its address should be used.
6021
6022 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
6023
6024         Begin implementing COM Interop.
6025         * appdomain.c: Increment corlib version.
6026         * class.c: Set ComImport classes' parent to __ComObject.
6027         * loader.c: Mark cominterop methods as such.
6028         * domain.c: Add __ComObject class to MonoDefaults structure.
6029         * image.c: Add 2 hashtables to the image for COM Interop related methods
6030         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
6031         using the mempool allocator
6032         
6033         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
6034         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
6035         declaration for mono_metadata_type_dup_mp.
6036         
6037         * debug-helpers.c: Added strings for two additional wrapper types
6038         * object.c: Create proxy objects for ComImport classes
6039         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
6040         and added __ComObject class to MonoDefaults structure.
6041         
6042         * object-internals.h: Finish MonoRealProxy definition, and add definition of
6043         MonoComInteropProxy and MonoComObject.
6044         
6045         * marshal.c: Added support for COM Interop
6046         (signature_cominterop): Converts managed signature to corresponding
6047         unmanaged COM signature.
6048         (cominterop_get_function_pointer): gets unmanaged function pointer via
6049         COM object vtable
6050         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
6051         (cominterop_get_method_interface): returns interface type that method is defined on
6052         (mono_mb_emit_cominterop_call): emits native call to function pointer
6053         gotten from vtable
6054         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
6055         that matches signature of unmanaged function.
6056         (cominterop_get_native_wrapper): wrapper around adjusted method call.
6057         (cominterop_get_invoke): forwards call from proxy to __ComObject
6058         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
6059         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
6060         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
6061         
6062         * marshal.h: Added Marshal icall declarations.
6063         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
6064         so we can access them in finalizer
6065         
6066 2006-07-14  Dick Porter  <dick@ximian.com>
6067
6068         * object.c (mono_type_initialization_cleanup): Fix a race
6069         condition by temporarily commenting out the critical section
6070         deletion.
6071
6072 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
6073
6074         * reflection.c (create_custom_attr): Fix some warnings.
6075         (create_custom_attr_data): Ditto.
6076         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
6077         types. Fixes #78855.
6078
6079 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
6080
6081         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
6082
6083         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
6084
6085 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
6086
6087         * reflection.c (resolve_object): Add support for DynamicMethod.
6088
6089         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
6090         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
6091
6092 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
6093
6094         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
6095         don't leak GPtrArray's pdata has we have no use (nor free) for it.
6096
6097 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
6098
6099         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
6100         Fixes #77888.
6101
6102 2006-06-30  Raja R Harinath  <rharinath@novell.com>
6103
6104         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
6105         slightly: remove a shadow local variable.
6106
6107 2006-06-29  Raja R Harinath  <rharinath@novell.com>
6108
6109         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
6110         definition that introduces the virtual function slot.
6111         Also fix Coverity #105.
6112
6113 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
6114
6115         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
6116         for dynamic assemblies. Fixes #78724.
6117
6118 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
6119
6120         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
6121         Fixes #78722.
6122
6123 2006-06-21  Martin Baulig  <martin@ximian.com>
6124
6125         * reflection.c
6126         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
6127         fixes #76484.
6128
6129 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
6130
6131         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
6132
6133 2006-06-20  Raja R Harinath  <rharinath@novell.com>
6134
6135         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
6136         nor TYPEREFs.
6137         * class.c (mono_class_create_from_typespec): Add 'context' argument.
6138         Inflate result if necessary.
6139         (mono_class_get_full): Remove old version.  Rename from
6140         'mono_class_get' and add 'context' argument.  Pass it to
6141         ..._create_from_typespec.
6142         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
6143         (mono_ldtoken): Revert change below.
6144
6145 2006-06-20  Martin Baulig  <martin@ximian.com>
6146
6147         * class.c (mono_ldtoken): Don't pass the generic context to
6148         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
6149
6150 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
6151
6152         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
6153         and later freeing it. Fixes #78638.
6154
6155 2006-06-15  Miguel de Icaza  <miguel@novell.com>
6156
6157         * icall.c (mono_class_get_throw): Revert over-zealous error
6158         throwing, the caller for mono_class_get_throw will cope with
6159         errors when classes are not properly initialized already.
6160
6161         The code still copes with loader exceptions though.
6162
6163         Fixes the regression in reftype1 and reftype3 from the CAS tests.
6164         
6165 2006-06-14  Miguel de Icaza  <miguel@novell.com>
6166
6167         Fixes the `make run1' version of RuntimeAbort (to be commited,
6168         source is in Bugzilla).
6169         
6170         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
6171         FALSE on class loading failure instead of returning true.
6172
6173         * class.c (mono_class_create_from_typedef): It is possible for
6174         mono_metadata_interfaces_from_typedef_full to fail if a class is
6175         not found, cope with this.
6176         
6177
6178 2006-06-14  Dick Porter  <dick@ximian.com>
6179
6180         * socket-io.c: 
6181         * process.c: Fix a bunch of signed/unsigned warnings from gcc
6182         4.1.1
6183
6184 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
6185
6186         * culture-info-table.h : oops, forgot to make it nsync with r61548.
6187
6188 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
6189
6190         * icall.c: Another fix for building mono in Visual Studio.
6191
6192 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
6193
6194         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
6195         
6196 2006-06-09  Martin Baulig  <martin@ximian.com>
6197
6198         * debug-mono-symfile.c: Put this back and really fix it this
6199         time. Sorry for all the trouble.
6200
6201 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
6202
6203         * icall.c (mono_class_get_throw): Fix a warning.
6204         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
6205         ReflectionTypeLoadException if needed. Fixes #78606.
6206
6207         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
6208         (mono_class_init): Ditto.
6209
6210         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
6211         ref_only exceptions.
6212         (mono_loader_clear_error): Make this work even if there is no error.
6213
6214 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
6215
6216         * object-internals.h marshal.c marshal.h icall.c: Implement method 
6217         Marshal.GetComSlotForMethodInfo using internal call.
6218
6219 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
6220
6221         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
6222         a function for signalling it.
6223
6224         * class.c (mono_class_from_typeref): Use the new kind of loader error when
6225         a referenced assembly is not found.
6226
6227         * loader.c (mono_loader_error_prepare_exception): Add support for 
6228         LOADER_ERROR_ASSEMBLY. Fix formatting.
6229
6230 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
6231
6232         * domain.c appdomain.c class-internals.h marshal.c: Add support 
6233         for VARIANT marshalling on windows and increment corlib version
6234         since Variant struct was added.
6235
6236 2006-06-03  Miguel de Icaza  <miguel@novell.com>
6237
6238         * debug-mono-symfile.c: Revert Martin's previous patch which broke
6239         stack trace line information:
6240
6241         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
6242         (Martin) when looking up B which is between A and C, return A not C.
6243
6244         Bug is #78573.
6245
6246         Thanks to Alexander Olk for tracking this down.
6247
6248 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
6249
6250         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
6251         
6252         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
6253         avoid clobbering its value.
6254         (mono_string_to_lpstr): Fix a warning on windows.
6255
6256 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
6257
6258         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
6259
6260         * reflection.c loader.c: Removed references to 'dummy' flag.
6261
6262         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
6263
6264         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
6265         it gets GC tracking.
6266
6267         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
6268         GC tracking.
6269         
6270         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
6271
6272         * marshal.c threadpool.c: Update callers of mono_async_result_new.
6273
6274         * appdomain.c: Bump corlib version.
6275
6276 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
6277
6278         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6279         CEE_STIND_REF when working with object references.
6280
6281 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
6282
6283         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
6284         Fixes #78539.
6285
6286 2006-05-30  Miguel de Icaza  <miguel@novell.com>
6287
6288         * loader.c (method_from_memberref): Fix argument value for
6289         mono_loader_set_error_method_load (I was passing the MonoClass
6290         instead of the class name char *).
6291
6292 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
6293
6294         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6295         CEE_STIND_REF when working with object references.
6296
6297 2006-05-30  Martin Baulig  <martin@ximian.com>
6298
6299         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
6300         mono_method_full_name() change and replace the ':' with a '.'
6301         here.
6302
6303 2006-05-30  Martin Baulig  <martin@ximian.com>
6304
6305         * debug-mono-symfile.c
6306         (mono_debug_symfile_lookup_location): Fix the algorithm:
6307         when looking up B which is between A and C, return A not C.
6308
6309 2006-05-29  Martin Baulig  <martin@ximian.com>
6310
6311         * mono-debug.h
6312         (MonoDebugMethodInfo): Make the typedef public.
6313         (MonoDebugSourceLocation): New public struct.
6314
6315         * mono-debug.c
6316         (mono_debug_source_location_from_address): Removed.
6317         (mono_debug_source_location_from_il_offset): Removed.
6318         (mono_debug_il_offset_from_address): Removed.
6319         (mono_debug_address_from_il_offset): Removed.
6320         (mono_debug_lookup_method): New public function.
6321         (mono_debug_lookup_source_location): New public function; replaces
6322         the old mono_debug_source_location_from_*() functions; see the
6323         inline documentation.
6324         (mono_debug_free_source_location): New public function.
6325         (mono_debug_print_stack_frame): New public function; see the
6326         inline documentation.
6327
6328         * debug-mono-symfile.c
6329         (mono_debug_find_source_location): Renamed into
6330         mono_debug_symfile_lookup_location(); only take a
6331         `MonoDebugMethodInfo *' and an `offset' argument; added inline
6332         documentation.
6333         (mono_debug_find_method): Renamed into
6334         mono_debug_symfile_lookup_method().
6335
6336 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
6337
6338         * assembly.c (mono_assembly_open_full): Dont overwrite the status
6339         returned by mono_image_open_full ().
6340
6341         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
6342         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
6343         #78517.
6344
6345         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
6346         #78518.
6347
6348 2006-05-27  Miguel de Icaza  <miguel@novell.com>
6349
6350         * class.c (mono_class_from_typeref): handle missing images
6351         earlier, deals with bug #78418.   Refactor code; 
6352
6353         Fix a warning introduced in my previous commit (some stale code
6354         from before I revisited my patch).
6355
6356         * class.c (mono_class_create_from_typedef): On failure, remove the
6357         class from the MonoImage->class_cache as the class is not
6358         initialized;   Fixes the leak pointed out by Paolo.
6359
6360 2006-05-25  Dick Porter  <dick@ximian.com>
6361
6362         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
6363         DeleteCriticalSections until I figure out which one may still be
6364         sometimes locked when mono_thread_cleanup is called.
6365
6366 2006-05-24  Dick Porter  <dick@ximian.com>
6367
6368         * threads.c (mono_thread_cleanup): Move the threading cleanup out
6369         of mono_thread_manage and back into its own function, so it can be
6370         called after the finalizer thread has finished.
6371
6372         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
6373
6374 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
6375
6376         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
6377         Fixes #78495.
6378
6379         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
6380         with non-blittable elements.
6381         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
6382
6383 2006-05-24  Martin Baulig  <martin@ximian.com>
6384
6385         * mono-debug-debugger.h (MonoDebuggerEvent): Added
6386         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
6387
6388         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
6389         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
6390         `mono_debugger_event_handler' to NULL.
6391
6392 2006-05-24  Martin Baulig  <martin@ximian.com>
6393
6394         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
6395
6396 2006-05-24  Martin Baulig  <martin@ximian.com>
6397
6398         * mono-debug-debugger.h
6399         (mono_debugger_create_notification_function): Added
6400         `MonoCodeManager *' argument.
6401
6402 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
6403
6404         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
6405
6406 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
6407
6408         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
6409         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
6410         implementation.
6411
6412 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
6413
6414         * icall.c: precise GC support: objects can't be stored in unmanaged
6415         memory anymore, even if they are kept alive by other references: since
6416         they can move the GC needs to be able to always find them.
6417
6418 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
6419
6420         * object.c: precise GC support for static fields. Support
6421         for moving GCs: write barriers and pinned allocation for interned
6422         strings.
6423
6424 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
6425
6426         * domain.c, domain-internals.h: precise GC support for the MonoDomain
6427         structure.
6428
6429 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
6430
6431         * class.c, gc.c: sgen and precise GC updates.
6432
6433 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
6434
6435         * marshal.h, marshal.c: added write barrier wrapper and precise type
6436         fixes.
6437
6438 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
6439
6440         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
6441         support.
6442
6443 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
6444
6445         * reflection.c: precise and sgen GC updates.
6446
6447 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
6448
6449         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
6450
6451 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
6452
6453         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
6454
6455 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
6456
6457         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
6458         MONO_TYPE_OBJECT. Fixes #78462.
6459
6460 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
6461
6462         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
6463         and blittable types.
6464
6465 2006-05-17  Miguel de Icaza  <miguel@novell.com>
6466
6467         * class.c (mono_class_get_exception_for_failure): Implement parts
6468         of a TODO: if the loader error is set (instead of the class
6469         error), we return a Loader exception that can be properly thrown
6470         elsewhere.
6471
6472         This was exposed by some Winforms 2.0 code that I tried to run
6473         (Atsushi pointed me to it).
6474
6475 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
6476
6477         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
6478         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
6479         
6480         * marshal.c (emit_marshal_vtype): Add limited support for 
6481         UnmanagedType.LPStruct. Fixes #78427.
6482
6483         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
6484         Applied a patch from kangaroo to fix #77523.
6485
6486 2006-05-17  Martin Baulig  <martin@ximian.com>
6487
6488         * threads.c
6489         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
6490         (debugger_thread_created): Removed.
6491         (debugger_thread_exited): Removed.
6492
6493 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
6494
6495         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6496
6497         * object-internals.h (MonoReflectionResource): Sync with managed version.
6498
6499 2006-05-12  Wade Berrier <wberrier@novell.com>
6500
6501         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
6502
6503 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
6504
6505         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
6506         functions try to allocate from the image mempool.
6507
6508 2006-05-12  Dick Porter  <dick@ximian.com>
6509
6510         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
6511
6512 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
6513
6514         * object.c: The FieldGetter and FieldSetter methods require the full
6515         name of the class, not only the name. Fixes bug #78277.
6516
6517 2006-05-11  Miguel de Icaza  <miguel@novell.com>
6518
6519         * loader.c (method_from_memberref): Do not pass the NULL klass to
6520         mono_loader_set_error_() methods.  Pass the non-NULL value
6521         (class). 
6522
6523 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
6524
6525         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
6526         (mono_assembly_close): Null out assembly->image->references after freeing it.
6527
6528         * image.c (mono_image_close): Free image->references.
6529         
6530         * reflection.c (mono_image_basic_init): Fix a small memory leak.
6531
6532 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
6533
6534         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
6535         before checking if it's NULL (g_assert).
6536
6537 2006-05-10  Martin Baulig  <martin@ximian.com>
6538
6539         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
6540         I thought I already killed that two months ago, but now it somehow reappeared.
6541
6542 2006-05-10  Martin Baulig  <martin@ximian.com>
6543
6544         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
6545
6546 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
6547
6548         * reflection.c: Allocate memory for dynamically created methods in the image
6549         mempools.
6550
6551 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
6552
6553         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
6554         don't use the ad pointer before checking if it's NULL (g_assert).
6555
6556 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
6557
6558         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
6559         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
6560
6561         * marshal.c: Allocate all signatures from mempools.
6562
6563         * marshal.c: Allocate some more signatures from mempools.
6564
6565 2006-05-09  Miguel de Icaza  <miguel@novell.com>
6566
6567         * object.c (mono_load_remote_field): The code used to provide a
6568         temporary variable for returning results if the user did not
6569         provide a result pointer.  But our temporary variable was allocted
6570         on the satck.
6571
6572         Fix calling code to always pass a result area.   Coverity ID 103.
6573
6574 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
6575
6576         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
6577         value, not the old. Fixes #78312.
6578         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
6579
6580         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
6581         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
6582         per-image cache.
6583
6584         * assembly.c (mono_assembly_close): Free image->references.
6585
6586         * assembly.c (mono_assembly_names_equal): Fix a warning.
6587         (mono_assemblies_cleanup): Cleanup more global data.
6588
6589         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
6590
6591         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
6592         ptr_cache and image->modules.
6593
6594         * image.c (mono_image_init): Allocate array_cache lazily.
6595         
6596 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6597
6598         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
6599         behavior was changed recently and has bad side effects.
6600
6601 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
6602
6603         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
6604         
6605         * assembly.c (mono_assembly_close): Remove a debug printf.
6606
6607         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
6608
6609         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
6610         to also allow for temporary references between mono_image_open ()/close ().
6611
6612         * domain.c (get_runtimes_from_exe): Add a FIXME.        
6613
6614 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
6615
6616         * marshal.c: Fix support for dynamic methods.
6617
6618         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
6619
6620         * marshal.c (mono_marshal_cleanup): New cleanup function.
6621
6622         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
6623         image mempools.
6624
6625         * class.c (mono_class_init): Fix leaking class->nested_classes.
6626
6627         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
6628
6629         * image.c (mono_image_init): Initialize the new cashes.
6630
6631         * image.c (mono_image_close): Destroy the new cashes.
6632
6633         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
6634
6635         * mempool.c (mono_mempool_strdup): New helper function.
6636
6637         * class-internals.h: Add prototype for mono_loader_unlock ().
6638
6639         * domain.c (mono_jit_info_table_find): Fix a warning.
6640         (mono_debugger_check_runtime_version): Ditto.
6641
6642         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
6643         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
6644         functions to these modules.
6645
6646         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
6647         metadata modules.
6648         
6649         * marshal.c (mono_free_bstr): Fix a warning.
6650
6651         * assembly.c (mono_assembly_open_full): Fix another small leak.
6652
6653         * object.c: Fix some unload leaks in the remoting code.
6654
6655         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
6656         function.
6657
6658         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
6659
6660         * reflection.c: Fix some unload leaks in dynamic assemblies.
6661
6662 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
6663
6664         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
6665         * marshal.h: Add BSTR support on Win32
6666         * icall.c: Add BSTR icalls
6667         * metadata.h: Add BSTR enums
6668
6669 2006-04-28  Miguel de Icaza  <miguel@novell.com>
6670
6671         Work to catch the crash from #76795 and turn it into an
6672         exception.   As I stubbed out pieces of the VisualBasic support,
6673         I found a number of places where the code was failing and I added
6674         checks to those places. 
6675         
6676         * metadata.c (do_mono_metadata_parse_generic_class): Make this
6677         function return a status code.  If we fail to parse the signature
6678         from mono_metadata_parse_generic_inst, return FALSE.
6679
6680         * loader.c (mono_get_method_from_token): If we fail to load the
6681         method (mono_class_get) return NULL.   
6682
6683         * (method_from_memberref): Return NULL if we are unable to parse
6684         the method signature
6685
6686         (mono_loader_error_prepare_exception): Since we now use the
6687         loader_error flag internally to stop processing, and obtaining
6688         exceptions that might be thrown will walk this code path the
6689         proper way of going from a MonoLoaderError into a
6690         MonoException was convoluted.   This new routine encapsulates the
6691         process of turning the error into an exception and *clearing* the
6692         error afterwards.
6693         
6694 2006-04-27  Miguel de Icaza  <miguel@novell.com>
6695
6696         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
6697         with missing assemblies), and to cope with:
6698
6699                 * Missing fieldref from a non-existing assembly.
6700                 * Missing methodref from a non-existing assembly.
6701
6702         The first batch of work to address *some* of the issues from 76661.
6703         
6704         * object.c (mono_class_create_runtime_vtable): If we fail to
6705         initialize the class raise the exception here. 
6706
6707         * metadata.c (mono_class_get_overrides_full): If any methods fail
6708         to load return the failure to the caller.
6709
6710         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
6711         flagging assemblies that failed to load.   
6712
6713         Do not crash if we are unable to load the assembly.
6714
6715         (mono_assembly_close): Do nothing with REFERENCE_MISSING
6716         assemblies. 
6717
6718         * loader.c (mono_loader_set_error_type_load): Change the
6719         convention to always pass unallocated strings, so we make our own
6720         copies (I know our own code had duplicated strings before, but
6721         this keeps the normal conventions).
6722         (method_from_memberref): Call mono_loader_set_error_method_load
6723         for all possible failures of loading the class. 
6724         Remove assert, turn into a loader error.
6725
6726         (mono_loader_error_to_exception): Move this routine from mini
6727         (mini_loader_error_to_exception) there was no need to have that in
6728         mini. 
6729
6730         * class.c (mono_class_from_typeref): If we were not able to load
6731         the assembly with mono_assembly_load_reference, call the
6732         mono_loader_set_error_type_load to register the problem.
6733
6734         (mono_class_setup_fields): If we fail to load the type from
6735         mono_metadata_parse_type_full, call mono_class_set_failure and
6736         break from the loop.
6737
6738         If class->exception_type is set, we do not layout the fields as
6739         that might crash the runtime, and instead return (from breaking
6740         from the previous loop).
6741
6742         (mono_class_setup_vtable): This now returns a boolean indicating
6743         whether the table was properly setup.   The decision is driven by
6744         mono_class_get_overrides_full which might run into non-existing
6745         methods. 
6746         
6747         (mono_class_init): Returns TRUE on success or FALSE if there was a
6748         problem in loading the type (incorrect assemblies, missing
6749         assemblies, methods, etc).
6750
6751         When we call mono_class_setup_fields we also check for a potential
6752         error inside this call (either a class exception or a general
6753         loader exception).
6754
6755         (mono_class_create_from_typedef): If the parent fails to load
6756         (calling mono_class_get_full) return NULL.
6757         
6758         ** Important **
6759
6760         calls to mono_metadata_parse_type_full should be checked
6761         everywhere and set the mono_class_set_failure
6762         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
6763
6764         The current patch checks the places where my manually constructed
6765         tests show the errors are showing up, but we should do it
6766         everywhere. 
6767
6768         ** Important2 **
6769
6770         mono_class_init return values should be tested everywhere, like
6771         the previous case this is something that we should audit
6772         everywhere and not only on the cases exposed by the tests I
6773         created. 
6774
6775 2006-04-26  Miguel de Icaza  <miguel@novell.com>
6776
6777         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
6778         boolean parameter and instead pass the information on `options'
6779         parameter (FileOptions).
6780
6781         * icall.c: Register the new signature for MonoIO.Open.
6782
6783         * debug-helpers.c (dis_one): Trying to understand how coverity
6784         works.  Fix Run 5, item 78.
6785
6786 2006-04-26  Dick Porter  <dick@ximian.com>
6787
6788         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
6789         dereference.
6790
6791 2006-04-25  Martin Baulig  <martin@ximian.com>
6792
6793         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
6794
6795         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
6796         debugger_thread_created().
6797         (debugger_gc_push_all_stacks): Don't handle the main thread in any
6798         special way.
6799         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
6800         (mono_debugger_finalize_threads): New function; undo the effects
6801         of mono_debugger_init_threads().
6802         (mono_debugger_create_all_threads): Removed.
6803
6804 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
6805
6806         * image.c (mono_image_close): Tidy up trace messages.
6807
6808         * assembly.c (mono_assembly_close): Ditto.
6809
6810         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
6811         no longer references an already freed assembly. Fixes #78168.
6812
6813 2006-04-21  Dick Porter  <dick@ximian.com>
6814
6815         * threads.c (mono_thread_detach): Fix reference counting when
6816         detaching threads.
6817
6818 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
6819
6820         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
6821         #78155.
6822
6823 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
6824
6825         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
6826         (mono_type_to_stind): Ditto.
6827
6828         * marshal.c: Use the new helper functions to simplify code.
6829
6830         * image.c (mono_image_close): Add some code for help debug assembly unloading
6831         problems.
6832
6833         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
6834         image mempool.
6835
6836         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
6837         assembly was already loaded in another appdomain. Fixes #78083.
6838
6839 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
6840
6841         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
6842         referenced assemblies.
6843         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
6844
6845         * domain.c (mono_domain_free): Add a trace message.
6846
6847         * appdomain.c (add_assemblies_to_domain): Ditto.        
6848
6849         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
6850         field.  
6851
6852 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
6853
6854         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
6855
6856 2006-04-12  Martin Baulig  <martin@ximian.com>
6857
6858         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
6859         `USE_INCLUDED_LIBGC'.   
6860
6861 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
6862
6863         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
6864         the patch contains ../ and a small directory name later. Hopefully fixes
6865         #78035.
6866
6867 2006-04-10  Martin Baulig  <martin@ximian.com>
6868
6869         Clean up the debugger's thread-handling code.
6870
6871         The debugger's thread-handling code has been moved from
6872         ../mini/debug-debugger.c to threads.c.  We now iterate directly
6873         over the `threads' hash, keep track of exiting threads and also
6874         use proper locking.
6875
6876         We can now debug XSP and XSP based applications with the debugger.
6877
6878         * object-internals.h (MonoThread): Added `gpointer end_stack'.
6879
6880         * threads.h
6881         (MonoThreadCallbacks): Removed; this was only used by the debugger.
6882         (mono_install_thread_callbacks): Likewise.      
6883
6884         * threads.c (mono_thread_callbacks): Removed.
6885         (debugger_thread_created, debugger_thread_exited): New static functions.
6886         (start_wrapper): Call debugger_thread_created().
6887         (thread_cleanup): Call debugger_thread_exited().
6888         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
6889         (mono_debugger_init_threads): New public function.
6890         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
6891         iterate directly over the `threads' hash and also use proper locking.
6892
6893         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
6894
6895         * mono-debug-debugger.h
6896         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
6897
6898 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
6899
6900         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
6901         argument type=array. Fixes #78057.
6902
6903 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
6904
6905         * culture-info-table.h : regenerated. Fixed bug #69652.
6906
6907 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
6908
6909         * loader.c metadata.c: Reapply a variant r59116.
6910         
6911         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
6912
6913         * class.c (mono_class_setup_interface_offsets): New internal function.
6914
6915         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
6916         interfaces too. Fixes #77398.
6917
6918         * reflection.c (encode_cattr_value): Add support for 
6919         parameter type=object, argument type=array.
6920         (load_cattr_value): Ditto. Fixes #77916.
6921
6922         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
6923         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
6924
6925         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
6926         a byval char array and CharSet is Ansi.
6927
6928         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
6929
6930 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
6931
6932         * metadata.c: Add some locking comments.
6933         
6934         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
6935         mempool.
6936         (mono_metadata_free_method_signature): Don't free the signature itself.
6937
6938         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
6939
6940         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
6941         reference the same MonoImage.
6942         (mono_assembly_load_from_full): Add an assert.
6943
6944 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
6945
6946         * image.c (mono_image_close): Don't put the image we are about to free into the
6947         loaded_images_guid_hash.
6948
6949         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
6950         to reduce code duplication.
6951
6952         * marshal.c: Register the native functions called by this module as icalls, to
6953         somewhat centralize the creation of MonoMethodSignature's.
6954
6955         * loader.c (mono_method_signature): Add a cache for method signatures.
6956
6957         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
6958         the parameter attributes of a method.
6959         (mono_metadata_parse_method_signature_full): Refactored the computation of
6960         parameter attributes into a separate function. Also avoid one allocation in
6961         most cases.
6962
6963         * assembly.c (mono_assembly_close): Ditto.
6964
6965         * image.c (mono_image_close): Log trace messages with INFO level.
6966
6967         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
6968
6969         * image.c reflection.c: Correct reference counting of image modules.
6970         
6971         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
6972         of this function from the image mempool.
6973         
6974         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
6975         to allow more cached types to be used.
6976
6977         * mono-debug.c (mono_debug_add_method): Appled patch from
6978         David S. Miller  <davem@sunset.davemloft.net>: Access 
6979         minfo->lexical_blocks[] entry elements using read32().
6980
6981 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
6982
6983         * loader.c (mono_free_method): No longer free the method header for non-dynamic
6984         methods as it is allocated from the mempool.
6985
6986         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
6987         image mempool.
6988
6989         * metadata-internals.h: Add comments describing the reference counting scheme
6990         used for MonoImage and MonoAssembly.
6991
6992         * image.c assembly.c reflection.c: Rework reference counting of images and 
6993         assemblies so they are freed when the runtime is shut down. Free some 
6994         additional memory structures when an image is unloaded.
6995         
6996 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
6997
6998         * class.c loader.c reflection.c: Allocate more data structures in
6999         the image mempool.
7000
7001 2006-03-31  Miguel de Icaza  <miguel@novell.com>
7002
7003         * icall.c
7004         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
7005         build on pre glib 2.4 systems.
7006
7007 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
7008
7009         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
7010
7011         * icall.c: Fix some warnings.
7012
7013 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
7014
7015         * culture-info-table.h : regenerated.
7016
7017 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
7018
7019         * threads.c, object-internals.h, verify.c: changed the culture caching
7020         code to use a normal MonoArray for storage so the GC can keep track of
7021         them easily. Fixed bits of the cache logic, too and simplified the
7022         code.
7023
7024 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
7025
7026         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
7027         thread for non-Boehm GCs.
7028
7029 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
7030
7031         * domain.c, object.c, domain-internals.h: reduce the amount of memory
7032         needed to keep track of the data for static fields.
7033
7034 2006-03-29  Raja R Harinath  <rharinath@novell.com>
7035
7036         Fix #75172
7037         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
7038         for interface classes.  Use 'num_methods' instead.
7039         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
7040         before using '->vtable_size' field.
7041
7042 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
7043
7044         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
7045         doesn't contain managed pointers, so use a normal hashtable.
7046
7047 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
7048
7049         * reflection.c, class-internals.h, domain.c: fixed handling of types
7050         used as values for objects in custom attributes (bug #77915):
7051
7052 2006-03-24  Martin Baulig  <martin@ximian.com>
7053
7054         * class.c (mono_class_setup_fields): Added support for generic
7055         instances; fixes #77580.
7056
7057 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7058
7059         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
7060
7061 2006-03-24  Dick Porter  <dick@ximian.com>
7062
7063         * file-io.c (get_file_attributes): More stat macro breakage.
7064         Fixes bug 77759.
7065
7066 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
7067
7068         * profiler.c: added the file=filename option in the default profiler
7069         to output the profile data to filename.
7070
7071 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7072
7073         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
7074         bug #77877.
7075
7076 2006-03-22  Martin Baulig  <martin@ximian.com>
7077
7078         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
7079         allocated `MonoClassField *' in `fb->handle'.
7080
7081 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
7082
7083         * class.c, image.c, metadata-internals.h: implemented new mechanism to
7084         allocate interface ID to save memory and allow better ID reuse on
7085         appdomain unload. setup_generic_vtable () removal from Martin.
7086
7087 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7088
7089         * object.h, appdomain.c, domain.c, exception.c, icall.c,
7090         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
7091         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
7092         write barriers for reference stores with managed objects accessed with
7093         C structures in the runtime and in embedding programs.
7094
7095 2006-03-20  Raja R Harinath  <rharinath@novell.com>
7096
7097         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
7098         'interface_id' and 'max_interface_id' fields of MonoClasses
7099         representing open generic types.
7100
7101 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
7102
7103         * object.h, object.c, icall.c: added functions to deal with
7104         storing valuetypes that contain references in managed objects.
7105         * reflection.c, string-icalls.c, threads.c, marshal.c: small
7106         fixes and comments around uses of mono_array_addr ().
7107
7108 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
7109
7110         * object.h, icall.c, monitor.c: object.GetHashCode ()
7111         implementation that supports the moving garbage collector.
7112
7113 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
7114
7115         * icall.c, threads-types.h, threads.c: implemented finalizer for
7116         LocalDataStoreSlot.
7117
7118 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
7119
7120         * metadata.c (mono_type_size): Add a fixme.
7121         (mono_type_stack_size): Ditto.
7122
7123         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
7124         'type_forwarders' field.
7125
7126         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
7127         attribute from net 2.0.
7128
7129         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
7130         from class.c.
7131
7132         * class.c (mono_class_setup_fields): Fix a warning.
7133         
7134         * class.c (mono_class_from_name): Add support for assemblyref entries
7135         in the EXPORTEDTYPE table.
7136
7137         * reflection.c: Add support for handling type forwarders under net 2.0.
7138
7139         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
7140         
7141 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
7142
7143         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
7144         overwriting entries in ModuleBuild->types, also clean up the code
7145         a little. Fixes #77774.
7146
7147 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
7148
7149         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
7150         load friend assembly info when present.
7151
7152 2006-03-14  Raja R Harinath  <rharinath@novell.com>
7153
7154         Fix crasher on gtest-158.cs.
7155         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
7156         the return value if the MonoClass we want is yet in an
7157         inconsistent state.
7158         * class.c (mono_class_create_from_typedef): Add an comment
7159         explaining an order dependency between mono_class_setup_parent and
7160         mono_class_setup_mono_type.
7161
7162 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
7163
7164         * class.c: documentation updates and events bug fix.
7165
7166 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
7167
7168         * class.c: some cleanup, locking fixes.
7169
7170 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
7171
7172         * class.c: fix the generics code to setup nested
7173         type info to the instantiated type (bug #77770).
7174
7175 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
7176
7177         * marshal.c: fixed a few type correctness issues.
7178
7179 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7180
7181         * loader.c: the Set/Get/Addrtess array methods should be public.
7182
7183 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
7184
7185         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
7186         
7187         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
7188         info->wrapper.
7189
7190 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
7191
7192         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
7193
7194         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
7195
7196         * mempool.c (mono_mempool_alloc): Speed this up a bit.
7197         (mono_mempool_alloc0): Ditto.
7198
7199 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7200
7201         * socket-io.c:
7202         (create_object_from_sockaddr): it was allocating 4 extra bytes
7203         for the AF_UNIX data. Fixes bug #77747.
7204
7205 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
7206
7207         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
7208
7209 2006-03-09  Dick Porter  <dick@ximian.com>
7210
7211         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
7212         Fixes bug 76966 again.
7213
7214 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
7215
7216         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
7217         names from r57532
7218         * appdomain.c: Bumped corlib version to 48 (due to r57532)
7219
7220 2006-03-07  Martin Baulig  <martin@ximian.com>
7221
7222         * object.c
7223         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
7224
7225 2006-03-07  Martin Baulig  <martin@ximian.com>
7226
7227         * class.c
7228         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
7229         regression introduced in r56970; see gtest-252.cs.
7230
7231         * loader.c (mono_get_method_constrained): Correctly handle generic
7232         methods; see gtest-253.cs.
7233
7234 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
7235
7236         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
7237
7238 2006-03-04  Martin Baulig  <martin@ximian.com>
7239
7240         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
7241         compute the parent type at runtime, just like we're already doing
7242         it for interfaces.
7243
7244         * reflection.c
7245         (mono_reflection_bind_generic_parameters): Don't compute the
7246         parent type anymore.
7247
7248         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
7249
7250 2006-03-04  Martin Baulig  <martin@ximian.com>
7251
7252         * mono-debug-debugger.h
7253         (mono_debugger_create_notification_function): Allocate memory at
7254         runtime and return a pointer to it.
7255
7256 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
7257
7258         * assembly.c: Fix windows build.
7259         
7260         * assembly.c: Fix build.
7261
7262         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
7263
7264         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
7265         
7266 2006-03-03  Dick Porter  <dick@ximian.com>
7267
7268         * process.c
7269         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
7270         Check parameters before dereferencing them.  Fixes Aaron's part of
7271         bug 77393.
7272
7273 2006-03-03  Raja R Harinath  <rharinath@novell.com>
7274
7275         Fix performance regression.
7276         * loader.c (find_method_in_class): Add 'from_class' argument.
7277         Rename 'klass' argument to 'in_class'.  The signature is compared
7278         against the method in 'in_class', and the corresponding method is
7279         returned from 'from_class'.
7280         (find_method): Walk both 'in_class' and 'from_class' in parallel.
7281         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
7282         type definition and generic instantiation in parallel.
7283         (mono_get_method_constrained): Update to changes.
7284
7285 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
7286
7287         * threads.c: make sure the domain is correct, too when doing
7288         mono_thread_attach ().
7289
7290 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
7291
7292         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
7293         windows. Fixes #77683.
7294
7295 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
7296
7297         * object.h, *: introduced specific way to set elements of an array
7298         of references to be used as write barrier. Still need to audit the
7299         uses of mono_array_addr.
7300
7301 2006-03-01  Miguel de Icaza  <miguel@novell.com>
7302
7303         * object-internals.h: New field to cache the assmebly name, patch
7304         from Tambet Ingo (tambet@ximian.com)
7305
7306 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7307
7308         * decimal.h, class-internals.h, metadata-internals.h,
7309         file-io.h: mark a few function declarations as internal, to
7310         reduce the number of PLT entries.
7311
7312 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7313
7314         * file-io.c: fix typo in warning message.
7315
7316 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
7317
7318         * loader.c: on unix, lookup the "*A" version of a function
7319         if charset is auto as a second option before failing.
7320
7321 2006-02-28  Raja R Harinath  <rharinath@novell.com>
7322
7323         * class.h (mono_class_inflate_generic_method): Revert to two
7324         argument version.
7325         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
7326         (mono_class_inflate_generic_method_full): Add.
7327         * class.c (mono_class_inflate_generic_method_full): Rename from
7328         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
7329         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
7330         * loader.c, reflection.c: Update to changes.
7331
7332 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
7333
7334         * icall.c: const fixes and small improvements.
7335
7336 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7337
7338         * threadpool.c: for asynchronous connect(), enable the same workaround
7339         for BSD 6 as for the Mac. Fixes bug #77637.
7340
7341 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
7342
7343         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
7344         formatted classes. Fixes #77524.
7345
7346 2006-02-24  Raja R Harinath  <rharinath@novell.com>
7347
7348         * class.c (inflate_generic_type): Add a couple more
7349         micro-optimizations.
7350         (inflate_generic_context): Don't use the 'gmethod' from
7351         'inflate_with'.
7352         (mono_class_inflate_generic_method): If the method has generic
7353         parameters, but the passed-in context doesn't have a 'gmethod',
7354         create one.  Use the possibly simplified generic instantiation
7355         from the declaring class instead of the one passed in.
7356
7357 2006-02-24  Raja R Harinath  <harinath@gmail.com>
7358
7359         Make generic method signature and method header handling lazy.
7360         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
7361         (inflate_generic_header): Likewise.
7362         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
7363         parameter to avoid inflating types.
7364         (mono_get_inflated_method): Empty out.
7365         * class.h (mono_class_inflate_generic_method): Update to changes.
7366         * loader.c (mono_get_method_from_token): Don't parse signature for
7367         generic methods, nor methods of generic classes.
7368         (mono_method_signature): Rename from 'mono_method_signature'.
7369         Inflate signature on demand.
7370         (mono_method_get_header): Inflate method header on demand.
7371         * reflection.c: Update to changes.
7372
7373 2006-02-23  Raja R Harinath  <rharinath@novell.com>
7374
7375         * metadata.c (mono_metadata_inflate_generic_inst): If the
7376         instantiation is closed, don't bother expanding it in the new
7377         context.
7378         * class.c (inflate_generic_class): If the generic instantiation
7379         doesn't change after inflation, return the argument itself.
7380         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
7381         Add bounds checks.
7382         (inflate_generic_context): If neither the generic class nor the
7383         generic method instantiations change, return the original context.
7384         * reflection.c (mono_method_get_object): Do
7385         'mono_get_inflated_method' before accessing the ->klass field.
7386         (inflate_mono_method): Don't create a MonoGenericMethod unless
7387         necessary.
7388         (inflate_method): Don't pass a constructed type as the declaring
7389         type of a methodbuilder.
7390
7391 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
7392
7393         * object.c: fix memory overwrite.
7394
7395 2006-02-22  Dick Porter  <dick@ximian.com>
7396
7397         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
7398         it doesn't work any more.
7399         (mono_threads_request_thread_dump): Fix unused variable warnings.
7400
7401 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7402
7403         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
7404         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
7405         the public header file.
7406
7407 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
7408
7409         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
7410
7411 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
7412
7413         * class-internals.h, object.c: reduce the size of MonoVTable
7414         and store the interface_offsets array at negative offsets.
7415
7416 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
7417
7418         * metadata.c: tweak table descriptors data structures to reduce
7419         size and runtime relocations.
7420
7421 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7422
7423         * marshal.c: fix some types and opcodes to be type-safe
7424         in marshaling wrappers.
7425
7426 2006-02-21  Ankit Jain  <jankit@novell.com>
7427
7428         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
7429
7430 2006-02-21  Raja R Harinath  <rharinath@novell.com>
7431
7432         * metadata.c (get_constraints): Relax debugging checks for monodis.
7433
7434 2006-02-21  Ankit Jain  <jankit@novell.com>
7435
7436         * metadata.c (mono_metadata_load_generic_params): Move the code
7437         checking for ambiguous generic params from here to mono/dis/get.c
7438         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
7439
7440 2006-02-21  Raja R Harinath  <harinath@gmail.com>
7441
7442         Fix assertion triggered when compiling nemerle.
7443         * class.c (mono_get_shared_generic_inst): Rename from
7444         get_shared_inst and make non-static.
7445         * loader.c (mono_get_shared_generic_method): New.  Used to create
7446         the MonoGenericContext-equivalent of a MonoGenericContainer.
7447         (mono_get_method_from_token): Initialize the 'context' field of
7448         the created MonoGenericContainer.
7449         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
7450         * metadata.c (get_constraints): Add sanity check.
7451         * class-internals.h: Add new internal methods.
7452
7453         * reflection.c (verify_safe_for_managed_space): New sanity check.
7454         Currently checks that owner-less generic parameters aren't allowed
7455         in managed space.
7456         (mono_type_get_object): Use it.
7457         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
7458         that are now in mono_type_get_object.
7459         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
7460
7461 2006-02-19  Raja R Harinath  <harinath@gmail.com>
7462
7463         * metadata.c (mono_type_create_from_typespec): Rename from
7464         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
7465         argument and caching of types in the generic container.
7466         (unwrap_arrays, find_generic_param): Remove.
7467         * metadata-internals.h: Update.
7468         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
7469
7470 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
7471
7472         * class.c (mono_class_get_exception_for_failure): Fix a warning.
7473
7474         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
7475         return values. Fixes #77581.
7476
7477         * class.c (mono_fnptr_class_get): Switch name and name_space.
7478
7479         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
7480         classes and add support for [In, Out] attributes.
7481         (mono_marshal_free_asany): Ditto. Fixes #77524.
7482
7483 2006-02-18  Raja R Harinath  <harinath@gmail.com>
7484
7485         * class.c (mono_class_from_generic_parameter): Make more robust to
7486         incomplete MonoGenericContainers from monodis.
7487
7488 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7489
7490         * class-internals.h: added some more exception types.
7491         * class.c, metadata.c: added a few checks to handle missing
7492         types.
7493
7494 2006-02-17  Raja R Harinath  <rharinath@novell.com>
7495
7496         Use owner-less generic-params some more.
7497         * class.c (my_mono_class_from_generic_parameter): Remove.
7498         (mono_class_from_generic_parameter): Handle null image,
7499         param->name and param->owner.
7500         (mono_class_from_mono_type): Update.
7501         (mono_class_create_from_typespec): Remove 'container' parameter.
7502         If that parameter is non-null, the result is always inflated by
7503         'mono_class_get_full' anyway.
7504         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
7505         parameter.
7506         (mono_class_get_full): Update.
7507
7508         * class.c (inflate_generic_type) [GENERICINST]: If the generic
7509         instance is not open, don't bother inflating.
7510         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
7511         parse metadata for inflated classes.
7512         (_mono_class_get): Change GenericContext* parameter to
7513         GenericContainer*.
7514         (mono_class_create_from_typespec): Likewise.  Simplify, and
7515         implement trivially.  All the cases are handled in
7516         mono_class_from_mono_type.  Don't inflate returned class.
7517         (mono_class_get_full): Delegate GENERICINST optimization to
7518         inflate_generic_type.
7519         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
7520
7521 2006-02-16  Dick Porter  <dick@ximian.com>
7522
7523         * socket-io.c (create_object_from_sockaddr): Fix typo.
7524         (create_sockaddr_from_object): Check array lengths before
7525         potentially accessing items off the end.
7526         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
7527         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
7528         (ves_icall_System_Net_Sockets_Socket_Send_internal)
7529         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
7530         length checks to avoid wraparound overflows.
7531         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
7532         contents of the array of sockets
7533         (hostent_to_IPHostEntry2)
7534         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
7535         Check return value of inet_ntop ().
7536         (addrinfo_to_IPHostEntry): Fix typo
7537
7538 2006-02-16  Raja R Harinath  <rharinath@novell.com>
7539
7540         Type metadata parsing doesn't use generic-instantiation information.
7541         * metadata.c (mono_metadata_parse_array_full): Change
7542         MonoGenericContext* parameter to MonoGenericContainer*.
7543         (mono_metadata_parse_type_full): Likewise.
7544         (mono_type_create_from_typespec_full): Likewise.
7545         (mono_metadata_parse_mh_full): Likewise.
7546         (mono_metadata_parse_generic_inst): Likewise.
7547         (do_mono_metadata_parse_generic_class): Likewise.
7548         (do_mono_metadata_parse_type): Likewise.
7549         * metadata-internals.h: Update to changes.
7550         * class.c (mono_class_find_enum_basetype): Likewise.
7551         (mono_class_setup_fields): Likewise.
7552         (mono_class_create_from_typespec): Likewise.
7553         * loader.c (method_from_methodspec): Likewise.
7554         (mono_get_method_from_token): Likewise.
7555         (mono_method_get_header): Likewise.
7556
7557 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7558
7559         * marshal.c: handle additional GENERICINST case (patch from
7560         Thong Nguyen <tum@veridicus.com>).
7561         Fix a few cases where LDIND_I/STIND_I was used for references.
7562
7563 2006-02-16  Raja R Harinath  <rharinath@novell.com>
7564
7565         * reflection.c (mono_reflection_get_token): Remove unused variable.
7566
7567 2006-02-16  Martin Baulig  <martin@ximian.com>
7568
7569         * reflection.c (mono_reflection_get_token): Add support for fields
7570         in instantiated generic types.
7571
7572         * icall.c
7573         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
7574
7575 2006-02-15  Martin Baulig  <martin@ximian.com>
7576
7577         * icall.c
7578         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
7579         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
7580         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
7581         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
7582
7583 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
7584
7585         * class.c, metadata.c, metadata.h, object.c, icall.c,
7586         marshal.c: changed mono_type_get_underlying_type () to do
7587         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
7588         Fixed handling of instantiated generic valuetypes (bug #75479).
7589
7590 2006-02-15  Raja R Harinath  <rharinath@novell.com>
7591
7592         * metadata.c (mono_metadata_decode_signed_value): Simplify.
7593         Delegate to mono_metadata_decode_value, and work on the returned value.
7594
7595         * icall.c (ves_icall_MonoType_GetGenericArguments):
7596         Add consistency check here too.
7597         
7598 2006-02-15  Ankit Jain  <jankit@novell.com>
7599
7600         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
7601         char/short etc.
7602
7603 2006-02-15  Ankit Jain  <jankit@novell.com>
7604
7605         * metadata.c (mono_metadata_decode_signed_value): New function to decode
7606         signed values, used only for representing lower bounds of arrays.
7607         (mono_metadata_parse_array_full): Use new
7608         mono_metadata_decode_signed_value to decode lower bounds.
7609
7610 2006-02-14  Martin Baulig  <martin@ximian.com>
7611
7612         * reflection.c
7613         (mono_reflection_get_token): Support "MonoGenericMethod" and
7614         "MonoGenericCMethod" and allow generic instances / methods.
7615
7616 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
7617
7618         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
7619         to obtain the terminal size using an ioctl.
7620
7621         * object.c (mono_nullable_init): Revert this as nullable reference
7622         types are not valid.
7623         (mono_nullable_box): Ditto.
7624
7625 2006-02-09  Dick Porter  <dick@ximian.com>
7626
7627         * threads.c (mono_thread_detach): Drop a reference to the thread
7628         we're detaching.
7629
7630 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
7631
7632         * object.c (mono_nullable_init): Handle nullable reference types.
7633         (mono_nullable_box): Ditto. Fixes #77446.
7634
7635 2006-02-07  Martin Baulig  <martin@ximian.com>
7636
7637         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
7638
7639 2006-02-07  Ankit Jain  <jankit@novell.com>
7640
7641         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
7642         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
7643         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
7644         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
7645         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
7646         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
7647
7648 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
7649
7650         * class.c (mono_class_create_generic): Set type_token as well.
7651
7652         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
7653         compatible with MS.
7654
7655 2006-02-02  Martin Baulig  <martin@ximian.com>
7656
7657         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
7658         has never been used so far.
7659
7660 2006-02-02  Martin Baulig  <martin@ximian.com>
7661
7662         * mono-debug-debugger.h: Changed comment at the top of this file;
7663         the header is not installed, but it's safe to #include it from
7664         within the JIT.
7665
7666         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
7667         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
7668
7669 2006-02-02  Martin Baulig  <martin@ximian.com>
7670
7671         * mono-debug.h
7672         (MonoSymbolTable): Removed the `metadata_info' field.
7673
7674         * mono-debug.c
7675         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
7676
7677         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7678         (mono_debugger_add_builtin_types): Removed.
7679         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
7680         (mono_debugger_create_notification_function): We now operate on a
7681         pre-allocated area; take a `gpointer' and return `void'.
7682
7683         * mono-debug-debugger.c
7684         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
7685         (mono_debugger_add_builtin_types): Removed.
7686
7687 2006-02-02  Martin Baulig  <martin@ximian.com>
7688
7689         * threads.c (mono_debugger_create_all_threads): New public method.
7690
7691 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7692
7693         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
7694         breaks on several platforms.
7695
7696 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
7697
7698         * assembly.c: the VS.NET build doesn't supply default values for
7699         MONO_ASSEMBLIES and MONO_CFG_DIR.
7700
7701 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
7702
7703         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
7704         helper function.
7705
7706         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
7707
7708         * loader.c (method_from_memberref): Fix a warning.
7709
7710         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
7711
7712         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
7713         with explicit layout. Fixes #77433.
7714
7715 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
7716
7717         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
7718         max_interface_id is initialized before using it. Fixes #77398.
7719         (ves_icall_Type_GetInterfaces): Ditto.
7720
7721 2006-01-30  Raja R Harinath  <rharinath@novell.com>
7722
7723         * metadata.c (mono_metadata_parse_method_signature_full): Don't
7724         allocate memory for parameter attributes when parsing memberref
7725         signatures.
7726         * loader.c (mono_loader_set_error_method_load): Don't warn.
7727         (method_from_memberref): Ensure MissingMethodException gets thrown
7728         if method is not found.  Make warning more informative.
7729
7730 2006-01-29  Raja R Harinath  <harinath@gmail.com>
7731
7732         Fix #77397
7733         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
7734         return true if is byref.
7735         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
7736         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
7737         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
7738
7739 2006-01-27  Raja R Harinath  <rharinath@novell.com>
7740
7741         Fix tests/find-method.2.il
7742         * loader.c (find_method, find_method_in_class): Remove is_inflated
7743         argument.  Revert 2006-01-18 change.
7744         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
7745         is generic, search for method in its generic definition.
7746         * class.c (mono_class_setup_vtable_general): Print generic
7747         arguments of generic types in debugging printf.
7748
7749 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
7750
7751         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
7752
7753         * threads.c (mono_threads_request_thread_dump): New helper function.
7754
7755 2006-01-25  Raja R Harinath  <rharinath@novell.com>
7756
7757         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
7758
7759 2006-01-25  Ankit Jain  <jankit@novell.com>
7760
7761         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
7762         move definition to ..
7763         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
7764         
7765 2006-01-25  Ankit Jain  <jankit@novell.com>
7766             Raja R Harinath  <rharinath@novell.com>
7767
7768         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
7769         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
7770         as necessary.
7771
7772 2006-01-25  Martin Baulig  <martin@ximian.com>
7773
7774         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
7775         `MonoDebuggerThread' into debug-debugger.c.
7776
7777 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
7778
7779         * profiler.c: fix printing of data.
7780
7781 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
7782
7783         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
7784           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
7785
7786 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
7787
7788         * object.c: fix deadlock related to string interning.
7789
7790 2006-01-23  Martin Baulig  <martin@ximian.com>
7791
7792         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7793
7794         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
7795
7796 2006-01-23  Martin Baulig  <martin@ximian.com>
7797
7798         * mono-debug.h: Moved the prototypes of some functions which are
7799         used by the JIT here from mono-debug-debugger.h.
7800
7801 2006-01-21  Martin Baulig  <martin@ximian.com>
7802
7803         * Makefile.am: Don't install mono-debug-debugger.h.
7804
7805 2006-01-21  Martin Baulig  <martin@ximian.com>
7806
7807         * mono-debug-debugger.h: Enforce the private status of this header
7808         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
7809         Moved some stuff from mono-debugger-jit-wrapper.h here.
7810
7811 2006-01-20  Raja R Harinath  <rharinath@novell.com>
7812
7813         * class.c (mono_class_from_typeref): Add a sanity test to help
7814         catch lack of assembly load/search hooks.
7815
7816 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
7817
7818         * marshal.c (emit_struct_conv): Relax the fields with same offset
7819         check even more. Fixes #77230.
7820
7821 2006-01-18  Martin Baulig  <martin@ximian.com>
7822
7823         * loader.c (find_method_in_class): Added `gboolean is_inflated'
7824         argument; if false, we compare the uninstantiated signatures.
7825         (method_from_memberref): Compare the uninstantiated signatures;
7826         fixes #76417.
7827
7828 2006-01-18  Robert Jordan  <robertj@gmx.net>
7829
7830         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
7831         Clear the weak link. Fixes bug #77170.
7832
7833         * gc.c (mono_gchandle_free):
7834         Reflect *-gc.c changes (tiny optimization).
7835
7836 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
7837
7838         * metadata.c (mono_metadata_signature_dup): Applied patch from
7839         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
7840         Fixes #77288.
7841
7842 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
7843
7844         * marshal.c (emit_struct_conv): Allow fields with the same offset when
7845         marshalling from native to managed code. Fixes #77230.
7846
7847 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7848
7849         * threadpool.c: fix problem (Mac only) when more than one asynchronous
7850         connect. Fixes bug #77020.
7851
7852 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
7853
7854         * class.c: fixed id assignement for nested interfaces (bug #77275).
7855         Added also better info for --print-vtable debugging.
7856
7857 2006-01-12  Martin Baulig  <martin@ximian.com>
7858
7859         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
7860         interfaces on-the-fly; fixes #76625.
7861
7862         * class-internals.h
7863         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
7864         don't need that anymore.
7865
7866 2006-01-12  Miguel de Icaza  <miguel@novell.com>
7867
7868         * socket-io.c
7869         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
7870         To avoid initing the nested_classes when not needed I turned the
7871         PeerCredData as a toplevel internal class, as it has to be shared
7872         anyways. 
7873
7874         Fixes the CASA issue.
7875
7876 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
7877
7878         * domain.c: Accessors for MonoJitInfo
7879
7880         * profiler-private.h: Add jitinfo to the end jit hook
7881
7882         * profiler.[ch]: Define new hooks, called after jitting which give
7883         the MonoJitInfo that was compiled
7884
7885 2006-01-10  Martin Baulig  <martin@ximian.com>
7886
7887         * class.c (mono_class_setup_events): Add support for generic
7888         classes; fixes #76440.
7889
7890 2006-01-06  Raja R Harinath  <rharinath@novell.com>
7891
7892         Fix #77160.
7893         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
7894         on passed-in method.
7895
7896 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
7897
7898         * object.c (mono_runtime_invoke_array): Add Nullable support.
7899
7900         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
7901
7902 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
7903
7904         * file-io.c: Don't consider sockets as directory and avoid an endless
7905         loop. Fix bug #76966.
7906
7907 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
7908
7909         * object.c (mono_nullable_init): New helper function.
7910         (mono_nullable_box): Ditto.
7911
7912         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
7913
7914         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
7915
7916         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
7917         
7918 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
7919
7920         * class.c (mono_class_is_assignable_from): Make T assignable to 
7921         Nullable<T>.
7922
7923 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
7924
7925         * appdomain.c: Bump corlib version to 46.
7926         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
7927         serialization purpose) and changed ves_icall_System_Reflection_
7928         Assembly_get_code_base signature to accept a boolean (to escape, or 
7929         not, the assembly code base).
7930
7931 2005-12-23  Dick Porter  <dick@ximian.com>
7932
7933         * icall.c: 
7934         * threads-types.h: 
7935         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
7936         CreateEvent icall now returns "created" boolean parameter.
7937
7938 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
7939
7940         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
7941         #76967.
7942
7943         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
7944         when attr_klass is an interface. Fixes #77045.
7945
7946 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
7947
7948         * marshal.c (emit_struct_conv): Fix previous patch.
7949         
7950         * marshal.c (emit_struct_conv): Add a check for fields with the same
7951         offset.
7952
7953 2005-12-20  Raja R Harinath  <rharinath@novell.com>
7954
7955         Fix regression in Mono.C5.
7956         * class.c (mono_class_create_generic): If 'klass' is an interface
7957         set up the interface offsets.
7958         (mono_class_is_assignable_from): Don't throw away generic arguments.
7959
7960 2005-12-19  Raja R Harinath  <rharinath@novell.com>
7961
7962         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
7963         type parameters.
7964
7965 2005-12-15  Raja R Harinath  <rharinath@novell.com>
7966
7967         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
7968         dead store.
7969         (do_mono_metadata_parse_generic_class): Don't pass the current
7970         generic context when parsing the type being instantiated: it
7971         cannot use it, anyway.
7972
7973         * loader.c (method_from_memberref): Don't inflate a signature if
7974         it doesn't contain any type parameters.
7975
7976 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
7977
7978         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
7979
7980 2005-12-14  Martin Baulig  <martin@ximian.com>
7981
7982         * class.c
7983         (mono_type_get_name_recurse): Don't return null for type
7984         parameters and open generic classes.
7985         (mono_class_setup_methods): Don't exclude generic instances.
7986         (mono_get_unique_iid): Use different IDs for different
7987         instantiations of the same generic type.
7988         (mono_class_setup_vtable): Only use setup_generic_vtable() for
7989         open generic instances; create a normal vtable for closed generic
7990         instances.
7991         (mono_class_setup_vtable_general): We're now also called for
7992         closed generic instances.
7993
7994         * reflection.c
7995         (mono_reflection_bind_generic_parameters): Correctly use
7996         mono_metadata_lookup_generic_inst() everywhere.
7997
7998 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
7999
8000         * object.c (mono_class_create_runtime_vtable): Call 
8001         mono_class_setup_vtable ().
8002
8003         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
8004         function.
8005         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
8006         #76959.
8007
8008         * loader.c (mono_loader_set_error_type_load): Print the type load
8009         warnings to the console so they are more visible to the user.
8010         (mono_loader_set_error_method_load): Ditto.
8011
8012         * reflection.c (ensure_runtime_vtable): Revert the last change as it
8013         is still broken.
8014         
8015         * reflection.c (ensure_runtime_vtable): Fix build.
8016
8017         * reflection.c (ensure_runtime_vtable): Disable an optimization which
8018         doesn't work in all cases.
8019
8020 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
8021
8022         * object.c (mono_array_new_full): Treat a single dimensional array
8023         with 0 lower bounds as an szarray. Fixes #76973.
8024
8025         * reflection.c (custom_attr_visible): Really fix this.
8026
8027 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
8028
8029         * reflection.c (custom_attr_visible): Allow nested public attributes
8030         as well.
8031
8032         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
8033         interface check.
8034
8035 2005-12-12  Raja R Harinath  <harinath@gmail.com>
8036
8037         * class.c (set_generic_param_owner): Delete.
8038         (mono_class_create_from_typedef): Don't set ->owner field of
8039         generic parameters to "param containers" of enclosing classes.
8040         * reflection.c (mono_reflection_initialize_generic_parameter):
8041         Likewise.
8042
8043 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
8044
8045         * reflection.c (custom_attr_visible): Fix build.
8046
8047 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
8048
8049         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
8050         private attributes.
8051         
8052         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
8053         handling of null parameter defaults.
8054
8055 2005-12-09  Raja R Harinath  <rharinath@novell.com>
8056
8057         * class.c (mono_class_from_generic_parameter): Don't set
8058         klass->generic_container.
8059         (my_mono_class_from_generic_parameter): Likewise.
8060
8061 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
8062
8063         * reflection.c (load_public_key): Fix a warning.
8064         (method_encode_code): Fix unaligned accesses.
8065
8066 2005-12-07  Martin Baulig  <martin@ximian.com>
8067
8068         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
8069
8070         * reflection.c
8071         (write_generic_param_entry): Encode our custom attrs.
8072
8073         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
8074
8075 2005-12-07  Martin Baulig  <martin@ximian.com>
8076
8077         * reflection.c (encode_new_constraint): Removed; we don't use the
8078         `NewConstraintAttribute' anymore.
8079
8080 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
8081
8082         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
8083         not fire a TypeResolve event when Assembly.GetType () is called.
8084
8085 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
8086
8087         Beginning of support for nullable types in the runtime. Parts of
8088         this patch are from Martin.
8089
8090         * appdomain.c (MONO_CORLIB_VERSION): Bump
8091
8092         * domain.c (mono_init_internal): get the nullable type
8093
8094         * class.c (mono_class_is_nullable): New method
8095         (mono_class_get_nullable_param): New mehod
8096         (mono_class_create_generic): In types T? set cast_class to T
8097
8098         * class-internals.h (MonoDefaults): new nullable default class
8099         (mono_class_get_nullable_param, mono_class_get_nullable_param):
8100         new methods.
8101
8102 2005-12-05  Raja R Harinath  <rharinath@novell.com>
8103
8104         * metadata.c (select_container): New.  Refactor code to select the
8105         appropriate GenericContainer given the type of generic parameter
8106         we are looking for.
8107         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
8108         not a MonoGenericContext.  Use select_container.  Update parameters.
8109         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
8110         and MONO_TYPE_MVAR.
8111         (unwrap_arrays): Remove duplicate tests.
8112         (find_generic_param): Rename from 'has_same_context'.  Now walks a
8113         generic instantiated class to find any arguments that are generic
8114         parameters.
8115         (mono_type_create_from_typespec_full): Use find_generic_param to
8116         avoid evicting some generic instantiations from the typespec
8117         cache.
8118
8119 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
8120
8121         * reflection.c: fixed writing of doubles on ARM FPA.
8122
8123 2005-12-02  Robert Jordan  <robertj@gmx.net>
8124
8125         * icall.c: Fixed EventInfo.ReflectedType (#76829).
8126
8127 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8128
8129         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
8130         least on SUSE 10 they are not the same (on debian, they are just the
8131         same thing).
8132
8133 2005-12-01  Raja R Harinath  <rharinath@novell.com>
8134
8135         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
8136         DeclaringType for VARs and MVARs.
8137         * class.c (set_generic_param_owner): Fix initialization of owner
8138         fields.
8139
8140 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8141
8142         * icall.c: fixed Enum.ToObject() to correctly convert the values.
8143
8144 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8145
8146         * threadpool.c: workaround for a bug that shows up on the Mac:
8147         select()+connect() on a blocking socket is not like it should
8148         be, so we proceed to connect() in that case, wasting the I/O
8149         threadpool thread until connect succeedes. Fixes bug #75436.
8150
8151 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8152
8153         * threadpool.c: fix typo when setting file descriptor states.
8154
8155 2005-11-28  Raja R Harinath  <rharinath@novell.com>
8156
8157         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
8158         * metadata.c (mono_metadata_parse_method_signature_full): Don't
8159         create a temporary signature container.
8160         (mono_metadata_parse_generic_param): Update to changes.
8161         (mono_type_create_from_typespec_full): Update to changes.
8162         * loader.c (method_from_memberref): Don't use a
8163         MonoGenericContainer while parsing a memberref signature.
8164         (method_from_methodspec): Remove dead-store of the 'container'
8165         variable.  It's overwritten before use.
8166
8167         * metadata.c (mono_type_create_from_typespec_full): Make debugging
8168         checks tighter.
8169         (mono_metadata_parse_generic_param): Likewise.
8170         * loader.c (find_method_in_class): Does not need a
8171         MonoGenericContainer.  Use 'mono_method_signature' rather than
8172         'mono_method_signature_full'.
8173         (find_method, mono_get_method_constrained, method_from_memberref):
8174         Update to changes.
8175
8176         * metadata.c (mono_type_create_from_typespec_full): Ensure that
8177         owner-less generic-parameters are never evicted from the typespec
8178         cache.
8179
8180         * loader.c (method_from_memberref): Don't use the current context
8181         when parsing signatures.
8182         (method_from_methodspec, mono_get_method_from_token): Update to changes.
8183
8184         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
8185         side-effects in g_assert.
8186         * loader.c (mono_get_method_from_token): Resolve klass earlier so
8187         that we don't potentially lose information.
8188
8189 2005-11-26  Dick Porter  <dick@ximian.com>
8190
8191         * icall.c:
8192         * threads.c: icalls to implement basic (ie, not named)
8193         System.Threading.Semaphore.
8194
8195 2005-11-24  Dick Porter  <dick@ximian.com>
8196
8197         * process.c
8198         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
8199         Use GetProcessId() if it's available.
8200
8201 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
8202
8203         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
8204
8205 2005-11-23  Raja R Harinath  <rharinath@novell.com>
8206             Ankit Jain  <jankit@novell.com>
8207
8208         * loader.c (mono_get_method_from_token): Initialize 'method' field
8209         of all generic parameters before parsing the signature.  Remove
8210         code that "fixed"-up MVAR references.
8211
8212 2005-11-23  Ankit Jain  <jankit@novell.com>
8213
8214         * metadata.c (mono_metadata_has_generic_params):
8215         (mono_metadata_load_generic_param_constraints):
8216         (mono_metadata_load_generic_params): Move duplicate code ...
8217         (mono_metadata_get_generic_param_row): ... here. Returns the
8218         first row-id in GenericParam table for a given owner (token).
8219         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
8220         prototype.
8221
8222 2005-11-23  Raja R Harinath  <rharinath@novell.com>
8223             Ankit Jain  <jankit@novell.com>
8224
8225         * metadata.c (mono_metadata_class_equal): Pass signature_only when
8226         comparing VARs too.
8227         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
8228         type->data.generic_param only if the type is an MVAR.
8229         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
8230         leak owner-less VARs and MVARs into managed space.
8231
8232 2005-11-21  Martin Baulig  <martin@ximian.com>
8233
8234         * class-internals.h
8235         (MonoMethod): Moved the `generic_container' here from
8236         `MonoMethodNormal' since we now also need it for
8237         `MonoMethodPInvoke';
8238         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
8239         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
8240         an union containing both `MonoMethodNormal' and
8241         `MonoMethodPInvoke'.
8242
8243         * loader.c
8244         (mono_get_method_from_token): Allow implementing generic methods
8245         as interncalls.
8246
8247         * threads.c
8248         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
8249         icall.
8250
8251 2005-11-17  Dick Porter  <dick@ximian.com>
8252
8253         * icall.c: 
8254         * process.h: 
8255         * process.c: Split the Process Start_internal icall into
8256         ShellExecuteEx_internal and CreateProcess_internal, which are
8257         called depending on whether UseShellExecute is true.  Fixes bug
8258         76670.
8259
8260         * appdomain.c (MONO_CORLIB_VERSION): Incremented
8261
8262 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
8263
8264         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
8265         'msize' parameters, use the information in 'mspec' instead.
8266         (emit_object_to_ptr_conv): Ditto.
8267
8268         * marshal.c (emit_struct_conv): Handle explicit layout structs with
8269         fields out of order. Fixes #76733.
8270
8271 2005-11-17  Ankit Jain  <jankit@novell.com>
8272
8273         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
8274
8275 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
8276
8277         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
8278           bug #76575.
8279
8280 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
8281
8282         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
8283         for types with non-auto layout. Fixes #76717.
8284
8285 2005-11-16  Ankit Jain  <jankit@novell.com>
8286
8287         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
8288         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
8289         if generic_context is null.
8290           (mono_metadata_generic_param_equal): param->owner can be null.
8291           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
8292         null.
8293
8294 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
8295
8296         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
8297         the correct value.
8298
8299 2005-11-15  Martin Baulig  <martin@ximian.com>
8300
8301         * object.c (set_value): Use mono_class_from_mono_type() instead of
8302         the hack for generic instances; fixes #76136.
8303
8304 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
8305
8306         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
8307         fields.
8308
8309         * image.c (load_metadata_ptrs): Initialize the new fields.
8310
8311         * reflection.c (create_dynamic_mono_image): Ditto.
8312
8313         * reflection.c (build_compressed_metadata): Use the new fields.
8314
8315         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
8316         icall.
8317
8318         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
8319         icall.
8320         
8321 2005-11-15  Ankit Jain  <jankit@novell.com>
8322             Raja R Harinath  <harinath@gmail.com>
8323
8324         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
8325         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
8326         new per-generic_container cache if the cached MonoType's context matches
8327         the current context.
8328           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
8329         to the expected context.
8330           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
8331
8332 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8333
8334         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
8335         we changed the signature of an icall.
8336         * icall.c: Modify to mono_double_ParseImpl return true/false 
8337         depending on the success, instead of throwing the exception. This will
8338         help us in Double.TryParse methods.
8339         
8340 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
8341
8342         * marshal.c (emit_marshal_object): Throw an exception when
8343         marshalling 'object' instead of crashing. Fixes #76696.
8344
8345 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
8346
8347         * class-internals.h: Add prototype for mono_type_get_full_name ().
8348
8349 2005-11-11  Dick Porter  <dick@ximian.com>
8350
8351         * threads.c (mono_thread_manage): Make sure the main thread has
8352         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
8353
8354 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
8355
8356         * loader.c (mono_loader_set_error_type_load): Log a warning to the
8357         console about the missing type.
8358         (mono_loader_set_error_method_load): Ditto.
8359
8360 2005-11-09  Miguel de Icaza  <miguel@novell.com>
8361
8362         * mono-config.c (mono_get_config_dir): Set the system defaults if
8363         none is specified.
8364
8365         * assembly.c (mono_set_dirs): New API entry point to set the
8366         assembly and the config directory in one call
8367
8368 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
8369
8370         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
8371         the ftnptr was created from a delegate in a domain other than the
8372         current domain. Fixes #75377.
8373
8374         * exception.h exception.c: Add mono_get_exception_not_supported ().
8375
8376 2005-11-08  Martin Baulig  <martin@ximian.com>
8377
8378         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
8379
8380 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
8381
8382         * security-manager.h: Added definitions to deal with strongname key 
8383         pairs bigger (and smaller) than 1024 bits.
8384         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
8385         adjust wrt the public key length being used.
8386
8387 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
8388
8389         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
8390           Windows build (r51396-51397).
8391
8392 2005-11-03  Martin Baulig  <martin@ximian.com>
8393
8394         * class.c (mono_class_setup_vtable_general): Also add generic
8395         methods to the vtable; fixes #76581.
8396
8397 2005-11-01  Miguel de Icaza  <miguel@novell.com>
8398
8399         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
8400         sure that we lookup GetString method from the System.Text.Encoding
8401         class, not the derived class or we get an empty method.
8402
8403         Fixed class #76612.
8404
8405 2005-10-25  Miguel de Icaza  <miguel@novell.com>
8406
8407         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
8408         if it has been previously set (embedders). 
8409
8410         Make mono_set_rootdir available also on Unix.
8411
8412 005-10-24  Robert Jordan  <robertj@gmx.net>
8413
8414         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
8415
8416 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
8417
8418         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
8419         only calls which are made to native code use this flag.
8420
8421         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
8422
8423 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
8424
8425         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
8426         Add support for FieldBuilders.
8427
8428 2005-10-29  Martin Baulig  <martin@ximian.com>
8429
8430         * mono-debug.c
8431         (mono_debug_using_mono_debugger): New public method; returns
8432         whether we're running inside the debugger.
8433
8434 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
8435
8436         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
8437         for Method/Constructor/FieldBuilders.
8438
8439 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
8440
8441         * reflection.c (module_add_cattrs): Save custom attributes for global methods
8442         and fields as well.
8443
8444 2005-10-26  Martin Baulig  <martin@ximian.com>
8445
8446         * mono-debug-debugger.c
8447         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
8448
8449 2005-10-24  Raja R Harinath  <harinath@gmail.com>
8450
8451         * icall.c (base64_to_byte_array): Don't pass an out-of-range
8452         integer to isspace.
8453
8454 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
8455
8456         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
8457         when passing valuetypes byref. Fixes #76502.
8458
8459 2005-10-19  Jackson Harper  <jackson@ximian.com>
8460
8461         * profiler.c: Don't put a . in front of types that are not in a
8462         namespace.
8463
8464 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
8465
8466         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
8467
8468 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
8469
8470         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
8471         #76436.
8472         (mono_marshal_get_ldflda_wrapper): Fix a warning.
8473
8474 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8475
8476         * assembly.c metadata-internals.h icall.c: Define an additional
8477         parameter for mono_assembly_name_parse_full, so we can avoid creating
8478         S.R.AssemblyName.Version when no version info wasn't passed.
8479         
8480 2005-10-09  Miguel de Icaza  <miguel@novell.com>
8481
8482         * class.c (mono_type_get_full_name): Reimplement method that was
8483         removed. 
8484
8485         * image.c: Some docs
8486
8487 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
8488
8489         * profiler.c (output_newobj_profile): Fix printing of Total memory
8490         on x86.
8491
8492 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
8493
8494         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
8495
8496 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
8497
8498         * threads.c: remove debug output.
8499
8500 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
8501
8502         * threads.c (mono_thread_manage): Fix crashes if more than 64
8503         threads need to be aborted. Hopefully fixes #75899.
8504
8505         * assembly.c (mono_stringify_assembly_name): New helper function.
8506
8507         * class.c: Use mono_stringify_assembly_name instead of the similar
8508         static function.
8509
8510         * assembly.h assembly.c: Add support for calling a postload search 
8511         hook if an assembly cannot be loaded.
8512
8513         * appdomain.c: Register new search hooks which call the AssemblyResolve
8514         events in AppDomain. Fixes #75231
8515
8516 2005-10-07  Martin Baulig  <martin@ximian.com>
8517
8518         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
8519         methods without debug info.
8520
8521 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
8522
8523         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
8524         wrappers.
8525
8526 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8527
8528         * file-io.c: now that we return symlinks, use lstat and, when the file
8529         is a symbolic link, stat, to get the file attributes. Also avoid the
8530         conversion to/from utf16/external.
8531
8532 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
8533
8534         * class.c (mono_class_layout_fields): Compute klass->has_references
8535         correctly if an embedded valuetype is not yet initialized. Fixes
8536         #76331.
8537
8538 2005-10-04  Martin Baulig  <martin@ximian.com>
8539
8540         * metadata.c
8541         (mono_metadata_load_generic_param_constraints): New public
8542         function; splitted the constraints loading out from
8543         mono_metadata_load_generic_params().
8544
8545         * class.c (mono_class_create_from_typedef): Call
8546         mono_metadata_load_generic_param_constraints() after setting up
8547         the type and creating our parent; fixes #75329.
8548
8549 2005-10-04  Martin Baulig  <martin@ximian.com>
8550
8551         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
8552         non-dynamic parent classes.
8553
8554 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
8555
8556         * file-io.c : win32 build fix (ETXTBSY seems not found).
8557
8558 2005-10-04  Martin Baulig  <martin@ximian.com>
8559
8560         * reflection.c
8561         (mono_image_get_methodspec_token): Make the cache actually work;
8562         fixes #75974.
8563
8564 2005-10-04  Martin Baulig  <martin@ximian.com>
8565
8566         * class.c (mono_class_name_from_token): Removed the unneccessary
8567         `MonoGenericContext *' argument.
8568
8569 2005-10-04  Martin Baulig  <martin@ximian.com>
8570
8571         * loader.c
8572         (method_from_methodspec): Make the caching work again; fixes the
8573         performance regression from #76262.
8574
8575 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8576
8577         * file-io.c:
8578         * file-io.h:
8579         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
8580         GetFileSystemEntries that performs the same work but without going
8581         into io-layer, locking, etc.
8582
8583 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
8584
8585         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
8586         ThreadState_Stopped as well. Fixes #76047.
8587
8588 2005-09-29  Martin Baulig  <martin@ximian.com>
8589
8590         * class.c
8591         (inflate_generic_context): If the new context has a `gmethod', set
8592         its `container' that that gmethod's `container'.
8593
8594         * metadata.c
8595         (mono_metadata_parse_generic_param): Simplify things;
8596         `generic_container = generic_context->container;' is just fine.
8597
8598         * loader.c (method_from_methodspec): Code cleanups.
8599
8600 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
8601
8602         * decimal.c: fix warning (and let gcc generate correct
8603         code on ARM with optimizations).
8604
8605 2005-09-28  Martin Baulig  <martin@ximian.com>
8606
8607         * loader.c
8608         (method_from_memberref): Added `MonoGenericContext *class_context'
8609         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
8610         (method_from_methodspec): If we're a memberref, use the enclosing
8611         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
8612
8613 2005-09-28  Martin Baulig  <martin@ximian.com>
8614
8615         * object.c (mono_runtime_invoke_array): Added support for
8616         MONO_TYPE_GENERICINST; fixes #75917.
8617
8618 2005-09-27  Martin Baulig  <martin@ximian.com>
8619
8620         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
8621         `k->byval_arg.type' to determine the actual type.
8622
8623         * loader.c (method_from_methodspec): Removed some hacks.
8624
8625 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
8626
8627         * class-internals.h (mono_field_is_deleted): Do the test for
8628         rtspecialname before we check the actual name of the field. This
8629         prevents us from dereferencing a pointer into the string table,
8630         saving us from accessing a few pages
8631
8632         * *.c: Replace the use of {Enter,Leave}CriticalSection with
8633         macros. This will allow a deadlock debugger to easily be plugged
8634         in.
8635
8636 2005-09-27  Martin Baulig  <martin@ximian.com>
8637
8638         * loader.c (method_from_methodspec): Create a "signature"
8639         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
8640
8641 2005-09-27  Martin Baulig  <martin@ximian.com>
8642
8643         * class.c
8644         (inflate_generic_class): Correctly set the new context's
8645         container.
8646
8647         * loader.c
8648         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
8649         instead of a `MonoGenericContext *'.
8650         (mono_method_signature_full): Take a `MonoGenericContainer *'
8651         instead of a `MonoGenericContext *'.
8652
8653         * metadata.c
8654         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
8655         instead of a `MonoGenericContext *'.
8656         (mono_metadata_parse_method_signature_full): Likewise.
8657
8658 2005-09-26  Martin Baulig  <martin@ximian.com>
8659
8660         * class.c
8661         (mono_class_from_generic_parameter): Set `klass->generic_container'
8662         (mono_class_from_generic_parameter): Likewise.
8663         (mono_bounded_array_class_get): We inherit the generic container
8664         from the element class.
8665
8666         * loader.c
8667         (find_method, find_method_in_class): Take a `MonoGenericContext *'
8668         argument rather than computing it here.
8669         (method_from_memberref): Correctly set the generic context before
8670         parsing the signature.  Fixes #75681.
8671
8672 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
8673
8674         * object.c (mono_class_has_special_static_fields): Fix warnings.
8675
8676 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8677
8678         * assembly.c: Add parse_public_key function, to
8679         par the public keys. Also added mono_assembly_name_parse_full,
8680         to define it the parsed key should be freed or not.
8681         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
8682         to parse a long format assembly name.
8683         * metadata-internals.h: Keep mono_assembly_name_parse_full as
8684         private, since calling it to preserve the key requires
8685         freeing it manually.
8686         
8687 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
8688
8689         * locales.c : removed HAVE_ICU part.
8690
8691 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
8692
8693         * object.c (mono_class_create_runtime_vtable): Avoid calling 
8694         field_is_special_static if the klass has no special static fields.
8695
8696         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
8697         (MonoCachedClassInfo): Likewise.
8698
8699         * object.c (mono_class_has_special_static_fields): New helper function.
8700
8701 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8702
8703         * class.c (mono_class_create_from_typedef): Don't call 
8704         interfaces_from_typedef_full for enums.
8705         (mono_class_create_from_typedef): Compute the base types of enums directly
8706         without calling mono_class_setup_fields ().
8707         (mono_class_find_enum_basetype): New helper function.
8708
8709         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
8710         one place inside the string heap.
8711         
8712 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
8713
8714         * class.c: locking fixes, code cleanups, some docs added.
8715         Allocate some data structures in the image mempool.
8716
8717 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8718
8719         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8720         the example code.
8721         
8722 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
8723
8724         * class-internals.h, class.c, reflection.c: reduce memory taken by
8725         MonoClass.
8726
8727 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
8728
8729         * metadata.c, metadata.h, loader.h: documentation updates, code and
8730         API cleanups.
8731
8732 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8733
8734         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8735         the example code.
8736
8737         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
8738         page faults caused by the runtime while reading metadata.
8739
8740 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8741
8742         * socket-io.c: the field names were changed 3 months ago and no one
8743         realized until bug #76077 got filed!
8744
8745 2005-09-20  Martin Baulig  <martin@ximian.com>
8746
8747         * icall.c (assembly_icalls): Removed some unused debugger icalls.
8748
8749 2005-09-20  Martin Baulig  <martin@ximian.com>
8750
8751         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
8752         write the rank into the class entry.
8753
8754 2005-09-20  Martin Baulig  <martin@ximian.com>
8755
8756         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
8757
8758 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
8759
8760         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8761
8762         * icall.c (custom_attrs_defined_internal): New icall.
8763
8764         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
8765         function.
8766         (mono_custom_attrs_construct_by_type): New helper function.
8767
8768 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
8769
8770         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
8771         terminate the resulting string. Fixes #76123.
8772
8773 2005-09-16  Martin Baulig  <martin@ximian.com>
8774
8775         * mono-debug.c
8776         (mono_debug_add_method): Ignore inflated methods for the moment.
8777
8778 2005-09-14  Martin Baulig  <martin@ximian.com>
8779
8780         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
8781
8782 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
8783
8784         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
8785         return a success/failure indication.
8786         (mono_metadata_interfaces_from_typedef_full): Ditto.
8787         (get_constraints): Ditto.
8788
8789 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
8790
8791         * marshal.c (emit_marshal_array): Fix handling of null arrays.
8792         
8793         * marshal.c (emit_marshal_array): Add support for returning string
8794         arrays from delegates. Fixes #76063.
8795
8796         * marshal.c: Use the emit_ldloc/stloc macros where possible.
8797
8798 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
8799
8800         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
8801         icall.
8802
8803 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
8804
8805         * reflection.c icall.c: Fix after mono_get_exception_type_load
8806         signature change.
8807
8808         * assembly.c (mono_assembly_get_assemblyref): New helper function.
8809         (mono_assembly_load_reference): Use the new helper.
8810
8811         * class-internals.h (MonoLoaderError): New structure containing 
8812         information about type loading errors.
8813
8814         * class-internals.h loader.c: Add APIs to store per-thread loader
8815         error information.
8816
8817         * loader.c class.c: Set the loader error if needed.
8818
8819         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
8820
8821 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
8822
8823         * decimal.c: fixed to handle the broken ARM fp format.
8824
8825 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
8826
8827         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
8828         broken.
8829
8830 2005-09-06  Martin Baulig  <martin@ximian.com>
8831
8832         * domain.c (supported_runtimes): Added v2.0.50727.
8833
8834 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
8835
8836         * culture-info.h: reduce the size of some structures.
8837
8838 2005-09-05  Martin Baulig  <martin@ximian.com>
8839
8840         Reflect latest API changes in the August CTP.
8841
8842         * icall.c
8843         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
8844         ("MonoType.HasGenericArguments"): Removed.
8845         ("MonoMethod.BindGenericParameters"): Renamed to
8846         "MakeGenericMethod".
8847         ("MethodBuilder.BindGenericParameters"): Renamed to
8848         "MakeGenericMethod".    
8849
8850 2005-09-05  Martin Baulig  <martin@ximian.com>
8851
8852         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
8853
8854 2005-09-05  Martin Baulig  <martin@ximian.com>
8855
8856         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8857
8858         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
8859         generic_container is non-NULL.
8860
8861 2005-09-05  Martin Baulig  <martin@ximian.com>
8862
8863         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8864
8865         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
8866
8867 2005-08-29  Michal Moskal  <malekith@nemerle.org>
8868
8869         * reflection.c (encode_locals,
8870         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
8871         for large generic types.
8872
8873 2005-09-05  Martin Baulig  <martin@ximian.com>
8874
8875         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8876
8877         * class.c (mono_dup_array_type): New public method.
8878         (mono_metadata_signature_deep_dup): New public method.
8879         (dup_type): Correctly duplicate array and function types.
8880
8881 2005-09-05  Martin Baulig  <martin@ximian.com>
8882
8883         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8884
8885         * reflection.c (get_default_param_value_blobs): Handle generic types
8886         and generic methods.
8887
8888 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
8889
8890         * class.c: Fixed error reporting (method/class were inversed) for 
8891         inheritance demands.
8892         * security-manager.c|h: Added the AppDomain when calling the managed
8893         System.Security.SecurityManager.InheritanceDemand method.
8894
8895 2005-09-01  Raja R Harinath  <rharinath@novell.com>
8896
8897         * reflection.c (encode_marshal_blob): 'marshaltype' and
8898         'marshaltyperef' are alternate sources for the custom marshaler
8899         name.
8900
8901 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
8902
8903         * class.c: fix creation of array classes with rank == 1
8904         (patch by Ankit Jain <jankit@novell.com>).
8905
8906 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
8907
8908         * object.c: fix check for creating the bound data for arrays vs
8909         szarrays.
8910
8911 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8912
8913         * object.c: configuration file name is now based on the executable name,
8914         not the image name. Fixes bug #75931.
8915
8916 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
8917
8918         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
8919         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
8920
8921 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
8922
8923         * rand.c: Use wincrypt.h instead of WinCrypt.h.
8924
8925 2005-08-24  Ankit Jain  <jankit@novell.com>
8926             Raja R Harinath  <rharinath@novell.com>
8927
8928         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
8929           called by it recursively.
8930           (mono_class_init): Remove special case in pending_init handling, since it's
8931           superseded by the fix to mono_class_from_typeref.
8932
8933 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
8934
8935         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
8936         BROKEN_THREAD_START stuff.
8937
8938 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
8939
8940         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
8941         trampoline.
8942
8943         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
8944         
8945         * object.c (mono_delegate_ctor): Replace the original function address with
8946         a delegate trampoline.
8947
8948 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
8949
8950         * icall.c: add boolean argument to base64_to_byte_array and 
8951         InternalFromBase64String to control whether a whitespace-only string
8952         is allowed (or should casue a FormatException to be thrown). We need
8953         this as the behavior has changed between MS.NET 1.x and 2.0, and we
8954         to match the MS behaviour in both profiles.
8955         * appdomain.c: Bump corlib version.
8956
8957 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8958
8959         This patch implements a big portion of publisher policy
8960         support, used to bind assembly versions and redirect
8961         one assembly from version A to version B.
8962
8963         * assembly.c:
8964         New GSList loaded_assembly_bindings, for storing the cached
8965         assembly bindings.
8966         (assembly_binding_maps_name): New static function for checking if a 
8967         assembly binding information maps an assembly name.
8968         (mono_assembly_binding_info_free): New function for freeing
8969         assembly binding information resources.
8970         (get_publisher_policy_info): New static function for retrieving 
8971         assembly binding information from a MonoImage.
8972         (compare_versions): New static function for comparing an assembly
8973         binding information data and the version of an assembly name.
8974         (check_policy_versions): New static function for checking if an
8975         assembly binding info mapping an assembly name is valid for it.
8976         (mono_assembly_load_publisher_policy): New static function for
8977         loading the 'policy.major.minor.MyAssembly' image for an assembly
8978         with an assembly name 'aname'.
8979         (mono_assembly_bind_version): New static function for updating
8980         assembly redirection.
8981         (mono_assembly_apply_binding): New static function for applying
8982         assembly binding.
8983         (search_binding_loaded): New static function for searching 
8984         loaded assembly binding infos in the cache domain.
8985         (mono_assembly_load_full): Don't apply assembly binding for
8986         reflection only assemblies.
8987
8988         * metadata-internals.h: Add MonoAssemblyBindingInfo,
8989         which contains information about assembly binding. Also
8990         declare signature for mono_config_parse_publisher_policy ()
8991         function, used to retrieve pub policy info.
8992         
8993         * mono-config.c:
8994         (publisher_policy_start): New static function used to parse publisher 
8995         policy config files.
8996         (publisher_policy_parser): New static MonoParseHandler containing 
8997         the functions used when parsing config files.
8998         (mono_config_parse_publisher_policy): New function for parsing
8999         publisher policy files.
9000         
9001 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
9002
9003         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
9004
9005         * marshal.c (mono_delegate_free_ftnptr): Ditto.
9006
9007         * object.c (mono_get_addr_from_ftnptr): New helper function.
9008
9009         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
9010
9011         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9012
9013 2005-08-19  Dick Porter  <dick@ximian.com>
9014
9015         * threads.c, threads.h, appdomain.c, appdomain.h,
9016         profiler-private.h, monitor.c, object.c, object-internals.h,
9017         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
9018         store the thread ID, so it can hold a 64 bit value if needed.
9019
9020 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
9021
9022         * reflection.c (mono_reflection_create_dynamic_method): Store the
9023         handle class into the method references as well so ldtoken works in
9024         dynamic methods.
9025
9026         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
9027         types.
9028
9029 2005-08-19  Ankit Jain <jankit@novell.com>
9030
9031         Fix #75847.
9032         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
9033           here rather than using the method signature of a arbitrary function
9034           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
9035           two arguments.
9036           Hack done with Harinath.
9037
9038 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9039
9040         * threadpool.c: disable printing stack traces when we get a exception
9041         in a threadpool thread. I need to do more testing to figure out which
9042         cases actually print this. Fixes bug #75828.
9043
9044 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9045
9046         * icall.c: there might be ignored whitespace after the last '='. This
9047         fixes length computation and bug #75840.
9048
9049 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
9050
9051         * assembly.c (mono_assembly_load_full): Consider .exe extension as
9052         well. Fixes #75809.
9053
9054         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
9055         #75784.
9056         
9057         * reflection.c (create_custom_attr_data): Ditto.
9058
9059 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
9060
9061         * locales.c, culture-info.h : removed RegionLCIDMap.
9062         * culture-info-tables.h : regenerated.
9063
9064 2005-08-16  Martin Baulig  <martin@ximian.com>
9065
9066         * class.c (mono_type_get_name_recurse): Small fix.
9067
9068 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
9069
9070         * locales.c : indentation fixie.
9071
9072 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
9073
9074         * object-internals.h,
9075           locales.h,
9076           locales.c,
9077           culture-info.h,
9078           icall.c : added RegionInfo table support.
9079         * culture-info-table.h : regenerated for region support.
9080
9081 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
9082
9083         * reflection.c (resolve_object): handle all kinds of MonoMethod
9084         including generic ones
9085
9086 2005-08-12  Ankit Jain <jankit@novell.com>
9087
9088         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
9089           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
9090
9091 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
9092
9093         * process.c: Don't close a thread handle when it's NULL. This is a
9094         workaround for bug #75733.
9095
9096 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
9097
9098         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
9099
9100 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
9101
9102         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
9103
9104 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9105
9106         * threadpool.c: if a work item in the thread pool has a callback that
9107         catches a exception, don't propagate it after invoking the callback.
9108         Fixes bug #75336.
9109
9110 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
9111
9112         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
9113
9114         * class-internals.h (MonoCachedClassInfo): Add some new fields.
9115
9116         * class.c (mono_class_init): Load field info lazily in the AOT case.    
9117
9118         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
9119
9120 2005-08-03  Ankit Jain  <jankit@novell.com>
9121
9122         Fix #75683.
9123         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
9124           PInvoke calling convention is 0.
9125
9126 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
9127
9128         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
9129         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
9130
9131 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
9132
9133         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
9134         to handle threads not started by the GC (patch by Michael Meeks
9135         <michael.meeks@novell.com>).
9136
9137 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
9138
9139         * reflection.c: Make buffer used in emitting types larger for some
9140         big generic types (patch by Michal Moskal).
9141
9142 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
9143
9144         * mono-debug.c: Fix some (not all) alignment problems.
9145
9146 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9147
9148         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
9149         Invoke mono_image_load_from_data_full passing the refonly
9150         parameter.
9151
9152         * assembly.c
9153         (mono_assembly_open_from_bundle): Add the refonly argument, 
9154         in order to pass it to other methods it calls to.
9155         (do_mono_assembly_open): Add the refonly argument, in order 
9156         to pass it to other methods it calls to.
9157         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
9158         the refonly parameter to it.
9159
9160         * image.c: Add loaded_images_refonly_hash and
9161         loaded_images_refonly_guid_hash to cache the reflection
9162         only loaded images.
9163         (mono_images_init): Initialize the hash tables used for
9164         caching the reflection only images.
9165         (load_modules): Invoke mono_image_open_full passing the refonly
9166         parameter to load the modules the correct way.
9167         (build_guid_table): Add the refonly argument, to re-build the 
9168         correct hash table.
9169         (do_mono_image_open): Added the refonly argument, in order to
9170         define it for the loaded image.
9171         (mono_image_loaded_full): New function, which receives an
9172         additional parameter to look for the image in the refonly or
9173         non-refonly section.
9174         (mono_image_loaded): Updated, using mono_image_loaded_full.
9175         (mono_image_loaded_by_guid_full): The same case that happens
9176         with mono_image_loaded_full.
9177         (mono_image_loaded_by_guid): Likewise.
9178         (register_image): Use the ref_only variable inside MonoImage
9179         to decide in which hash table store the current image.
9180         (mono_image_open_from_data_full): Rename
9181         mono_image_open_from_data to mono_image_open_from_data_full,
9182         adding the refonly argument, to define the ref_only variable 
9183         inside MonoImage.
9184         (mono_image_open_from_data): Return 
9185         mono_image_open_from_data_full.
9186         (mono_image_open_full): Rename mono_image_open to
9187         mono_image_open_full, receiving the new refonly argument,
9188         to pass it to inner methods.
9189         (mono_pe_file_open): Update this function, to open
9190         a MonoImage as a non-refonly image.
9191         (mono_image_close): Use the refonly variable inside
9192         MonoImage to remove the image from the correct caches.
9193
9194         * image.h: Add the signatures of mono_image_open_full,
9195         mono_image_open_from_data_full, mono_image_loaded_full,
9196         mono_image_loaded_by_guid_full.
9197
9198         * metadata-internals.h: Add the ref_only field to 
9199         MonoImage.
9200         
9201 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9202
9203         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
9204         Fix the last behavior, which used to load the assemblies and
9205         extract MonoReflectionAssemblyName information, instead of
9206         extract it from the metadata tables. Needed for Reflection
9207         Only assemblies.
9208         
9209 2005-07-29  Martin Baulig  <martin@ximian.com>
9210
9211         * mono-debug-debugger.c
9212         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
9213         not initialized.
9214
9215         * mono-debug.c
9216         (mono_debug_address_from_il_offset): Check whether we have
9217         debugging support before attempting to take the lock.
9218         (mono_debug_source_location_from_address): Likewise.
9219         (mono_debug_source_location_from_il_offset): Likewise.
9220         (mono_debug_il_offset_from_address): Likewise.
9221         (mono_debug_address_from_il_offset): Likewise.
9222
9223 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
9224
9225         * class.c (mono_class_from_name_case): Add support for dynamic images.
9226         Fixes #75650.
9227
9228         * object.c (mono_class_compute_gc_descriptor): Add a workaround
9229         for #75479.
9230
9231 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
9232         
9233         * reflection.c (mono_method_get_object): Fix warning.
9234
9235 2005-07-28  Martin Baulig  <martin@ximian.com>
9236
9237         * mono-debug.c
9238         (mono_debug_add_wrapper): Also write the wrapper type.
9239
9240 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
9241
9242         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
9243         
9244         * class.c (mono_class_init): Avoid reading nested classes if the AOT
9245         data indicates the class has none.
9246
9247 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
9248
9249         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
9250         loader lock with the debugger lock. Prevents deadlocks for beagle.
9251
9252         Beagle can now run on an smp box for a weekend without any
9253         issues. Woohoo!
9254
9255 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
9256
9257         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
9258         in a module. Fixes #75629.
9259
9260 2005-07-26  Martin Baulig  <martin@ximian.com>
9261
9262         * mono-debug.c (mono_debug_add_wrapper): New static method.
9263         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
9264         interncall or a wrapper.
9265
9266         * mono-debug.h (MonoDebugWrapperData): New public typedef.
9267         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
9268         (MONO_DEBUGGER_VERSION): Bump to 51.
9269
9270         * mono-debug-debugger.c
9271         (mono_debugger_add_type): Removed this empty function.
9272         (mono_debugger_add_method): Likewise.
9273
9274 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
9275
9276         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
9277         before accessing method->slot.
9278
9279 2005-07-21  Jb Evain  <jbevain@gmail.com>
9280
9281         * reflection.c (method_encode_clauses/class): Handle filters clauses.
9282         Fixes #75010.
9283
9284 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
9285
9286         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
9287         #75587.
9288
9289 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
9290
9291         * image.h image.c: Add mono_image_get_guid () API function.
9292
9293 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
9294
9295         There were issues when multiple threads tried to load
9296         assemblies. A deadlock was created between assemblies_mutex and
9297         mono_domain_assemblies_lock. This fixes the issue by making the
9298         assembly ref counting be lock free. See bug 75586.
9299         
9300         * image.c (mono_image_close): The add ref function here was using
9301         Interlocked operations while the unref was using a mutex and a
9302         --. I don't think this was ever a bug that would be exposed in a
9303         non-pendantic way (ie, by an embedder doing a ref on one thread
9304         and an unref on another), but for the sake of correctness, this is
9305         now Interlocked.
9306
9307         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
9308         (mono_assembly_load_reference): Call mono_assembly_addref rather
9309         than touching the refcount ourselves.
9310         (mono_assembly_close): Use InterlockedDecrement to unref the
9311         assembly. Don't acquire the lock unless it is actually needed.
9312
9313 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
9314
9315         * class.c (mono_class_layout_fields): Fix calculation of has_references
9316         for generic types.
9317
9318 2005-07-12  Martin Baulig  <martin@ximian.com>
9319
9320         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9321
9322         * metadata.c
9323         (mono_type_hash): Provide better hashing for generic instances.
9324         (mono_generic_inst_hash): Improve hashing.
9325         (mono_generic_class_hash): Likewise.
9326
9327         * reflection.c (mymono_metadata_type_hash): Improve hashing for
9328         generic instances.
9329
9330 2005-07-12  Martin Baulig  <martin@ximian.com>
9331
9332         * reflection.c (mono_reflection_create_runtime_class): Remove the
9333         hack for generic type definitions and non-`Run' assemblies.
9334         (mono_reflection_bind_generic_parameters): Also use
9335         `klass->wastypebuilder' to check for TypeBuilders.
9336
9337 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
9338
9339         * class.c (mono_class_layout_fields): Fix calculation of has_references
9340         for generic types.
9341
9342         * class.c (inflate_generic_class): Fix a leak.
9343         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
9344         for generic types.
9345
9346 2005-07-11  Martin Baulig  <martin@ximian.com>
9347
9348         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
9349         on error.
9350
9351 2005-07-11  Martin Baulig  <martin@ximian.com>
9352
9353         * loader.c (find_method): Also lookup in
9354         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
9355
9356 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9357
9358         * appdomain.c (mono_domain_unload): Don't free the error message
9359         before passing it to mono_get_exception_...
9360
9361         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
9362         
9363 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
9364
9365         * threads.c: try to better guess an available RT signal (bug #75387).
9366
9367 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9368
9369         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
9370         and CACHE_OBJECT.
9371
9372 2005-07-07  Martin Baulig  <martin@ximian.com>
9373
9374         * class.c (mono_type_get_name_full): Return NULL for
9375         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
9376         fixes #75408.
9377
9378 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9379
9380         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
9381         exit the appdomain as well being aborted.
9382
9383         * threadpool.c: Create all threadpool threads inside the root appdomain, and
9384         change back to the root domain after calling managed code. This enables
9385         appdomains using threadpools to be unloaded.
9386
9387 2005-07-07  Martin Baulig  <martin@ximian.com>
9388
9389         * class-internals.h
9390         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
9391         into `MonoDynamicGenericClass' since we only need it for dynamic
9392         types.
9393
9394         * reflection.c (mono_class_bind_generic_parameters): We don't need
9395         to compute the `parent' here.
9396
9397 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
9398
9399         * culture-info-table.h : regenerated.
9400
9401 2005-07-06  Martin Baulig  <martin@ximian.com>
9402
9403         * icall.c
9404         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
9405
9406         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
9407
9408 2005-07-06  Martin Baulig  <martin@ximian.com>
9409
9410         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
9411         we're doing a signature-only comparision; fixes #74945.
9412
9413 2005-07-06  Martin Baulig  <martin@ximian.com>
9414
9415         * class-internals.h (MonoGenericClass): Moved some things out into
9416         a new `MonoInflatedGenericClass' type.  
9417         (MonoInflatedGenericClass): New type; the `klass' of a
9418         `MonoGenericClass' is now computed lazyly in
9419         mono_get_inflated_generic_class().      
9420
9421         * class.c (mono_get_inflated_generic_class): New public function.
9422         (mono_class_inflate_generic_method): Removed the unused
9423         `MonoClass *' argument.
9424         (setup_generic_vtable): Don't call mono_get_inflated_method() on
9425         all the methods.
9426         (mono_class_create_generic): Make this static and merge it with
9427         mono_class_create_generic_2(); we're now called automatically from
9428         mono_get_inflated_generic_class().
9429
9430         * loader.c (mono_method_signature): Call
9431         mono_get_inflated_method() here.
9432
9433 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
9434
9435         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
9436         type of fields with RVA.
9437
9438         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
9439         for this pseudo class.
9440         (my_mono_class_from_generic_parameter): Likewise.
9441         (mono_class_init): Allow interfaces to have cctors.
9442
9443 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
9444
9445         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
9446         lazily for AOT methods.
9447
9448 2005-07-05  Martin Baulig  <martin@ximian.com>
9449
9450         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
9451         returns FALSE for a successful match, not TRUE.
9452
9453 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
9454
9455         * loader.c (mono_method_get_index): Optimize this a bit.
9456
9457 2005-07-04  Martin Baulig  <martin@ximian.com>
9458
9459         * class.c
9460         (class_compute_field_layout): Move the check for generic type
9461         definitions into mono_class_layout_fields().  Fixes #74684.
9462         (mono_class_from_generic_parameter): Correctly compute
9463         `klass->parent'; fixes #75457.
9464
9465         * reflection.c (register_assembly, register_module): Make sure
9466         `domain->rejobject_hash' is already created.
9467
9468 2005-07-02  Martin Baulig  <martin@ximian.com>
9469
9470         * class-internals.h
9471         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
9472         `MonoDynamicGenericClass'.      
9473
9474 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
9475
9476         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
9477         returned by a field getter is null, since null is a valid value.
9478
9479 2005-07-01  Martin Baulig  <martin@ximian.com>
9480
9481         * reflection.c (mono_reflection_generic_class_initialize): Update
9482         the `dgclass->fields [i].parent' to the correct class.
9483         (mono_image_get_fieldref_token): Use the declaring type, not the
9484         reflected type.
9485
9486 2005-07-01  Martin Baulig  <martin@ximian.com>
9487
9488         * loader.c (find_method): Also look in the interfaces; fixes #75429.
9489
9490 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
9491
9492         * threads.c (thread_cleanup): assert that thread != NULL
9493         (wait_for_tids_or_state_change): We were using the wrong variable
9494         when accessing wait->threads. `i' was always out of the bounds of
9495         the array.
9496
9497 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9498
9499         * loader.c: map user32 and kernel32 to libMonoSupportW
9500
9501 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
9502
9503         * appdomain.c (unload_thread_main): Mark this as WINAPI.
9504
9505 2005-06-28  Martin Baulig  <martin@ximian.com>
9506
9507         * loader.c (method_from_methodspec): Fix #75334.
9508
9509 2005-06-28  Martin Baulig  <martin@ximian.com>
9510
9511         Fix #74953 - Arrays now implement the generic IList<T> interface
9512         on the 2.0 platform.
9513
9514         * class-internals.h (MonoDefaults): Added `generic_array_class'.
9515
9516         * reflection.c (mono_class_bind_generic_parameters): New public
9517         function; similar to mono_reflection_bind_generic_parameters(),
9518         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
9519
9520         * domain.c (mono_init_internal): Try to initialize.
9521         `mono_defaults.generic_array_class' here; this'll only succeed if
9522         we're using the 2.0 corlib.
9523
9524         * icall.c
9525         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
9526         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
9527         (mono_lookup_internal_call): Added support for nested classes.
9528
9529         * loader.c
9530         (mono_get_method_from_token): Set `result->signature->pinvoke' if
9531         we're an interncall and have generic arguments.
9532
9533         * class.c
9534         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
9535         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
9536         instance of System.Array.InternalArray<T> for arrays, so they
9537         implement the generic IList<T> interface.
9538
9539 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
9540
9541         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
9542         (chastamar@yahoo.com). Fixes #75374.    
9543
9544 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
9545
9546         * culture-info-table.h: regenerated.
9547
9548 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9549
9550         * icall.c: handle spaces correctly for base64 strings.
9551
9552 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
9553
9554         * *.c: Kill some warnings.
9555
9556 2005-06-23  Duncan Mak  <duncan@novell.com>
9557
9558         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
9559         that this builds on Solaris 10 (x86).
9560
9561 2005-06-23  Martin Baulig  <martin@ximian.com>
9562
9563         * class.c
9564         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
9565         generic type definitions.
9566
9567 2005-06-23  Martin Baulig  <martin@ximian.com>
9568
9569         Fix #75331.
9570
9571         * metadata.c (mono_class_get_overrides): Renamed to
9572         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
9573         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
9574         pass it to mono_get_method_full().
9575
9576 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
9577
9578         * reflection.c (mono_reflection_create_runtime_class): take the
9579         mono_domain_lock in this method. Prevents deadlocks
9580
9581 2005-06-22  Martin Baulig  <martin@ximian.com>
9582
9583         * loader.c (method_from_methodspec): Fix #75330.
9584
9585 2005-06-22  Martin Baulig  <martin@ximian.com>
9586
9587         * reflection.c (type_get_qualified_name): Use
9588         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
9589         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
9590         argument; use it if we don't have an assembly name.
9591
9592 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
9593
9594         * object.c: In mono_message_init, set "copy out" flag for in
9595         parameters with the [Out] flag.
9596
9597 2005-06-21  Martin Baulig  <martin@ximian.com>
9598
9599         * class.c
9600         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
9601         and MONO_TYPE_PTR.
9602
9603 2005-06-21  Martin Baulig  <martin@ximian.com>
9604
9605         * class.c (mono_class_init): Don't initialize `class->fields' for
9606         generic instances since they're initialized again in
9607         compute_field_layout(). 
9608         (compute_field_layout): Set the field's `generic_info' here; fix
9609         #75320. 
9610
9611 2005-06-21  Martin Baulig  <martin@ximian.com>
9612
9613         * class-internals.h
9614         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
9615
9616         * metadata.c (mono_metadata_generic_method_equal): Also
9617         distinguish the `generic_class'; fixes #75334.
9618
9619 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9620
9621         * domain.c:
9622         * appdomain.c:
9623         * domain-internals.h:
9624         * reflection.c: 'domain_assemblies' field is now protected by its own
9625         lock. Don't call into managed code to run the AssemblyLoad event if we
9626         now there are no registered delegates for it.
9627
9628 2005-06-20  Martin Baulig  <martin@ximian.com>
9629
9630         * class.c (mono_class_is_assignable_from): Use a custom version of
9631         mono_class_has_parent() to make things work for generic instances;
9632         fix #75300.
9633
9634 2005-06-20  Martin Baulig  <martin@ximian.com>
9635
9636         * loader.c (method_from_methodspec): Apply a patch from
9637         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
9638
9639 2005-06-20  Martin Baulig  <martin@ximian.com>
9640
9641         * class.c (mono_class_init): Reverted Zoltan's last change; it
9642         breaks generics.
9643
9644 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
9645
9646         * threads.c (wait_for_tids_or_state_change): Add missing locking.
9647
9648 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9649
9650         * socket-io.c: fix the index in the socket array for writable/error
9651         sockets. Fixes bug #75306.
9652
9653 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
9654
9655         * class.c (mono_class_init): Allow interfaces to have static ctors.
9656
9657 2005-06-17  Martin Baulig  <martin@ximian.com>
9658
9659         * loader.c (method_from_methodspec): Use `context->container' when
9660         parsing the `gmethod->inst'.
9661
9662 2005-06-17  Martin Baulig  <martin@ximian.com>
9663
9664         * class.c (mono_type_get_name_recurse): Don't add the assembly
9665         name for type arguments.
9666
9667 2005-06-15  Martin Baulig  <martin@ximian.com>
9668
9669         * reflection.c (mono_image_get_inflated_method_token): Encode
9670         correct klass; fixes #75260.
9671
9672 2005-06-13 Michal Moskal <malekith@nemerle.org>
9673
9674         * icall.c: Make GetCorrespondingMethod/Constructor take
9675         MonoReflectionMethod method not MonoMethod. Removed
9676         MonoType.GetCorrespondingField, and make
9677         MonoGenericType.GetCorrespondingField take name not
9678         MonoClassField.
9679
9680 2005-06-13  Michal Moskal <malekith@nemerle.org>
9681
9682         * reflection.c (field_encode_signature, encode_locals):
9683          Make sizes of buffers for types larger (for big generic types).
9684          (create_generic_typespec,
9685          mono_reflection_sighelper_get_signature_local,
9686          mono_reflection_sighelper_get_signature_field):
9687          Add asserts for too small buffers.
9688
9689 2005-06-15  Martin Baulig  <martin@ximian.com>
9690
9691         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
9692         if our parent is not a dynamic type.
9693
9694 2005-06-15  Martin Baulig  <martin@ximian.com>
9695
9696         * class-internals.h (MonoTypeNameFormat): New enum.
9697
9698         * class.c
9699         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
9700         (mono_type_get_full_name): Removed.
9701         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
9702         argument instead of the boolean's.
9703
9704         * icall.c (ves_icall_System_MonoType_getFullName):
9705         Added `gboolean assembly_qualified'.    
9706
9707         * reflection.h
9708         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
9709
9710         * reflection.c (mono_reflection_parse_type): Parse the new type
9711         name format.
9712
9713 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9714
9715         * icall.c: no need to convert from utf16 to utf8 and then back again
9716         after the call to GetLogicalDrives.
9717
9718 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9719
9720         * icall.c: frombase64. Fix problems exposed by new tests.
9721
9722 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9723
9724         * icall.c: added internal calls for converting char [] and strings in
9725         base64 into byte [].
9726
9727 2005-06-10  Martin Baulig  <martin@ximian.com>
9728
9729         * class.c (mono_class_create_generic_2): Read the nested classes
9730         from the metadata rather than from `gklass->nested_classes' since
9731         `gklass' might not be initialized yet.
9732
9733 2005-06-09  Duncan Mak  <duncan@novell.com>
9734
9735         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
9736         all public headers. Fixes #74919.
9737
9738 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
9739
9740         * domain.c: The key for proxy_vtable_hash is now a pointer
9741         array. Added new GHashFunc and GCompareFunc functions for this.
9742
9743         * class.h: The list of interfaces in MonoRemoteClass is known in
9744         advance and can't grow (we create a new MonoRemoteClass if needed),
9745         so now the interface array can be allocated together with
9746         MonoRemoteClass.
9747         
9748         * object.c: Added a new method create_remote_class_key.
9749         Fixed mono_remote_class so it does not depend on
9750         mono_upgrade_remote_class.
9751         Removed extend_interface_array.
9752         Added new method clone_remote_class(), which makes a copy of a remote
9753         class and adds a new interface or class to it.
9754         mono_upgrade_remote_class() now creates a new remote class (or gets
9755         it from the cache) if an vtable upgrade is needed. In this way
9756         we make sure that other objects sharing the same remote class
9757         don't get the new vtable with unwanted interfaces.
9758         
9759         * object-internals.h:
9760         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
9761         
9762         * marshal.c: Track changes in mono_upgrade_remote_class().
9763
9764 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
9765         * icall.c: Add runtime methods for obtaining members of inflated
9766         class, which were created from supplied non-inflated members. It
9767         is used in internal Get{Method,Constructor,Field} methods in
9768         System.Type
9769
9770 2005-06-09  Martin Baulig  <martin@ximian.com>
9771
9772         * reflection.c
9773         (mono_reflection_bind_generic_method_parameters): Fix #75169.
9774
9775 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9776         * reflection.c (mono_image_basic_init): Define
9777         Version in MonoDynamicAssembly. 
9778         
9779 2005-06-08  Martin Baulig  <martin@ximian.com>
9780
9781         Fix #75136.
9782
9783         * loader.c
9784         (mono_method_signature_full): New public method; takes a
9785         `MonoGenericContext *'.
9786         (find_method): Use mono_method_signature_full() and pass the
9787         klass'es context to it.
9788
9789         * class.c (mono_class_is_inflated_method): Use
9790         mono_method_signature_full() and pass the context to it.
9791
9792 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
9793
9794         * object.c: add proper locking in mono_remote_class_vtable(),
9795         fixes possible memory corruption.
9796
9797 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
9798
9799         * marshal.c (mono_remoting_marshal_init): set
9800         initialized after initialization.
9801
9802 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9803
9804         * locales.c : hush.
9805
9806 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
9807
9808         * object.c (extend_interface_array): fix really silly
9809         memory corrupting / comparison bug.
9810
9811 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9812
9813         * reflection.c: Functions added to support the creation
9814         of CustomAttributeData, which includes Attribute data
9815         used by ReflectionOnly methods.
9816
9817         * reflection.h:  mono_reflection_get_custom_attrs_data and
9818          mono_custom_attrs_data_construct added (functions exposed).
9819
9820          * icall.c: Added mono_reflection_get_custom_attrs_data
9821          as icall.
9822         
9823 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
9824
9825         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
9826         lupus's request.
9827
9828 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
9829
9830         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
9831
9832         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
9833         dynamic DllImportAttribute.
9834
9835         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
9836         dynamic DllImportAttribute.
9837
9838         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
9839         Fixes #75162.
9840
9841 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9842
9843         * threads.c: avoid segfault when an unstarted thread is aborted.
9844
9845 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
9846
9847         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
9848         Returns the name and version of the runtime for reporting.
9849
9850 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9851
9852         * appdomain.c: bump corlib version.
9853         * object-internals.h: new field in MonoReflectionAssembly.
9854
9855 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9856
9857         * object-internals.h: Carlos forgot to add this field.
9858
9859 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9860
9861         * icall.c: Added create_version to create instances
9862         of Version of MonoReflectionAssemblyName. This change helps
9863         the AssemblyName tests to keep running fine.
9864         
9865 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
9866   
9867         * object.c (mono_method_return_message_restore): A somehow less
9868         intrusive fix for #75138.
9869
9870 2005-06-03  Raja R Harinath  <rharinath@novell.com>
9871
9872         * object.c (mono_method_return_message_restore): Fix computation
9873         of expected number of out args.
9874
9875 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
9876
9877         * reflection.c (mono_image_get_method_info): Fix the case when the
9878         charset is empty.
9879
9880 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
9881
9882         * object.c: Added missing null check in
9883           mono_method_return_message_restore.
9884
9885 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
9886
9887         * reflection.c (mono_image_get_method_info): Handle the case when
9888         dllentry is empty.
9889
9890 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
9891
9892         * object.c: When creating the vtable for a proxy, take into account
9893         all inherited interfaces, not only the ones registered in
9894         iclass->interfaces. This fixs bug #74996.
9895         Also, in mono_method_return_message_restore, verify that the array
9896         of out args has the expected lengh.
9897
9898 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9899
9900         * socket-io.c: update the timeout in Poll when the call is interrupte.
9901
9902 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9903
9904         * socket-io.c: support abort/suspend in Select_internal after last
9905         change.
9906
9907 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9908
9909         * threadpool.c: remove warning.
9910
9911 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9912
9913         * icall.c:
9914         * socket-io.[ch]: Select_internal uses poll() now when available, thus
9915         removing the 1024 limit from select(). Runtime part of the fix for
9916         bug #71203.
9917
9918 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9919
9920         * socket-io.c: when resolving the addresses for the same
9921         host returned by gethostname(), get the local IPs from the interface
9922         list. Loopback addresses are discarded if the are interfaces up with
9923         non-loopback ones. Fixes bug #63265.
9924
9925 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
9926
9927         * appdomain.c, verify.c, object-internals.h, reflection.c:
9928         bumped corlib number to 36, and added new extra_flags field
9929         to ReflectionMethodBuilder and friends.  Fixes #75060.
9930
9931 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
9932
9933         * gc.c: register a new weak link only if the object is non-null
9934         (fixes bug#75047).
9935
9936 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9937
9938         * culture-info.h : short time pattern too.
9939
9940 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9941
9942         * culture-info.h : expand long time pattern string length.
9943
9944 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9945
9946         * culture-info-table.h : update (more French date format; #72788).
9947
9948 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
9949
9950         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
9951         the method is static. Fixes #75029.
9952
9953 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
9954
9955         * reflection.c: Update the table_idx field of method builders after
9956         saving the module, since it can change. This is a workaround for
9957         bug #74914. 
9958
9959 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9960
9961         * culture-info-table.h : update (additional French date format).
9962
9963 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
9964
9965         * icall.c (ves_icall_type_Equals): Revert last change.
9966         
9967         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
9968
9969         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
9970
9971 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
9972
9973         * class-internals.h: Added executioncontext_class field to 
9974         MonoDefaults structure.
9975         * domain.c: Cache System.Threading.ExecutionContext class in 
9976         mono_defaults.
9977         * object.c: Capture the ExecutionContext for asynchroneous calls in
9978          mono_async_result_new.
9979         * object-internals.h: Added execution_context and original_context 
9980         fields to MonoAsyncResult. Added execution_context to MonoThread.
9981         * security-manager.c|.h: Added mono_get_context_capture_method to 
9982         return the capture method (if required by the security manager or by
9983         the framework version used).
9984         * threadpool.c: Apply capture (if present) ExecutionContext in 
9985         mono_async_invoke and revert to original context after it completes.
9986
9987 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
9988
9989         * culture-info-table.h : updated (real hacky solution for zh-CHT).
9990
9991 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
9992
9993         * culture-info-table.h : zh-CHT related workaround.
9994
9995 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
9996
9997         * marshal.c (emit_marshal_custom): Add some error checking and call the
9998         methods in the ICustomMarshaler interface. Fixes #74875.
9999         
10000         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
10001         native->managed wrappers.
10002
10003 2005-05-12  Martin Baulig  <martin@ximian.com>
10004
10005         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
10006         here and use the loader lock.
10007
10008         * mono-debug.c: Properly lock when the debugger is not attached.
10009         (mono_debug_init): Release the initial lock if we're not running
10010         in the debugger.
10011
10012 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
10013
10014         * marshal.c (emit_marshal_custom): Pass through NULL values without
10015         calling the custom marshalling routines.
10016
10017         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
10018         conversion in structures. Fixes #74882.
10019
10020 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
10021
10022         * culture-info-table.h : zh-* cultures were missing.
10023
10024 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
10025
10026         * threads.c: Added a new event background_change_event which is signaled
10027         when a thread changes its background mode.
10028         Moved here several checks previously done in managed code. The checks
10029         require the thread lock, and using the thread lock in managed code
10030         can result in deadlocks.
10031         Merged Start_internal and Thread_internal into a single method. Now 
10032         Thread_internal does all work of creating and starting a thread.
10033         Added icalls for setting and getting the state of the object. Moved from
10034         managed code to avoid locking there.
10035         Added wait_for_tids_or_state_change() which is called instad of
10036         wait_for_tids when waiting for non-backround threads to end. This method
10037         will return if one of the threads ends or the background_change_event
10038         is signaled.
10039         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
10040         the background mode. This method signals the background_change_event
10041         event.
10042         * icall.c:
10043         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
10044         removed Start_internal.
10045         
10046 2005-05-11  Martin Baulig  <martin@ximian.com>
10047
10048         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
10049         to order of some fields to get proper alignment on 64-bit machines.
10050
10051 2005-05-11  Martin Baulig  <martin@ximian.com>
10052
10053         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
10054         changes as they're broken and completely fuck up the debugger.
10055
10056         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
10057
10058 2005-05-10  Martin Baulig  <martin@ximian.com>
10059
10060         * reflection.c (mono_reflection_generic_class_initialize): Don't
10061         call mono_class_setup_parent() here.
10062
10063 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10064
10065         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
10066         send/receive timeout use an integer in milliseconds. We were using a
10067         struct timeval.
10068
10069 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10070
10071         * locales.c:
10072         (internal_get_cultures): reserve the first slot of the array for the
10073         InvariantCulture, which will be filled in managed code.
10074
10075 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
10076
10077         * reflection.c (mono_image_fill_module_table): Initialize the
10078         GENERATION field as well.
10079
10080 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10081
10082         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
10083         Monitor.Enter on the object.
10084
10085 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
10086
10087         * threads.c: Enable the wait for running threads when exiting.
10088         * icall.c: Suspend all threads before exiting.
10089
10090 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
10091
10092         * assembly.c (mono_assembly_load_reference): Fix warning.
10093
10094 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10095
10096         * threadpool.c: changed the default number of threads per cpu. From now
10097         on, the default will be 20 + (5 * number of cpus) instead of 50.
10098
10099 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
10100
10101         * loader.c (mono_method_get_signature_full): Add locking here.
10102
10103 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
10104
10105         * appdomain.c: Moved methods for parsing and freeing assembly
10106         names to assembly.c.
10107         * assembly.c, domain-internals.h: Created public methods for parsing
10108         assembly names. Fixed mono_assembly_load_with_partial_name:
10109         it now finds the best match, taking into account the version,
10110         token and culture specified in the partial name. Also return
10111         the latest version if no version information is specified.
10112
10113 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
10114
10115         * threadpool.c: replace check for SocketAsyncCall class.
10116
10117 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10118
10119         * threadpool-internals.h:
10120         * Makefile.am: added threadpool-internals.h
10121
10122         * threadpool.c: call mono_unhandled_exception on exceptions not handled
10123         that happen in threadpool threads (tested on MS).
10124         (mono_thread_pool_remove_socket): new function that dispatch any pending
10125         AIO call on a socket that is closing. By now only epoll really needs it,
10126         as select/poll wake up when the socket closes.
10127
10128
10129         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
10130
10131 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
10132
10133         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
10134
10135 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
10136
10137         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
10138
10139 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
10140
10141         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
10142         has an abort request, convert it into a suspend request.
10143
10144 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
10145
10146         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
10147         warning for the usage of `UnmanagedFunctionPointerAttribute' which
10148         is not supported yet.
10149
10150 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10151
10152         * image.c: register assemblies loaded from data (bundles) in the loaded
10153         assemblies hash. Fixes bug #74772.
10154
10155 2005-04-29  Martin Baulig  <martin@ximian.com>
10156
10157         * class.c (mono_type_get_name_recurse): Update to the new naming
10158         schema from the latest .NET 2.x beta2.
10159         (mono_class_setup_vtable_general): If we're a generic instance,
10160         copy the vtable from our generic type definition and inflate all
10161         the methods in it.
10162
10163         * loader.c (find_method): Update to the new naming schema from the
10164         latest .NET 2.x beta2.
10165
10166 2005-04-29  Raja R Harinath  <harinath@gmail.com>
10167
10168         * class.c (mono_class_init): Add a mono_loader_unlock to the
10169         #74734 fix.
10170
10171 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
10172
10173         * icall.c (ves_icall_System_Environment_Exit): Remove the 
10174         suspend_all_other_threads () call for the time being, since it can hang.
10175
10176         * threads.c (mono_thread_manage): Similarly, disable the waiting for
10177         the background threads to exit, since it can also hang.
10178
10179         * class.c (mono_class_init): Applied patch from Ankit Jain 
10180         (radical@gmail.com). Avoid pending init errors when a field refers
10181         to a nested class using a typeref. Fixes #74734.
10182
10183         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
10184         this for dynamic modules.
10185
10186 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10187
10188         * threads.c: don't wait for threads that are in the process of aborting
10189         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
10190         and waiting for background threads to finish. This makes xsp and
10191         mod-mono-server exit without random length delays and/or hangs.
10192
10193 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10194
10195         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
10196
10197 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
10198
10199         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
10200         dynamic types to prevent infinite loops. Fixes #74727.
10201
10202         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
10203         ..._is_assignable_to.
10204
10205 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
10206
10207         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
10208
10209 2005-04-25  Martin Baulig  <martin@ximian.com>
10210
10211         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
10212
10213         * domain.c
10214         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
10215
10216         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
10217
10218         * reflection.c (build_compressed_metadata): Set metadata header
10219         version to 2.0.
10220
10221 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
10222
10223         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
10224         number into an integral and a decimal part. Fixes #70473.
10225
10226         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
10227
10228 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
10229
10230         * culture-info-table.h : reflected the latest locale-builder output.
10231
10232 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10233
10234         * threadpool.c: check for SuspendRequested too when deciding if
10235         mono_thread_interruption_checkpoint should be called.
10236
10237 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10238
10239         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
10240         * threads.c: remove interruption_mutex and use Interlocked instead. When
10241         suspending all the threads, wait for all the suspended events at once.
10242         If we're shutting down and get an APC that is going to be queued,
10243         call mono_thread_execute_interruption immediately, as the thread might
10244         be sleeping on a pthread condition or mutex.
10245
10246         * icall.c: call mono_runtime_set_shutting_down before suspending the
10247         threads.
10248
10249         Fixes bug #74693. And now xsp is happier when exiting.
10250
10251 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
10252
10253         * loader.c (mono_stack_walk): Fix #74690.
10254
10255 2005-04-22  Martin Baulig  <martin@ximian.com>
10256
10257         * mono-debug.h (MonoDebugMethodJitInfo): Added
10258         `MonoDebugMethodJitInfo *jit'.
10259
10260         * mono-debug.c (mono_debug_read_method): Cache the
10261         MonoDebugMethodJitInfo in `address->jit'.
10262         (mono_debug_free_method_jit_info): New public method.
10263
10264 2005-04-22  Martin Baulig  <martin@ximian.com>
10265
10266         * class.c (mono_class_is_assignable_from): Disallow
10267         type parameter -> interface.
10268
10269 2005-04-21  Dick Porter  <dick@ximian.com>
10270
10271         * threads.c (mono_thread_create): Turn an assertion into an error.
10272
10273 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
10274
10275         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
10276         
10277         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
10278         Fix some gcc 4.0 warnings.
10279
10280 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
10281
10282         * file-io.c: fix alt dir separator char on unix systems
10283         and cleanup (fixes bug #71214).
10284
10285 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
10286
10287         * marshal.c: Use CALLVIRT instead of CALL when dispatching
10288         a call to a remote domain, since the method may be an
10289         interface method in the client domain. This fixes bug #74192.
10290
10291 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10292
10293         * threadpool.c: recv/send are now performed before going back to managed
10294         code to save one transition.
10295
10296 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10297
10298         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
10299
10300         * metadata/threadpool.c: removed hack to workaround the bug above.
10301
10302         Fixes bug #74618.
10303
10304 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
10305
10306         * reflection.c reflection.h: Fix handling of parameter defaults in
10307         dynamic methods. Also fixes handling of parameter attributes.
10308         Fixes #74609.
10309
10310         * mono-debug.c (mono_debug_close_image): Fix warning.
10311
10312 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10313
10314         * socket-io.h: replaced old unused field with new 'blocking'.
10315         * threadpool.c: restore socket blocking state on windows(tm).
10316
10317 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
10318
10319         * icall.c: don't return the codebase in the AssemblyName[] returned by
10320         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
10321         * object-internals.h: Removed FIXME (fields were presents) and fixed
10322         versioncompat declaration.
10323
10324 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10325
10326         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
10327         not closed, so don't cleanup when it happens.
10328
10329 2005-04-13  Chris Toshok  <toshok@ximian.com>
10330
10331         * mono-debug-debugger.h: change prototype for
10332         mono_debugger_lookup_type.
10333
10334         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
10335         this function, although it should probably be named
10336         mono_debugger_init_type.
10337
10338 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10339
10340         * threadpool.c: fix non-AIO case.
10341
10342 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
10343
10344         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
10345         the built-in profiler to measure just JIT compilation times.
10346
10347 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10348
10349         * threadpool.c: the epollfd might be closed by another thread at
10350         any time, so ignore EBADF at treat it as a "we're closing" sign.
10351
10352 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10353
10354         * threadpool.c: release the semaphores with a count equals to the number
10355         of working threads in both IO and regular pools. Fixed typo that messed
10356         up the count of IO pool threads. Don't initialize the pipe handles if
10357         we're using epoll.
10358
10359 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10360
10361         * threadpool.c: some systems don't like a NULL when deleting the socket
10362         from epoll.
10363
10364 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10365
10366         * threadpool.c: fix semaphore allocation.
10367
10368 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10369
10370         * threadpool.c: added epoll() based implementation for asynchronous IO
10371         that is used instead of the default poll() when available.
10372         It can be disabled by setting MONO_DISABLE_AIO.
10373
10374 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10375
10376         * threadpool.c: windows needs 'closesocket' and instead of returning
10377         0 when the stream is closed while in select, it returns -1. Fixes bug
10378         #74573.
10379
10380 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
10381
10382         * class.c (class_compute_field_layout): Fix the regression caused by
10383         the previous try.
10384
10385 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10386
10387         * threadpool.c: separate pool for socket async. IO.
10388         * threadpool.h: mono_max_worker_threads is not a global any more.
10389
10390 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
10391
10392         * class.c (class_compute_field_layout): Fix #74549.
10393
10394 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10395
10396         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
10397         use 2 connected sockets instead.
10398
10399 2005-04-08  Miguel de Icaza  <miguel@novell.com>
10400
10401         * mono-config.c: Add new entry point for mkbundle
10402         mono_config_parse_memory. 
10403
10404 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10405
10406         * threadpool.c: removed another unused function.
10407
10408 2005-04-08  Ankit Jain  <radical@corewars.org>
10409
10410         * reflection.c (get_default_param_value_blobs): Add 'types'
10411         parameter to get the types encoded in the constant table.
10412         (mono_param_get_objects): Use the type from the constant table,
10413         not the type of the parameter, when creating default values.
10414         Handle null default values correctly.
10415
10416 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10417
10418         * file-io.c:
10419         * file-io.h:
10420         * threadpool.c:
10421         * threadpool.h:
10422         * icall.c:
10423         * socket-io.c: removed dead code for async IO.
10424
10425 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10426
10427         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
10428
10429         * threadpool.c: intercept socket async. calls and pass them to a thread
10430         that is polling and dispatching the job items to the threadpool as
10431         socket become ready. Fixes bugs #71217, #71933.
10432
10433         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
10434         between char and short/ushort arrays.
10435
10436         * socket-io.c: remove dead code.
10437
10438 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
10439
10440         * locales.c,
10441           icall.c : removed InternalToUpper_Comp() and
10442           InternalToLower_Comp().
10443
10444 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
10445
10446         * char-conversions.h : The tables were incorrectly generated. Should
10447           be generated against invariant culture.
10448
10449 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
10450
10451         * object.c (mono_runtime_invoke_array): Fix return value when 
10452         passing pre-created valuetype objects to ctors.
10453
10454         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
10455         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
10456         Fixes #74338.
10457
10458 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
10459
10460         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
10461         only used with --security and hides the wrong corlib version error.
10462
10463 2005-03-30  Joshua Tauberer  <tauberer@for.net>
10464
10465         * class.c: Changed mono_class_name_from_token so that types
10466         outside of a namespace don't have an initial period.  Improved
10467         the g_warning message used in _mono_class_get when loading
10468         fails.
10469         * assembly.c: In mono_assembly_load_reference, when an assembly
10470         can't be found, "No such file or directory" is misleading and
10471         unhelpful because a few paths were checked for the presence of
10472         the assembly.  When that happens (ENOENT), display a nicer
10473         message indicating the directories that were searched.  In all
10474         cases, the warning is made easier to read for non-hackers.
10475
10476 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
10477
10478         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
10479         project/solution.
10480         * appdomain.h|domain.c: Removed inline from functions.
10481         * appdomain.c: Reduced warnings when compiling on windows.
10482         * icall.c: Fixed output_debug declaration to gunichar2*.
10483         * mono-config.c: Reduced warnings when compiling on windows.
10484         * rand.c: Added missing "windows.h". Added missing return value.
10485         * rawbuffer.c: Added missing winsock2.h for windows.
10486         * sysmath.h: Added mono-compiler.h header to allow/ease 
10487         compilation with non-GCC compilers.
10488         * threads.c: Fixed declarations to compile with VS.NET C compiler.
10489         Removed cast warnings.
10490
10491         Adapted from the work of J Lothian (for VC6).
10492
10493 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
10494
10495         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
10496         from default_path.
10497
10498 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
10499
10500         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
10501         the 2.0 profile.
10502
10503 2005-03-27  Raja R Harinath  <harinath@gmail.com>
10504
10505         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
10506         has to be in $(exec_prefix).  $(prefix) is for arch-independent
10507         stuff, and it would probably use $(prefix)/share rather than
10508         $(prefix)/lib.
10509
10510 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10511
10512         * console-io.c: added 2 includes that might be missing.
10513
10514 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
10515
10516         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
10517         profile.
10518
10519         * reflection.c (create_custom_attr): Allocate the params array using
10520         alloca so it gets GC tracking.
10521
10522 2005-03-23  Chris Toshok  <toshok@ximian.com>
10523
10524         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
10525         out some spew.
10526
10527 2005-03-24  Raja R Harinath  <rharinath@novell.com>
10528
10529         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
10530         changes to pick up any changes in prefix, etc.
10531
10532 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
10533
10534         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
10535         
10536         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
10537         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
10538
10539 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
10540
10541         * class-internals.h object-internals.h class.c reflection.c: Extend the
10542         mono_lookup_dynamic_token () function to return the class of the
10543         token as well. 
10544
10545         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
10546         well. Fixes #73848.
10547
10548 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
10549
10550         * security-manager.c: Skip inheritance checks for intra-corlib
10551         class inheritance and method overrides. This skips a lot of checks
10552         and (anyway) permissions cannot work until corlib is loaded.
10553
10554 2005-03-23  Martin Baulig  <martin@ximian.com>
10555
10556         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
10557         MONO_TYPE_GENERICINST.  
10558
10559 2005-03-23  Martin Baulig  <martin@ximian.com>
10560
10561         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
10562
10563 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10564
10565         * class.c: added locking comments to some functions.
10566         Cache the interface offsets arrays (saves about 20 KB
10567         of runtime memory in a typical app).
10568         Reduce the time overhead in mono_class_setup_supertypes ().
10569
10570 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
10571
10572         * icall.c: speedup and fix leaks in GetMethodsByName and
10573         GetPropertiesByName.
10574
10575 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10576
10577         * reflection.c: some locking fixes.
10578
10579 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10580
10581         * metadata.c: added missing break in case statement.
10582
10583 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
10584
10585         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10586         typedbyref return values. Fixes #73941.
10587
10588 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
10589
10590         * security-manager.c|h: Added demandunmanaged method and 
10591         suppressunmanagedcodesecurity class to MonoSecurityManager.
10592         Renamed aptc class to allowpartiallytrustedcallers.
10593
10594 2005-03-17  Martin Baulig  <martin@ximian.com>
10595
10596         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
10597
10598 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10599
10600         * file-io.c: disabled file async. IO using aio_*. It uses the
10601         threadpool now. Workaround for bug #73718.
10602
10603 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10604
10605         * assembly.h, mono-config.c: added code to deal with bundled configs
10606         for bundled assemblies.
10607
10608 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
10609
10610         * *.c, private.h: cleanup, removing old private.h header file.
10611
10612 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
10613
10614         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
10615         and throw_on_unmappable_char attributes.
10616
10617 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
10618
10619         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
10620         _ProcessName_internal.
10621
10622 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
10623
10624         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
10625         #73631.
10626
10627         * icall.c threads.c threads-types.h: Remove slothash icalls as they
10628         are no longer used.
10629
10630 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
10631
10632         * object.c (compute_class_bitmap): Add support for generics. Fixes
10633         #73527.
10634
10635 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
10636
10637         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
10638
10639 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10640
10641         * filewatcher.c: commented out the code for windows watcher, as we don't
10642         use it (we use the managed implementation instead).
10643
10644 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
10645
10646         * object-internals.h (MonoThread): Remove 'unused1' field.
10647
10648         * appdomain.c: Bump corlib version.
10649
10650         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
10651
10652         * reflection.c (mono_reflection_create_runtime_class): Remove the
10653         AssemblyBuilder.Save optimization since it causes too many problems.
10654
10655 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
10656
10657         * exception.c|h: Added mono_get_exception_reflection_type_load to
10658         create a ReflectionTypeLoadException object.
10659         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
10660         to return NULL is a InheritanceDemand fails during reflection. Updated
10661         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
10662         ReflectionTypeLoadException if an InheritanceDemand fails during 
10663         reflection. Added icall mapping for GetLinkDemandSecurity.
10664         * security-manager.c|h: Added ves_icall_System_Security_
10665         SecurityManager_GetLinkDemandSecurity internal call to return the
10666         class and methods permissions set for a LinkDemand. Removed unused
10667         fields in MonoSecurityManager.
10668
10669 2005-03-10  Martin Baulig  <martin@ximian.com>
10670
10671         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
10672         it's a generic instance.
10673
10674 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
10675
10676         * reflection.c (mono_get_object_from_blob): Applied patch from
10677         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
10678
10679         * class.c (mono_class_is_assignable_from): Another try at fixing 
10680         #73469 without breaking anything.
10681
10682 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
10683
10684         * class.c: (mono_class_is_assignable_from): Revert the last changes
10685         since they don't work with generics.
10686         
10687         * class.c (mono_class_is_assignable_from): Fix build bustage.
10688
10689         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
10690         the managed IsAssignableFrom method. Fixes #73469.
10691
10692         * reflection.c (mono_reflection_call_is_assignable_from): New helper
10693         function.
10694
10695 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
10696
10697         * object.c (mono_load_remote_field_new): Fix returning uninitialized
10698         memory when the remoting callback does not sets the out arguments.
10699         Fixes #73007.
10700
10701         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
10702         by mistake.
10703
10704         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
10705
10706         * object-internals.h (MonoStackFrame): Sync with managed object layout.
10707
10708         * appdomain.c: Bump corlib version.
10709
10710 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
10711
10712         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
10713         function.
10714
10715         * threads.c (mono_thread_attach): Detect threads which are not started
10716         by the GC pthread wrappers.
10717
10718 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
10719
10720         * icall.c: Added new icall for RNG.
10721         * rand.c|h: Added new icall to open the RNG. This allows to share a 
10722         single handle on Linux to access /dev/urandom and fix #73183.
10723
10724 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
10725
10726         * object.c: setting the new vtable in a transparent proxy object must
10727         not change the GC descriptor.
10728
10729 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10730
10731         * object.c: fixed compilation without GCJ support.
10732         * reflection.c: for runtime-created types ensure klass->has_references
10733         is correct (bug #73215).
10734
10735 2005-03-02  Martin Baulig  <martin@ximian.com>
10736
10737         * class.c (mono_class_is_assignable_from): Make this work if
10738         `oklass' is a generic instance; fixes #72831.
10739
10740 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
10741
10742         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
10743         with hasthis set.
10744         
10745         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
10746
10747         * marshal.c: Reorganize native->managed marshalling code to also use
10748         the emit_marshal_... functions.
10749
10750 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10751
10752         * object.c: typed allocs have issues with bitmap sizes > 30,
10753         so check for max_set >= 30.
10754
10755 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
10756
10757         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
10758         managed code. Fixes #73012.
10759
10760         * metadata.h (MonoMarshalSpec): Add elem_mult field.
10761
10762         * metadata.c reflection.c: Load/Emit elem_mult as well.
10763         
10764         * metadata.h (MonoMarshalSpec): Add comment.
10765
10766         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
10767
10768         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
10769         num_elem to -1 if not given.
10770
10771         * object-internals.h (MonoReflectionMarshal): Add has_size field.
10772
10773         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
10774         given values.
10775
10776 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
10777
10778         * null-gc.c (mono_gc_free_fixed): Was not compilable.
10779
10780 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
10781
10782         * reflection.c (encode_marshal_blob): Encode param_num field as well.
10783
10784         * object-internals.h (MonoReflectionMarshal): Add param_num field.
10785
10786 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10787
10788         * object.c: generalized the reference bitmap creation
10789         and added hooks for the new GC.
10790         * class-internals.c: removed the gc_bitmap field from MonoClass.
10791
10792 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10793
10794         * domain.c: help the compiler to produce better code
10795         in mono_jit_info_table_find ().
10796
10797 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10798
10799         * object.c: make all allocations look typed.
10800
10801 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10802
10803         * socket-io.c: load Mono.Posix if it's not loaded already
10804         (fixes bug#73033).
10805
10806 2005-02-24  Martin Baulig  <martin@ximian.com>
10807
10808         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
10809         * reflection.c (dup_type): Likewise.
10810
10811 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
10812
10813         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
10814         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
10815
10816 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10817
10818         * domain.c, threads.c, object-internals.h: make the critical thread
10819         local vars use the fast access mode (even when we're compiled in
10820         a lib). Provide accessors to be used by the jit during codegen.
10821
10822 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10823
10824         * appdomain.c: Changed hook functios behavior to include
10825         support for the reflection only assemblies. Some icalls were changed
10826         to support the mentioned assemblies too. Signatures of static methods
10827         try_assembly_resolve and real_load now have an additional parameter:
10828         refonly.
10829
10830         * assembly.c: General changes to mono_assembly_ methods to support
10831         reflection only api. Functions mono_assembly_open, mono_assembly_load,
10832         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
10833         suffix, to support an additional gbool parameter to specify whether
10834         the assembli is reflection only or not. Created some new hook functions 
10835         to add support for reflection only assemblies. Signatures of static 
10836         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
10837         have now an additional parameter: refonly.
10838
10839         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
10840         indicating whether the assembly is reflection only or not.
10841
10842         * exception.c: Add mono_get_exception_invalid_operation.
10843
10844         * icall.c: Throw an InvalidOperationException when trying to invoke
10845         a property/method/event, or trying to set/get the value of a field.
10846         Also add an icall to retrieve the ref_only flag to the
10847         MonoReflectionAssembly.
10848
10849 2005-02-23  Chris Toshok  <toshok@ximian.com>
10850
10851         Part of fix for #72827.
10852         * mono-debug.c (mono_debug_add_method): add lexical block data to
10853         the info we write.  Kind of a hack at the moment - we copy the
10854         lexical block info from the MonoDebugMethodInfo to the
10855         MonoDebugMethodJitInfo here, before writing it.
10856         (mono_debug_read_method): read the lexical block info.
10857
10858         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
10859
10860         * debug-mono-symfile.h: add lexical block support.
10861
10862         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
10863         support.
10864
10865 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
10866
10867         * loader.c (mono_lookup_pinvoke_call): Fix warning.
10868
10869         * object.c (mono_runtime_free_method): Call mono_free_method () and
10870         put the TODOs there.
10871
10872         * loader.c (mono_free_method): Free up most memory allocated for 
10873         dynamic methods.
10874
10875 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
10876
10877         * reflection.c: properly flag a Type argument to a
10878         named custom attr value (bug #72248).
10879
10880 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10881
10882         * reflection.c: reduce code duplication in named custom
10883         attribute encoding.
10884
10885 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
10886
10887         * reflection.c: properly encode custom attrs of type object
10888         (bug #72649).
10889
10890 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
10891
10892         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
10893
10894 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
10895
10896         * socket-io.c: load System.dll if it's not loaded already
10897         (bug #72850 and #70477).
10898
10899 2005-02-21  Martin Baulig  <martin@ximian.com>
10900
10901         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10902         generic instances.
10903
10904 2005-02-21  Martin Baulig  <martin@ximian.com>
10905
10906         * reflection.c (mono_image_build_metadata): We also need to
10907         "fixup" the MethodImpl table after we computed the final method
10908         indices.  Call fixup_methodimpl() to do that.
10909         (fixup_methodimpl): New private method.
10910
10911 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10912
10913         * assembly.c: special case mscorlib.dll (bug#72536),
10914         patch from Carlos Alberto Cortez.
10915
10916 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
10917
10918         * threads-types.h threads.c: Fix build bustage.
10919
10920         * threads.c: Use a union for long<->double conversions.
10921
10922         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
10923         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
10924
10925         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
10926         containing the checkpoint call with NOT_TAKEN.
10927         
10928         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
10929         checkpoint before pushing the arguments, so they won't have to be
10930         spilled to stack.
10931
10932 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10933
10934         * domain.c, assembly.c, domain-internals.h: make some data
10935         const and relocation-free.
10936
10937 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
10938
10939         * object.c, appdomain.c, class-internals.h: introduce the
10940         MonoClassRuntimeInfo structure to hold the info needed to
10941         use a class at runtime. Made mono_class_vtable() lock-free
10942         for all the appdomains.
10943
10944 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
10945
10946         * metadata-internals.h, image.c: introduce a per-image mempool to
10947         be used for memory that has the same lifetime as the image.
10948
10949 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
10950
10951         * domain.c: In mono_init_internal(), instead of selecting the first
10952         runtime version supported by an executable, get a list of all
10953         supported versions and select the one for which an mscorlib exists
10954         (since even if the runtime supports a given version, it doesn't mean
10955         that the framework for that version is installed).
10956         Modified get_runtimes_from_exe to support this behavior.
10957         In supported_runtimes, added information about additional system
10958         assembly versions.
10959         
10960         * assembly.c: Added support for more than one system assembly version
10961         per runtime version. Updated the assembly list.
10962         In mono_assembly_remap_version, removed the initial version check,
10963         since we don't know to which version we need to compare until we
10964         get the version set on which the assembly is based.
10965         Moved the code for loading corlib into the new method
10966         mono_assembly_load_corlib(), so it can be used by the initialization
10967         code.
10968         
10969         * domain-internals.h: Updated data structures and added declaration
10970         for mono_assembly_load_corlib.
10971
10972 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
10973
10974         * reflection.c (resolve_object): Fix the creation of the signature in 
10975         the SignatureHelper case.
10976
10977         * assembly.c (mono_assembly_remap_version): Fix binary search.
10978         
10979 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
10980  
10981         * class.c: Added inheritance check when a method is overloaded (from a
10982         virtual method or when implementing an interface) and when a class is
10983         inherited. Added functions to set a failure for a class and to 
10984         retreive the exception from a failure.
10985         * class-internals.h: Added fields to MonoClass to keep the exception
10986         information status for inheritance (or other exceptions) to be thrown
10987         later (i.e. not at load time).
10988         * object.c: Throw the inheritance SecurityException when a type is to 
10989         be created with either class or method inheritance violations.
10990         * reflection.c|h: Fix when getting declsec from a class. Removed 
10991         unrequired code for class. Improved sanity in parameter naming.
10992         * security-manager.c|h: Added functions to check for class and method
10993         inheritance.
10994
10995 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
10996
10997         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
10998         and has_finalize in dynamic types as well.
10999
11000 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
11001
11002         * culture-info-table.h : fixed currency format for en-GB (and so on).
11003
11004 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
11005
11006         * gc.c: ensure the GC handles never have 0 as a value.
11007
11008 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
11009
11010         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
11011         a pointer to a struct to unmanaged code. Fixes #72625.
11012
11013 2005-02-16  Martin Baulig  <martin@ximian.com>
11014
11015         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
11016
11017 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
11018
11019         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
11020
11021 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
11022
11023         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
11024
11025         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
11026         UnmanagedFunctionPointerAttribute, use it for determining calling convention
11027         etc. Fixes #71471.
11028
11029         * reflection.c (mono_custom_attrs_get_attr): New helper function.
11030
11031         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
11032
11033 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
11034
11035         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
11036         changes to make the current context a field in MonoThread.
11037
11038 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
11039
11040         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
11041         the last change.
11042         
11043         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
11044         extracted from mono_marshal_get_native_wrapper.
11045
11046         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
11047         to create wrappers around native functions.
11048
11049         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
11050         delegates for arbitrary function pointers. Fixes #71472.
11051
11052 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
11053
11054         * threads.c: cleaned up the code a little.
11055
11056 2005-02-15  Martin Baulig  <martin@ximian.com>
11057
11058         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
11059         the data table.
11060
11061         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
11062         allocate larger chunks if needed.
11063
11064 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
11065
11066         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
11067         in by mistake.
11068
11069 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
11070
11071         * domain.c: keep the domains in an array and ensure the domain ids
11072         are kept small, so they can be used as indexes to domain-specific data
11073         with a small memory overhead.
11074
11075 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
11076
11077         * icall.c: Handle byref types in Type icalls. Fixes #72544.
11078
11079 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
11080
11081         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
11082
11083 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
11084
11085         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
11086
11087         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
11088         values.
11089
11090         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
11091         
11092 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
11093
11094         * domain-internals.h: add the hashtable here.
11095
11096         * class-internals.h: Remove `info' from MonoMethod
11097
11098         * domain.c: Add a new hashtable, jit_trampoline_hash
11099
11100 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11101
11102         * object.c: don't set the value of static fields
11103         (fixes bug#72494).
11104
11105 2005-02-11  Martin Baulig  <martin@ximian.com>
11106
11107         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
11108         (mono_debug_add_method): Silently ignore the method if it's too big.
11109         (mono_debug_add_type): Likewise.
11110
11111 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
11112
11113         * threads.c, appdomain.c: remove #ifdefs from the code.
11114
11115 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
11116
11117         * metadata-internals.h: Added flags to MonoAssembly to cache the most
11118         common security informations. This allows us to stay in unmanaged code
11119         when doing LinkDemand and it's special cases (except for the first 
11120         time for initialization). The flags a very much used with --security.
11121         * reflection.c|h: Added code to get declarative security attributes 
11122         for LinkDemand and InheritanceDemand. This required to refactor the
11123         existing code for Demand.
11124         * security-manager.c|h: Added new method fields for the special cases
11125         of LinkDemand.
11126
11127 2005-02-10  Martin Baulig  <martin@ximian.com>
11128
11129         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
11130         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
11131
11132 2005-02-10  Martin Baulig  <martin@ximian.com>
11133
11134         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
11135         debugging code; this is almost a complete rewrite.
11136
11137         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
11138
11139 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11140
11141         * domain.c, object.h: expose mono_string_equal () and 
11142         mono_string_hash ().
11143         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
11144         it's implemented in managed code.
11145
11146 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11147
11148         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
11149         lo leak objects between appdomains.
11150
11151 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11152
11153         * assembly.c: old compilers compilation fix from 
11154         robertj@gmx.net (Robert Jordan).
11155
11156 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
11157
11158         * class-internals.h: Little reminder for the future.
11159
11160         * debug-helpers.c: Fix up wrapper_type_names
11161
11162 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11163
11164         * image.c, metadata-internals.h: when loading an image from a file,
11165         mmap all of it and use the same codepaths as when using a
11166         in-memory image: the code is simpler and we use less memory
11167         (both writable and readonly).
11168
11169 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11170
11171         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
11172         API to alloc runtime data structures that need to be tracked by the
11173         GC and contain pointers.
11174         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
11175         make the code more readable and eventually use a different GC.
11176
11177 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
11178
11179         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
11180         for out arguments.
11181         
11182 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
11183
11184         * object.c: In release_type_locks(), don't release the cctor lock
11185         if it has already been released. This fixes a crash in the
11186         thread5 test.
11187
11188 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11189
11190         * gc.c, marshal.c, icall.c: register a delegate for finalization
11191         only when the native function pointer has been allocated for it.
11192
11193 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11194
11195         * object.c: cleaned up some code, allocate objects that are
11196         pointer free with the atomic malloc variant. Allocate memory
11197         for static data from the mempool if it's pointer-free.
11198         Allocate the bounds array at the end of the array data, when needed.
11199         * object-internals.h, object.h: move a private function in a private
11200         header.
11201         * class.c: handle missing case in tracking references in fields.
11202
11203 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11204
11205         * class.c, class-internals.h: keep track if a type has
11206         reference fields in either the instance or static fields.
11207
11208 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
11209
11210         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
11211         and renamed to MonoRuntimeInfo. Added fields to store the expected
11212         framework assembly version. Changed mono_get_framework_version and
11213         mono_get_runtime_version for a single mono_get_runtime_info method.
11214         
11215         * assembly.c: Added method to remap system assembly versions to the
11216         current executing runtime version. Removed old mapping code.
11217         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
11218         
11219         * icall.c, reflection.c: Track api changes.
11220
11221 2005-02-06  Miguel de Icaza  <miguel@novell.com>
11222
11223         * loader.c (method_from_memberref): Improve error reporting,
11224         produce the class name instead of the typeref/typedef index. 
11225
11226 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
11227
11228         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
11229
11230 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11231
11232         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
11233         stdcall and charset name mangling.  Reorganize the code and add
11234         some tracing stuff.
11235
11236 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
11237
11238         * monodiet.c: More iters!
11239
11240         * marshal.c: Iter usage.
11241
11242         * icall.c: Iter usage.
11243
11244         * object.c: Use iters.
11245
11246         * debug-helpers.c: More iters
11247
11248 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11249
11250         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
11251         under win32.
11252
11253 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
11254
11255         * mono-debug-debugger.c: use iters
11256
11257         * class.c, class-internals.h: mono_class_setup_events is static
11258         now
11259
11260         * All callers: use iters
11261
11262 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11263
11264         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
11265         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
11266
11267 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
11268
11269         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
11270
11271         * marshal.h: Add prototypes for ldfld/stfld_remote.
11272
11273         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
11274         this is called during startup.
11275         
11276 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
11277
11278         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
11279         MonoThreadsSync struct private in monitor.c. Changed the way
11280         MonoThreadsSync is allocated so it's faster and there is no
11281         need to keep track of it with a finalizer and it uses less memory.
11282         This also finally allows us to allocate mono objects as ptrfree when
11283         there are no reference fields.
11284
11285 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
11286
11287         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
11288         disappearing link to the GC interface and use them to simplify
11289         the gchandles code.
11290
11291 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
11292
11293         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
11294         stfld_remote which call mono_load/store_field_new. This allows methods
11295         calling ldfld/stfld wrappers to be AOTed.
11296
11297         * console-io.c: Include sys/filio.h under solaris.
11298         
11299         * console-io.c: Include curses.h if needed correctly.
11300
11301 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
11302         
11303         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
11304         method->klass as well.
11305
11306         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
11307
11308         * class.c (mono_class_init): Switch on lazy initialization of 
11309         methods.
11310
11311         * class.c (mono_class_get_finalizer): Handle the case when the 
11312         finalizer is inherited.
11313
11314 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11315
11316         * console-io.c: <curses.h> is needed by term.h on solaris.
11317
11318 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
11319
11320         * icall.c, class-internals.h, monodiet.c, class.c: Remove
11321         mono_class_setup_properties where possible. Remove this ftn from
11322         the header file, and make it static.
11323
11324 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
11325
11326         * loader.c: Add missing setup_... call.
11327
11328         * class.c: Add missing setup_... calls.
11329
11330         * class.c (mono_class_init): Switch on lazy initialization of 
11331         the generic vtable.
11332         
11333         * class.c (mono_class_init): Fix generics broken by the recent changes.
11334
11335         * monodiet.c (handle_type): Add missing setup_... calls.
11336
11337         * class.c: Back out garbage in previous patch.
11338         
11339         * class.c: Add missing setup_... calls.
11340
11341         * class.c (mono_class_get_method_from_name_flags): Avoid calling
11342         mono_class_setup_methods () if possible.
11343
11344         * class-internals.h (MonoClass): Add 'has_cctor' flag.
11345
11346         * class-internals.h (MonoCachedClassInfo): New structure.
11347
11348         * class.c: Initialize properties and events fields of MonoClass lazily.
11349
11350         * class.c: Add infrastructure for lazily initializing the methods and
11351         vtable fields of MonoClass. Not yet used.
11352
11353         * class.c (mono_class_get_finalizer): New helper function.
11354
11355         * class.c: Add infrastructure for loading some class related data from
11356         an AOT file.
11357
11358         * object.c: Add infrastructure for initializing the vtable from data
11359         in the AOT file.
11360
11361         * gc.c (run_finalize): Use mono_class_get_finalizer ().
11362
11363         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
11364         appropriate initialization function before accessing parts of the
11365         MonoClass structure.
11366
11367         * marshal.c: Fix warnings.
11368         
11369         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
11370
11371         * mono-debug-debugger.c (get_exception_message): Use 
11372         mono_class_get_method_from_name_flags ().
11373
11374 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
11375
11376         * reflection.c, appdomain.c: Replace a few manual searches that
11377         Zoltan missed. (Paolo approved this part of my initial patch).
11378
11379 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
11380
11381         * profiler.c: disable recording statistical events at report time.
11382
11383 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11384
11385         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
11386         to byteswap arrays of enum values, too (bug #72080).
11387
11388 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
11389
11390         * appdomain.c (set_domain_search_path): Allow this to be called if
11391         domain->setup is not yet set.
11392
11393         * loader.c (mono_method_get_index): New helper function.
11394
11395         * loader.c reflection.c: Use mono_method_get_index ().
11396
11397         * class.c (mono_class_get_method_from_name_flags): New helper method.
11398
11399         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
11400         this.
11401
11402         * class.c (mono_class_get_cctor): New helper method.
11403
11404         * string-icalls.c object.c class.c marshal.c reflection.c: Use
11405         mono_class_get_method () to look up methods.
11406
11407 2005-02-01  Miguel de Icaza  <miguel@novell.com>
11408
11409         * console-io.c: Fix the build, this should work on Windows.
11410
11411 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
11412
11413         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
11414         be set to null to keep things valid
11415
11416 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11417
11418         * icall.c: added Console 2.0 icalls.
11419         * Makefile.am: added console-io.[ch]
11420         * console-io.[ch]: internal calls for Console 2.0 API.
11421
11422 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11423
11424         * class.c: make sure we consider all the interfaces
11425         when calculating max_interface_id (bug found by
11426         Jeroen Frijters running ikvm).
11427
11428 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
11429
11430         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
11431         valuetype fields to null.
11432
11433         * object.c (set_value): Ditto. Fixes #71669.    
11434
11435 2005-01-31  Martin Baulig  <martin@ximian.com>
11436
11437         * metadata.c (mono_metadata_has_generic_params): New public
11438         function; checks whether something is a generic method.
11439
11440 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
11441
11442         * appdomain.c: fix infinite recursion when adding assemblies.
11443
11444 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
11445
11446         * object.c: Fix small typo to return all items for Environment.
11447         GetCommandLineArgs.
11448
11449 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11450
11451         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
11452         reflection.c: more domain and assembly-unload related fixes
11453         and memory leaks plugs.
11454
11455 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
11456
11457         * 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.
11458
11459 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
11460
11461         * loader.c (mono_method_signature): Make this method lazy
11462         (mono_get_method_from_token): Don't computate the signature here.
11463
11464         Doing this saves quite a bit of memory. I got 90 kb on starting up
11465         monodoc. It should also save some disk reads on startup.
11466
11467         * *: MonoMethod->signature might be NULL now. You *MUST* use
11468         mono_method_signature.
11469
11470 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
11471
11472         * object.c (mono_runtime_get_main_args): Return an array from the
11473         current domain here. Fixes #71938.
11474
11475 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
11476
11477         * monitor.c: formatting changes to comply with the
11478         mono coding style and remove #ifdefs from the code.
11479
11480 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11481
11482         * metadata.c, private.h: remove some unneeded data
11483         and use a more compact representation for table schemas.
11484
11485 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
11486
11487         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
11488         to get a better distribution in hash tables.
11489         * *.c: use mono_aligned_addr_hash() where appropriate.
11490         * assembly.c: make var static.
11491
11492 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
11493
11494         * domain-internals.h: Put MonoJitInfo on a diet.
11495
11496         * domain.c: Fix a warning.
11497
11498 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11499
11500         * gc.c: rework the gc handles code to reuse handles
11501         when freed.
11502
11503 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
11504
11505         * domain.c: fixed long standing bug in mono_string_equal() which
11506         was brought to light with the ldstr changes.
11507
11508 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
11509
11510         * reflection.c: Remove warning by adding missing include for marshal.h
11511
11512 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11513
11514         * domain.c, object.c: change the ldstr_table to hold
11515         MonoString* as keys: makes the runtime isinterned lookup
11516         faster and simplifies memory management.
11517
11518 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
11519  
11520         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
11521         possible to add imperative security checks before calling the icall.
11522         * reflection.c: Return security attributes on the original MonoMethod
11523         (and not the wrapped one). This fix permissions on icalls.
11524
11525 2005-01-25  Dick Porter  <dick@ximian.com>
11526
11527         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
11528         the check for mktime() support actually test the mktime() return
11529         value.  "Fixes" bug 71682, though the output is still different to
11530         MS.
11531
11532 2005-01-25  Martin Baulig  <martin@ximian.com>
11533
11534         * class.c (mono_class_is_assignable_from): Make this work for
11535         generic instances.
11536
11537 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
11538
11539         * marshal.c (mono_string_utf8_to_builder)
11540         (mono_string_builder_to_utf16): We might not have ownership of the
11541         string. In thise case, we need to create a new buffer.
11542
11543         * object-internals.h (mono_stringbuilder_capacity): sb->str might
11544         be null, in which case, use the default capacity.
11545
11546 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11547
11548         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
11549         GC events to the profiler.
11550
11551 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11552
11553         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
11554         if you don't want the GC to run.
11555
11556 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
11557
11558         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
11559         start providing a GC API and keeping different implementations in
11560         their own file.
11561         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
11562
11563 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
11564
11565         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
11566         mmap rather than allocating a huge buffer.
11567         (mono_debug_close_mono_symbol_file): Free the buffer allocated
11568         above.
11569
11570 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
11571
11572         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
11573         and CheckExecutionRights.
11574         * reflection.c|h: Keep the index of the declarative security to be 
11575         used, instead of the pointer, when AOT compiler is used. Also add 
11576         class initialization when requesting demands.
11577         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
11578         CheckExecutionRights. Both properties are now FALSE by default, and
11579         unmodifiable, unless the --security option is used.
11580
11581 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11582
11583         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
11584         reflection.c: properly refcount images and assemblies, many leaks fixed.
11585
11586 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11587
11588         * threadpool.c: increase the timeout for threads in the thread pool to
11589         10s.  Fixes bug #67159.
11590
11591 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
11592
11593         * class-internals.h: Sun's compiler insists on explicit
11594         signed on bit fields to handle then correctly.
11595
11596 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
11597
11598         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
11599         Make the size of the array fit only the number of invalid path
11600         chars that we have.
11601
11602         * class.c (_mono_class_get): Improve the error reporting when a
11603         class referenced is not found, to assist debugging. 
11604
11605 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
11606
11607         * threads.c: fix off-by-one error.
11608         * domain.c: free data allocated in the domain.
11609
11610 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
11611
11612         * reflection.c (mono_method_body_get_object): Fill out exception info
11613         as well.
11614
11615         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
11616         structure.
11617         
11618 2005-01-19  Martin Baulig  <martin@ximian.com>
11619
11620         * loader.c (mono_get_method_constrained): Make this work again.
11621
11622 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
11623
11624         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
11625         guint16 to match the managed side.
11626
11627         * reflection.c (mono_reflection_body_get_object): Fill out local
11628         variables array.
11629
11630         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
11631         as well.
11632
11633         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
11634         'local_var_sig_token'.
11635
11636 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
11637
11638         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
11639         System.Drawing.
11640
11641         * reflection.c (mono_method_body_get_object): Handle abstract and
11642         runtime methods.
11643
11644 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
11645
11646         * marshal.c, loader.c, class-internals.h, reflection.c:
11647         store the emthod data for a wrapper in an array instead of a list.
11648
11649 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
11650
11651         * marshal.c: change the code to allocate memory more
11652         conservatively for method wrappers.
11653
11654 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
11655
11656         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
11657         fields from MonoClass to the marshal info structure where they belong.
11658
11659 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11660
11661         * class.c, object.c, class-internals.h, marshal.c: rearrange
11662         some fields and tweak some types to lower memory usage.
11663
11664 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
11665
11666         * threads.c (signal_thread_state_change): Handle the case when the
11667         target thread is the current thread.
11668
11669         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
11670
11671         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
11672         emit_ptr_to_object_conv. 
11673
11674         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
11675         marshalling. Fixes #71352.
11676
11677 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11678
11679         * metadata.h, blob.h: move table enum to blob.h so it can be included
11680         in any header.
11681         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
11682         cut the size of MonoImage/MonoDynamicImage.
11683
11684 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
11685
11686         * profiler.c (mono_profiler_install_simple): Fix default arguments.
11687
11688 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
11689
11690         * reflection.c, reflection.h, icall.c: add a function to check
11691         if an attribute type is defined for a metadata object.
11692
11693 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
11694
11695         * object-internals.h: Added some needed fields from StringBuilder class.
11696         * marshal.c: Set the maxCapacity when creating a StringBuilder.
11697
11698 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
11699
11700         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
11701         threads before shutting down the runtime.
11702
11703         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
11704
11705 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11706
11707         * object-internal.h, threads.c: implement stacksize and 
11708         parameterized thread start functionality (requires
11709         matching corlib). Marked broken code for later removal.
11710
11711 2005-01-12  Martin Baulig  <martin@ximian.com>
11712
11713         * class-internals.h (MonoGenericClass): Moved the `initialized'
11714         flag to MonoDynamicGenericClass, removed `init_pending'.
11715         (MonoGenericInst): Added `is_reference' flag.
11716
11717 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
11718
11719         * reflection.c (mono_image_create_pefile): Only set the pe_offset
11720         inside the MSDOS header. Fixes #71201.
11721
11722         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
11723         gc thread.
11724         (mono_domain_finalize): Ditto.
11725
11726 2005-01-12  Martin Baulig  <martin@ximian.com>
11727
11728         * class.c (mono_get_shared_generic_class): Use the cache for
11729         non-dynamic generic classes.
11730
11731         * class-internals.h (mono_class_create_generic_2): Removed
11732         function prototype, this function is now static inside class.c.
11733
11734         * class.c (mono_class_create_generic_2): Made this static, only
11735         call it from mono_class_init() and mono_class_setup_parent().
11736         (collect_implemented_interfaces_aux): Call mono_class_init() on
11737         the interfaces we collect.
11738         (mono_class_setup_vtable): Call mono_class_init (class->parent).
11739
11740 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
11741
11742         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
11743         it a real thread handle.
11744
11745         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
11746         MonoJitExceptionInfo, since each catch clause needs its own variable.
11747         
11748 2005-01-11  Dick Porter  <dick@ximian.com>
11749
11750         * image.c (mono_pe_file_open): New variant on mono_image_open()
11751         that does not set up the CLI metadata; used for FileVersionInfo so
11752         it can get the data for windows binaries too.
11753         
11754         * process.c (process_read_string_block): Don't read off the end of
11755         the StringTable block.
11756
11757         These both fix bug 70766.
11758
11759 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
11760
11761         * gc.c: set some fields to NULL at GC cleanup time.
11762         * threads.c: if we quit the main thread, call exit ().
11763
11764 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
11765
11766         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
11767
11768 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
11769
11770         * threads.h, threads.c, object.c: added accessor and settor for
11771         main_thread. Handle it specially when exiting from it: wait
11772         for other foreground threads to exit.
11773
11774 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
11775
11776         * process.c, verify.c: remove some bloat.
11777
11778 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
11779
11780         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
11781         the calling convention to cdecl under win32.
11782
11783 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
11784
11785         * object.c (mono_object_get_size): New function to get the size of
11786         an object instance.
11787
11788         * profiler.c (simple_allocation): Use above.
11789
11790 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
11791
11792         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
11793         ves_icall_System_AppDomain_getRootDomain (as it's not required to
11794         get an appdomain by it's id and we can't assume the root's id is 0).
11795         * domain-internals.h: Change the function prototype to match.
11796         * icall.c: Change the icall table for AppDomain.
11797
11798 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
11799
11800         * locales.c (string_invariant_compare_char): Only compute
11801         GUnicodeTypes in the case where we need them.  Test for ordinality
11802         first and return if so.
11803
11804         From the commit:
11805
11806                 /*
11807                  * FIXME: here we must use the information from c1type and c2type
11808                  * to find out the proper collation, even on the InvariantCulture, the
11809                  * sorting is not done by computing the unicode values, but their
11810                  * actual sort order.
11811                  */
11812
11813 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
11814
11815         * loader.c: for P/Invoke methods, allow the "Internal" shared
11816         library name to refer to the calling process symbol namespace.
11817
11818 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
11819
11820         * Makefile.am: Add the security manager to the build.
11821         * security-manager.c|h: New. Initialization of the security manager.
11822
11823 2005-01-07  Dick Porter  <dick@ximian.com>
11824
11825         * threads.c: 
11826         * monitor.c: Update thread state during Monitor and WaitHandle
11827         waits.  Fixes bug 71031.
11828
11829 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
11830
11831         * reflection.c (property_encode_signature): Correctly handle when the
11832         property has no methods.
11833
11834 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
11835
11836         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
11837         
11838         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
11839         fields from mb, not rmb. Fixes #71017.
11840
11841         * marshal.c (emit_ptr_to_str_conv): Add support for 
11842         ByValTStr -> string conversion. Fixes #71015.
11843
11844         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
11845
11846         * mempool.c (mono_mempool_contains_addr): New helper function.
11847
11848 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
11849
11850         * metadata.c (mono_metadata_compute_size): Fix size calculation of
11851         HasSematics encoded fields.
11852         
11853         * metadata.c (mono_type_to_unmanaged): Improve error message for 
11854         invalid string marshalling.
11855
11856         * metadata.c: Fix warnings.
11857         
11858 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11859
11860         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
11861         profiler support.
11862
11863 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
11864
11865         * domain.c object.c domain-internals.h: Revert part of r38077 since the
11866         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
11867         tests.
11868
11869 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
11870
11871         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
11872         so methods containing these can be AOTed.
11873
11874 2005-01-03  Martin Baulig  <martin@ximian.com>
11875
11876         * loader.c (find_method): Removed the hack for generic instances.
11877         (method_from_memberref): If our parent is a generic instance, pass
11878         its generic type definition to find_method() and then inflate the
11879         method.
11880         (mono_get_method_constrained): Pass the generic type definition to
11881         find_method() and inflate the method later.
11882
11883         * class-internals.h (MonoStats): Added `generic_class_count'.
11884
11885         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
11886         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
11887
11888         * reflection.c (mono_custom_attrs_from_params): Don't ignore
11889         generic type definitions.
11890
11891 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
11892
11893         * loader.c icall.c: Fix warnings.
11894
11895 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
11896
11897         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
11898         blittable types. Fixes #70864.
11899
11900 2004-12-29  Martin Baulig  <martin@ximian.com>
11901
11902         * icall.c
11903         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
11904
11905         * reflection.c (mono_method_get_object): Create a
11906         "System.Reflection.MonoGenericMethod" for inflated methods; don't
11907         call mono_get_inflated_method().
11908
11909         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
11910
11911 2004-12-27  Martin Baulig  <martin@ximian.com>
11912
11913         * class-internals.h (MonoMethod): Added `is_inflated' flag.
11914         (MonoMethodInflated): Added `inflated' field.
11915
11916         * class.c (mono_class_inflate_generic_method): Don't really
11917         inflate the method here; just set the `is_inflated' flag in the
11918         MonoMethod.
11919         (mono_class_get_inflated_method): Actually inflate the method here
11920         if it's not already inflated; we use the MonoMethodInflated's new
11921         `inflated' field as a cache.
11922
11923 2004-12-26  Martin Baulig  <martin@ximian.com>
11924
11925         * class.c
11926         (inflate_generic_class): Moved some code out of inflate_generic_type().
11927         (mono_class_inflate_generic_method): If we're already inflated,
11928         inflate the context and use the declaring method; ie. make sure
11929         the declaring method of an inflated method is always the generic
11930         method definition.
11931         (mono_class_create_from_typedef): Create
11932         `class->generic_container->context->gclass'.
11933
11934 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
11935
11936         * metadata-internals.h, marshal.c, reflection.c: More
11937         MonoGHashTable->GHashTable.
11938
11939         * domain-internals.h, class.c: Change MonoGHashTable's into
11940         GHashTables for some cases where no gc stuff is used
11941
11942         All users: update apis
11943
11944 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
11945
11946         * metadata.c (builtin_types): Make this `const'. Makes this get
11947         put into the shareable section.
11948         (mono_metadata_init): Casts to make gcc happy.
11949
11950 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
11951
11952         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
11953
11954 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
11955
11956         * icall.c: Added an internal call to retrieve the position and length
11957         of assembly-level declarative security attributes (RequestMinimum, 
11958         RequestOptional and RequestRefuse). This is used by the Assembly class
11959         to re-create the corresponding permission sets.
11960
11961 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
11962
11963         * marshal.c: fix the stelemref wrapper to be type correct
11964         (and faster).
11965
11966 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
11967
11968         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
11969         to do key & 0x7fffffff. Hashtable already does this. It just
11970         results in longer code.
11971
11972 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
11973
11974         * appdomain.c: Bump corlib version.
11975         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
11976         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
11977         * reflection.c|h: Add functions to get declarative security infos
11978         (blob position and length) for assemblies, classes and methods.
11979
11980 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
11981
11982         * reflection.c: sort the constant table (bug #70693).
11983
11984 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
11985
11986         * object-internals.h, threads.c, domain.c: add accessors for
11987         the MonoThread and MonoDomain tls keys.
11988
11989 2004-12-18  Martin Baulig  <martin@ximian.com>
11990
11991         * class.c (inflate_generic_type): If we're inflating a generic
11992         instance, set `ngclass->context->container = context->container';
11993         ie. the container we inflated into.
11994
11995         * metadata.c (mono_metadata_parse_generic_param): Reflect above
11996         inflate_generic_type() changes.
11997
11998 2004-12-17  Martin Baulig  <martin@ximian.com>
11999
12000         * class-internals.h
12001         (MonoGenericClass): Replaced `MonoType *generic_type' with
12002         `MonoClass *generic_class'.  Removed `dynamic_info'; if
12003         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
12004         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
12005
12006 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
12007
12008         * exception.c (mono_exception_from_token): New helper function.
12009
12010 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
12011
12012         * assembly.c (mono_assembly_load_with_partial_name): Call 
12013         mono_assembly_loaded before invoking the preload hooks. Fixes
12014         #70564.
12015
12016         * object-internals.h (MonoThread): Change culture_info and 
12017         ui_culture_info into an array.
12018
12019         * threads.c: Cache culture info objects from more than one appdomain.
12020
12021         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
12022         current UI culture.
12023
12024 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
12025
12026         * threads.h threads.c appdomain.c: Clear the culture_info field of
12027         all threads during unloading if they point to an object in the dying
12028         appdomain.
12029
12030 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
12031
12032         * culture-info.h (TextInfoEntry): New struct
12033         * object-internals.h: sync with managed
12034         * locales.c: fill the `text_info_data' field
12035         * culture-info-tables.h: update
12036
12037 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
12038
12039         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
12040         collector.
12041
12042 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
12043
12044         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
12045         (ves_icall_ModuleBuilder_getMethodToken): Ditto
12046
12047 2004-12-12  Martin Baulig  <martin@ximian.com>
12048
12049         * mono-debug-debugger.c (write_type): If we're an enum and the
12050         builtin types have already been initialized, call mono_class_init().
12051
12052 2004-12-11  Martin Baulig  <martin@ximian.com>
12053
12054         * metadata.c (mono_metadata_load_generic_params): Added
12055         `MonoGenericContainer *parent_container' argument; automatically
12056         compute `container->is_method'; pass the correct owner to
12057         get_constraints().      
12058
12059         * reflection.c (compare_genericparam): Sort the GenericParam table
12060         according to increasing owners. 
12061
12062 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
12063
12064         * profiler.c: allow disabling the default profiler.
12065
12066 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
12067
12068         * decimal.c, icall.c: allow disabling System.Decimal support.
12069
12070 2004-12-09  Marek Safar <marek.safar@seznam.cz>
12071
12072         * reflection.c: Add support for null attribute arguments.
12073
12074 2004-12-09  Martin Baulig  <martin@ximian.com>
12075
12076         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
12077         names to get rid of compiler warnings.
12078
12079 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
12080
12081         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
12082         mono_marshal_load_type_info (). Fixes #69625.
12083         (mono_marshal_get_ptr_to_struct): Likewise.
12084
12085 2004-12-08  Martin Baulig  <martin@ximian.com>
12086
12087         * mono-debug.h: Bumped version number to 47.
12088
12089         * mono-debug-debugger.c
12090         (mono_debugger_event_handler, mono_debugger_event): Take two
12091         guint64 arguments insteed of a gpointer and a guint32.  
12092
12093 2004-12-08  Martin Baulig  <martin@ximian.com>
12094
12095         * debug-mono-symfile.h
12096         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
12097         `address' to `native_offset'.
12098
12099 2004-12-08  Martin Baulig  <martin@ximian.com>
12100
12101         * class.c (mono_class_create_from_typespec): Only inflate if we
12102         either have `context->gclass' or `context->gmethod'.
12103
12104 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
12105
12106         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
12107
12108         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
12109
12110         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
12111
12112         * reflection.c (mono_assembly_get_object): Remove the workaround put
12113         in for the release.
12114         
12115         * appdomain.c: Use the corlib_internal field from MonoAssembly.
12116
12117         * appdomain.c: Bump corlib version.
12118
12119         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
12120         be visible in other appdomains.
12121
12122 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
12123
12124         * threads.c: Interlocked inc and dec for longs were messed up,
12125         use a KISS based impl for this. Fixes 70234
12126
12127 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
12128
12129         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
12130
12131 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12132
12133         * icall.c: fix to follow policy not to allow struct
12134         arguments in icalls.
12135
12136 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12137
12138         * process.c: make the patch that handles spaces in file paths work
12139         on mono/windows too.
12140
12141 2004-12-06  Martin Baulig  <martin@ximian.com>
12142
12143         * class.c (mono_class_create_generic): Call
12144         mono_class_setup_supertypes() if we're dynamic.
12145         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
12146
12147 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
12148
12149         * object-internals.h: Add new fields to MonoThread.
12150
12151         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12152
12153         * icall.c threads-types.h threads.c: Add new icalls.
12154
12155         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
12156
12157         * object-internals.h (MonoReflectionAssembly): Sync object layout with
12158         managed side.
12159
12160         * appdomain.c: Bump corlib version.
12161
12162         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
12163         internal assemblies. Fixes #69181.
12164
12165 2004-12-05  Martin Baulig  <martin@ximian.com>
12166
12167         * class.c (mono_class_inflate_generic_signature): Make this a
12168         no-op if `context' is NULL or we don't have any type parameters;
12169         also copy `sentinelpos'.        
12170
12171 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
12172
12173         * image.c: Add unbox_wrapper_cache.
12174
12175         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
12176
12177         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
12178         function generator.
12179         
12180         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
12181         Fixes #70173.
12182
12183         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
12184         
12185 2004-12-04  Martin Baulig  <martin@ximian.com>
12186
12187         * loader.c (mono_method_get_signature_full): New public function;
12188         like mono_method_get_signature(), but with an additional
12189         `MonoGenericContext *' argument.
12190
12191         * class.c (mono_class_inflate_generic_signature): Formerly known
12192         as inflate_generic_signature(); make this public.
12193
12194 2004-12-04  Martin Baulig  <martin@ximian.com>
12195
12196         * metadata.c
12197         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
12198         instead of a `MonoGenericContainer *'.  
12199         (mono_metadata_parse_array_full): Likewise.
12200         (mono_metadata_parse_signature_full): Likewise.
12201         (mono_metadata_parse_method_signature_full): Likewise.
12202         (mono_metadata_parse_generic_inst): Likewise.
12203         (mono_metadata_parse_generic_param): Likewise.
12204         (mono_metadata_parse_mh_full): Likewise.
12205         (mono_type_create_from_typespec_full): Likewise.
12206
12207 2004-12-03  Martin Baulig  <martin@ximian.com>
12208
12209         * class-internals.h (MonoGenericContainer): Replaced the
12210         `MonoGenericContext * pointer with a `MonoGenericContext'
12211         structure and made it the first element.
12212
12213 2004-12-03  Martin Baulig  <martin@ximian.com>
12214
12215         * class.c
12216         (inflate_generic_type): Set the `context->container' when creating
12217         a new MonoGenericContext.
12218         (mono_class_inflate_generic_method): Likewise.
12219         (mono_class_create_from_typespec): Just use `context->container'
12220         to get the container.
12221
12222         * loader.c (method_from_methodspec): Set `context->parent' from
12223         `context->container' - and if that's a method container, use its
12224         parent.  Also set the `context->container' when creating a new
12225         MonoGenericContext.
12226         (mono_get_method_from_token): Use just `context->container' to get
12227         the container.
12228
12229         * metadata.c (do_mono_metadata_parse_generic_class): Also set
12230         `gclass->context->container'.
12231
12232         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
12233         the `context->container' when creating a new MonoGenericContext.
12234
12235 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
12236
12237         * reflection.c (compare_genericparam): Sort params with identical
12238         owner by their number. Fixes gen-111 on sparc.
12239
12240 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
12241
12242         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
12243         around the domain changes.
12244
12245         * appdomain.c (mono_domain_unload): Handle the case when the thread
12246         calling Unload is itself being aborted during unloading. Fixes #70022.
12247
12248         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
12249
12250         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
12251         checkpoint_func as an icall so it gets a wrapper.
12252         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
12253         in the cross-appdomain wrappers too.
12254
12255         * threads.c (mono_thread_has_appdomain_ref): Make this public.
12256
12257         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
12258
12259         * reflection.c: Fix some memory leaks.
12260         
12261 2004-12-02  Martin Baulig  <martin@ximian.com>
12262
12263         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
12264
12265         * metadata.c (generic_class_cache): New static hashtable.
12266         (mono_metadata_lookup_generic_class): New public method.
12267
12268 2004-12-02  Martin Baulig  <martin@ximian.com>
12269
12270         * class.c (mono_class_create_from_typedef): Call
12271         mono_class_setup_parent() and mono_class_create_mono_type() before
12272         parsing the interfaces.
12273
12274 2004-12-02  Martin Baulig  <martin@ximian.com>
12275
12276         * metadata.c (generic_inst_cache): New static hashtable.
12277         (mono_metadata_lookup_generic_inst): New public function.
12278         (mono_metadata_inflate_generic_inst): New public function.
12279         (mono_metadata_parse_generic_inst): New public function.
12280         (do_mono_metadata_parse_generic_class): Use the new
12281         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
12282         since this'll also use the cache.
12283
12284         * reflection.c (mono_reflection_bind_generic_method_parameters):
12285         Use mono_metadata_lookup_generic_inst() to use the new cache.
12286
12287         * class.c (inflate_mono_type): Use
12288         mono_metadata_inflate_generic_inst() to inflate a generic
12289         instance; this'll also use the new cache.
12290
12291         * loader.c (method_from_methodspec): Use
12292         mono_metadata_parse_generic_inst() and
12293         mono_metadata_inflate_generic_inst() rather than parsing it
12294         manually, so we can use the new cache.
12295
12296 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
12297
12298         * threads.c (wait_for_tids): Do not incorrectly free threads when 
12299         the wait times out.
12300
12301 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
12302
12303         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
12304         iter->args based on whether parameters are passed in registers (i.e.
12305         MONO_ARCH_REGPARMS is defined)
12306
12307 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
12308
12309         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
12310         the exception message. Fixes #70070.
12311         (method_from_methodspec): Fix warnings.
12312
12313 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12314
12315         * process.c: (complete_path) return the path quoted
12316
12317 2004-12-01  Martin Baulig  <martin@ximian.com>
12318
12319         * class-internals.h (MonoGenericInst): New structure.
12320         (MonoGenericClass): Replaced `type_argc', `type_argv' and
12321         `is_open' with `MonoGenericInst *inst'.
12322         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
12323         `is_open' with `MonoGenericInst *inst'.
12324
12325 2004-11-30  Martin Baulig  <martin@ximian.com>
12326
12327         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
12328
12329         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
12330         to `generic_class_cache'.
12331
12332         * metadata.c
12333         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
12334         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
12335         (mono_generic_inst_is_valuetype): Renamed to
12336         mono_generic_class_is_valuetype().
12337
12338         * class-internals.h
12339         (MonoGenericInst): Renamed to MonoGenericClass.
12340         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
12341         (MonoClass): Renamed `generic_inst' to `generic_class'.
12342         (MonoGenericContext): Renamed `ginst' to `gclass'.
12343
12344         * object-internals.h
12345         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
12346
12347         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
12348         mono_reflection_generic_class_initialize().
12349
12350         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
12351         now known as "System.Reflection.MonoGenericClass".
12352         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
12353
12354 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
12355
12356         * class-internals.h: Added a flag field to MonoClass to cache the
12357         declarative security attributes actions associated with the class.
12358         * domain-internals.h: Added booleans to MonoJitInfo to cache the
12359         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
12360         applicable to the JITted method.
12361         * reflection.c|h: Added functions to extract (as flags) which security
12362         actions are available (declaratively) for a method, class or assembly.
12363         * metadata.c|h: Added functions to search the declarative security
12364         table in the metadata.
12365         
12366 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
12367
12368         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
12369         EXPORTEDTYPES are already in the class name cache, so there is no
12370         need to add extra code here to look at them. Just removes a bit of
12371         cruft.
12372
12373         (ves_icall_System_Environment_get_TickCount): No need for #if
12374         WINDOWS. We already have the code in io-layer.
12375
12376 2004-11-28  Martin Baulig  <martin@ximian.com>
12377
12378         * loader.c
12379         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
12380         Fixes gen-112.cs.
12381
12382 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
12383
12384         * assembly.c (do_mono_assembly_open): Instead of having a
12385         conditional WITH_BUNDLE, incorporate support for bundles here, by
12386         having a global `bundles' variable holding a pointer to the actual
12387         bundles. 
12388
12389         (mono_register_bundled_assemblies): New API call used by the
12390         bundle code. 
12391
12392         See mkbundle.1 for details.
12393         
12394 2004-11-27  Martin Baulig  <martin@ximian.com>
12395
12396         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
12397         the vtable for generic methods.
12398
12399 2004-11-26  Martin Baulig  <martin@ximian.com>
12400
12401         * metadata.c
12402         (mono_metadata_generic_method_hash): New public function.
12403         (mono_metadata_generic_method_equal): Likewise.
12404
12405         * class-internals.h
12406         (MonoGenericContainer): Added `GHashTable *method_hash'.
12407
12408         * reflection.c (ReflectionMethodBuilder): Added
12409         `MonoGenericContainer *generic_container'.
12410         (reflection_methodbuilder_to_mono_method): Don't create a new
12411         MonoGenericContainer each time we're called.
12412         (mono_reflection_bind_generic_method_parameters): Use
12413         `container->method_hash' to cache the results so we don't create a
12414         different method if we're called several times with the same
12415         arguments.
12416
12417         * loader.c (method_from_methodspec): Use the new
12418         `container->method_hash' here, too.
12419
12420 2004-11-26  Martin Baulig  <martin@ximian.com>
12421
12422         * class.c (inflate_generic_signature): Correctly compute
12423         `res->has_type_parameters'.
12424         (mono_class_vtable): Use the `has_type_parameters' flag to
12425         determine whether we're a generic method.
12426
12427         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
12428
12429 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
12430
12431         * object.c (mono_runtime_run_main): Fix a small memory leak.
12432
12433 2004-11-25  Martin Baulig  <martin@ximian.com>
12434
12435         * class.c (set_generic_param_owner): Fixed the loop.
12436
12437 2004-11-25  Martin Baulig  <martin@ximian.com>
12438
12439         * object.c (mono_class_vtable): Don't create any JIT wrappers for
12440         generic methods.
12441
12442 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
12443
12444         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
12445         names. Fixes #69787.
12446
12447 2004-11-24  Martin Baulig  <martin@ximian.com>
12448
12449         * class.c (mono_class_create_generic_2): If we don't have a
12450         `ginst->parent', inflate `gklass->parent' to get our parent.
12451
12452 2004-11-24  Martin Baulig  <martin@ximian.com>
12453
12454         * reflection.c (compare_genericparam): Correctly sort the
12455         GenericParam table; fixes #69779.
12456
12457 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
12458
12459         * reflection.c: When writing a PE file, don't create a huge
12460         buffer in memory. Just write the arrays we have to the file.
12461         This reduces memory usage.
12462
12463         * metadata-internals.h: MonoDynamicStream pefile is no longer used
12464         globally.
12465
12466 2004-11-17  Martin Baulig  <martin@ximian.com>
12467
12468         * class.c (mono_class_init): Don't setup `class->parent' for
12469         dynamic instances; moved this to mono_class_generic_2().
12470         (mono_class_create_generic): Also set `klass->inited' for dynamic
12471         generic instances.
12472         (mono_class_create_generic_2): Don't do anything for dynamic
12473         generic instances.  Set `klass->parent' here and also call
12474         mono_class_setup_parent() here. 
12475
12476         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
12477         `MonoType *parent' argument; set `ginst->parent' before calling
12478         mono_class_create_generic_2(), so we set the correct parent.
12479
12480 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
12481
12482         * reflection.c: allow getting attributes from ModuleBuilder
12483         (used by ikvm).
12484
12485 2004-11-17  Martin Baulig  <martin@ximian.com>
12486
12487         * class.c (mono_class_create_from_typedef): If a type parameter is
12488         inherited from an outer class, set its owner to that class.
12489
12490 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
12491
12492         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
12493           for (int*) written size. This fixes bug #69592.
12494
12495 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
12496
12497         * icall.c: Added IsAuthenticodePresnet internal call.
12498         * image.c|h: New function that check a MonoImage for an Authenticode
12499         signature in the certificate PE data directory.
12500         * security.c|h: New internal call to ask the runtime if an 
12501         Authenticode signature seems referenced in the PE header.
12502
12503 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
12504
12505         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
12506
12507         * reflection.c (mono_image_create_pefile): Free the assembly streams
12508         after writing out the assembly file.
12509
12510         * object.c (mono_runtime_run_main): Fix small memory leak.
12511
12512         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
12513         property access modifiers. Fixes #69389.
12514
12515 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
12516
12517         * domain.c, object.c, object-internals.h, domain-internals.h,
12518         object.h, marshal.c: keep dynamic code info per domain.
12519
12520 2004-11-15  Martin Baulig  <martin@ximian.com>
12521
12522         * class.c (mono_type_get_name_recurse): Put type arguments in
12523         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
12524         see bug #68387.
12525
12526 2004-11-15  Martin Baulig  <martin@ximian.com>
12527
12528         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
12529         (mono_class_setup_vtable): When computing `the_cname' for a
12530         generic instance, don't include the namespace since we'd otherwise
12531         add it twice.
12532
12533 2004-11-15  Martin Baulig  <martin@ximian.com>
12534
12535         * class.c (mono_class_create_generic): Changed return type to void.
12536         (mono_class_create_generic_2): New public function; setup
12537         `class->method', `class->field' and `class->interfaces' here
12538         instead of in mono_class_init().
12539
12540         * class.h (mono_class_create_generic): Moved to class-internals.h.
12541
12542 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
12543
12544         * reflection.c (mono_image_create_pefile): take a file HANDLE.
12545         rather than writing to memory, write to this file. Right now,
12546         we are just writting into a buffer, and copying that. However
12547         we can avoid the buffer later.
12548
12549         (mono_dynamic_stream_reset): new function
12550
12551         * icall.c, object-internals.h: update for the above.
12552
12553 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
12554
12555         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
12556         have been using gc'd memory. First it is slower, unlikely
12557         the comment in the source code said, secondly, it increases
12558         our footprint to do it in the gc.
12559
12560         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
12561         the method so that it does not have to copy to managed code.
12562
12563 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
12564
12565         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
12566
12567 2004-11-12  Martin Baulig  <martin@localhost>
12568
12569         * reflection.c (mono_image_create_token): Allow generic method
12570         definitions here, since they may appear in an `.override'; see
12571         gen-98/gen-99 for an example.
12572
12573 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
12574
12575         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
12576         #69365.
12577
12578         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
12579         descriptive.
12580
12581 2004-11-11  Martin Baulig  <martin@ximian.com>
12582
12583         * class.c (mono_class_setup_vtable): In an explicit interface
12584         implementation, the method name now includes the arity.
12585
12586 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
12587
12588         * object.c (mono_array_full_copy): Fix warning.
12589
12590 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
12591
12592         * appdomain.c: Removed look_for_method_by_name(). Use the new method
12593         mono_class_get_method_from_name() instead.
12594         
12595         * class-internals.h: Added two new types of wrappers. 
12596         Added MonoRemotingTarget enum. Added new trampoline function type, which
12597         takes an additional MonoRemotingTarget value as parameter, so it is
12598         possible to request a trampoline for a specific target.
12599         
12600         * class.c: Added new mono_class_get_method_from_name() method.
12601         
12602         * class.h: In MonoRemoteClass, we can have now to vtables, one for
12603         general remoting sinks and one specific for cross domain calls.
12604         
12605         * debug-helpers.c: Added new wrapper names.
12606         
12607         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
12608         of a remote class.
12609         
12610         * image.c: Porperly delete value objects form the remoting invoke hashtable.
12611         
12612         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
12613         with several other methods (mono_marshal_get_xappdomain_dispatch,
12614         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
12615         and others) can generate a fast remoting wrapper for cross domain calls.
12616         More information can be found in docs/remoting.
12617         Other changes: Removed mono_find_method_by_name, and used
12618         mono_class_get_method_from_name instead.
12619         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
12620         is stored in the remoting invoke hashtable.
12621         
12622         * marshal.h: published the new method for getting the xdomain wrapper,
12623         and also added a method for getting the adequate wrapper for a given
12624         method and target.
12625         
12626         * object-internals.h, object.c: Added a couple of methods for capying and
12627         cloning arrays.
12628         Modified mono_install_remoting_trampoline, which takes the new remoting
12629         trampoline that has a remoting target as parameter.
12630         mono_class_proxy_vtable now also takes a remoting target as parameter, and
12631         will return the most suitable vtable for the target.
12632         Added mono_remote_class_vtable, which returns the vtable of a remote class
12633         (which can be the normal remoting vtable or the xdomain vtable).
12634         
12635         * threads.c: the xdomain invoke and dispatch wrappers must also be
12636         protected against interruptions.
12637
12638 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12639
12640         * icall.c: use memmove in BlockCopyInternal when the source and
12641         destination arrays are the same.
12642
12643 2004-11-09  Martin Baulig  <martin@ximian.com>
12644
12645         * class-internals.h (MonoGenericContainer): Removed `method' and
12646         `signature', replaced them with `is_method' and `is_signature'
12647         flags.  Added `context'.
12648
12649         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
12650         instead of a `MonoGenericContainer *'.
12651
12652         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
12653         for dynamic type parameters.
12654         (mono_metadata_load_generic_params): Setup `container->context'.
12655
12656         * reflection.c (mono_reflection_setup_generic_class): Setup
12657         `tb->generic_container->context'.
12658         (do_mono_reflection_bind_generic_parameters): Use
12659         mono_class_inflate_generic_type() to correctly inflate types,
12660         rather than using our own hack just for MONO_TYPE_VAR.
12661
12662 2004-11-09  Martin Baulig  <martin@ximian.com>
12663
12664         * class.c (mono_class_inflate_generic_method): Small fix; don't
12665         crash here.
12666
12667         * icall.c
12668         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
12669         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
12670         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
12671         (ves_icall_Type_BindGenericParameters): Likewise.
12672         (ves_icall_Type_get_IsGenericInstance): Likewise.
12673         (ves_icall_Type_GetGenericParameterPosition): Likewise.
12674         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
12675         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
12676         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
12677
12678 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
12679
12680         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
12681         assembly versions and public key tokens. Fixes #69113.
12682
12683 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
12684
12685         * metadata.c: fix bug introduced with the type cache changes
12686         on 2004-11-06.
12687
12688 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
12689
12690         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
12691         the MonoClass pointer instead of the token in exception clauses.
12692         * reflection.c: updates for the above and make the code not depend
12693         on the structure of MonoExceptionClause.
12694
12695 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
12696
12697         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
12698         Add support for dynamic assemblies. Fixes #69114.
12699
12700         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
12701
12702 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
12703
12704         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
12705         since most only those methods use it. the code member of
12706         MonoMethodPInvoke was dead, so that can be removed too. Also,
12707         remove inline_count (again, not used), and move slot so that it
12708         can share bits with some other flags. This saves 8 bytes in the
12709         structure and gives us about 50 kb back for mcs helloworld.cs
12710
12711         * *.[ch]: Do naming changes for the above.
12712
12713         * loader.c (mono_method_get_header): Lazily init the header
12714         on first access.
12715         (mono_get_method_from_token): don't init the header here
12716         (mono_free_method): the header may never be allocated
12717
12718         Overall, this saves 150 kb of unmanaged allocations
12719         for mcs helloworld.cs. That accounts for 10% of the unmanaged
12720         memory at runtime.
12721         
12722         * loader.c, loader.h (mono_method_get_header): new accessor.
12723
12724         * *.[ch]: use the above method. Prepares us to lazily load
12725         the header.
12726
12727         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
12728         three warnings, which are actual bugs (see 69206).
12729
12730         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
12731         unused. Saves a cool 4 bytes / method.
12732
12733 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
12734
12735         * metadata.c (builtin_types): Add types for System.Object here.
12736         (mono_metadata_parse_type_full): Cache MonoType*'s that are
12737         for a class or valuetype from klass->this_arg or klass->byval_arg.
12738
12739         On mcs for a hello world, this gets us down from 21836 MonoType's
12740         to 14560.
12741
12742         (mono_metadata_free_type): Account for the above change.
12743
12744 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
12745
12746         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
12747         exception instead of asserting if name is null.
12748         (ves_icall_System_AppDomain_GetData): Ditto.
12749
12750 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
12751
12752         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
12753         EnumBuilder.
12754
12755         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
12756         Return NULL when the domain does not have entry_assembly set.
12757
12758         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
12759         Add a 'resource_modules' argument.
12760         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
12761
12762         * reflection.c (mono_reflection_create_runtime_class): Move setting
12763         of wastypebuilder here, so mono_get_type_object () returns a MonoType
12764         for enums too.
12765
12766         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
12767         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
12768         Throw an ArgumentNullException if 'ptr' is null.
12769
12770         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
12771         assemblies here. Fixes #69020.
12772
12773 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
12774
12775         * reflection.c (build_compressed_metadata): Fix the previous patch for
12776         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
12777         the stack.
12778
12779 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
12780
12781         * assembly.c (mono_assembly_names_equal): Allow a match if one of
12782         the cultures is false. Fixes #69090.
12783
12784         * reflection.c (build_compressed_metadata): Fix invalid memory read 
12785         detected by valgrind.
12786         
12787         * reflection.c (mono_reflection_get_type): Avoid triggering a 
12788         TypeResolve multiple times for the same type. Fixes #65577.
12789
12790 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
12791
12792         * marshal.c: Avoid using ldftn to call managed functions. It is
12793         much slower than just a call.
12794
12795         * reflection.c (mono_module_get_object): free the basename we
12796         allocate here from glib.
12797         
12798         * reflection.c (ensure_runtime_vtable): make sure to free
12799         overrides.  Also, we were allocating an array of MonoMethod not an
12800         array of MonoMethod*.
12801
12802         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
12803
12804         * image.c (mono_image_close): free image->guid here.
12805
12806 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
12807
12808         * reflection.c: Fix some spec conformance issues with the PE file
12809         structures so mcs compiled apps run on the Net 2.0 beta.
12810
12811 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
12812
12813         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
12814         Implement this. Fixes #67264.
12815
12816         * debug-helpers.h debug-helpers.c marshal.c: Move 
12817         mono_find_method_by_name to debug-helpers.c.
12818
12819 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
12820
12821         * object.c (mono_release_type_locks): type_initialization_hash is
12822         a GHashTable.
12823
12824         * reflection.c object.c object-internals.h: Fix warnings.
12825
12826         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
12827         without accessors. Fixes #61561.
12828
12829         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
12830         application base from the root domain if not set. Fixes #65641.
12831         (mono_runtime_init): Fix warning.
12832
12833 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12834
12835         * appdomain.c: call mono_thread_pool_init.
12836         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
12837         of worker threads based on the number of CPUs and the environment
12838         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
12839         for non-windows (windows) systems.
12840
12841 2004-10-27  Chris Toshok  <toshok@ximian.com>
12842
12843         * mono-debug-debugger.c (write_class): don't call mono_class_init
12844         here, as even with the check for (!klass->init_pending), we get
12845         into a situation where we're hitting cycles in class
12846         initialization.  Fixes #68816.
12847
12848 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
12849
12850         * image.c: Avoid overwriting values in the loaded_images_hash when an
12851         assembly is loaded multiple times. Fixes #61152.
12852
12853         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
12854         so multiple satellite assemblies for the same name can be loaded.
12855         Fixes #68259.
12856
12857         * mono_domain_assembly_preload: Actually return the loaded assembly, 
12858         not NULL.
12859
12860         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
12861         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
12862
12863         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
12864         pending finalizers are not invoked after the appdomain has been 
12865         unloaded. Fixes #67862.
12866
12867 2004-10-22  Martin Baulig  <martin@ximian.com>
12868
12869         * mono-debug-debugger.c
12870         (mono_debugger_runtime_invoke): Don't box valuetypes.
12871
12872 2004-10-22  Chris Toshok  <toshok@ximian.com>
12873
12874         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
12875         don't hide private methods.
12876
12877 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
12878
12879         * icall.c: Allows the runtime to "share" (when known) the public key
12880         token of an assembly. This avoid the need to recalculate the token 
12881         (from the public key) in managed code.
12882
12883 2004-10-21  Chris Toshok  <toshok@ximian.com>
12884
12885         * debug-helpers.c (append_class_name): argh, revert last patch.
12886         
12887 2004-10-21  Chris Toshok  <toshok@ximian.com>
12888
12889         * debug-helpers.c (append_class_name): use '+' as the delimiter,
12890         not '/', so that it matches what the debugger uses to look up
12891         methods.
12892
12893 2004-10-21  Martin Baulig  <martin@ximian.com>
12894
12895         * mono-debug-debugger.c (mono_debugger_throw_exception): New
12896         public method; this is called each time an exception is thrown and
12897         allows the debugger to use exception catch points.
12898
12899 2004-10-21  Martin Baulig  <martin@ximian.com>
12900
12901         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
12902         the stack pointer and the exception object in some struct and pass
12903         that to the debugger.
12904
12905 2004-10-21  Chris Toshok  <toshok@ximian.com>
12906
12907         * mono-debug-debugger.c (do_write_class): add instance/static
12908         event support.  We don't expose "raise" or "other" yet.
12909         (event_is_static): new method.
12910
12911 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
12912
12913         * mono-debug-debugger.c
12914         (mono_debugger_handle_exception): Remove
12915         bogus return value for fussy compilers.
12916
12917 2004-10-20  Martin Baulig  <martin@ximian.com>
12918
12919         * mono-debug-debugger.c
12920         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
12921         (mono_debugger_handled_exception): Likewise.
12922
12923 2004-10-20  Martin Baulig  <martin@ximian.com>
12924
12925         * mono-debug-debugger.h (MonoDebuggerEvent): Added
12926         MONO_DEBUGGER_EVENT_EXCEPTION.
12927
12928         * mono-debug-debugger.c (mono_debugger_handle_exception): New
12929         public function to send the debugger a notification for an
12930         exception and inform it about a catch/finally clause.
12931
12932 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
12933
12934         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
12935         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
12936         fix 2.95 build. 
12937
12938         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
12939
12940 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
12941
12942         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
12943         marshalled as [In,Out]. Fixes #58325.
12944
12945 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
12946
12947         * reflection.c (mono_method_body_get_object): Implement some fields.
12948
12949 2004-10-12  Martin Baulig  <martin@ximian.com>
12950
12951         * reflection.c (mono_reflection_bind_generic_parameters): Small
12952         fix, correctly retrieve our parent from a generic instance.
12953
12954 2004-10-12  Martin Baulig  <martin@ximian.com>
12955
12956         * metadata.c (mono_metadata_generic_param_equal): We always have
12957         an owner.
12958
12959         * class.c
12960         (mono_class_from_generic_parameter): We need to have an owner.
12961         (my_mono_class_from_generic_parameter): Likewise.
12962
12963         * reflection.c (mono_reflection_setup_generic_class): Renamed to
12964         mono_reflection_create_generic_class() and added a new
12965         mono_reflection_setup_generic_class().  
12966         (mono_reflection_initialize_generic_param): If we're a nested
12967         generic type and inherited from the containing class, set our
12968         owner to the outer class.
12969
12970 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
12971
12972         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
12973
12974         * reflection.c (mono_method_body_get_object): New function to create
12975         a MethodBody object.
12976
12977         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
12978
12979 2004-10-11  Martin Baulig  <martin@ximian.com>
12980
12981         * metadata.c (_mono_metadata_type_equal): Renamed to
12982         do_mono_metadata_type_equal() and made static.
12983
12984 2004-10-11  Martin Baulig  <martin@ximian.com>
12985
12986         * appdomain.c: Bump corlib version number to 28.
12987
12988 2004-10-10  Martin Baulig  <martin@ximian.com>
12989
12990         * class-internals.h
12991         (MonoGenericInst): Added `MonoGenericContainer *container'.
12992         (MonoGenericMethod): Likewise.
12993         (MonoGenericContext): Likewise.
12994         (MonoGenericParam): Added `MonoGenericContainer *owner'.
12995
12996         * metadata.c
12997         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
12998         (do_mono_metadata_parse_generic_inst): Likewise.
12999         (mono_metadata_parse_type_full): New public method.  This is the actual
13000         mono_metadata_parse_type() implementation - with an additional
13001         `MonoGenericContainer *' argument.
13002         (mono_metadata_parse_array_full): Likewise.
13003         (mono_metadata_parse_signature_full): Likewise.
13004         (mono_metadata_parse_method_signature_full): Likewise.
13005         (mono_metadata_parse_mh_full): Likewise.
13006         (mono_type_create_from_typespec): Likewise.
13007         (mono_metadata_interfaces_from_typedef_full): New public method;
13008         this is similar to the other _full() methods, but we take a
13009         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
13010         (mono_metadata_parse_generic_param): Take an additional
13011         `MonoGenericContainer *' argument and lookup the MonoGenericParam
13012         from that container.
13013         (mono_metadata_generic_param_equal): New static method to compare
13014         two type parameters.
13015         (_mono_metadata_type_equal): New static method; takes an
13016         additional `gboolean signature_only' argument - if true, we don't
13017         compare the owners of generic parameters.
13018         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
13019         with a TRUE argument - do a signature-only comparision.
13020
13021         * loader.c: Use the new _full() methods and pass the
13022         MonoGenericContainer to them.
13023
13024         * object-internals.h (MonoReflectionTypeBuilder): Added
13025         `MonoGenericContainer *generic_container' field.
13026         (MonoReflectionMethodBuilder): Likewise.
13027
13028 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
13029
13030         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
13031         case initial images of dynamic assemblies.
13032
13033         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
13034
13035         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
13036
13037         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
13038         length of event->other array.
13039         (typebuilder_setup_events): Ditto.
13040
13041         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
13042         'assembly_by_name' and add an 'assemblies' list.
13043
13044         * assembly.h assembly.c: Add a new search hook for determining whenever
13045         an assembly is already loaded. Use this instead of searching in the
13046         loaded_assemblies list.
13047
13048         * domain.c appdomain.c: Implement the new search hook so loaded 
13049         assemblies are now scoped by appdomain. Fixes #67727.
13050
13051 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
13052
13053         * threads.c (mono_thread_attach): Initialize synch_lock field so
13054         mono_thread_detach works again.
13055
13056         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
13057         'lib' too. Fixes #63130.
13058
13059 2004-10-06  Jackson Harper  <jackson@ximian.com>
13060
13061         * culture-info-tables.h: regenerated.
13062
13063 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
13064
13065         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
13066         implemented by other interfaces in the result. Fixes #65764.
13067         
13068         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13069         Handle unloadable modules without crashing.
13070
13071         * image.c (load_modules): Revert the previous patch since modules must
13072         have a fixed index inside the array.
13073         
13074         * image.c (load_modules): Don't include native modules in the modules
13075         array.
13076
13077 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
13078
13079         * reflection.h: Add param_defaults field.
13080
13081         * reflection.c: Add support for parameter defaults in dynamic methods.
13082         Fixes #64595.
13083
13084         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
13085         an empty string when a type has no namespace. Fixes #64230.
13086
13087 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
13088
13089         * tabledefs.h: Added "internal" security actions to support non-CAS
13090         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
13091         Note: they do not seems to be used anymore in 2.0 (new metadata format)
13092
13093 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
13094
13095         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
13096         constructor of abstract class. Fixes #61689.
13097
13098 2004-10-04  Martin Baulig  <martin@ximian.com>
13099
13100         * class-internals.h (MonoGenericContainer): New type.
13101         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
13102         `MonoGenericContainer *generic_container'.
13103         (MonoClass): Replaced `gen_params' and `num_gen_params' with
13104         `MonoGenericContainer *generic_container'.
13105
13106         * metadata.c (mono_metadata_load_generic_params): Return a
13107         `MonoGenericContainer *' instead of a `MonoGenericParam *';
13108         removed the `num' argument.
13109
13110 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
13111
13112         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
13113         for dynamic images.
13114
13115         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
13116         machine fields.
13117
13118         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
13119
13120         * reflection.c: Save pe_kind and machine values into the generated
13121         image file.
13122
13123         * appdomain.c: Bump corlib version number.
13124
13125         * object-internals.h: Reorganize layout of LocalBuilder.
13126
13127         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
13128         New helper function.
13129
13130         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
13131         created MonoType for dynamic types. Fixes #66180.
13132
13133 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
13134
13135         * threadpool.c: the ares hashtable needs a critical section around it.
13136         this prevents some nasty segfaults
13137
13138 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
13139
13140         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
13141         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
13142         bug 67324).
13143         
13144 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
13145
13146         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
13147         
13148 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
13149
13150         * image.c: Always canonicalize image file names, to avoid loading
13151         the same assembly twice when referenced using a relative path.
13152
13153 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
13154
13155         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
13156
13157         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
13158
13159         * marshal.c: Fix warnings.
13160
13161 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
13162
13163         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
13164         attempting to marshal the delegate_trampoline as the method_addr.
13165         This patch has a static hashtable of marshalled delegates so that 
13166         we can map delegate_trampoline addresses back to delegates.  This
13167         allows a delegate passed to managed code to be passed back into native
13168         code.  Fixes #67039
13169
13170 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
13171
13172         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
13173
13174         * reflection.c (method_encode_code): Align method headers properly.
13175         Fixes #66025.
13176
13177 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
13178
13179         * marshal.c: In the runtime invoke wrapper, reset the abort
13180         exception if it is cached. This avoids the automatic rethrowal of 
13181         the exception after the catch of the wrapper. Also check for pending
13182         interruptions before calling the managed method. This is done using
13183         the new method emit_thread_force_interrupt_checkpoint, since the
13184         normal checkpoint method is ignored when running the invoke wrapper.
13185         * object.c: If the abort exception is rethrown, set the abort_exc
13186         field of the thread, so it will be rethrown aftere every catch.
13187         * threadpool.c: Only run an interruption checkpoint if what has been
13188         requested is a stop of the thread (aborts will be ignored).
13189         * threads.c: By default, a thread will now never be interrumped while
13190         running the runtime invoke wrapper (this ensures that runtime_invoke
13191         will always return to the caller if an exception pointer is provided).
13192         There is a new special method mono_thread_force_interruption_checkpoint()
13193         to force an interruption checkpoint even if running a protected
13194         wrapper, which is used by the same runtime invoke wrapper to do a check
13195         at a safe point.
13196
13197 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
13198
13199         * object.c, object-internals.h: Implemented mono_release_type_locks,
13200         which releases the cctor locks held by a thread.
13201         * threads.c, threads.h: In thread_cleanup, release cctor locks held
13202         by a thread. Added mono_thread_exit() method to be used to safely stop
13203         a thread.
13204
13205 2004-09-28  Raja R Harinath  <rharinath@novell.com>
13206
13207         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13208         Move null check before dereference.  Avoid indexing beyond the end
13209         of the 'modules' array.
13210
13211 2004-09-28  Raja R Harinath  <rharinath@novell.com>
13212
13213         * metadata-internals.h (MonoImage): Add module_count field.
13214         * image.c (load_modules): Set image->module_count.
13215         (mono_image_load_file_for_image): Use image->module_count.
13216         * reflection.c (mono_image_load_module): Append to image->modules array 
13217         of dynamic assembly.
13218         (mono_module_get_object): Fix loop to actually increment index.
13219         Use image->module_count.
13220         * assembly.c (mono_assembly_load_references): Use image->module_count.
13221         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13222         Likewise.
13223
13224 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
13225
13226         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
13227         Avoid assert on generic types.
13228
13229 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
13230
13231         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
13232
13233         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
13234
13235         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
13236         function to convert a MarshalSpec structure to its managed counterpart.
13237
13238         * reflection.c: Fix warnings.
13239         
13240         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
13241         field.
13242
13243         * icall.c (mono_create_icall_signature): Fix build.
13244
13245 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
13246
13247         * icall.c: Add MakePointType icall.
13248
13249         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
13250         warnings.
13251
13252 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13253
13254         * threadpool.c: reuse allocated slots in the queue.
13255
13256 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
13257
13258         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
13259
13260         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
13261
13262         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
13263         previous change.
13264
13265         * tabledefs.h: Add constants for pinvoke attributes BestFit and
13266         ThrowOnUnmappableChar.
13267
13268         * icall.c (ves_icall_Type_GetPacking): New icall.
13269
13270 2004-09-24  Martin Baulig  <martin@ximian.com>
13271
13272         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
13273
13274 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13275
13276         * appdomain.c:
13277         (mono_domain_set): allow setting a domain that is being unloaded.
13278         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
13279         being unloaded.
13280
13281 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
13282
13283         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
13284         the GetCustomAttributes icall.
13285
13286 2004-09-23  Martin Baulig  <martin@ximian.com>
13287
13288         * object-internals.h (MonoReflectionGenericParam): Replaced
13289         'has_ctor_constraint', `has_reference_type' and `has_value_type'
13290         with `guint32 attrs'.
13291
13292 2004-09-23  Martin Baulig  <martin@ximian.com>
13293
13294         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
13295
13296 2004-09-23  Martin Baulig  <martin@ximian.com>
13297
13298         * object-internals.h (GenericParameterAttributes): New enum.
13299
13300 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
13301
13302         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
13303         
13304         * class.c (init_events): Fill out event->other field.
13305
13306         * class.c: Fix warnings.
13307
13308         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
13309
13310 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
13311
13312         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
13313         walk which doesn't supply the IL offset.
13314
13315 2004-09-22  Martin Baulig  <martin@ximian.com>
13316
13317         * reflection.c (mono_reflection_setup_internal_class): If we're
13318         System.ValueType, System.Object or System.Enum, set
13319         `klass->instance_size' and create the vtable.
13320         (mono_reflection_create_internal_class): If we're an enum type,
13321         get the base class from our current corlib.
13322
13323 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
13324
13325         * reflection.h (MonoResolveTokenError): New type.
13326
13327         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
13328         icall.
13329
13330         * icall.c: Add an 'error' argument to the ResolveToken icalls.
13331
13332 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
13333
13334         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
13335         Support also calling constructors, but only for already allocated objects.
13336
13337 2004-09-17  Geoff Norton <gnorton@customerdna.com>
13338
13339         * reflection.c (type_get_qualified_name): If the klass is null
13340         return the typename to avoid a NullRefEx.
13341         (encode_cattr_value): Get the qualified name of the boxed type,
13342         not the underlying enumtype.  Fixes #62984.
13343
13344 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
13345
13346         * marshal.c: Fix problems with previous checkin.
13347
13348 2004-09-21    <vargaz@freemail.hu>
13349
13350         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
13351         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
13352
13353         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
13354
13355 2004-09-21  Geoff Norton <gnorton@customerdna.com>
13356
13357         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
13358         should only return a type for pointers, arrays, and passbyref types.
13359         Fixes bug #63841.
13360
13361 2004-09-21  Martin Baulig  <martin@ximian.com>
13362
13363         * domain.c (mono_debugger_check_runtime_version): New public
13364         function.
13365
13366         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
13367
13368 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
13369
13370         * reflection.c: Added missing sort to the declarative security 
13371         attributes table. MS implementation stops seeing the attributes if the
13372         token number regress in the table (as shown by ildasm and permview).
13373
13374 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
13375
13376         * object-internals.h (MonoReflectionModule): Add 'token' field.
13377         
13378         * reflection.c (mono_reflection_get_token): Add support for Module
13379         and Assembly.
13380         (mono_module_get_object): Set 'token' field.
13381         (mono_module_file_get_object): Set 'token' field.
13382
13383         * icall.c: Add new Assembly and Module icalls.
13384
13385         * appdomain.c: Bump corlib version.
13386
13387 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
13388
13389         * loader.h loader.c class.h class.c: Add helper functions for obtaining
13390         tokens of metadata objects.
13391
13392         * reflection.h reflection.c (mono_reflection_get_token): New function
13393         to obtain the token of a metadata object.
13394
13395         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
13396
13397 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
13398
13399         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
13400         
13401         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
13402
13403 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
13404
13405         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
13406         * object-internals.h: Added 3 MonoArray* members to MonoReflection
13407         AssemblyBuilder to access the permissions set in the class lib.
13408         * reflection.c: Added security attributes encoding step in 
13409         mono_image_build_metadata.
13410         * tabledefs.h: Added new security actions defined in 2.0:
13411         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
13412
13413 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
13414
13415         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
13416         macro parameter.
13417
13418 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
13419  
13420         * locales.c: nullify the ICU_collator member of CompareInfo when it is
13421           finalized. There where random SIGSEVs at program termination, when
13422           an object being finalized was trying to do a string comparison and
13423           the current culture was already finalized.
13424  
13425 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13426
13427         * threads.c: call thread_cleanup before finishing the thread if we get
13428         there.
13429
13430 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
13431
13432         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
13433         assemblies from the parent. Fixes #65665.
13434
13435 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
13436
13437         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
13438         modifiers.
13439
13440 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
13441
13442         * reflection.h: add prototype for mono_get_dbnull_object
13443         * reflection.c: add prototypes for get_default_param_value_blobs 
13444         and mono_get_object_from_blob for fussier compilers
13445
13446 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
13447  
13448         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
13449         false deadlock checks in class initialization.
13450  
13451 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
13452
13453         * image.c (mono_image_addref): Fix comment.
13454
13455         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
13456         possible.
13457
13458 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
13459
13460         * reflection.c (mono_param_get_objects): Modified to return
13461         ParameterInfo.DefaultValue object.
13462
13463         (get_default_param_value_blobs):
13464         (mono_get_object_from_blob):
13465         (mono_get_dbnull_object): New helper routines. 
13466
13467         * object.c (mono_get_constant_value_from_blob): New helper routine
13468         carved out from get_default_field_value ()
13469
13470         * object-internals.h (mono_get_constant_value_from_blob): Added
13471         function declaration.
13472
13473 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
13474
13475         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
13476         referenced assemblies. Fixes #62135.
13477
13478         * exception.h exception.c (mono_get_exception_file_not_found2): New
13479         helper function.
13480
13481 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
13482
13483         * class.h class.c: Add mono_type_get_underlying_type ().
13484
13485 2004-09-09  Geoff Norton <gnorton@customerndna.com>
13486
13487         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
13488         Fix GetTypes() to support dynamically created assemblies.
13489
13490 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
13491
13492         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
13493         
13494         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
13495         previous patch.
13496
13497         * reflection.h reflection.c loader.c: Allow dynamic construction of
13498         pinvoke methods. Fixes #65571.
13499         
13500         * reflection.c (mono_reflection_get_type): Revert previous change since
13501         it causes regressions.
13502
13503 2004-09-08  Martin Baulig  <martin@ximian.com>
13504
13505         * class.c (class_compute_field_layout): Don't call
13506         mono_class_layout_fields() for open generic instances.
13507
13508 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
13509         * threads.c appdomain.c: fix typo in GC macro
13510
13511 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13512
13513         * threads.c: don't call mono_thread_detach() in start_wrapper(),
13514         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
13515
13516 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
13517
13518         * image.c (mono_image_close): Applied patch from 
13519         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
13520         assembly is loaded multiple times from data.
13521         
13522         * image.c (mono_image_open): Fix warning.
13523
13524 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13525
13526         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
13527         once. Fixes #58334.
13528         
13529         * reflection.c (mono_reflection_create_runtime_class): Initialize
13530         klass->nested_classes. Fixes #61224.
13531
13532 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
13533
13534         * threads.c: sched_yield() on exit, to allow threads to quit.
13535
13536 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13537
13538         * object.c (mono_unhandled_exception): Remove leftover debug code.
13539
13540 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
13541
13542         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
13543
13544 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13545
13546         * marshal.c (emit_marshal_array): Really null terminate string arrays.
13547         
13548         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
13549
13550 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13551
13552         * marshal.c (emit_marshal_array): Null terminate string arrays.
13553         
13554         * marshal.c (raise_auto_layout_exception): Fix warning.
13555
13556         * reflection.c (mono_param_get_objects): Initialize the default value
13557         with DBNull.Value, not null. Fixes #62123.
13558
13559 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
13560
13561         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
13562         throw an exception with a cute explanation.
13563
13564 2004-09-06  Dick Porter  <dick@ximian.com>
13565
13566         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
13567         Close the new process's thread handle, as we don't use it.  The
13568         handle stays around forever otherwise.
13569
13570 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13571
13572         * object.c (arith_overflow): Fix warning.
13573
13574         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
13575         calling conventions in method refs. Fixes #65352.
13576
13577         * reflection.c: Fix warnings.
13578
13579 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
13580
13581         * icall.c: Add a new icall for Array.Clear
13582
13583 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
13584
13585         * object.c: When allocating an array, we have to throw
13586         an overflow exception if any of the lengths are < 0.
13587
13588 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13589
13590         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
13591         properly. Also move implementation of string array marshalling to 
13592         managed code. Fixes #42316.
13593
13594 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13595
13596         * assembly.c: provide more information when loading an assembly fails.
13597
13598 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13599
13600         * filewatcher.c: don't expect the development fam package to be
13601         installed.
13602
13603 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
13604
13605         * marshal.c: Make a copy of the signature cookie since it will be
13606         freed by the caller.
13607         
13608         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
13609
13610         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
13611
13612         * metadata.c (mono_metadata_free_marshal_spec): New function to free
13613         marshal specs.
13614
13615         * marshal.c: More refactoring.
13616         
13617         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
13618         smaller functions.
13619
13620 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
13621
13622         * object.c: In mono_message_invoke, fill the output parameter array after
13623           calling the managed method (it was done before the call). This fixes
13624           bug #59299.
13625
13626 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
13627
13628         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
13629         as well.
13630
13631 2004-09-02  Martin Baulig  <martin@ximian.com>
13632
13633         * class.c (mono_class_instance_size): Don't allow generic type
13634         definitions or open generic instances.
13635         (mono_class_array_element_size): If we're a value type, call
13636         mono_class_instance_size() on the original class.
13637
13638         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
13639         handle generic instances.
13640
13641         * mono-debug-debugger.c (write_type): Handle generic instances
13642         like classes.
13643
13644 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
13645
13646         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
13647         the allocation request fails. Fixes #65089.
13648
13649         * object.c (mono_runtime_free_method): Do not call mono_free_method.
13650         
13651         * object.c (mono_runtime_free_method): New function to free a dynamic
13652         method.
13653
13654         * marshal.c (mono_delegate_free_ftnptr): New function to free the
13655         delegate trampoline.
13656
13657         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
13658         with hasthis as dynamic,
13659
13660         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
13661
13662         * domain.c (mono_jit_info_table_remove): New function to remove an
13663         entry from the jit info table.
13664
13665         * class-internals.h (MonoMethod): Add 'dynamic' field.
13666
13667         * loader.c: Fix warnings.
13668
13669 2004-09-01  Martin Baulig  <martin@ximian.com>
13670
13671         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
13672         instead of mono_debugger_lock() because the latter one is a no-op
13673         unless running in the debugger.
13674
13675 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
13676
13677         * class.c (class_compute_field_layout): Classes with auto-layout or
13678         reference fields are not blittable.
13679         
13680 2004-09-01  Dick Porter  <dick@ximian.com>
13681
13682         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
13683         mono_image_get_filename() to get the assembly location.
13684
13685         * icall.c:
13686         * metadata.h: Fix compile warnings
13687
13688 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
13689
13690         * class.c (class_compute_field_layout): System.Object is blittable.
13691
13692         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
13693         as in/out. Fixes #59909.
13694
13695 2004-09-01  Martin Baulig  <martin@ximian.com>
13696
13697         * metadata.h (MONO_TYPE_ISREFERENCE): Call
13698         mono_metadata_generic_inst_is_valuetype() if we're a generic
13699         instance to check whether our underlying type is a reference type.
13700
13701 2004-09-01  Martin Baulig  <martin@ximian.com>
13702
13703         * metadata.c (mono_type_size): If we're a generic instance, call
13704         mono_class_value_size() for value types.
13705
13706 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
13707
13708         * marshal.c: Implement more custom marshalling functionality. Fixes
13709         #64915.
13710
13711 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
13712
13713         * mono-debug.c, debug-mono-symfile.c: add some locking love.
13714
13715 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
13716
13717         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
13718
13719         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
13720
13721         * icall.c: Fix some warnings.
13722
13723         * threads.c (abort_appdomain_thread): Fix unref errors.
13724         (mono_thread_current): Fix THREAD_DEBUG define.
13725
13726 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
13727
13728         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
13729
13730         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
13731
13732 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
13733
13734         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
13735         string arrays.
13736
13737 2004-08-28  Martin Baulig  <martin@ximian.com>
13738
13739         * metadata.c
13740         (mono_metadata_generic_inst_is_valuetype): New public function.
13741
13742         * metadata.h (MONO_TYPE_ISSTRUCT): Call
13743         mono_metadata_generic_inst_is_valuetype() if we're a generic
13744         instance to check whether our underlying type is a valuetype.
13745
13746 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
13747
13748         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
13749         #63768.
13750
13751 2004-08-25  Martin Baulig  <martin@ximian.com>
13752
13753         * loader.c (mono_get_method_from_token): Abstract methods can also
13754         be generic and thus have type parameters.
13755
13756         * metadata-internals.h
13757         (MonoDynamicImage): Added `GPtrArray *gen_params'.
13758
13759         * reflection.c (mono_image_get_generic_param_info): Don't create a
13760         metadata row, just add an entry to the `gen_params' array.
13761         (build_compressed_metadata): Sort the `gen_params' array and then
13762         actually create the metadata.
13763
13764 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13765
13766         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
13767
13768 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
13769
13770         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
13771
13772 2004-08-24  Martin Baulig  <martin@ximian.com>
13773
13774         * class.cs (mono_class_is_subclass_of): Like an interface, a
13775         generic instance also derives from System.Object.
13776
13777 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
13778
13779         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
13780         custom modifiers to be in any order. Fixes #61990.
13781
13782 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
13783
13784         * object.c: Register mono_object_new_fast icall.
13785         
13786         * object.c (mono_class_get_allocation_ftn): Return to calling
13787         mono_object_new_fast, since it seems faster to compute the object 
13788         size in unmanaged code than passing it as a parameter.
13789
13790         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
13791
13792         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
13793         this function with Boehm as the oom handler, so we don't have to check
13794         the result of GC_malloc.
13795
13796         * object.c: Remove checks for oom.
13797
13798         * object.h object.c (mono_class_get_allocation_ftn): New function to
13799         return the icall which can be used to allocate an instance of a given
13800         class. 
13801
13802         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
13803
13804         * class-internals.h: Add 'enabled' field.
13805
13806 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
13807
13808         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
13809
13810 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
13811         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
13812         value 0x0010.
13813
13814 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
13815
13816         * appdomain.c: use the Tls function for appdomain too,
13817         at Zoltan's request. Actually return in mono_context_get
13818
13819         * appdomain.c, profiler.c, threads.c: use __thread
13820
13821 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
13822
13823         * appdomain.c threads.c: Call GC_CreateThread on windows.
13824
13825         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
13826         multiple libraries since this don't work on windows.
13827
13828 2004-08-18  Martin Baulig  <martin@ximian.com>
13829
13830         * class-internals.h
13831         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
13832         MonoMethodHeader.
13833
13834         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
13835         MonoMethodNormal since we also need it for abstract and interface
13836         methods.
13837
13838         * reflection.c
13839         (build_compressed_metadata): Sort the GenericParam table.
13840         (mono_image_create_token): Added `gboolean create_methodspec'
13841         argument; this is false when generating a MethodImpl token.
13842         (reflection_methodbuilder_to_mono_method): Abstract and interface
13843         methods may also have generic parameters.
13844
13845 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
13846
13847         * appdomain.c: thread local alloc
13848
13849 2004-08-17  Martin Baulig  <martin@ximian.com>
13850
13851         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
13852
13853         * icall.c
13854         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
13855         argument.
13856
13857         * class.c (mono_type_get_full_name): New public function.
13858         (mono_type_get_name): Don't include the type arguments.
13859
13860 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
13861
13862         * Makefile.am: Build static versions of libmetadata and libmonoruntime
13863         for inclusion into the mono executable.
13864
13865 2004-08-16  Martin Baulig  <martin@ximian.com>
13866
13867         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
13868         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
13869
13870 2004-08-14  Martin Baulig  <martin@ximian.com>
13871
13872         * class.c (dup_type): Also copy the `byref' field.
13873
13874 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
13875
13876         * reflection.c (create_dynamic_mono_image): Revert the last change 
13877         since it breaks bootstrap.
13878
13879 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
13880
13881         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
13882
13883         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
13884         not free them with g_free.
13885
13886 2004-08-11  Martin Baulig  <martin@ximian.com>
13887
13888         * reflection.c (mono_reflection_setup_internal_class): Also call
13889         mono_class_setup_mono_type() if we already have a `tb->type.type'.
13890
13891 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
13892
13893         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
13894         called during default (first) AppDomain creation. Keep track of
13895         Evidence when loading assemblies.
13896
13897 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
13898
13899         * opcodes.c, opcodes.h: reduce runtime relocations.
13900
13901 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
13902
13903         * culture-info.h, locales.c: fixes and chages to sue the new
13904         optimized format of the locale data.
13905         * culture-info-tables.h: regenerated.
13906
13907 2004-08-06  Geoff Norton <gnorton@customerdna.com>
13908         
13909         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
13910
13911 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
13912
13913         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
13914         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
13915         * domain-internals.h: icall declaration.
13916         * icall.c: icall registration.
13917         * object-internals.h: New fields in MonoAssembly for CAS.
13918
13919 2004-08-05  Duncan Mak  <duncan@ximian.com>
13920
13921         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
13922         CEE_LDELEM_ANY.
13923
13924 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
13925
13926         * reflection.c: fix to deal with object[] arrays in custom ctors
13927         (bug #62550).
13928
13929 2004-08-05  Martin Baulig  <martin@ximian.com>
13930
13931         * class.c (mono_class_array_element_size): Added support for
13932         generic instances and correctly handle "recursive" types.
13933
13934 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
13935
13936         * assembly.c: Fix warnings.
13937
13938 2004-08-04  Martin Baulig  <martin@ximian.com>
13939
13940         * class.c
13941         (mono_type_get_name_recurse): Added `gboolean include_arity'
13942         argument specifying whether or not we should include the generic
13943         arity in the type name.
13944         (_mono_type_get_name): New static function.
13945         (mono_class_setup_vtable): If we're a generic instance, don't
13946         include the generic arity in the names of explicit method
13947         implementations.        
13948
13949 2004-08-03  Martin Baulig  <martin@ximian.com>
13950
13951         * class.c (mono_type_get_name_recurse): Enclose the generic type
13952         arguments in `<', '>'.
13953
13954 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13955
13956         * gc.c: make GC warning messages use the trace API, they are just
13957         noise to most of the users.
13958
13959 2004-08-03  Martin Baulig  <martin@ximian.com>
13960
13961         * debug-mono-symfile.c (read_string): Correctly read the string.
13962
13963 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
13964
13965         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
13966         
13967         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
13968         icalls.
13969         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
13970
13971 2004-07-30  Martin Baulig  <martin@ximian.com>
13972
13973         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
13974         Reflect latest symbol writer changes.   
13975
13976 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
13977
13978         * object.c: always create an object if null is passed
13979         to Invoke() where a valuetype is expected.
13980
13981 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
13982
13983         * marshal.c (mono_marshal_init): make managed
13984         signatures match native ones better for 64bits.
13985
13986 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13987
13988         * appdomain.c: hack to build correctly the private bin path on windows.
13989         Fixes bug #61991.
13990
13991 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
13992
13993         * assembly.c: Load mscorlib from the correct framework directory
13994           (mono/<version>/mscorlib.dll).
13995         * appdomain.h: Added prototypes for new functions.
13996         * internals.h: Added some prototypes.
13997         * domain.c: When initializing the runtime, get from the executable and
13998           the configuration files the runtime version that the app supports.
13999           Added support methods for reading app.exe.config. Added list of versions
14000           supported by the JIT. Added two new methods: mono_init_from_assembly,
14001           which initializes the runtime and determines the required version from
14002           the provided exe file, and mono_init_version, which initializes
14003           the runtime using the provided version.
14004         * icall.c: Get machine.config from version-specific directory.
14005         * reflection.c: When generating an image, embed the version number
14006           of the current runtime.
14007
14008 2004-07-28  Dick Porter  <dick@ximian.com>
14009
14010         * socket-io.c
14011         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
14012         returned sockaddr size before creating the remote address object.
14013         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
14014         61608.
14015
14016 2004-07-28  Dick Porter  <dick@ximian.com>
14017
14018         * locales.c (string_invariant_compare_char): Fix invariant char
14019         compares between upper and lower cases.  Fixes bug 61458.
14020
14021 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
14022         
14023         * marshal.c: actually cache stelem.ref wrappers.
14024         
14025 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
14026
14027         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
14028         sections and remove the mono_cli_rva_map () function.
14029
14030 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
14031
14032         * debug-mono-symfile.c: fix one more endianess issue, from a patch
14033         by Geoff Norton (<gnorton@customerdna.com>).
14034
14035 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
14036
14037         * class.c: fix class loads for pointer types (typeof(int) !=
14038         typeof(int*)).
14039
14040 2004-07-27  Martin Baulig  <martin@ximian.com>
14041
14042         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
14043         reading the debugging information from an external ".mdb" file.
14044
14045 2004-07-24  Martin Baulig  <martin@ximian.com>
14046
14047         * reflection.c (mono_image_get_type_info): Only write a class
14048         layout entry if we actually have a size or a packing size.
14049
14050 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
14051
14052         * reflection.c (type_get_fully_qualified_name): 
14053         insert cast to get type checking of ?: with non-gcc compilers
14054
14055 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
14056
14057         * rand.c: use g_getenv for both lookups of
14058         MONO_EGD_SOCKET
14059
14060 2004-07-17  Martin Baulig  <martin@ximian.com>
14061
14062         * reflection.c (mono_reflection_bind_generic_method_parameters):
14063         Set `gmethod->reflection_info'.
14064
14065 2004-07-17  Martin Baulig  <martin@ximian.com>
14066
14067         * class.c (mono_class_create_from_typedef): Insert the newly
14068         created class into the hash table before computing the interfaces
14069         since we could be called recursively.
14070
14071 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
14072
14073         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
14074         function to implement stelem.ref in managed code
14075         * class-internals.h, debug-helpers.c: a new wrapper type
14076         for the above.
14077
14078 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
14079
14080         * gc.c: allow GC handles to work even when no GC is compiled in.
14081         Fix part of bug #61134 (GetAddrOfPinnedObject).
14082
14083 2004-07-13  Peter Williams  <peter@newton.cx>
14084  
14085         * process.c (complete_path): Make sure we don't attempt to execute
14086         directories.
14087  
14088 2004-07-12  Geoff Norton <gnorton@customerdna.com>
14089
14090         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
14091           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
14092           and will add/subtract the hour if needed
14093
14094 2004-07-12  Martin Baulig  <martin@ximian.com>
14095
14096         * reflection.c (mono_field_get_object): If we have
14097         `field->generic_info', take the attributes from
14098         `field->generic_info->generic_type'.    
14099
14100 2004-07-12  Martin Baulig  <martin@ximian.com>
14101
14102         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
14103         This function must be called before initializing the runtime.
14104         (mono_debug_init_1): New function; call this after initializing
14105         the runtime, but before loading the assembly.  It tells the
14106         debugger to load corlib and the builtin types.
14107
14108         * mono-debug-debugger.c: Did some larger changes in the debugging
14109         code; support recursive class declarations, make sure we actually
14110         add all classes.
14111
14112 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14113
14114         * debug-helpers.c: undo my previous patch and fixed the real issue in
14115         ../mini/exceptions-x86.c
14116
14117 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14118
14119         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
14120         when no HOME env. variable was set and a NullRef was thrown in a .cctor
14121         called from other .cctors.
14122
14123 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
14124
14125         * loader.c: Removed the mono_loader_wine_init hack now that we are
14126         doing a managed version of Windows.Forms.
14127
14128 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
14129
14130         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
14131         threadpool.c, threads.c: remove static data from rootset.
14132
14133 2004-07-09  Dick Porter  <dick@ximian.com>
14134
14135         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
14136         Don't do any more processing if the matched length was 0.  It was
14137         increasing the size of the string before.  Fixes bug 61167.
14138
14139 2004-07-09  Dick Porter  <dick@ximian.com>
14140
14141         * socket-io.h:
14142         * socket-io.c
14143         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
14144         Add support for SO_PEERCRED if its available.
14145
14146 2004-07-09  Peter Bartok <pbartok@novell.com>
14147         * loader.c: winelib.exe.so error message is now only displayed if
14148         MONO_DEBUG is set. To help us avoid questions when people are trying
14149         out the new Managed.Windows.Forms.
14150
14151 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
14152
14153         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
14154         for isinst and castclass wrappers.
14155
14156         * class-internals.h icall.c: Move registration and lookup of JIT icalls
14157         to libmetadata from the JIT, so they could be used by the marshalling
14158         code and the interpreter.
14159
14160         * marshal.c: Register marshalling related JIT icalls here instead of
14161         in mini.c. Use CEE_MONO_ICALL instead of the family of 
14162         CEE_MONO_PROC<x> opcodes to call marshalling functions.
14163
14164         * metadata.h: Remove unneeded marshalling conversions.
14165
14166         * opcodes.c: Update for new opcodes.
14167         
14168 2004-07-08  Martin Baulig  <martin@ximian.com>
14169
14170         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
14171         (mono_debug_get_domain_data): Make this function static.
14172
14173 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14174
14175         * gc.c, object.h: add nice GC handle API for embedders.
14176
14177 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
14178
14179         * reflection.c: more changes for the new api
14180
14181         * object.c: When we reflect on a field w/ a constant value, it
14182         will not have a memory location, so we must access metadata. Also,
14183         allow easier reading of strings so that we can read them from
14184         the constant data.
14185
14186         * class.c (mono_class_layout_fields): no need for literal fields here.
14187
14188         * class-internals.h: api changes for const fields
14189
14190         * icall.c (ves_icall_get_enum_info): use new apis for const fields
14191
14192 2004-07-06  Martin Baulig  <martin@ximian.com>
14193
14194         * mono-debug.h: Increment version number to 44.
14195
14196         * mono-debug.c (mono_debug_add_wrapper): The second argument is
14197         now a gpointer, rewrote this whole method.
14198
14199         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
14200         function.  Add information about the wrapper in a new "misc table".
14201
14202         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
14203         for the new misc table.
14204
14205 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
14206
14207         * metadata-internals.h image.c: Add a cache for helper signatures.
14208
14209         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
14210
14211 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
14212
14213         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
14214         delegates from a delegate. Fixes #61033.
14215         
14216         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
14217         marshalling of stringbuilder arrays. Fixes #59900.
14218
14219 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
14220
14221         * icall.c: Add EnumBuilder:setup_enum_type icall.
14222
14223 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
14224
14225         * icall.c: Added a new icall for the property version of
14226         OffsetOfStringData.
14227
14228 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
14229
14230         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
14231         it has a constant size across platforms.
14232
14233         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
14234         stack trace.
14235
14236 2004-06-29  Martin Baulig  <martin@ximian.com>
14237
14238         * mono-debug.c (mono_debug_add_method): Protect the whole function
14239         in mono_debugger_lock(), not just parts of it.
14240
14241 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
14242
14243         * reflection.c: make sure padding bytes in heaps are zeroed.
14244
14245 2004-06-24  David Waite  <mass@akuma.org>
14246
14247         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
14248         image.c, loader.c, locales.c, marshal.c, metadata.c,
14249         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
14250         string-icalls.c, threads.c: change to C90-style comments from C99 /
14251         C++ -style
14252
14253 2004-06-24  Dick Porter  <dick@ximian.com>
14254
14255         * threads.c
14256         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
14257         return createdNew.  Fixes bug 60412.
14258
14259         * threads-types.h: 
14260         * icall.c: Add createdNew parameter to CreateMutex icall
14261
14262 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14263
14264         * reflection.c, object-internals.h: save default value in params.
14265
14266 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14267
14268         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
14269         no need to build a new path combining that with the application base.
14270         Fixes bug #60442.
14271
14272 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
14273
14274         * reflection.c: fixed minor standard compliance issues.
14275
14276 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14277
14278         * reflection.c: fixed issue with encoding some custom attributes
14279         (arrays in properties and fields, bug #60411).
14280
14281 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14282
14283         * reflection.c: fix start address when copying the public key token.
14284
14285 2004-06-23  Martin Baulig  <martin@ximian.com>
14286
14287         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
14288         the `exc' object in a static object to put it into the GC's root set.
14289
14290 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
14291
14292         * reflection.c: make mono_reflection_setup_internal_class ()
14293         callable a second time to setup a new parent class.
14294
14295 2004-06-23  Dick Porter  <dick@ximian.com>
14296
14297         * threads.c: Check for WAIT_IO_COMPLETION return values.
14298
14299 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
14300
14301         * appdomain.c: Removed the g_free on the public key token. Now copy 
14302         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
14303         * assembly.c: Added public key token string value when loading 
14304         assemblies. Fix bug #60439.
14305         * icall.c: Added missing informations (like public key) in 
14306         GetReferencedAssemblies. Fix #60519.
14307         * image.h: Changed definition for public key token from const char*
14308         public_tok_value to guchar public_key_token [17];
14309         * reflection.c: Updated for changes to public key token.
14310
14311 2004-06-22  Lluis Sanchez Gual
14312
14313         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
14314         for the field in base classes.
14315
14316 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14317
14318         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
14319         mark headers as not supported, they are installed only for use by the
14320         debugger.
14321
14322 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
14323
14324         * *.c, *.h: avoid namespace pollution in public headers.
14325
14326 2004-06-21  Martin Baulig  <martin@ximian.com>
14327
14328         * exception.c (mono_get_exception_security): It's in
14329         "System.Security", not in "System".
14330
14331         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
14332         the exception classes.
14333
14334 2004-06-21  Martin Baulig  <martin@ximian.com>
14335
14336         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
14337         Protect the exception object from being finalized.
14338
14339 2004-06-21  Martin Baulig  <martin@ximian.com>
14340
14341         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
14342         public function.
14343
14344 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
14345
14346         * reflection.c: Load the assembly in mono_reflection_type_from_name,
14347         if it was not loaded before. Fix parts of #60439.
14348
14349 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
14350
14351         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
14352         code that was broken since Ben's change: wrappers are now
14353         dependent on the method signature only again.
14354
14355 2004-06-21  Martin Baulig  <martin@ximian.com>
14356
14357         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
14358         added interface support.
14359
14360 2004-06-21  Martin Baulig  <martin@ximian.com>
14361
14362         * class.c (mono_vtable_get_static_field_data): New public method.
14363
14364 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
14365
14366         * filewatcher.c : Windows build fix to be compliant with API changes.
14367
14368 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
14369
14370         * class.h, class.c: more accessors.
14371         * metadata.h, metadata.c: prepare for hiding MonoType and
14372         MonoMethodSignature: people should use the accessors from now on
14373         outside of the tree.
14374
14375 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
14376
14377         * *.c, *.h: more API cleanups.
14378
14379 2004-06-18  Jackson Harper  <jackson@ximian.com>
14380
14381         * assembly.c: Trace loading assemblies.
14382         * loader.c: Trace loading native libraries.
14383         * mono-config.c: Trace loading config files.
14384         
14385 2004-06-18  Dick Porter  <dick@ximian.com>
14386
14387         * locales.c: Tell ICU the lengths of strings, it can cope with
14388         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
14389
14390 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
14391
14392         * image.c: swapped name/filename;
14393
14394 2004-06-18  Martin Baulig  <martin@ximian.com>
14395
14396         * mono-debug-debugger.c (write_class): Write the parent class at
14397         the end of the header.
14398
14399 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
14400
14401         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
14402
14403 2004-06-17  Raja R Harinath  <rharinath@novell.com>
14404
14405         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
14406         (bundle_obj): New conditional define.
14407         (BUILT_SOURCES): Remove.
14408         ($(bundle_srcs)): Make parallel-make safe.
14409         (libmonoruntime_la_LIBADD): Make unconditional.
14410         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
14411         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
14412
14413 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
14414
14415         * culture-info-tables.h: It was inconsistent with the latest
14416           supp info files.
14417
14418 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
14419
14420         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
14421         be loaded.
14422
14423         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
14424         with gcc 2.95.
14425
14426 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
14427
14428         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
14429         cleaned up public header threads.h.
14430
14431 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14432
14433         * Makefile.am, *.c, *.h: more API cleanups.
14434
14435 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
14436
14437         * Makefile.am: removed monosn from compilation.
14438         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
14439         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
14440         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
14441         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
14442         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
14443         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
14444
14445 2004-06-15  Jackson Harper  <jackson@ximian.com>
14446
14447         * assembly.c: Make locales lower case when searching the GAC for
14448         assemblies. gacutil will always make locales lowercase when
14449         installing so this effectively makes them case insensitive.
14450         
14451 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
14452
14453         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
14454         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
14455           parameter which allows to choose whether the wait can be interrupted or 
14456           not. Also added the method mono_monitor_enter(), which locks the monitor
14457           using an infinite wait and without allowing interruption.
14458           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
14459           interrupted.
14460         * object.h: Added new fields in MonoThread. suspend_event holds the event
14461           used to susped/resume the thread. synch_lock is the lock object to use for
14462           modifying the thread state.
14463         * threads.c: Use the new synch_lock object for locking, instead of "this",
14464           which can generate deadlocks.
14465           Moved thread state change in Thread.Sleep and Thread.Join from managed
14466           to unmanaged code. This avoids a deadlock when the thread was suspended
14467           just after acquiring the thread lock.
14468           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
14469           Implemented Thread.Suspend using an event instead of ThreadSuspend,
14470           which is not fully implemented in the io-layer.
14471         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
14472
14473 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
14474
14475         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
14476         threads-types.h: more API cleanups.
14477
14478 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
14479
14480         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
14481         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
14482         threadpool.c, threads.c: first pass at the exported API cleanup.
14483
14484 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
14485
14486         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
14487
14488 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14489
14490         * icall.c: added internalGetHome.
14491
14492 2004-06-14  Dick Porter  <dick@ximian.com>
14493
14494         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
14495         possible to return successfully when '.' or '..' were the only
14496         entries in a directory, but were skipped.  The MonoIOStat was not
14497         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
14498         Fixes bug 59574.
14499
14500 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
14501
14502         * reflection.c: make binaries run on .Net 1.1 by default.
14503
14504 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
14505
14506         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
14507
14508 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
14509
14510         * marshal.c: keep track of struct size with explicit layout
14511         (bug #59979).
14512
14513 2004-06-12  Martin Baulig  <martin@ximian.com>
14514
14515         * mono-debug-debugger.c: Comment out a debugging g_message().
14516
14517 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14518
14519         * reflection.c, reflection.h: do not free custom attrs that are cached.
14520         * icall.c: use braces to make code clearer.
14521
14522 2004-06-11  Martin Baulig  <martin@ximian.com>
14523
14524         * class.h (MonoInflatedField): New type.
14525         (MonoClassField): Replaced `MonoType *generic_type' with
14526         `MonoInflatedField *generic_info'.
14527
14528         * icall.c
14529         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
14530
14531 2004-06-11  Martin Baulig  <martin@ximian.com>
14532
14533         * reflection.c (mono_image_create_method_token): Correctly encode
14534         varargs methods.
14535
14536 2004-06-11  Martin Baulig  <martin@ximian.com>
14537
14538         * metadata.c (mono_metadata_parse_method_signature): When parsing
14539         a MethodDef which has VarArgs, also set sentinelpos if we don't
14540         have any parameters.
14541
14542 2004-06-11  Martin Baulig  <martin@ximian.com>
14543
14544         * verify.c (mono_method_verify): In CEE_CALL, use
14545         mono_method_get_signature() to get the method's signature, unless
14546         we're a PInvoke method.
14547
14548 2004-06-10  Jackson Harper  <jackson@ximian.com>
14549
14550         * assembly.c: Use <path>/lib/mono/gac for the extra paths
14551         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
14552         logical name as the supplied path is just a prefix to the gac not
14553         the direct path to it.
14554         
14555 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
14556
14557         * reflection.c: make the token for a created method match
14558         the token of the MethodBuilder it was created from
14559         (IKVM requires this behaviour now).
14560
14561 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
14562
14563         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
14564         reflection.c, socket-io.c: leak fixes.
14565
14566 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
14567
14568         * icall.c: handle sentinel pos in vararg methods in position different
14569         from 0.
14570
14571 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14572
14573         * culture-info-tables.h: freshly generated.
14574
14575 2004-06-09  Martin Baulig  <martin@ximian.com>
14576
14577         * loader.c (mono_get_method_constrained): Call `mono_class_init
14578         (constrained_class)'.   
14579
14580 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
14581
14582         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
14583         any methods. Fixes #59629.
14584
14585 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14586
14587         * culture-info-tables.h: reflecting locale-builder updates.
14588
14589 2004-06-08  Dick Porter  <dick@ximian.com>
14590
14591         * object.h:
14592         * locales.c: Fixed compile warnings, including a real bug in
14593         CompareInfo_internal_compare.
14594         
14595 2004-06-08  Dick Porter  <dick@ximian.com>
14596
14597         * locales.c
14598         (ves_icall_System_Globalization_CompareInfo_internal_index):
14599         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14600         Double-check the resuls of usearches, because ICU currently
14601         ignores most of the collator settings here.  Fixes bug 59720.
14602         
14603 2004-06-08  Dick Porter  <dick@ximian.com>
14604
14605         * locales.c
14606         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14607         Fix memory leak and segfault-causing typo.  No idea how this one
14608         lasted so long without being noticed.
14609
14610 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
14611
14612         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
14613         any methods. Fixes #59629.
14614
14615 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14616
14617         * assembly.c:
14618         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
14619         own the critical section before). Removed dead code (that's done
14620         in the preload hook).
14621
14622         (mono_assembly_load_with_partial_name): call the preload hook.
14623
14624 2004-06-08  Martin Baulig  <martin@ximian.com>
14625
14626         * metadata.c (mono_metadata_signature_alloc): Default
14627         `sentinelpos' to -1.
14628
14629         * reflection.c (mono_image_get_array_token): Likewise.
14630
14631 2004-06-08  Martin Baulig  <martin@ximian.com>
14632
14633         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
14634
14635         * metadata.c (mono_metadata_parse_method_signature): When parsing
14636         a MethodDef which has VarArgs, set sentinelpos.
14637
14638         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
14639         `gint16' since we're using -1 for non-varargs methods.
14640
14641         * reflection.c
14642         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
14643         (method_encode_signature): Added varargs support.
14644         (method_builder_encode_signature): Likewise.
14645         (mono_image_get_varargs_method_token): New static method.
14646         (mono_image_create_method_token): New public method; this is
14647         called via an icall instead of mono_image_create_token() when
14648         calling a varargs method.       
14649
14650 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
14651
14652         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
14653
14654 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14655
14656         * culture-info-tables.h : Reflecting the latest locale-builder that
14657           fixed empty array representation ({} to {0}).
14658
14659 2004-06-07  Jackson Harper  <jackson@ximian.com>
14660
14661         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
14662         looking up extra gac paths. This allows MONO_GAC_PATH to act
14663         exactly like a prefix.
14664         
14665 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
14666
14667         * reflection.c (mono_reflection_type_from_name): Make a copy of the
14668         type name before modifying it. Fixes #59405.
14669
14670 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14671
14672         * culture-info.h: added fields for "all datetime patterns".
14673         * locales.c: (  ves_icall_System_Globalization_CultureInfo
14674           _construct_datetime_format ()): fill xxx_patterns fields.
14675         * object.h: added fields for "all datetime patterns" to
14676           MonoDateTimeFormatInfo.
14677         * culture-info-tables.h: reflecting locale-builder updates.
14678
14679 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
14680
14681         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
14682         the event has no add and remove methods. Fixes #59629.
14683
14684 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
14685
14686         * object.c: Fixed possible integer overflow when allocating large
14687         strings.
14688
14689 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
14690
14691         * culture-info-tables.h: reflecting locale-builder updates.
14692
14693 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
14694
14695         * culture-info-tables.h: reflecting locale-builder updates.
14696
14697 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
14698
14699         * culture-info-tables.h: reflecting locale-builder updates.
14700
14701 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
14702
14703         * threads.c: Made Thread.Sleep abortable.
14704
14705 2004-06-02  Martin Baulig  <martin@ximian.com>
14706
14707         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
14708
14709         * debug-mono-symfile.h: Bumped symbol file version number to 37.
14710
14711 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
14712
14713         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
14714
14715 2004-05-30  Jackson Harper  <jackson@ximian.com>
14716
14717         * reflection.c: Do not hardcode assembly versions or public key
14718         tokens anymore. All of this except the corlib section was dead
14719         code anyways.
14720         
14721 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
14722
14723         * object.c (mono_runtime_invoke_array): Automatically create boxed
14724         objects for byref valuetypes if needed. Fixes #59300.
14725         
14726         * object.c (mono_method_return_message_restore): Handle 
14727         MONO_TYPE_OBJECT as well.
14728
14729 2004-05-28  Jackson Harper  <jackson@ximian.com>
14730
14731         * reflection.c: The modified type encoding was causing build
14732         problems. Reverted for now.
14733         
14734 2004-05-28  Jackson Harper  <jackson@ximian.com>
14735
14736         * reflection.c/h: Take an assembly ref so that we dont create
14737         fully qualified names when encoding types in the same assembly as
14738         the custom attribute being emitted.
14739         * appdomain.c: Increment version number.
14740         
14741 2004-05-26  Duncan Mak  <duncan@ximian.com>
14742
14743         * icall.c
14744         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14745         Set the full version number (major, minor, build, revision).
14746
14747 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
14748
14749         * marshal.c (emit_struct_conv): increment src/dst after blit
14750         (mono_marshal_get_managed_wrapper,
14751         mono_marshal_get_native_wrapper): make sure we have marshalling
14752         info before marshalling params (info computation affects
14753         blittable)
14754
14755         * class.c (class_compute_field_layout): correctly deal with
14756         blittable
14757         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
14758         value types (as per what windows dows by default)
14759         (mono_class_setup_mono_type): System.ValueType is blittable
14760         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
14761         blittable
14762
14763         * marshal.c (mono_marshal_load_type_info): flag types  as
14764         non-blittable if the native layout doesn't match the managed
14765         layout
14766
14767 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14768
14769         * appdomain.c: don't add stuff in the private search path that is
14770         above the application base. If application base is not set, there's
14771         no private search path.
14772
14773 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
14774
14775         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
14776         byref struct arguments in native->managed marshalling.
14777
14778 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
14779
14780         * marshal.c (mono_marshal_get_runtime_invoke): correctly
14781         cache methods using signature (special case for methods
14782         that are value type or string class)
14783         
14784         * image.c (mono_image_close): clean up allocated GSList's
14785         in runtime_invoke_cache.
14786
14787 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14788
14789         * mono-config.c: set the correct path for mono_cfg_dir on windows when
14790         there's no MONO_CFG_DIR environment variable defined.
14791
14792 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14793
14794         * threads.c: windows version must be >= 0x0500 to include OpenThread.
14795
14796 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
14797
14798         * threadpool.c: Really wait for 500ms after the async call, even if the wait
14799           is interrumped.
14800         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
14801           before waiting for it, and call CloseHandle after the wait to unref it.
14802           This will make sure that handles are not disposed too early.
14803
14804 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14805
14806         * appdomain.c:
14807         * appdomain.h:
14808         * icall.c: removed
14809         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
14810         needed now.
14811
14812         * object.c: se the application_base only for the domain that runs
14813         Main. Fixes bug #59216,
14814
14815 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14816
14817         * appdomain.c:
14818         * object.c: only the domain in which Main is run have
14819         SetupInformation.ConfigurationFile set, so moved a few lines from
14820         appdomain.c to object.c.
14821
14822 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14823
14824         * appdomain.c: we tried to load [name].(dll|exe), but according
14825         to bug #57710, we must also try [culture]/[name].(dll|exe) and
14826         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
14827         There's a test case attached to bug #58922.
14828
14829 2004-05-27  Dick Porter  <dick@ximian.com>
14830
14831         * icall.c:
14832         * file-io.c: Implemented icalls for locking and unlocking regions
14833         in a file.
14834         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
14835         FALSE on error (fixes both compiler warning and real bug.)
14836
14837 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
14838
14839         * culture-info-tables.h: reflecting locale-builder updates.
14840
14841           (Added missing ChangeLog entry for 05/26)
14842
14843 2004-05-27  Jackson Harper  <jackson@ximian.com>
14844
14845         * locales.c: Fix some cut and paste errors.
14846         
14847 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14848
14849         * mono-config.c: set the correct path for config. directory on windows.
14850
14851 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
14852
14853         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
14854           on win32.
14855
14856 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
14857
14858         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
14859         from pinvoke functions.
14860         
14861         * marshal.c (mono_ftnptr_to_delegate): Implement this.
14862
14863 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
14864
14865         * culture-info-tables.h: reflecting locale-builder updates.
14866
14867 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
14868
14869         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
14870         #59086.
14871
14872 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
14873
14874         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
14875         * icall.c: Modified icalls for RNG.
14876         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
14877         Windows (CryptoAPI).
14878
14879 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
14880
14881         * locales.c: Fix build.
14882
14883 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
14884
14885         * culture-info-tables.h: reflecting locale-builder updates.
14886
14887 2004-05-25  Jackson Harper  <jackson@ximian.com>
14888
14889         * locales.c: When creating the current culture use the $LANGs
14890         specific culture. So DateTimeFormat and NumberFormat entries are created.
14891         
14892 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
14893
14894         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
14895         a char array as parameter.
14896
14897 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
14898
14899         * image.c: In mono_image_open(), always use an absolute path name to
14900           look for already loaded images.
14901
14902 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
14903
14904         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
14905         missing in the windows build (like older cygwin include files).
14906
14907 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
14908
14909         * icall.c: Fixed check for possible integer overflow in Buffer_
14910         BlockCopy icall. Replaced comments style // by /* */.
14911
14912 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
14913
14914         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
14915         
14916         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
14917         check after MONO_VTADDR. Fixes pinvoke2.exe.
14918
14919         * marshal.h marshal.c metadata.h: Add beginnings of support for
14920         ftnptr -> delegate marshalling.
14921
14922 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
14923
14924         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
14925         * threads.c: Fix warnings.
14926
14927 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
14928
14929         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
14930         * icall.c: Registered icalls for Suspend and Resume.
14931         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
14932           Thread.Abort.
14933         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
14934         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
14935         * process.c: Use WaitForSingleObjectEx.
14936         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
14937           checkpoints.
14938         * threads.c, threads.h: Make use of new Ex wait methods. Improved
14939           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
14940           for Suspend and Resume. Added new mono_thread_stop, used for stoping
14941           background threads. Added basic support for Abort in Windows.
14942           Start new threads using a managed delegate invoke wrapper. This wrapper
14943           has an interruption checkpoint that is needed since an interruption
14944           can be requested before the thread leaves the unmanaged code that starts 
14945           the thread.
14946         * marshal.c: Added interruption checkpoint after every native call, and
14947           also before managed calls for wrappers called from unmanaged code to
14948           go into managed code.
14949         * object.h: Added new field in MonoThread to keep track of interruption
14950           requests.
14951
14952 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
14953
14954         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
14955         calls.
14956
14957 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14958
14959         * appdomain.c:
14960         * assembly.c:
14961         * gc.c:
14962         * locales.c:
14963         * mono-config.c:
14964         * rand.c: getenv -> g_getenv (windows!)
14965
14966         * process.c: complete_path is also used on non-windows platforms.
14967
14968 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14969
14970         * icall.c: new signature for Process_Start.
14971
14972         * process.[ch]: new signature for Process_Start. If we're on windows
14973         and UseShellExecute is false, we have to search for the program by
14974         ourselves if we don't get a full path.
14975
14976 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
14977
14978         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
14979         marshalling and call CleanUpNativeData if needed. Fixes #58646.
14980
14981 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14982
14983         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
14984         Fixes bug #58373.
14985
14986 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14987
14988         * process.c: use double quotes to quote program name and arguments on
14989         windows. Fixes bug #58575.
14990
14991 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14992
14993         * file-io.c: don't return "." and ".." when using windows Find*File.
14994
14995 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
14996
14997         * marshal.c: Don't pass wrappers to message init because method 
14998         addressed used to lookup metadata. part of remoting[2|3] fix.
14999
15000 2004-05-15  Jackson Harper  <jackson@ximian.com>
15001
15002         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
15003         path is essentially the same as MONO_PATH except that it points to
15004         GACs instead of lib directories.
15005         * loader.h: The user gac is gone so we dont need function to
15006         enable/disable it.
15007         * mono-config.c: user gac option is now gone.
15008         
15009 2004-05-15  Jackson Harper  <jackson@ximian.com>
15010
15011         * culture-info.h: Make defines more consistent, add calendar data
15012         to the culture info table.
15013         * culture-info-tables.h: Add basic calendar data. Basically
15014         everyone gets default gregorian until all the data is
15015         updated.
15016         * locales.c: Use the new consistent defines. Set calendar data for
15017         culture info objects.
15018         * object.h: add a field for calendar data to CultureInfo
15019         
15020 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
15021
15022         * image.c: image->runtime_invoke_cache is keyed on signatures now.
15023         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
15024         a signature.
15025         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
15026         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
15027         an extra param that is the pointer of the method to invoke. The IL for
15028         the invoke method is no longer specific to the method, but to the
15029         signature of the method. Thus, we can share the same code for multiple
15030         methods. This reduces the number of methods that have to be compiled.
15031
15032 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
15033
15034         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
15035
15036         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15037
15038         * icall.c: Optimize Buffer.BlockCopy.
15039
15040 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15041
15042         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
15043         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
15044         quote). Changed them to "MMMM yyyy".
15045
15046 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
15047
15048         * rand.c
15049         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
15050
15051 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
15052
15053         * reflection.h: Updated after changes to managed structures.
15054
15055         * appdomain.c: Bump corlib version.
15056
15057 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15058
15059         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
15060         windows.
15061
15062 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15063
15064         * Makefile.am: link to ../os/libmonoos.la on windows.
15065
15066         * assembly.c:
15067                 -If MONO_DEBUG, warn about non-existing directories in
15068                 MONO_PATH.
15069                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
15070                 compile time variable.
15071                 -Removed init_default_path and call mono_set_rootdir from
15072                 libmonoos.a instead (windows only).
15073
15074         * assembly.h: declare mono_assembly_getrootdir().
15075
15076         * domain.c:
15077         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
15078
15079         * loader.c: s/getenv/g_getenv/
15080
15081 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
15082
15083         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
15084
15085         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
15086
15087         * metadata.h: Add new marshalling conversions.
15088
15089         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
15090         function.
15091
15092         * reflection.c (mono_reflection_get_type): Lookup the type in all
15093         modules of a multi-module assembly. Fixes #58291.
15094
15095 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
15096
15097         * threads.c: Before aborting a background, set the StopRequested
15098         state.  This avoids throwing the Abort exception.
15099         In mono_thread_manage, don't continue with the shutdown until all
15100         aborted threads have actually stopped.
15101
15102 2004-05-10  Jackson Harper  <jackson@ximian.com>
15103
15104         * locales.c: Remove the modifier from culture names.
15105         
15106 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15107
15108         * Makefile.am: monosn is not installed any more. It has been deprecated
15109         in favor of sn.
15110
15111 2004-05-07  Jackson Harper  <jackson@ximian.com>
15112
15113         * locales.c
15114         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
15115         Fix array construction, add bailout if the length is 0.
15116
15117 2004-05-07  Dick Porter  <dick@ximian.com>
15118
15119         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
15120         machine doesn't have a DNS entry.  Patch by Urs Muff
15121         (umuff@quark.com), fixes bug 57928.
15122
15123 2004-05-06  Jackson Harper  <jackson@ximian.com>
15124
15125         * reflection.c: Handle null PublicTokens properly. alloc mem for
15126         assembly names culture so we dont crash when freeing it.
15127         
15128 2004-05-06  Jackson Harper  <jackson@ximian.com>
15129
15130         * assembly.c: Check the usergac when loading with partial names.
15131         
15132 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
15133
15134         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
15135         does nothing for now (not required for Linux/Windows) but the class
15136         library can call it (and a newer or modified runtime could need it).
15137         * icall.c: Registred icall.
15138
15139 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15140
15141         * loader.c: prints a message on module loading error we set MONO_DEBUG
15142         environment variable.
15143
15144 2004-05-05  Jackson Harper  <jackson@ximian.com>
15145
15146         * appdomain.c: Handle PublicKeyToken=null properly.
15147         
15148 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
15149
15150         * environment.c|h: Added icall ves_icall_System_Environment_
15151         GetOSVersionString to get the current OS version as a string.
15152         * icall.c: Registred icall.
15153
15154 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
15155
15156         * object.c: in mono_object_get_virtual_method(), take into account that
15157         non-virtual methods don't have a slot in the vtable. Check needed when
15158         the object is a proxy.
15159
15160 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
15161
15162         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
15163         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
15164
15165         * object.c (mono_class_compute_gc_descriptor): Fix warning.
15166
15167         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
15168         passed when a valuetype is expected.
15169
15170         * object.c (mono_unhandled_exception): Only set the exit code if the
15171         exception happens in the main thread. Fixes thread5.exe.
15172
15173         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
15174         invalid names. Fixes #58047.
15175
15176 2004-05-03  Jackson Harper  <jackson@ximian.com>
15177
15178         * assembly.c: This line was committed accidently and is unneeded.
15179         
15180 2004-05-03  Jackson Harper  <jackson@ximian.com>
15181
15182         * icall.c: Add new icall for Assembly::LoadWithPartialName
15183         * assembly.c/.h: new function that probes the GAC to load partial
15184         assembly names by Paolo Molaro.
15185         
15186 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15187
15188         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
15189         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
15190         (type_get_fully_qualified_name): Added PublicKeyToken when building a
15191         full type name.
15192
15193 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15194
15195         * appdomain.c: fixed check for 'neutral' culture and removed warning.
15196         * reflection.c: fix bug when parsing a full type name and Version is not
15197         the last thing in the string.
15198
15199 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
15200
15201         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
15202         crashes when it is freed.
15203
15204 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15205
15206         * assembly.c: print the compat warning to stderr.
15207
15208 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
15209
15210         * assembly.c (mono_assembly_load_references): Add a compatibility
15211         hack to run old applications that might be still referencing the
15212         3300-based assemblies, only do this for System.xxx.
15213
15214 2004-05-01  Jackson Harper  <jackson@ximian.com>
15215
15216         * appdomain.c: If the culture is neutral we set it to "".
15217         
15218 2004-04-29  Jackson Harper  <jackson@ximian.com>
15219
15220         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
15221
15222 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
15223  
15224         * string-icalls.c: added low overhead function for copying chars
15225         * icall.c: added needed icall for the above function
15226  
15227 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15228
15229         * icall.c: fix return value of get_global_assembly_cache.  Implemented
15230         Environment.GetLogicalDrives.
15231
15232 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
15233
15234         * rand.c: try and talk to egd or prngd
15235         for random bytes if opening devices fail.
15236
15237 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
15238
15239         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
15240         alignment for the type using the native alignment of its members 
15241         instead of using klass->min_align.
15242
15243         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
15244
15245 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15246
15247         * file-io.c:
15248         * socket-io.c: added check for sys/aio.h.
15249
15250 2004-04-28  Dick Porter  <dick@ximian.com>
15251
15252         * threads.c: Don't abort a thread thats already aborting, when
15253         terminating everything.
15254
15255 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15256
15257         * icall.c: added 2 new async calls for Socket.
15258
15259         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
15260         IO on *nix systems.
15261
15262         * threadpool.c: removed unused variable.
15263
15264 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
15265
15266         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
15267
15268 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15269
15270         * locales.c: put back string_invariant_tolower () and
15271         string_invariant_toupper ().
15272
15273 2004-04-26 David Waite <mass@akuma.org>
15274
15275         * file-io.h:
15276         * socket-io.h:
15277         * threads.h:
15278         * unicode.h: remove comma from end of enumeration declarations
15279
15280 2004-04-26 David Waite <mass@akuma.org>
15281
15282         * debug-mono-symfile.h:
15283         * decimal.c:
15284         * mono_debug.h:
15285         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
15286
15287
15288 2004-04-26  Jackson Harper  <jackson@ximian.com>
15289
15290         * appdomain.c: Increment version number.
15291         
15292 2004-04-26  Jackson Harper  <jackson@ximian.com>
15293
15294         * appdomain.c: Set assembly references public token value when
15295         PublicKeyToken is specified, not the hash_value. Free public token
15296         values when free assembly name data. Previously the public key
15297         token was hex decoded, however we are using hex encoded public key
15298         tokens, so this is not neccasary.
15299         * assembly.c: Lookup assemblies in the gac if their public token
15300         value is set. Add function to allow enabling user gac
15301         lookups. Specify whether or not the assembly was loaded from the
15302         GAC. Compare full assembly names when checking the cache for
15303         assemblies (Temporarily disabled see comment in code). Remove
15304         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
15305         specifies trace-loader they get extra info to stdout on the
15306         loading of assemblies.
15307         * image.h: Add a field for an assembly references public token
15308         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
15309         whether an assembly has been loaded from the GAC.
15310         * image.c: Remove a corlib -> mscorlib name mapping.
15311         * loader.h: Add function to enable/disable the user gac.
15312         * mono-config.c: Check if the usergac is enabled in the config
15313         file.
15314         * icall.c: New icall to determine whether or not an assembly has
15315         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
15316         * tabldefs.h: Add constant for assemblyref flag that specifies a
15317         full public key is used instead of a public token.
15318         * reflection.c: Remove mscorlib -> corlib mappings. Set
15319         PublicTokenValue instead of hash value. This value is a hex
15320         string so it does not need to be expanded.
15321
15322 2004-04-26  Martin Baulig  <martin@ximian.com>
15323
15324         * mono-debug-debugger.c (mono_debugger_initialize): Set
15325         `mono_debugger_initialized' before calling mono_debug_lock().
15326
15327 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
15328
15329         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
15330           InternalToUpper/InternalToLower.
15331         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
15332           removed invariant culture shortcut.  This is now done in managed code.
15333         * locales.c: (string_invariant_toupper/tolower) removed.
15334
15335 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15336
15337         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
15338         Added Poll internal call.
15339
15340         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
15341         call for Poll. Select was too heavy for polling a single socket.
15342
15343         * threadpool.[ch]: added mono_threadpool_cleanup.
15344         * threads.c: use it. Don't use Thread_Abort on windows.
15345
15346 2004-04-23  Martin Baulig  <martin@ximian.com>
15347
15348         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
15349
15350 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
15351
15352         * icall.c: Registred new icalls for key pair protection and added an
15353         icall for Environment.GetFolderPath on Windows.
15354         * security.c|h: Added new icalls for key pair protection.
15355
15356 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15357
15358         * socket-io.c: don't display the non-supported family warning for known
15359         families. Now this is not displayed on windows when checking support
15360         for IPv4/IPv6.
15361
15362 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15363
15364         * class.c: don't display the layout warning for static fields.
15365
15366 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
15367
15368         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
15369         * locales.c, locales.h: Added new icalls for culture-specific
15370         Char.ToLower and Char.ToUpper.
15371
15372 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15373
15374         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
15375         by David Waite.
15376
15377 2004-04-20  Martin Baulig  <martin@ximian.com>
15378
15379         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
15380         of the type name before passing it to mono_reflection_type_from_name().
15381
15382 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
15383
15384         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
15385         encodings here. Fixes #56965.
15386
15387 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
15388
15389         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15390         fix test on strstr result not that I can see anything that
15391         relies on the result.
15392
15393 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
15394
15395         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
15396         Fixes #57081.
15397
15398         * marshal.c (mono_marshal_get_string_encoding): New helper function.
15399
15400         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
15401         function to determine which marshalling to use for strings. Fixes
15402         #56965.
15403
15404         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
15405
15406         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
15407
15408 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
15409
15410         * icall.c: #include mono-config.h
15411
15412 2004-04-15  Jackson Harper  <jackson@ximian.com>
15413
15414         * culture-info-tables.h: Fix date formats for en-US culture.
15415         
15416 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
15417
15418         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
15419         ThreadPool.SetMinThreads.
15420         * threadpool.c: Implemented ThreadPool.GetMinThreads and
15421         ThreadPool.SetMinThreads.
15422
15423 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
15424
15425         * mono-config.c: also load the .config file in the directory
15426         where the assembly was found.
15427
15428 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
15429
15430         * assembly.c: load per-assembly config files.
15431         * icall.c: decrapified code to get the config dir and moved to
15432         mono-config.c.
15433         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
15434         per-assembly config files. When doing a dll map lookup give precedence
15435         to the per-assembly data.
15436
15437 2004-04-14  Martin Baulig  <martin@ximian.com>
15438
15439         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
15440         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
15441         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
15442
15443         * mono-debugger-debugger.c: While the debugger is locked, remember
15444         whether the symbol tables have changes and send one single
15445         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
15446
15447 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
15448
15449         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
15450
15451         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
15452         function.
15453
15454         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
15455         account when marshalling string arrays. Fixes #56965.
15456
15457 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
15458
15459         * icall.c: Add new icalls mapping for security.
15460         * security.c|h: Add internal calls for WindowsIdentity,
15461         WindowsImpersonationContext and WindowsPrincipal.
15462
15463 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
15464
15465         * class.c: Added comment to ensure the System.MonoDummy class
15466         is removed when no longer necessary
15467
15468 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
15469
15470         * appdomain.c: Pass arguments to the bootstraping exceptions to
15471         minimize JITed methods at boot
15472
15473         * metadata.c (mono_exception_from_name_two_strings): Allow for the
15474         second string to be null.
15475
15476         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15477         Change the protocol to minimize the JIT methods at startup.  Now
15478         it Returns the internal codepage, if the value of "int_code_page"
15479         is 1 at entry, and we can not compute a suitable code page
15480         number, returns the code page as a string.
15481
15482 2004-04-13  Jackson Harper  <jackson@ximian.com>
15483
15484         * culture-info-tables.h: Fix number of decimal digits for all
15485         english locales.
15486
15487 2004-04-13  Jackson Harper  <jackson@ximian.com>
15488
15489         * icall.c: Clairfy out of sync error message. It is not always
15490         your corlib that is out of sync.
15491
15492 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
15493
15494         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
15495         properties when only the set accessor is overriden. Fixes #55874.
15496
15497 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
15498
15499         * assembly.c (mono_assembly_load_references): Make this thread safe.
15500         Fixes #56327.
15501
15502 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
15503
15504         * monosn.c: Add missing initialization calls.
15505
15506 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
15507
15508         * locales.c:
15509         ves_icall_System_Globalization_CultureInfo_construct_number_format
15510         Fix g_assert so it compiles on fussier compilers re int/ptr
15511         mismatch
15512
15513 2004-04-08  Dick Porter  <dick@ximian.com>
15514
15515         * socket-io.h:
15516         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
15517         53992.  Also rearrange the code so that the internal calls return
15518         an error value and exceptions are thrown from managed code.
15519
15520         * icall.c: Add type info to the socket icalls.
15521
15522 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15523
15524         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
15525         owes me a beer.
15526
15527 2004-04-07  Martin Baulig  <martin@ximian.com>
15528
15529         * class.c (mono_class_from_generic_parameter): Don't default
15530         `klass->parent' to `mono_defaults.object_type'.
15531
15532 2004-04-07  Martin Baulig  <martin@ximian.com>
15533
15534         * reflection.c (mono_reflection_initialize_generic_parameter): Set
15535         `param->pklass->reflection_info'.       
15536
15537 2004-04-07  Jackson Harper  <jackson@ximian.com>
15538
15539         * culture-info-tables.h: Fix date separator symbol.
15540         
15541 2004-04-07  Martin Baulig  <martin@ximian.com>
15542
15543         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
15544         from System.Type to System.MonoType.
15545
15546 2004-04-07  Martin Baulig  <martin@ximian.com>
15547
15548         * reflection.h
15549         (MonoReflectionGenericParam): Added `has_reference_type' and
15550         `has_value_type' fields.
15551
15552         * reflection.c (mono_image_get_generic_param_info): Encode the
15553         correct flags if we have the `class' or `struct' constraint.
15554
15555 2004-04-07  Martin Baulig  <martin@ximian.com>
15556
15557         * reflection.h
15558         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
15559
15560 2004-04-07  Jackson Harper  <jackson@ximian.com>
15561
15562         * appdomain.c: Revert extra patches, just wanted to bump the
15563         version number.
15564         
15565 2004-04-07  Jackson Harper  <jackson@ximian.com>
15566
15567         * Makefile.am: Add culture-info private headers.
15568         * icall.c: Add new icalls for contructing locales.
15569         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
15570         * locales.h: Declare new culture info construction methods.
15571         * object.h: Add new fields used to avoid the CultureMap to
15572         MonoCultureInfo.
15573         * culture-info.h: Definition of structs used in the culture info
15574         tables.
15575         * culture-info-tables.h: Autogenerated tables that contain culture
15576         info data. This file was generated with the locale-builder tool.
15577         * appdomain.c: Incement corlib version number.
15578         
15579 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
15580
15581         * appdomain.c: (mono_runtime_init) move mono_thread_init
15582         to before mono_object_new calls so critical sections
15583         are initialized before use.
15584
15585 2004-04-07  Martin Baulig  <martin@ximian.com>
15586
15587         * icall.c
15588         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
15589         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
15590         (ves_icall_MonoGenericParam_initialize): Removed.
15591         (monogenericparam_icalls): Removed.
15592         (generictypeparambuilder_icalls): Added new table for
15593         System.Reflection.Emit.GenericTypeParameterBuilder.
15594
15595         * reflection.c
15596         (mono_reflection_define_generic_parameter): Removed.
15597         (mono_reflection_initialize_generic_parameter): This is now called
15598         from GenericTypeParameterBuilder's .ctor.
15599
15600 2004-04-06  Martin Baulig  <martin@ximian.com>
15601
15602         * class.c (mono_class_init): Don't inflate nested classes in a
15603         generic instance.
15604         (mono_type_get_name_recurse): Include the generic arguments for
15605         generic instances and generic type declarations.
15606         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
15607         (_mono_class_get_instantiation_name): Removed.
15608         (mono_class_create_generic): Always use `gklass->name' as our name.
15609
15610         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
15611
15612         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
15613         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
15614         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
15615         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
15616         closed generic methods here.
15617
15618         * reflection.c
15619         (mono_reflection_generic_inst_get_nested_types): Removed.
15620         (inflate_mono_method): Copy the generic parameters from the
15621         MonoMethodHeader into out MonoGenericMethod.
15622
15623 2004-04-06  Martin Baulig  <martin@ximian.com>
15624
15625         * row-indexes.h
15626         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
15627
15628         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
15629
15630         * reflection.c (build_compressed_metadata): If we have any entries
15631         in the GenericParam, MethodSpec or GenericParamConstraint tables,
15632         set the header version to 1.1.
15633
15634 2004-04-06  Martin Baulig  <martin@ximian.com>
15635
15636         * class.c (mono_class_init): If we're a generic instance,
15637         initialize our nested classes, too.
15638         (_mono_class_get_instantiation_name): Deal with the new `!%d'
15639         suffix. 
15640
15641 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15642
15643         * process.c: quote the argument passed to the shell on windows.
15644
15645 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
15646
15647         * threads.c (mono_alloc_special_static_data): Allow this to be
15648         called during startup.
15649
15650 2004-04-02  Martin Baulig  <martin@ximian.com>
15651
15652         * icall.c
15653         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
15654
15655 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
15656
15657         * icall.c: Fix build.
15658
15659 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
15660
15661         * Makefile.am: Added security.c|h.
15662         * icall.c: Added icall for get_UserName;
15663         * security.c: New file for security related icalls. Added function
15664         get_UserName for System.Environment (fix #56144).
15665         * security.h: New. Header file for security.c
15666
15667 2004-04-02  Dick Porter  <dick@ximian.com>
15668
15669         * icall.c: Deleted the icalls that were obsoleted some time ago
15670         by the ICU string code, and which were mixed into the icall
15671         rearranging.  Fixes bug 55969.
15672
15673         * string-icalls.h: 
15674         * string-icalls.c: Deleted the code that those icalls reference.
15675
15676 2004-04-01  Martin Baulig  <martin@ximian.com>
15677
15678         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
15679
15680         * class.c (mono_class_from_generic_parameter): Don't set 
15681         TYPE_ATTRIBUTE_INTERFACE.
15682         (my_mono_class_from_generic_parameter): Likewise.
15683
15684 2004-04-01  Martin Baulig  <martin@ximian.com>
15685
15686         * loader.c (find_method): Added an optional `MonoClass *ic'
15687         argument to search in a specific interface.
15688         (mono_get_method_constrained): New public function.
15689
15690 2004-04-01  Martin Baulig  <martin@ximian.com>
15691
15692         * reflection.c (mono_image_get_generic_field_token): Use the
15693         `handleref' cache here.
15694
15695 2004-04-01  Martin Baulig  <martin@ximian.com>
15696
15697         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
15698
15699         * reflection.c (create_generic_typespec): Use the `typespec' hash
15700         here, not the `typeref' one.    
15701
15702 2004-04-01  Martin Baulig  <martin@ximian.com>
15703
15704         * class.c (mono_class_inflate_generic_type): Moved the
15705         functionality into a new static inflate_generic_type() which
15706         returns NULL if it didn't do anything.  Only increment the
15707         `mono_stats.inflated_type_count' if we actually inflated
15708         something.
15709         (mono_class_get_full): Check the classes type to see whether we
15710         need to inflate it; also inflate MONO_TYPE_(M)VAR.
15711
15712 2004-04-01  Jackson Harper  <jackson@ximian.com>
15713
15714         * reflection.c: Set culture for assembly references.
15715         
15716 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
15717
15718         * reflection.[ch], icall.[ch], Fix support for pinning variables.
15719
15720 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15721
15722         * assembly.c:
15723         (do_mono_assembly_open): the critical section also covers
15724         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
15725
15726 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15727
15728         * threads.c:
15729         (mono_manage_threads): abort the background threads when finishing.
15730         Fixes bug #47232.
15731
15732 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15733
15734         * gc.c: only close the done_event handle if there was no timeout.
15735         C-ified comments.
15736
15737 2004-03-30  Martin Baulig  <martin@ximian.com>
15738
15739         * icall.c (icall_entries): It's called "System.Activator", not
15740         "System.Activation".    
15741
15742 2004-03-30  Martin Baulig  <martin@ximian.com>
15743
15744         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
15745         (mono_class_create_from_typespec): Likewise.
15746
15747 2004-03-30  Martin Baulig  <martin@ximian.com>
15748
15749         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
15750         `has_ctor_constraint' and `initialized'.
15751
15752 2004-03-30  Martin Baulig  <martin@ximian.com>
15753
15754         * reflection.c (encode_new_constraint): New static function to add
15755         the constructor constraint attribute to a type parameter.
15756         (encode_constraints): Call encode_new_constraint() if necessary.
15757
15758         * reflection.h
15759         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
15760
15761         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
15762         
15763 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
15764
15765         * reflection.c, icall.c: add support for pinning variables. 
15766
15767 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
15768
15769         * marshal.c (mono_marshal_get_managed_wrapper):
15770         init bool local with zero rather than null.
15771
15772 2004-03-29  Martin Baulig  <martin@ximian.com>
15773
15774         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
15775         the "official" behavior here.
15776         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
15777
15778 2004-03-29  Martin Baulig  <martin@ximian.com>
15779
15780         * icall.c: Reflect latest API changes.
15781
15782 2004-03-29  Martin Baulig  <martin@ximian.com>
15783
15784         * loader.c (mono_get_method_from_token): Also call
15785         mono_metadata_load_generic_params () for abstract and interface
15786         methods; replace the type arguments in the method signature with
15787         the ones which are loaded from the metadata.
15788
15789 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
15790
15791         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
15792         of the lock is not the current thread. MS.NET don't do it, in spite of
15793         what the documentation says. See bug #56157.
15794
15795 2004-03-28  Martin Baulig  <martin@ximian.com>
15796
15797         * class.c (mono_class_init): Don't call init_properties() and
15798         init_events() for generic instances; set `prop->parent' when
15799         inflating properties.
15800
15801         * reflection.c (mono_generic_inst_get_object): Call
15802         `mono_class_init (ginst->klass)'.
15803         (mono_type_get_object): Only create a MonoGenericInst if your
15804         generic type is a TypeBuilder.
15805         (do_mono_reflection_bind_generic_parameters): Only set
15806         `ginst->is_dynamic' if our generic type is a TypeBuilder.
15807
15808 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
15809
15810         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
15811         Fixes #56091.
15812
15813 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15814
15815         * icall.c: added Kill_internal icall.
15816         * process.[ch]: added Kill_internal icall.
15817
15818 2004-03-25  Martin Baulig  <martin@ximian.com>
15819
15820         * class.h (MonoStats): Added `generic_instance_count',
15821         `inflated_method_count', `inflated_type_count' and
15822         `generics_metadata_size'.       
15823
15824 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15825
15826         * reflection.c: no warnings now.
15827
15828 2004-03-25  Martin Baulig  <martin@ximian.com>
15829
15830         * class.c (mono_class_get_full): New public function; does a
15831         mono_class_get(), but also takes a `MonoGenericContext *'.
15832
15833         * loader.c (mono_field_from_memberref): Renamed to
15834         `field_from_memberref', made static and added `MonoGenericContext *'
15835         argument.
15836         (mono_field_from_token): Added `MonoGenericInst *' argument.
15837         (method_from_memberef): Likewise.
15838         (mono_get_method_from_token): Likewise.
15839         (mono_get_method_full): New public function; does a
15840         mono_get_method(), but also takes a `MonoGenericContext *'.
15841
15842         * verify.c (mono_method_verify): Get the method's generic context
15843         and pass it to mono_field_from_token(), mono_get_method_full() and
15844         mono_class_get_full().
15845
15846 2004-03-25  Martin Baulig  <martin@ximian.com>
15847
15848         * class.c (mono_class_inflate_generic_type): Take a
15849         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
15850         `MonoGenericMethod *'.
15851
15852 2004-03-25  Martin Baulig  <martin@ximian.com>
15853
15854         * loader.h (MonoMethodInflated): Store the MonoGenericContext
15855         instead of the MonoGenericMethod here.
15856
15857 2004-03-25  Martin Baulig  <martin@ximian.com>
15858
15859         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
15860         each time we create a new MonoGenericInst, we also create a new
15861         context which points back to us.
15862
15863         * class.c (inflate_method): Use `ginst->context' instead of
15864         creating a new context.
15865
15866         * loader.c (method_from_memberref): Use
15867         `klass->generic_inst->context' instead of creating a new context.
15868
15869 2004-03-25  Martin Baulig  <martin@ximian.com>
15870
15871         * class.h (MonoGenericContext): New struct.
15872         (MonoGenericMethod): Removed `generic_inst'.
15873
15874         * class.c (mono_class_inflate_generic_method): Take a
15875         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
15876
15877 2004-03-25  Martin Baulig  <martin@ximian.com>
15878
15879         * loader.h (MonoMethodInflated): New typedef.
15880
15881         * metadata.h (MonoMethodSignature): Removed `gen_method', make
15882         `generic_param_count' consume just 30 bits, added `is_inflated'
15883         and `has_type_parameters' flags (one bit each).
15884
15885         * class.c (mono_class_inflate_generic_method): Create a
15886         MonoMethodInflated instead of a MonoMethodNormal and set
15887         `is_inflated' in the method signature.
15888
15889         * class.h (MonoGenericMethod): Removed `generic_method'.
15890
15891 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
15892
15893         * image.c: Make sure the name of a MonoImage is always an absolute path.
15894           This fixes bug #54415.
15895
15896 2004-03-24  Martin Baulig  <martin@ximian.com>
15897
15898         * class.c (mono_class_setup_vtable): If we're a generic instance,
15899         use our generic type's vtable size.
15900
15901 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
15902
15903         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
15904         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
15905         problems.
15906
15907 2004-03-23  Martin Baulig  <martin@ximian.com>
15908
15909         * class.h (MonoDynamicGenericInst): Added `int count_events' and
15910         `MonoEvent *events'.
15911
15912         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
15913         (typebuilder_icalls): Added "get_event_info"; calls
15914         mono_reflection_event_builder_get_event_info(). 
15915
15916         * reflection.c (mono_reflection_generic_inst_initialize): Added
15917         `MonoArray *events'.
15918         (mono_reflection_event_builder_get_event_info): New function.
15919
15920 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
15921
15922         * object.h: add mono_type_initialization_init
15923
15924         * object.c (mono_runtime_class_init): 
15925         implement class constructor synchronization rules
15926         to cope with threading issues.  
15927         add mono_type_initialization_init
15928
15929         * appdomain.c (mono_runtime_init): call 
15930         mono_type_initialization_init
15931
15932         * class.h: removing initializing field from MonoVTable
15933
15934 2004-03-23  Martin Baulig  <martin@ximian.com>
15935
15936         * class.c (my_mono_class_from_generic_parameter): Use
15937         `param->name' if it's not NULL. 
15938
15939 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
15940
15941         * class.c: do not insert non-virtual methods in the vtable.
15942         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
15943         that means the method is non-virtual. This never would have
15944         happened before.
15945
15946 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
15947
15948         * profiler.c: Added lock for accessing coverage_hash.
15949
15950 2004-03-22  Martin Baulig  <martin@ximian.com>
15951
15952         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
15953         `method->method->signature->generic_param_count != 0' to make it
15954         work for interface methods.
15955
15956 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15957
15958         * process.c: quote the string passed to the shell using g_shell_quote.
15959
15960 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15961
15962         * threads.c:
15963         (mono_threads_manage): don't remove the finalizer thread and self
15964         from the threads hash table so that mono_thread_manage can be called
15965         more than once.
15966
15967 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15968
15969         * process.c: quote the arguments when UseShellExecute is true. Fixes
15970         bug #55790.
15971
15972 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15973
15974         * threads.c: set mono_thread_detach as a cleanup routine for every
15975         thread. This way it's always executed upon thread termination, either
15976         aborted or finished normally. No more xsp hangs!
15977
15978 2004-03-17  Martin Baulig  <martin@ximian.com>
15979
15980         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
15981         `int count_nested' and a `MonoType **nested'.
15982
15983         * reflection.c (mono_reflection_bind_generic_parameters): Moved
15984         most of the functionality into a new static
15985         do_mono_reflection_bind_generic_parameters() and don't take a
15986         `MonoType *nested_in' argument any more.  Don't compute nested
15987         types here.
15988         (mono_reflection_generic_inst_get_nested_types): New public method
15989         to get nested types.
15990
15991         * class.c (mono_class_create_generic): Set `klass->nested_in' if
15992         we're a nested class.
15993
15994         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
15995         mono_reflection_generic_inst_get_nested_types() to compute the
15996         nested types.
15997
15998 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
15999
16000         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
16001         descriptive error message under windows.
16002         
16003 2004-03-17  Martin Baulig  <martin@ximian.com>
16004
16005         * class.c (dup_type): Added `const MonoType *original' argument;
16006         copy the attrs from the original type.
16007
16008 2004-03-17  Martin Baulig  <martin@ximian.com>
16009
16010         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
16011         `m->generic_inst_cache' here.
16012
16013 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
16014
16015         * exception.h exception.c: Add stack_overflow_exception.
16016
16017 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16018
16019         * threadpool.c:
16020         (overlapped_callback): call SetEvent *after* invoking the callback.
16021         No need to call CloseHandle.
16022
16023 2004-03-16  Martin Baulig  <martin@ximian.com>
16024
16025         * reflection.c (mono_image_get_fieldref_token): Take a
16026         `MonoReflectionField *' instead of a `MonoClassField *' and a
16027         `MonoClass *'; store the `MonoReflectionField *' in the hash.
16028
16029 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16030
16031         * appdomain.c: don't add the culture to the filename we're looking for
16032         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
16033
16034 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16035
16036         * locales.c: don't ignore symbols when doing case insensitive compares.
16037         Thanks Dick! Fixes bug #54046.
16038
16039         * threads.c: surround 'threads' usage with enter/leave in
16040         mono_thread_manage.
16041
16042 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
16043
16044         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
16045         implicitly marshalled as [Out]. Fixes #55450.
16046
16047         (mono_marshal_get_runtime_invoke): Zero out the result if there is
16048         an exception.
16049
16050 2004-03-16  Martin Baulig  <martin@ximian.com>
16051
16052         * class.c (mono_class_from_generic_parameter): Use the actual
16053         parameter name. 
16054
16055 2004-03-16  Martin Baulig  <martin@ximian.com>
16056
16057         * reflection.c (type_get_signature_size): New static function.
16058         Compues the size of the type in a method signature.
16059         (method_get_signature_size): New static function; calls
16060         type_get_signature_size() to compute the actual size of the
16061         method's signature.
16062         (method_encode_signature): Use method_get_signature_size() to get
16063         the signature's size rather than using `nparams * 10'.
16064
16065 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16066
16067         * file-io.h: define here WapiOverlapped on windows. I don't want the
16068         regular OVERLAPPED one.
16069
16070         * file-io.c:
16071         * threadpool.c: somehow, BindIoCompletionCallback is not found.
16072         Disabling AIO on windows.
16073
16074 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16075
16076         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
16077         bug #55385.
16078
16079 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16080
16081         * appdomain.c: upgraded corlib version.
16082
16083         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
16084         and BeginWrite. Allow opening files for asynchrnous operations.
16085
16086         * file-io.h: new struct that maps FileStreamAsyncResult.
16087         * icall.c: added new icalls.
16088         * process.[ch]: support setting child process environment variables
16089         and use the SHELL or COMSPEC when UseShellExecute is true.
16090
16091         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
16092         callback for async. IO is here and also BindHandle.
16093
16094         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
16095         from here.
16096
16097 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
16098
16099         * reflection.c (create_custom_attr): Allow len == 0.
16100
16101         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
16102         computation on big-endian machines.
16103
16104 2004-03-13  Martin Baulig  <martin@ximian.com>
16105
16106         * class.h (MonoGenericInst): Added `int count_ifaces'.
16107
16108         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
16109         `ginst->count_ifaces' instead `klass->interface_count' since we
16110         may get called before the vtable is created.
16111
16112         * loader.c (mono_method_get_param_names): If we're a generic
16113         instance, return and don't initialize the class.
16114
16115         * reflection.c (mono_reflection_setup_generic_class): Don't call
16116         ensure_runtime_vtable().
16117         (mono_reflection_bind_generic_parameters): Set
16118         `ginst->count_ifaces'.
16119
16120 2004-03-11  Jackson Harper <jackson@ximian.com>
16121
16122         * icall.c:
16123         * unicode.c:
16124         * unicode.h: Remove unused System.Char icalls.
16125         
16126 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
16127
16128         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
16129         code when we P/Invoke the first library in Windows.Forms, instead
16130         of when we first open the assembly.
16131
16132         * assembly.c: Drop the lookup from here.
16133
16134 2004-03-10  Martin Baulig  <martin@ximian.com>
16135
16136         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
16137         class for properties, fields and events.  Finally fixes #54945.
16138
16139 2004-03-10  Martin Baulig  <martin@ximian.com>
16140
16141         * metadata.c (mono_metadata_class_equal): New static function;
16142         checks whether two generic instances or two generic parameters are
16143         equal.
16144         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
16145         compare classes.        
16146
16147 2004-03-10  Martin Baulig  <martin@ximian.com>
16148
16149         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
16150
16151         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
16152         argument and write it into the `reflection_info' field.
16153
16154         * icall.c
16155         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
16156         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
16157
16158 2004-03-09  Jackson Harper  <jackson@ximian.com>
16159
16160         * char-conversions.h: use 8 bits for numeric data its all we need
16161         * icall.c: numeric data is only 8 bits now.
16162
16163 2004-03-09  Martin Baulig  <martin@ximian.com>
16164
16165         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
16166
16167         * class.c (init_properties, init_events): Initialize the new
16168         `parent' field.
16169
16170         * reflection.c (typebuilder_setup_properties): Likewise.
16171         (typebuilder_setup_events): Likewise.
16172
16173         * reflection.h (MonoEventInfo): Replaced `parent with
16174         `declaring_type' and `reflected_type'.
16175
16176         * icall.c (ves_icall_get_property_info): Distinguish between
16177         declaring and reflected type.
16178         (ves_icall_get_event_info): Likewise.
16179
16180 2004-03-09  Martin Baulig  <martin@ximian.com>
16181
16182         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
16183         (ves_icall_Type_GetField): Correctly set field->klass.
16184
16185 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
16186
16187         * loader.h: Fix warning.
16188
16189 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
16190
16191         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
16192         library routine if present.  Notice that it will still continue
16193         executing even if its missing, for those working on the Gtk#
16194         edition of Windows.Forms.
16195
16196         * assembly.c (do_mono_assembly_open): If loading the
16197         System.Windows.Forms call mono_loader_wini_init.
16198
16199 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
16200
16201         * class.h: Added MonoRemoteClass struct.
16202         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
16203         function for MonoStrings.
16204         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
16205         Added internal call for getting the proxy type.
16206         * marshal.c: Get the type of transparent proxies from its remote_class.
16207         Added methods that generate the IL for type checks and casts:
16208         mono_marshal_get_isinst, mono_marshal_get_castclass, 
16209         mono_marshal_get_proxy_cancast.
16210         * marshal.h: Declaration of the previous new methods.
16211         * object.c: Added new moethods for creating and updating MonoRemoteClass
16212         instances: mono_remote_class, mono_upgrade_remote_class, 
16213         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
16214         * verify.c: FIx transparent_proxy_fields layout.
16215         * appdomain.c: Bump corlib version.
16216
16217 2004-03-04  Jackson Harper  <jackson@ximian.com>
16218
16219         * icall.c: Add icall to access char conversion tables.
16220         * char-conversions.h: Character conversion tables.
16221         * Makefile.am: Add char-conversions.h private header file.
16222         
16223 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
16224
16225         * appdomain.c (unload_thread_main): Increase unloading timeout to
16226         10 sec as a temporary workaround for Nant problems.
16227
16228 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
16229
16230         * gc.c: Add checks for GC_enable and GC_disable.
16231
16232         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
16233         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
16234         (bug #54988).
16235         
16236 2004-02-27  Martin Baulig  <martin@ximian.com>
16237
16238         * reflection.c (mono_reflection_bind_generic_parameters): Take a
16239         `MonoReflectionType *' instead of a `MonoType *'.
16240
16241 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
16242
16243         * gc.c (run_finalize): Avoid finalizing the object representing the
16244         finalizer thread.
16245         (finalizer_thread): Fix warning.
16246
16247 2004-02-25  Martin Baulig  <martin@ximian.com>
16248
16249         * class.c (_mono_class_get_instantiation_name): Added `int offset'
16250         argument for nested types.
16251         (mono_class_create_generic): Added support for nested generictypes.
16252
16253         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
16254         `GList *nested'.
16255
16256         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
16257
16258         * reflection.c (method_encode_signature): Increase the minimum
16259         value of `size' from 10 to 11.
16260         (mono_reflection_bind_generic_parameters): Take `int type_argc'
16261         and `MonoType **types' arguments instead of the `MonoArray
16262         *types'; added `MonoType *nested_in'.  Recursively instantiate
16263         nested classes. 
16264
16265 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
16266
16267         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
16268         stack_overflow_ex members which are used by exception handling.
16269
16270         * appdomain.c (mono_runtime_init): Initialize the new members.
16271
16272         * gc.c (mono_gc_enable): New helper function.
16273         * gc.c (mono_gc_disable): New helper function.
16274
16275 2004-02-23  Martin Baulig  <martin@ximian.com>
16276
16277         * icall.c: I must have been really stupid - make it actually work
16278         this time ;-)
16279
16280 2004-02-23  Martin Baulig  <martin@ximian.com>
16281
16282         * loader.c (method_from_memberref): Only inflate the method if
16283         it's in another klass.
16284
16285 2004-02-23  Martin Baulig  <martin@ximian.com>
16286
16287         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
16288         (mono_class_init): If we're a generic instance and an interface,
16289         compute `class->interface_id'; also create `class->interfaces'
16290         here and inflate them.
16291
16292         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
16293         `ginst->is_open'.
16294         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
16295
16296         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
16297
16298 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
16299
16300         * reflection.c (method_encode_code): Improved the error message
16301         generated by the exception.
16302
16303 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16304
16305         * icall.c: Martin did not do what he said in the ChangeLog for
16306         2004-02-18, but put back the changes for properties and events.
16307         Commenting those changes out again and adding comment to bug #54518.
16308         
16309         * process.c: removed warning.
16310
16311 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
16312
16313         * marshal.c (emit_struct_conv): Print an error message instead of
16314         asserting when a type does not have the StructLayout attribute.
16315
16316 2004-02-20  Martin Baulig  <martin@ximian.com>
16317
16318         * reflection.c (mono_type_get_object): Also use the cache for
16319         generic instances.
16320         (mono_reflection_bind_generic_parameters): Always compute
16321         `ginst->ifaces'.        
16322
16323 2004-02-20  Martin Baulig  <martin@ximian.com>
16324
16325         * class.h (MonoGenericMethod): Removed `klass'.
16326
16327         * class.c (mono_class_inflate_generic_method): Added `MonoClass
16328         *klass' argument.
16329
16330 2004-02-20  Martin Baulig  <martin@ximian.com>
16331
16332         * reflection.c (method_encode_methodspec): Actually use the
16333         uninflated signature for the memberref.
16334
16335 2004-02-20  Martin Baulig  <martin@ximian.com>
16336
16337         * class.h (MonoGenericMethod): Removed `declaring'.
16338
16339         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
16340         is NULL, compute it here.
16341
16342 2004-02-20  Martin Baulig  <martin@ximian.com>
16343
16344         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
16345
16346         * metadata.c (mono_metadata_generic_inst_hash): New method.
16347         (mono_metadata_generic_inst_equal): New method.
16348
16349         * reflection.c (mono_reflection_bind_generic_parameters): Use the
16350         `klass->image->generic_inst_cache' cache to avoid creating
16351         duplicate MonoGenericInst's.
16352
16353         * class.c (mono_class_inflate_generic_type): Use the cache.
16354
16355 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
16356
16357         * object.c: fixed gc descriptor calculation for embedded valuetypes.
16358
16359 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16360
16361         * icall.c: added Socket.WSAIoctl icall.
16362
16363         * socket-io.[ch]: implemented
16364         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
16365
16366 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
16367
16368         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
16369
16370 2004-02-18  Urs C Muff  <umuff@quark.com>
16371
16372         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
16373         this work on PPC and other big-endian architectures.
16374
16375         * debug-mono-symfile.h: Prepended the names of all the `guint32'
16376         fields with an underscore to make sure they're only accessed by
16377         the read32() macro.
16378
16379 2004-02-18  Martin Baulig  <martin@ximian.com>
16380
16381         * icall.c: Put the klass->refclass changes back for methods and
16382         fields, but not for properties and events.  We're currently not
16383         distinguishing between DeclaringType and ReflectedType for
16384         properties and events, that's what caused the regressions.
16385
16386 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16387
16388         * object.c:
16389         (mono_async_result_new): the handle can be NULL.
16390
16391         * threadpool.c: Use an event instead of a semaphore, don't initialize
16392         it until needed. This saves quite a few semaphores from being created
16393         when using the threadpool.
16394
16395 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
16396
16397         * object.c (mono_string_is_interned_lookup): Fix interning of long
16398         strings. Fixes #54473.
16399
16400         * domain.c (ldstr_equal): Optimize if the two strings are equal.
16401
16402         * icall.c: Revert the klass->refclass changes since they introduce
16403         regressions (bug #54518).
16404
16405 2004-02-18  Martin Baulig  <martin@ximian.com>
16406
16407         * class.c (mono_class_init): If we're a generic instance and don't
16408         come from a TypeBuilder, inflate our members here.
16409         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
16410         (mono_class_create_generic): New public method.
16411         (mono_class_initialize_generic): Removed.
16412         (get_instantiation_name): Renamed to
16413         _mono_class_get_instantiation_name() and made it public.
16414
16415 2004-02-18  Martin Baulig  <martin@ximian.com>
16416
16417         * class.c (mono_class_inflate_generic_type): Clear the new
16418         instance's `nginst->klass' when inflating a generic instance.
16419         (mono_class_is_subclass_of): Added (basic) support for generic
16420         instances.
16421
16422 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
16423
16424         * appdomain.h, domain.c: use a MonoCodeManager instead of a
16425         MonoMempool to hold compiled native code.
16426
16427 2004-02-17  Martin Baulig  <martin@ximian.com>
16428
16429         * class.h (MonoDynamicGenericInst): Added `count_properties' and
16430         `properties'.
16431
16432         * reflection.c (mono_reflection_generic_inst_initialize): Added
16433         `MonoArray *properties' argument.
16434
16435         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
16436
16437 2004-02-17  Martin Baulig  <martin@ximian.com>
16438
16439         * icall.c (ves_icall_Type_GetFields): Renamed to
16440         ves_icall_Type_GetFields_internal() and added a
16441         `MonoReflectionType *rtype' argument; pass it to
16442         mono_field_get_object() to set the field's "reflected" type.
16443         (ves_icall_Type_GetConstructors): Likewise.
16444         (ves_icall_Type_GetEvents): Likewise.
16445         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
16446         argument; pass it to mono_method_get_object() to set the method's
16447         "reflected" type.       
16448
16449 2004-02-17  Martin Baulig  <martin@ximian.com>
16450
16451         * class.h (MonoDynamicGenericInst): New type.
16452         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
16453
16454         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
16455         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
16456         (ves_icall_MonoGenericInst_GetFields): New interncall.
16457
16458         * class.c (mono_class_from_generic): Don't call
16459         mono_class_initialize_generic() if this is a dynamic instance;
16460         ie. it's being created from a TypeBuilder.
16461         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
16462         `class->byval_arg.type'.
16463
16464         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
16465         to `inflate_method' and made static.
16466         (mono_reflection_inflate_field): Removed.
16467         (mono_reflection_generic_inst_initialize): New public method.
16468
16469         * reflection.h (MonoReflectionGenericInst): Removed `methods',
16470         `ctors' and `fields'; added `initialized'.
16471
16472 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
16473
16474         * debug-helpers.c (mono_method_full_name): Fix output for empty
16475         namespaces.
16476
16477 2004-02-12  Martin Baulig  <martin@ximian.com>
16478
16479         * class.h (MonoClassField): Added `MonoType *generic_type'.
16480
16481         * reflection.c (mono_image_get_fieldref_token): Added support for
16482         instantiated generic types.
16483         (field_encode_inflated_field): Removed.
16484         (mono_image_get_inflated_field_token): Removed.
16485         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
16486
16487         * reflection.h (MonoReflectionInflatedField): Removed.
16488
16489 2004-02-12  Martin Baulig  <martin@ximian.com>
16490
16491         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
16492         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
16493
16494         * reflection.c (mono_image_get_methodspec_token): Take a
16495         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
16496         (mono_image_create_token): Check whether we have a
16497         `method->signature->gen_method' and call
16498         mono_image_get_methodspec_token() if appropriate.
16499         (inflated_method_get_object): Removed.
16500         (mono_reflection_bind_generic_method_parameters): Return a
16501         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
16502         (mono_reflection_inflate_method_or_ctor): Likewise.
16503
16504         * reflection.h (MonoReflectionInflatedMethod): Removed.
16505
16506 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
16507
16508         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
16509         for custom valuetype marshalling.
16510
16511         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
16512
16513 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16514
16515         * icall.c: fixed WSAGetLastError_internal name.
16516
16517 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
16518
16519         * threads.c (mono_thread_attach): Allow this to be called multiple
16520         times for a thread.
16521         
16522         * threads.c (build_wait_tids): Do not wait for ourselves.
16523
16524         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
16525         appdomain list is empty.
16526
16527         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
16528         memory returned by mono_string_builder_to_utf16, since it points into
16529         managed memory. Thanks to Bernie Solomon for noticing this.
16530
16531         * icall.c: Add AppDomainSetup icalls.
16532
16533         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
16534
16535         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
16536         types.
16537
16538         * reflection.c (reflection_methodbuilder_to_mono_method): Save
16539         custom attributes to the method_aux struct. Also fix array indexes etc.
16540
16541         * loader.c (mono_method_get_param_names): Make dynamic case work again.
16542         
16543 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
16544
16545         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
16546         (both static and runtime) and reduce startup time.
16547
16548 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
16549
16550         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
16551         AsAny marshalling conversion instead of crashing.
16552
16553         * marshal.c: Fix warnings.
16554
16555 2004-02-09  Martin Baulig  <martin@ximian.com>
16556
16557         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
16558
16559         * reflection.h (MonoReflectionInflatedMethod): Removed the
16560         `declaring' field, it's now in the unmanaged MonoGenericMethod.
16561
16562         * reflection.c (method_encode_methodspec): Removed the `method'
16563         argument; we get it from `gmethod->declaring'.
16564         (inflated_method_get_object): Removed the `declaring' argument.
16565
16566 2004-02-09  Martin Baulig  <martin@ximian.com>
16567
16568         * class.h (MonoGenericMethod): New type.
16569         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
16570         `generic_method'.
16571
16572         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
16573         a `MonoGenericMethod *gen_method' one.
16574
16575         * class.c (mono_class_inflate_generic_type): Take an additional
16576         `MonoGenericMethod * argument.  This is only non-NULL if we're
16577         inflating types for a generic method.   
16578         (mono_class_inflate_generic_signature): Renamed to
16579         inflate_generic_signature() and made static; take a
16580         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16581         (inflate_generic_header): Take a `MonoGenericMethod *' argument
16582         instead of a `MonoGenericInst *' one.
16583         (mono_class_inflate_generic_method): Likewise.
16584
16585         * reflection.c (encode_generic_method_sig): Take a
16586         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16587         (method_encode_methodspec): Likewise.
16588         (inflated_method_get_object): Likewise. 
16589
16590         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
16591         field with a `MonoGenericMethod *gmethod' one.  
16592
16593 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
16594
16595         * class.h (mono_class_has_parent): add parens to expansion
16596         so you can ! this.
16597
16598 2004-02-08  Martin Baulig  <martin@ximian.com>
16599
16600         * image.h (MonoImage): Removed `generics_cache'.
16601
16602         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
16603         instead of a `MonoType *' argument; removed the `inflate_methods'
16604         argument.  Don't inflate methods here.
16605
16606         * loader.c (find_method): If it's a generic instance, call
16607         mono_class_init() on the `sclass->generic_inst->generic_type'.
16608
16609         * metadata.c (mono_type_size): Make this work on uninitialized
16610         generic instances; call it on the `ginst->generic_type's class.
16611
16612         * reflection.c (mono_reflection_bind_generic_parameters): Call
16613         mono_class_from_generic() to create the `ginst->klass'.
16614
16615 2004-02-08  Martin Baulig  <martin@ximian.com>
16616
16617         * class.h (MonoClass): Changed type of `generic_inst' from
16618         `MonoType *' to `MonoGenericInst *'.
16619
16620 2004-02-08  Martin Baulig  <martin@ximian.com>
16621
16622         * icall.c (ves_icall_Type_BindGenericParameters): Just call
16623         mono_type_get_object(), this is now creating a `MonoGenericInst'
16624         for MONO_TYPE_GENERICINST.
16625         (ves_icall_MonoGenericInst_GetParentType): Likewise.
16626         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
16627
16628         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
16629         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
16630         (inflated_method_get_object): Added `MonoClass *refclass' argument.
16631         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
16632         and reflected type.
16633
16634         * reflection.h (MonoReflectionInflatedMethod): Removed
16635         `declaring_type' and `reflected_type'.
16636
16637 2004-02-08  Martin Baulig  <martin@ximian.com>
16638
16639         * class.h (MonoGenericInst): Added `MonoType *parent' and
16640         `MonoType **ifaces'.
16641
16642         * reflection.h (MonoReflectionGenericInst): Removed `klass',
16643         `parent' and `interfaces'.
16644
16645         * reflection.c (mono_reflection_bind_generic_parameters): Take a
16646         `MonoType *' argument and return a `MonoType *'.
16647
16648         * icall.c
16649         (ves_icall_MonoGenericInst_GetParentType): New interncall.
16650         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
16651
16652 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
16653
16654         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
16655         valuetype marshalling.
16656
16657 2004-02-06  Martin Baulig  <martin@ximian.com>
16658
16659         * class.c
16660         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
16661         (my_mono_class_from_generic_parameter): Likewise.
16662
16663 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
16664
16665         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
16666         contents of the symbol files lazily.
16667
16668         * object.h (MonoThread): Add 'name' and 'name_len' fields.
16669
16670         * threads.h threads.c icall.c: New icalls for getting and setting the
16671         threads name.
16672
16673 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
16674
16675         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
16676         Raise an exception when the domain is not found.
16677
16678 2004-02-03  Martin Baulig  <martin@ximian.com>
16679
16680         * reflection.c (mono_image_get_methodspec_token): Use the
16681         uninflated signature; fixes gen-33.
16682
16683 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
16684
16685         * gc.c threads.c: Make the finalizer thread a normal managed thread so
16686         the finalizer code can use thread functionality.
16687
16688         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
16689         the finalizer thread.
16690
16691         * threads.c: Make some functions more robust.
16692
16693         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
16694
16695         * metadata.h: Add new marshalling conventions.
16696
16697         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
16698         stringbuilder marshalling. Fixes #53700.
16699
16700         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
16701
16702         * reflection.c (mono_image_get_type_info): Save declarative security
16703         info.
16704
16705         * reflection.c (mono_image_get_field_info): Handle uninitialized 
16706         unmanaged fields as well.
16707
16708         * appdomain.c: Bump corlib version.
16709
16710 2004-02-01  Martin Baulig  <martin@ximian.com>
16711
16712         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
16713         method type arguments.  
16714
16715 2004-01-30  Duncan Mak  <duncan@ximian.com>
16716
16717         * marshal.h: Add prototype for
16718         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
16719         and
16720         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
16721         fix the build.
16722
16723 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
16724
16725         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
16726         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
16727
16728 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
16729
16730         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16731         custom marshalling of valuetypes.
16732
16733         * marshal.c: Fix some warnings.
16734
16735 2004-01-29  Martin Baulig  <martin@ximian.com>
16736
16737         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
16738         for generic method parameters.
16739
16740         * reflection.c (method_encode_methodspec): Write the uninflated
16741         signature into the methodspec table.
16742         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
16743         is always the uninflated method.
16744         (reflection_methodbuilder_to_mono_method): Copy the generic
16745         parameters from the MethodBuilder into `header->gen_params'.
16746
16747 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
16748
16749         * class.c (mono_class_from_generic_parameter): Fix warning.
16750
16751 2004-01-27  Martin Baulig  <martin@ximian.com>
16752
16753         * class.c (mono_class_from_generic_parameter): Don't create
16754         `klass->methods' here.  
16755
16756 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
16757
16758         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
16759         extension since it does not work with libraries named lib<FOO>.dll.so.
16760
16761 2004-01-25  Martin Baulig  <martin@ximian.com>
16762
16763         * class.c (mono_class_inflate_generic_type): Added support for
16764         MONO_TYPE_GENERICINST.
16765
16766         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
16767         inflate methods on open constructed types.      
16768
16769 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16770
16771         * object.c: fire ProcessExit event in the root AppDomain after running
16772         Main. Fixes bug #53299.
16773
16774 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
16775
16776         * socket-io.c: include the new socket-wrappers.h header.
16777         Use the wrappers instead of the unix socket functions to make the code
16778         more clear.
16779
16780 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
16781
16782         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
16783
16784         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16785         Fixes #22532.
16786
16787 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
16788
16789         * reflection.c (mono_image_create_pefile): Handle the case when the
16790         entry point is not a MethodBuilder.
16791
16792         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16793         field to ReflectionMethod since it is not allways a builder.
16794
16795         * reflection.c (type_get_fully_qualified_name): New helper function to
16796         return the fully qualified name of a type.
16797
16798         * reflection.c (encode_marshal_blob): Always emit the fully qualified
16799         type name for custom marshallers.
16800
16801         * reflection.c (mono_marshal_spec_from_builder): Ditto.
16802
16803         * class.c (mono_class_setup_vtable): If a parent class already 
16804         implements an interface, use the implementing methods from that class.
16805         Fixes #53148.
16806
16807 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16808
16809         * threadpool.c: just return instead of ExitThread to allow for thread
16810         clean up earlier.
16811
16812 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
16813
16814         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
16815         when closing resource modules.
16816
16817         * reflection.c (mono_image_create_pefile): Handle the case when the
16818         entry point is not a MethodBuilder.
16819
16820         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16821         field to ReflectionMethod since it is not allways a builder.
16822
16823 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
16824
16825         * marshal.c (mono_marshal_get_managed_wrapper): 
16826         mono_marshal_alloc takes native int so CONV_I
16827         the arg for 64bits.
16828
16829 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
16830
16831         * reflection.c (fixup_cattrs): New function to fixup the methoddef
16832         tokens in the cattr table. Fixes #53108.
16833
16834 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16835
16836         * loader.c: don't trim ".dll" before looking up in the config file.
16837         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
16838
16839 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
16840
16841         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
16842         Return the module which contains the resource as well.
16843         (ves_icall_System_Reflection_Module_Close): New icall.
16844
16845         * appdomain.c: Bump corlib version number.
16846
16847         * image.c (mono_image_addref): New public function.
16848
16849         * assembly.c: Call mono_image_addref.
16850
16851         * reflection.c (mono_module_get_object): Increase reference count of 
16852         the image.
16853
16854         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16855         Fixes #22532.
16856
16857         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
16858         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
16859         proper exceptions on DllImport problems.
16860
16861 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
16862
16863         * class.c, metadata.c: eliminate CSIZE macro.
16864
16865 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
16866
16867         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
16868         * object.h: Added async_callback field in MonoAsyncResult.
16869         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
16870         * verify.c: Added async_callback in MonoAsyncResult layout.
16871
16872 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
16873
16874         * reflection.c (mono_reflection_get_custom_attrs): Add support
16875         for Modules.
16876
16877 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
16878
16879         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
16880         marshalling.
16881         (mono_marshal_method_from_wrapper): Add null pointer check.
16882
16883 2004-01-16  Martin Baulig  <martin@ximian.com>
16884
16885         * debug-mono-symfile.h: Set version number to 36 and reflect
16886         latest symbol writer changes.
16887
16888 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
16889
16890         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
16891         multi-dimensional arrays.
16892         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
16893         (mono_class_from_mono_type): Use bounded_array_class_get.
16894         
16895         * class.c (mono_bounded_array_class_get): New function which takes
16896         a 'bounded' bool argument to distinguish vectors from one dimensional
16897         arrays.
16898
16899         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
16900         bounded_array_class_get if the array has bounds.
16901
16902         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
16903         Search modules loaded using AssemblyBuilder:AddModule as well.
16904
16905 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16906
16907         * appdomain.c: increased corlib version.
16908         * filewatcher.c: removed g_print.
16909         * icall.c:
16910         (get_property_info): only allocate what is actually requested.
16911         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
16912
16913 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16914
16915         * Makefile.am: added filewatcher.[ch]
16916         * filewatcher.[ch]: FileSystemWatcher runtime support.
16917         * icall.c: added new FSW icalls.
16918
16919 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
16920
16921         * string-icalls.c: fix stringbuilder regression as suggested by
16922         Iain McCoy <iain@mccoy.id.au>.
16923
16924 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
16925
16926         * process.c (process_read_stringtable_block): Recognize '007f' as
16927         a language neutral stringtable block.
16928
16929 2004-01-12  Patrik Torstensson
16930
16931         * object.h (MonoStringBuilder) : Changed layout to support our
16932         new stringbuilder class.
16933         * marshal.c: Change marshalling to support the new layout of 
16934         string builder.
16935         * appdomain.c: increased version number because new layout of
16936         string builder.
16937
16938 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
16939
16940         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
16941         assembly name as an string instead of an AssemblyName, since it is
16942         easier to extract info from it.
16943
16944         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
16945         the culture subdirectories too. Fixes #52231.
16946
16947 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16948
16949         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
16950         It takes 2 new parameters with an optional name for the method to look
16951         for and case ignoring info.
16952
16953         * threadpool.c: removed unused variable.
16954
16955 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16956
16957         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
16958         It takes 2 new parameters with an optional name for the property to look
16959         for and case ignoring info.
16960         Fixes bug #52753.
16961
16962 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
16963
16964         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
16965         Fix #52451.
16966
16967 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16968
16969         * appdomain.c:
16970         * assembly.c: escape the uri before passing it to g_filename_from_uri.
16971         Fixes bug #52630.
16972
16973 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
16974
16975         * reflection.c: Add support for more than one unmanaged resource.
16976
16977         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
16978         in field->def_value, as done in all other cases.
16979
16980         * reflection.c (mono_reflection_get_custom_attrs): Add support for
16981         TypeBuilders.
16982
16983         * reflection.c (mono_reflection_create_runtime_class): Remove 
16984         errorneous assignment to klass->element_class, since it is already
16985         done in mono_reflection_setup_internal_class.
16986
16987 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16988
16989         * gc.c: added missing LeaveCriticalSection.
16990         * icall.c: indented a couple of lines.
16991         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
16992         if we call EndInvoke inside a callback. Fixes bug #52601.
16993
16994 2004-01-07  Martin Baulig  <martin@ximian.com>
16995
16996         * mono-debug-debugger.h
16997         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
16998
16999 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
17000
17001         * appdomain.c: Use messages in NotImplementedException.
17002
17003         * exception.c (mono_get_exception_not_implemented): Now this takes
17004         a message argument.
17005
17006         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
17007         exception instead of g_asserting an aborting when something is not
17008         implemented.
17009
17010         Add some inline docs.
17011
17012 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
17013
17014         * reflection.h: Update after changes to object layout.
17015
17016         * reflection.c: Implement saving of unmanaged aka win32 resources.
17017
17018         * appdomain.c: Bump version number.
17019
17020         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
17021         Handle missing domains gracefully.
17022
17023 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
17024
17025         * file-io.c : On Windows, there are much more invalid_path_chars.
17026
17027 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
17028
17029         * class.h, object.c: prepare for GetType () speedup.
17030
17031 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
17032
17033         * profiler.c: workaround for --profile null reference exception on
17034           cygwin. Patch by Patrik Torstensson.
17035
17036 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
17037
17038         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
17039         make work for unaligned access.
17040
17041 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
17042
17043         * class.c: small cleanup (class->fields [i] -> field).
17044         * image.c: check address of metadata is valid.
17045
17046 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
17047
17048         * assembly.h assembly.c (mono_assembly_loaded): New public function to
17049         search the list of loaded assemblies.
17050
17051         * reflection.c (mono_reflection_type_from_name): Use 
17052         mono_assembly_loaded instead of mono_image_loaded.
17053
17054         * reflection.c: Fix warnings.
17055
17056 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
17057
17058         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
17059         is dynamic. This is needed since an assembly can contain both dynamic and
17060         non-dynamic images.
17061
17062         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
17063         assembly->dynamic.
17064
17065         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
17066
17067         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
17068         to store modules loaded using AddModule.
17069
17070         * reflection.c (mono_image_fill_file_table): Generalize this so it works
17071         on Modules.
17072
17073         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
17074
17075         * reflection.c (mono_image_fill_export_table_from_module): New function to
17076         fill out the EXPORTEDTYPES table from a module.
17077
17078         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
17079         into a separate function. Also handle loaded non-dynamic modules.
17080
17081         * reflection.c (mono_image_basic_init): Fix memory allocation.
17082
17083         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17084
17085         * assembly.c (mono_assembly_load_references): Make this public.
17086
17087 2003-12-19  Martin Baulig  <martin@ximian.com>
17088
17089         * class.c (mono_class_initialize_generic): Made this static, take
17090         a `MonoGenericInst *' instead of a `MonoClass *'.
17091         (mono_class_from_generic): Call mono_class_initialize_generic()
17092         unless we're already initialized or being called from
17093         do_mono_metadata_parse_generic_inst().
17094
17095         * class.h (MonoGenericInst): Added `initialized' and
17096         `init_pending' flags.
17097
17098         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
17099         `mono_class_init (gklass)' or mono_class_initialize_generic()
17100         here; set `generic_inst->init_pending' while parsing the
17101         `type_argv'.
17102
17103 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
17104
17105         * locales.c: include string.h for memxxx prototypes
17106
17107 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
17108
17109         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
17110         constructor when accessing literal fields.
17111
17112 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
17113
17114         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17115
17116         * reflection.c (assembly_add_resource_manifest): New function to fill
17117         the MANIFESTRESOURCE table.
17118
17119         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
17120
17121         * reflection.h: Update to changes in class layout.
17122
17123         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
17124         Reenable call to mono_runtime_is_shutting_down ().
17125
17126         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
17127         determine if the runtime is shutting down.
17128
17129 2003-12-16  Jackson Harper <jackson@ximian.com>
17130
17131         * icall.c: comment out call to mono_runtime_is_shutting_down to
17132         fix build.
17133         
17134 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
17135
17136         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
17137         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
17138
17139 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
17140
17141         * reflection.c: move definition of swap_with_size
17142         to before its first call
17143
17144 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
17145
17146         * appdomain.c (mono_runtime_is_shutting_down): New public function.
17147
17148         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
17149         icall.
17150
17151         * object.c: Fix warnings.
17152
17153         * icall.c (ves_icall_Type_Get...): Only consider inherited static
17154         members if FlattenHierarchy is set.
17155
17156         * reflection.c (mono_image_add_decl_security): New function to emit
17157         declarative security.
17158
17159         * reflection.h reflection.c: Add support for declarative security.
17160
17161         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17162         
17163 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
17164
17165         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17166         
17167         * appdomain.c verify.c: Moved corlib version checking into its own
17168         function in appdomain.c since it needs to create vtables etc.
17169
17170 2003-12-13  Patrik Torstensson <p@rxc.se>
17171
17172         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
17173         instead of unwrapped server.
17174
17175 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
17176
17177         * verify.c (check_corlib): Fix field index.
17178
17179 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
17180
17181         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
17182         GetGacPath icall.
17183
17184 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
17185
17186         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
17187         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
17188         cope with sizeof(size_t) != sizeof(guint32).
17189
17190 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17191
17192         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
17193         in case of failure.
17194
17195 2003-12-10  Mark Crichton <crichton@gimp.org>
17196
17197         * icall.c: removed the GetNonZeroBytes.  We now handle this case
17198         in managed code.
17199
17200         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
17201
17202 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
17203
17204         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
17205         marked as deleted.
17206
17207 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
17208
17209         * verify.c (check_corlib): Handle the case when the version field is 
17210         initialized by a static constructor.
17211
17212 2003-12-08  Patrik Torstensson  <p@rxc.se>
17213
17214     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
17215
17216 2003-12-08  Martin Baulig  <martin@ximian.com>
17217
17218         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
17219         a MonoReflectionGenericParameter, also take the parameter index
17220         and name as arguments.
17221         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
17222         (ves_icall_MonoGenericParam_initialize): New interncall.
17223         (ves_icall_Type_make_byref_type): New interncall.
17224
17225         * reflection.h (MonoReflectionGenericParam): Derive from
17226         MonoReflectionType, not just from MonoObject.  Added `refobj' and
17227         `index' fields.
17228
17229         * reflection.c (mono_reflection_define_generic_parameter): Create
17230         and return a new MonoReflectionGenericParam; don't initialize the
17231         constraints here.
17232         (mono_reflection_initialize_generic_parameter): New public method;
17233         initializes the constraints and creates the `param->pklass'.
17234
17235 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
17236
17237         * reflection.h reflection.c: Use the new fields 'num_types', 
17238         'num_fields' and 'num_methods' to track the number of types etc.
17239
17240         * verify.c (check_corlib): Check corlib version number.
17241
17242 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
17243
17244         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
17245         function works on all methods.
17246
17247 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
17248
17249         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
17250         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
17251         the custom_type_info flag of the transparent proxy.
17252         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
17253         objects that supports IRemotingTypeInfo.
17254         * object.h: Added custom_type_info field in transparent proxy.
17255
17256 2003-12-06  Martin Baulig  <martin@ximian.com>
17257
17258         * class.c (mono_class_create_from_generic): Removed.
17259         (mono_class_from_generic): Check `ginst->klass' before doing
17260         anything else.  This is important to fully support "recursive"
17261         generic types.
17262
17263         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
17264         empty `generic_inst->klass' before doing anything else.
17265
17266 2003-12-06  Dick Porter  <dick@ximian.com>
17267
17268         * verify.c: 
17269         * object.h:
17270         * icall.c:
17271         * locales.c: Use C structs to access class fields.  Don't do a
17272         conversion between MonoString and UChar because both are
17273         platform-endian UTF-16.  Compare now takes startindex and count
17274         parameters.  Add a char overload for IndexOf.  Speed up the
17275         invariant string IndexOf.
17276
17277 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
17278
17279         * Makefile.am (monosn_LDADD): Fix parallel build.
17280
17281 2003-12-04  Martin Baulig  <martin@ximian.com>
17282
17283         * icall.c
17284         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17285         (ves_icall_Type_make_array_type): New interncall.       
17286
17287 2003-12-04  Martin Baulig  <martin@ximian.com>
17288
17289         * locales.c: also change it in the !HAVE_ICU case.
17290
17291 2003-12-04  Dick Porter  <dick@ximian.com>
17292
17293         * icall.c:
17294         * locales.c: construct_compareinfo is now in CompareInfo, not
17295         CultureInfo.
17296
17297 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
17298
17299         * image.c (mono_image_load_file_for_image): Cache loaded images in the
17300         image->files array.
17301
17302         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
17303         table as well.
17304
17305         * assembly.c (mono_assembly_load_references): Only load references
17306         once.
17307
17308         * class.c (mono_class_from_name): Avoid linear search of the 
17309         EXPORTEDTYPE table.
17310
17311         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
17312
17313 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
17314
17315         * image.h (MonoImage): Add 'field_cache' field.
17316
17317         * loader.c (mono_field_from_token): Cache field lookups.
17318         
17319         * reflection.c (mono_module_get_object): Fix name property.
17320
17321         * icall.c (ves_icall_get_enum_info): Update after changes to 
17322         mono_metadata_get_constant_index ().
17323
17324         * icall.c: Get rid of get_type_info icall, use a separate icall for
17325         each type property to avoid needless memory allocations. Fixes #51514.
17326
17327         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
17328         to avoid needless binary searches.
17329
17330         * class.c (class_compute_field_layout): Move the initialization of
17331         field->def_value to mono_class_vtable ().
17332
17333         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
17334         non-corlib types.
17335
17336         * object.c (mono_object_allocate): Make it inline.
17337
17338         * object.c (mono_object_allocate_spec): Make it inline.
17339         
17340 2003-12-02  Dick Porter  <dick@ximian.com>
17341
17342         * locales.c (create_NumberFormat): NumberFormatInfo construction.
17343         Patch by Mohammad DAMT (mdamt@cdl2000.com).
17344
17345 2003-12-01  Dick Porter  <dick@ximian.com>
17346
17347         * threads.c: Fix signature and call in CreateMutex and
17348         CreateEvent.
17349
17350 2003-12-01  Dick Porter  <dick@ximian.com>
17351
17352         * icall.c: 
17353         * locales.c: Implement string compares and searching
17354
17355         * object.h: Add extra Thread field
17356
17357 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
17358
17359         * reflection.c (fixup_method): Add support for MonoCMethod.
17360
17361 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
17362
17363         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
17364
17365         * reflection.c (assembly_name_to_aname): Allow extra characters in
17366         assembly names. Fixes #51468.
17367
17368 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
17369
17370         * exception.c (mono_exception_from_name_domain): New helper function.
17371
17372         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
17373         exception object in the correct domain.
17374
17375         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
17376         formatting + make a copy a the input data.
17377
17378         * loader.c (mono_get_method_from_token): Methods which contain
17379         native code do not have entries in the ImplMap.
17380
17381         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
17382         Thanks to Gonzalo for spotting this.
17383         
17384         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
17385         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
17386
17387         * assembly.h (mono_assembly_load_from): Split the second part of 
17388         assembly loading into a new public function.
17389
17390         * exception.h (mono_get_exception_bad_image_format): New function.
17391
17392 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
17393
17394         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
17395         Enumerate all modules inside a dynamic assembly. Fixes #51293.
17396         
17397         * icall.c: Add new icall for creating dynamic methods.
17398
17399         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
17400
17401         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
17402
17403         * reflection.c (mono_reflection_create_dynamic_method): New icall to
17404         create a dynamic method.
17405
17406         * reflection.c (resolve_object): New helper function.
17407
17408         * reflection.c: Generalize ReflectionMethodBuilder and the functions
17409         which manipulate it so they can also work on dynamic methods.
17410
17411         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
17412         creating the MonoReflectionMethodAux structure if it is not needed.
17413         
17414         * reflection.h verify.c: Update after changes to object layout.
17415
17416         * reflection.c (method_builder_encode_signature): Fix compilation on
17417         gcc 2.95.x.
17418
17419 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
17420
17421         * appdomain.h: Added support for context static fields. Added static_data
17422           field to MonoAppContext and renamed thread_static_fields to a more
17423           generic special_static_fields in MonoAppDomain, since it can now contain
17424           context static fields.
17425         * domain.c: Updated hashtable name.
17426         * object.c: Replaced field_is_thread_static() for a more generic
17427           field_is_special_static() which also checks for context static attribute.
17428           In mono_class_vtable(), added support for static context fields.
17429         * threads.c: Changed methods that manage thread static fields to more
17430           generic methods so they can be reused both for thread and context static
17431           data.
17432         * threads.h: Declared some new methods.
17433
17434 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
17435
17436         * reflection.h: Update after changes to the managed types.
17437
17438         * reflection.c (encode_custom_modifiers): New helper function.
17439
17440         * reflection.c (method_encode_signature): Emit custom modifiers.
17441
17442         * reflection.c (field_encode_signature): Emit custom modifiers.
17443
17444 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
17445
17446         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
17447
17448         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
17449         implementation.
17450
17451         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
17452         icall.
17453
17454         * object.c (mono_field_get_value_object): New function.
17455
17456         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
17457         specific.
17458
17459 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
17460
17461         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
17462         return a preallocated out-of-memory exception instance.
17463
17464         * object.c (out_of_memory): Use the new function.
17465
17466         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
17467         flag is before the custom modifiers. Fixes #49802.
17468
17469 2003-11-16  Martin Baulig  <martin@ximian.com>
17470
17471         * class.c (mono_class_is_open_constructed_type): Implemented the
17472         MONO_TYPE_GENERICINST case.
17473
17474 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
17475
17476         * assembly.c (mono_assembly_fill_assembly_name): New function to
17477         fill out the MonoAssemblyName structure.
17478         (mono_assembly_open): Use the new function.
17479
17480         * icall.c (fill_reflection_assembly_name): New helper function.
17481
17482         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
17483         new function.
17484
17485         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
17486
17487 2003-11-15  Martin Baulig  <martin@ximian.com>
17488
17489         * class.c (mono_class_is_open_constructed_type): New public
17490         function; checks whether a type is an open constructed type,
17491         ie. whether it still contains type parameters.
17492         (mono_class_inflate_generic_type): If we're a type parameter and
17493         the inflated type is also a MONO_TYPE_(M)VAR, return the original
17494         type.
17495
17496         * class.h (MonoGenericInst): Added `guint32 is_open'.
17497
17498         * loader.c (method_from_methodspec): Check whether we're an open
17499         or closed constructed type and set `ginst->is_open'.
17500
17501         * reflection.c (mono_reflection_bind_generic_parameters): Check
17502         whether we're an open or closed constructed type and set
17503         `ginst->is_open'.
17504         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
17505         from open constructed types.
17506
17507 2003-11-15  Martin Baulig  <martin@ximian.com>
17508
17509         * reflection.c (mono_reflection_bind_generic_parameters): If we're
17510         a generic instance (instead of a generic type declaration) with
17511         unbound generic parameters, bind them to our actual types.
17512
17513 2003-11-14  Martin Baulig  <martin@ximian.com>
17514
17515         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
17516
17517         * reflection.c (mono_reflection_bind_generic_parameters): If we're
17518         an interface type, populate `res->interfaces' with instantiated
17519         versions of all the interfaces we inherit.
17520
17521 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
17522
17523         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
17524         when MONO_PATH is set but doesn't contain the install dir.
17525
17526 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17527
17528         * icall.c:
17529         (ves_icall_Type_GetInterfaces): don't return an interface twice when
17530         it's also implemented in base classes. Fixes bug #50927.
17531
17532 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
17533
17534         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
17535         if this method is called from a finalizer. Fixes #50913.
17536
17537 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
17538
17539         * threads.c: Implement VolatileRead/VolatileWrite
17540
17541         * icall.c: Add new icalls for VolatileRead/VolatileWrite
17542
17543 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17544
17545         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
17546         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
17547         2.95.3.
17548
17549         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
17550         from Peter Ross (pro@missioncriticalit.com).
17551         
17552 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
17553
17554         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
17555
17556 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17557
17558         * assembly.c (mono_assembly_load_references): Disable check because it
17559         triggers on older corlibs which lots of people have.
17560
17561 2003-11-12  Jackson Harper  <jackson@ximian.com>
17562
17563         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
17564         load corlib.dll if mscorlib.dll is not found.
17565         * assembly.h: Remove corlib name define.
17566         * class.c:
17567         * domain.c:
17568         * image.c: Change corlib name to mscorlib.
17569         
17570 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17571
17572         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
17573
17574 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
17575
17576         * appdomain.h: Added loader_optimization here to sync with the C#
17577         code, and add disallow_binding_redirects field.
17578
17579 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
17580
17581         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
17582
17583         * reflection.c (mono_image_build_metadata): Fix crash on modules
17584         with no types.
17585
17586         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
17587
17588         * icall.c (ves_icall_get_method_info): Return callingConvention as
17589         well.
17590
17591         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
17592         namespaces from the EXPORTEDTYPE table as well.
17593
17594         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
17595         from all modules inside the assembly.
17596         
17597 2003-11-11  Martin Baulig  <martin@ximian.com>
17598
17599         * reflection.c (mono_reflection_bind_generic_parameters): Make
17600         this work for interfaces.
17601
17602 2003-11-11  Martin Baulig  <martin@ximian.com>
17603
17604         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
17605
17606 2003-11-11  Martin Baulig  <martin@ximian.com>
17607
17608         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
17609         "MonoInflatedMethod" and "MonoInflatedCtor".
17610
17611 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
17612
17613         * reflection.c (resolution_scope_from_image): Use the assembly table
17614         from the manifest module, since other modules don't have it.
17615
17616         * debug-helpers.c (mono_type_full_name): New helper function.
17617
17618         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
17619
17620         * image.c (mono_image_load_file_for_image): New public function which
17621         is a replacement for the load_file_for_image in class.c.
17622
17623         * assembly.c (mono_assembly_load_module): A wrapper for the function
17624         above which does assembly association and reference loading too.
17625
17626         * class.c (mono_class_from_name): Call mono_assembly_load_module.
17627
17628 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17629
17630         * appdomain.c: not all of the attributes for the full assembly name
17631         are required and the order doesn't matter. Fixes bug #50787.
17632
17633 2003-11-10  Dick Porter  <dick@ximian.com>
17634
17635         * locales.c: Use platform-endian UTF16
17636
17637 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
17638
17639         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17640         
17641 2003-11-10  Martin Baulig  <martin@ximian.com>
17642
17643         * metadata.c
17644         (mono_metadata_load_generic_params): Make this actually work.
17645
17646         * reflection.c (mono_reflection_bind_generic_parameters): If our
17647         parent is a generic instance, pass all the `types' to it, no
17648         matter whether it has the same number of type parameters or not.
17649
17650 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
17651
17652         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17653
17654         * assembly.c (mono_assembly_load_references): Move the image<->assembly
17655         assignment code to this function so it gets called recursively for all
17656         modules.
17657
17658         * image.c (load_modules): Remove the assembly assignment since it is
17659         now done by mono_assembly_load_references.
17660         
17661         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
17662         Add 'module' argument.
17663         (mono_module_get_types): New helper function.
17664         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
17665
17666 2003-11-08  Martin Baulig  <martin@ximian.com>
17667
17668         * class.c (mono_class_inflate_generic_method): Interface method
17669         don't have a header.
17670
17671         * reflection.c (mono_image_get_methodspec_token): Take an
17672         additional `MonoGenericInst *' argument instead of reading it from
17673         the header; this is necessary to support interfaces.
17674         (mono_image_create_token): Pass the `MonoGenericInst *' from the
17675         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
17676         (inflated_method_get_object): Take an additional `MonoGenericInst *'
17677         argument.
17678
17679         * reflection.h (MonoReflectionInflatedMethod): Added
17680         `MonoGenericInst *ginst'.
17681
17682 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
17683
17684         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
17685
17686 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
17687
17688         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
17689
17690 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
17691
17692         * reflection.c 
17693         (reflection_methodbuilder_from_method_builder):
17694         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
17695         initialize a ReflectionMethodBuilder structure.
17696         (mono_image_get_methodbuilder_token):
17697         (mono_image_get_ctorbuilder_token): New functions to emit memberref
17698         tokens which point to types in another module inside the same assembly.
17699
17700         * reflection.c: Use the new helper functions.
17701         
17702         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
17703
17704         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
17705         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
17706
17707         * reflection.c (resolution_scope_from_image): Emit a moduleref if
17708         neccesary.
17709
17710         * reflection.c (mono_image_build_metadata): Emit metadata only for the
17711         current module. Emit the manifest only for the main module.
17712
17713         * reflection.c (mono_image_create_token): Add assertion when a 
17714         memberref needs to be created.
17715
17716         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
17717
17718         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
17719         larger buffer for the custom attribute blob. Fixes #50637.
17720         
17721 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17722
17723         * threadpool.c: notify listener on async processing handles after
17724         invoking the async callback. Thanks to Zoltan.
17725
17726 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17727
17728         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
17729         avoid code duplication.
17730
17731         * reflection.h (MonoDynamicImage): New type which is currently unused,
17732         but will be used through the ref.emit code in place of 
17733         MonoDynamicAssembly.
17734
17735         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17736         object layout.
17737
17738         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
17739         a MonoDynamicImage instead of just a MonoImage.
17740         
17741         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
17742         icalls to ModuleBuilder but keep their semantics, so they will work
17743         with moduleb->assemblyb. This will change later.
17744         
17745 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17746
17747         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17748         object layout.
17749
17750         * reflection.c (mono_image_build_metadata): Avoid creation of a default
17751         main module, since it is now done by the managed code.
17752
17753 2003-11-03  Martin Baulig  <martin@ximian.com>
17754
17755         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
17756         `ginst->klass' here.
17757         (method_encode_methodspec): Don't use the `ginst->generic_method's
17758         klass if it's a generic instance, use `ginst->klass' in this case.
17759
17760 2003-11-03  Martin Baulig  <martin@ximian.com>
17761
17762         * reflection.c (mono_image_get_generic_method_param_info):
17763         Removed, use mono_image_get_generic_param_info() instead.
17764         (mono_image_get_type_info): Write the GenericParam table before
17765         the Method table.  This is neccessary because in the GenericParam
17766         table, type parameters of the class (ie. '!0' etc.) must come
17767         before the ones from its generic methods (ie. '!!0' etc).
17768
17769 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17770
17771         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
17772
17773 2003-11-02  Martin Baulig  <martin@ximian.com>
17774
17775         * reflection.c (create_generic_typespec): Take a
17776         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
17777         the generic parameters from it.
17778
17779 2003-11-02  Martin Baulig  <martin@ximian.com>
17780
17781         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
17782         instead of a `MonoClassField *' since we just need the type.
17783         (create_generic_typespec): New static function.  Creates a
17784         TypeSpec token for a generic type declaration.
17785         (mono_image_get_generic_field_token): New static function.
17786         (mono_image_create_token): If we're a FieldBuilder in a generic
17787         type declaration, call mono_image_get_generic_field_token() to get
17788         the token.
17789
17790 2003-11-02  Martin Baulig  <martin@ximian.com>
17791
17792         * reflection.h
17793         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
17794         `MonoReflectionGenericInst *declaring_type' and
17795         `MonoReflectionGenericInst *reflected_type' fields.
17796
17797         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
17798         `MonoReflectionGenericInst *declaring_type' and a
17799         `MonoReflectionGenericInst *reflected_type' argument instead of a
17800         single `MonoReflectionGenericInst *type' one.  Set
17801         `res->declaring_type' and `res->reflected_type' from them.
17802         (mono_reflection_inflate_field): Likewise.      
17803
17804 2003-11-02  Martin Baulig  <martin@ximian.com>
17805
17806         * class.c (mono_class_setup_vtable): Don't store generic methods
17807         in the vtable.  
17808
17809 2003-11-02  Martin Baulig  <martin@ximian.com>
17810
17811         * reflection.h (MonoReflectionGenericInst): Added
17812         `MonoReflectionType *declaring_type'.
17813
17814         * reflection.c (mono_reflection_bind_generic_parameters): Use
17815         `if (tb->parent)' instead of `klass->parent'.
17816
17817 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
17818
17819         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
17820         with an empty ASSEMBLY table.
17821
17822         * reflection.c (mono_image_build_metadata): Avoid using the same loop
17823         variable in the inner and outer loops.
17824
17825 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
17826
17827         * metadata.h (mono_metadata_make_token): Put parentheses around macro
17828         argument.
17829
17830         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
17831         
17832         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
17833         icalls. Instead, do everything in managed code. This is needed since
17834         it is hard to restore the original domain etc. in unmanaged code in the
17835         presence of undeniable exceptions.
17836
17837         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
17838         New icalls to push and pop appdomain refs.
17839
17840 2003-10-31  Martin Baulig  <martin@ximian.com>
17841
17842         * class.c (inflate_generic_type): Renamed to
17843         mono_class_inflate_generic_type() and made it public.
17844
17845         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
17846         New interncall.
17847
17848         * loader.c (mono_field_from_memberref): Also set the retklass for
17849         typespecs.
17850
17851         * fielder.c (mono_image_get_inflated_field_token): New static
17852         method; creates a metadata token for an inflated field.
17853         (mono_image_create_token, fixup_method): Added support for
17854         "MonoInflatedField".
17855         (fieldbuilder_to_mono_class_field): New static function.
17856         (mono_reflection_inflate_field): New public function.
17857
17858         * reflection.h
17859         (MonoReflectionGenericInst): Added `MonoArray *fields'.
17860         (MonoReflectionInflatedField): New typedef.     
17861
17862 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
17863
17864         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
17865         for Solaris and other platforms without s6_addr16
17866
17867 2003-10-30  Martin Baulig  <martin@ximian.com>
17868
17869         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
17870         argument instead of two.
17871         (mono_class_inflate_generic_signature): Likewise.
17872         (inflate_generic_header): Likewise.
17873         (mono_class_inflate_generic_method): Likewise.  In addition, if
17874         `ginst->klass' is set, it becomes the new `method->klass'.
17875
17876         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
17877         field.
17878
17879         * reflection.c (encode_generic_method_sig): Write a 0xa as the
17880         first byte. [FIXME]
17881         (method_encode_methodspec): If we have generic parameters, create
17882         a MethodSpec instead of a MethodRef.
17883         (fixup_method): Added support for "MonoInflatedMethod" and
17884         "MonoInflatedCtor".
17885         (mono_image_create_token): Added support for "MonoInflatedMethod"
17886         and "MonoInflatedCtor".
17887         (inflated_method_get_object): New static function; returns a
17888         managed "System.Reflection.MonoInflatedMethod" object.
17889         (mono_reflection_bind_generic_method_parameters): Return a
17890         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
17891         (mono_reflection_inflate_method_or_ctor): Likewise.
17892         (mono_image_get_generic_method_param_info): Initialize unused
17893         fields to zero.
17894         (mono_image_get_generic_param_info): Likewise.
17895
17896         * reflection.h (MonoReflectionInflatedMethod): New public
17897         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
17898         "S.R.MonoInflatedCtor" classes.
17899
17900         * loader.c (method_from_memberref): If we're a TypeSpec and it
17901         resolves to a generic instance, inflate the method.
17902
17903 2003-10-28  Dick Porter  <dick@ximian.com>
17904
17905         * object.c (mono_runtime_run_main): Convert command-line arguments
17906         into utf8, falling back to the user's locale encoding to do so.
17907
17908 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
17909
17910         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
17911         at this time.
17912
17913         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
17914
17915         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
17916         up icalls at method definition time. Partially fixes #33569.
17917
17918 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
17919
17920         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
17921         marshalling of arrays. Fixes #50116.
17922
17923         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
17924
17925         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
17926         points to a vtable in the dying appdomain.
17927
17928         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
17929         listeners into unmanaged code inside the lock.
17930
17931         * object.c (mono_class_vtable): Turn off typed allocation in non-root
17932         domains and add some comments.
17933
17934 2003-10-25  Martin Baulig  <martin@ximian.com>
17935
17936         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
17937
17938         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
17939
17940         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
17941         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
17942         currently parsing.  Create the generic class and store it in
17943         `generic_inst->klass' before parsing the type arguments.  This is
17944         required to support "recursive" definitions; see mcs/tests/gen-23.cs
17945         for an example.
17946         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
17947         to support recursive typespec entries.
17948
17949         * class.c (mono_class_setup_parent): If our parent is a generic
17950         instance, we may get called before it has its name set.
17951         (mono_class_from_generic): Splitted into
17952         mono_class_create_from_generic() and mono_class_initialize_generic().
17953
17954 2003-10-25  Martin Baulig  <martin@ximian.com>
17955
17956         * icall.c (ves_icall_Type_BindGenericParameters): Return a
17957         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
17958         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
17959         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
17960
17961         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
17962         (create_typespec): Likewise.
17963         (mono_reflection_bind_generic_parameters): Return a
17964         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
17965         (mono_reflection_inflate_method_or_ctor): New public function.
17966
17967         * reflection.h (MonoReflectionGenericInst): New typedef.        
17968
17969 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
17970
17971         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
17972         inside the domain lock. Fixes #49993.
17973         
17974         * object.c (mono_class_vtable): When typed allocation is used, 
17975         allocate vtables in the GC heap instead of in the mempool, since the
17976         vtables contain GC descriptors which are used by the collector even
17977         after the domain owning the mempool is unloaded.
17978
17979         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
17980
17981         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
17982         reflect what it does. Also invalidate mempools instead of freeing
17983         them if a define is set.
17984
17985         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
17986         of the appdomain.
17987         
17988         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
17989         hold the finalizable objects in this domain.
17990
17991         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
17992         appdomain.
17993
17994         * appdomain.c (mono_domain_set): New function to set the current
17995         appdomain, but only if it is not being unloaded.
17996
17997         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
17998         appdomain which is being unloaded.
17999         
18000         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
18001         unloading of the root appdomain.
18002
18003         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
18004         icall to execute a method in another appdomain. Intended as a 
18005         replacement for InternalSetDomain, which can confuse the code 
18006         generation in the JIT.
18007
18008         * appdomain.c (mono_domain_is_unloading): New function to determine
18009         whenever an appdomain is unloading.
18010
18011         * appdomain.c (mono_domain_unload): New function to correctly unload
18012         an appdomain.
18013
18014         * assembly.c (mono_assembly_load_references): Check that an assembly
18015         does not references itself.
18016
18017         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
18018         domain manually, it asks the finalizer thread to do it, then waits for
18019         the result. Also added a timeout.
18020
18021         * icall.c: Register the new icalls.
18022
18023         * threads.h threads.c: Export the mono_gc_stop_world and 
18024         mono_gc_start_world functions.
18025         
18026         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
18027         function to fill out the mempool with 0x2a.
18028
18029 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
18030
18031         * reflection.h (MonoReflectionMethodAux): New structure to store
18032         information which is rarely used, thus is not in the MonoMethod
18033         structure.
18034
18035         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
18036         store the aux info.
18037
18038         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
18039         and marshalling info into the aux structure.
18040
18041         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
18042         from the aux structure.
18043
18044         * loader.c (mono_method_get_param_names): Retrieve the param names from
18045         the aux structure.
18046         
18047 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
18048
18049         * exception.h exception.c: Add AppDomainUnloadedException && fix 
18050         warning.
18051
18052 2003-10-21  Dick Porter  <dick@ximian.com>
18053
18054         * socket-io.c
18055         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
18056         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
18057
18058 2003-10-21  Martin Baulig  <martin@ximian.com>
18059
18060         * reflection.c (mono_reflection_bind_generic_parameters):
18061         `klass->parent' is NULL for interfaces.
18062
18063 2003-10-21  Martin Baulig  <martin@ximian.com>
18064
18065         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18066
18067 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
18068
18069         * exception.c (mono_exception_from_name_msg): New helper function for
18070         creating exceptions and initializing their message field.
18071
18072         * exception.c: Simplify functions using the new helper.
18073
18074         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
18075         New function.
18076
18077         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
18078         mono_raise_exception, since otherwise gcc doesn't generate the function
18079         epilog for raise_exception, confusing the stack unwinding in the JIT.
18080         Fixes #45043.
18081
18082         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
18083         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
18084         Fixes #49499.
18085
18086 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18087
18088         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
18089         utf8.
18090
18091 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
18092
18093         * icall.c: Removed GetUninitializedObject method because
18094           AllocateUninitializedClassInstance does the same.
18095
18096 2003-10-18  Martin Baulig  <martin@ximian.com>
18097
18098         * class.c (inflate_generic_signature): Renamed to
18099         mono_class_inflate_generic_signature() and made it public.
18100         (my_mono_class_from_generic_parameter): New static function; if we
18101         don't already have the generic parameter's MonoClass, create a
18102         very simple one which is just used internally in the runtime and
18103         not passed back to managed code.
18104
18105         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
18106
18107         * metadata.h (MonoMethodSignature): Moved the
18108         `MonoGenericParam *gen_params' to the MonoMethodHeader.
18109         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
18110
18111         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
18112         ves_icall_MonoMethod_GetGenericArguments(); this is now an
18113         interncall on the MonoMethod class, not on MethodInfo.
18114         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
18115         calling mono_reflection_bind_generic_method_parameters() directly.
18116
18117         * loader.c (mono_method_get_signature): If this is a MethodSpec;
18118         return the already computed `method->signature'.
18119         (method_from_methodspec): New static function to load a method
18120         from a MethodSpec entry.
18121         (mono_get_method_from_token): Call the new method_from_methodspec()
18122         for MethodSpec tokens.  
18123         (mono_get_method_from_token): If we're a generic method, load the
18124         type parameters.
18125
18126         * reflection.c (mono_image_get_memberref_token): Allow
18127         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
18128         table.
18129         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
18130         (mono_image_create_token): First check whether it's a generic
18131         method (so we'd need to create a MethodSpec), then do the other
18132         two alternatives.
18133         (mono_reflection_bind_generic_method_parameters): Return a
18134         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
18135         called directly from the interncall.
18136
18137 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
18138
18139         * reflection.c (load_public_key): Move loading of the public key
18140         into managed code.
18141
18142         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
18143
18144         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
18145         fields.
18146
18147         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
18148         culture, hash_alg and public_key. Fixes #49555.
18149
18150 2003-10-17  Martin Baulig  <martin@ximian.com>
18151
18152         * class.h (MonoGenericInst): Moved this declaration here and added
18153         `MonoMethod *generic_method'.
18154
18155         * icall.c
18156         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
18157         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
18158
18159         * metadata.c (mono_metadata_type_equal): Two types of
18160         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
18161         index; ie. don't compare the address of the `MonoGenericParam'
18162         structure.
18163         (mono_metadata_load_generic_params): Removed the `MonoMethod
18164         *method' argument.
18165
18166         * metadata.h (MonoGenericInst): Moved declaration to class.h.
18167         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
18168
18169         * reflection.c (method_encode_signature): Encode the number of
18170         generic parameters.
18171         (encode_generic_method_sig): New static function.
18172         (method_encode_methodspec): New static function; creates an entry
18173         in the MethodSpec table for a generic method.
18174         (mono_image_get_methodspec_token): New static function.
18175         (mono_image_create_token): Call mono_image_get_methodspec_token()
18176         for generic methods.
18177         (mono_reflection_bind_generic_method_parameters): New public
18178         function.  Instantiates a generic method.
18179
18180 2003-10-16  Martin Baulig  <martin@ximian.com>
18181
18182         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
18183         *gen_params' here from MonoMethodHeader.
18184
18185         * metadata.c (mono_metadata_parse_method_signature): If we have
18186         generic parameters, initialize `method->gen_params' and then set
18187         the correct `type->data.generic_param' in all the parameters.
18188
18189 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
18190
18191         * threads.c (mono_threads_get_default_stacksize): New function to 
18192         return the default stacksize.
18193
18194         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
18195         termination of the finalizer thread, since the previous method had
18196         race conditions. Fixes #49628.
18197
18198         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
18199         as for the other managed threads.
18200
18201 2003-10-16  Martin Baulig  <martin@ximian.com>
18202
18203         * class.c (inflate_generic_signature): Copy `generic_param_count'
18204         and `gen_params'.
18205
18206         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
18207         New interncall.
18208
18209         * metadata.c (mono_metadata_parse_method_signature): Actually set
18210         the `method->generic_param_count' here.
18211         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
18212
18213 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
18214
18215         * object.h: Add a new field to TypedRef to simplify the implementation
18216         of the REFANY opcodes in the JIT.
18217
18218         * icall.c: Make use of the new field.
18219
18220         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
18221         dynamically.
18222
18223 2003-10-15  Martin Baulig  <martin@ximian.com>
18224
18225         * class.c (mono_class_from_gen_param): Renamed to
18226         mono_class_from_generic_parameter() and moved most of the
18227         functionality from mono_reflection_define_generic_parameter()
18228         here; ie. we create a "real" class here.
18229         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
18230         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
18231         previously been called.
18232
18233         * class.h (MonoGenericParam): Moved the declaration of this struct
18234         here from metadata.h and added `MonoMethod *method'.
18235
18236         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
18237         interncall.
18238
18239         * loader.c (mono_get_method_from_token): If we have any generic
18240         parameters, call mono_metadata_load_generic_params() to read them
18241         from the MONO_TABLE_GENERICPAR.
18242
18243         * metadata.c (mono_metadata_load_generic_params): Added
18244         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
18245
18246         * metadata.h (MonoMethodSignature): Replaced
18247         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
18248         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
18249
18250         * reflection.c (mono_reflection_define_generic_parameter): Moved
18251         most of the functionality into the new
18252         mono_class_from_generic_parameter(); set the `method' field if
18253         we're a method parameter.       
18254
18255 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
18256
18257         * marshal.c (emit_struct_conv): if native size is 0
18258         emit no code.
18259
18260 2003-10-14  Martin Baulig  <martin@ximian.com>
18261
18262         * icall.c: The generics API has changed in the spec since it was
18263         added to System.Type; these modifications make it match the spec
18264         again.
18265         (ves_icall_Type_GetGenericParameters): Renamed to
18266         `ves_icall_Type_GetGenericArguments'.
18267         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
18268         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
18269         `ves_icall_MonoType_get_HasGenericArguments'.
18270         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
18271         `ves_icall_MonoType_get_IsGenericParameter'.
18272         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
18273         this is no interncall anymore.
18274         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
18275         `ves_icall_TypeBuilder_get_IsGenericParameter'.
18276
18277 2003-10-14  Martin Baulig  <martin@ximian.com>
18278
18279         * reflection.c (mono_reflection_bind_generic_parameters): Also
18280         inflate generic methods if we're reading the class from IL.
18281
18282 2003-10-13  Martin Baulig  <martin@ximian.com>
18283
18284         * reflection.c (mono_reflection_define_generic_parameter): This
18285         method isn't called directly from the icall anymore; take a
18286         `MonoReflectionAssemblyBuilder *' so we can use this for type and
18287         method generic parameters.
18288         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
18289         (method_builder_encode_signature): Encode generic parameters.
18290         (mono_image_get_method_info): Write generic params to the
18291         MONO_TABLE_GENERICPARAM table.
18292
18293         * reflection.h (MonoReflectionMethodBuilder): Added
18294         `MonoArray *generic_params'.
18295
18296         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
18297
18298         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
18299         wrapper for mono_reflection_define_generic_parameter().
18300         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
18301
18302 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
18303
18304         * marshal.h: Add missing function to fix build.
18305
18306         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
18307         the SetLastError pinvoke attribute.
18308
18309         * marshal.c (mono_marshal_set_last_error): New helper function called
18310         by the generated code.
18311         
18312         * marshal.c (mono_mb_emit_branch): New helper function.
18313
18314         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
18315
18316         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
18317         classes as parameters and return values of delegates. Fixes #29256. 
18318
18319 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
18320
18321         * locales.c: use gint32 in non HAVE_ICU case
18322
18323 2003-10-11  Martin Baulig  <martin@ximian.com>
18324
18325         * mono-debug.c (mono_debug_add_method): Added a workaround for
18326         bug #48591.
18327
18328 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
18329
18330         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
18331         delegates passed to native code must use the STDCALL calling 
18332         convention. Fixes #35987.
18333
18334 2003-10-10  Martin Baulig  <martin@ximian.com>
18335
18336         * class.c (inflate_generic_type): If we're inflating for a generic
18337         type instance (and not for a generic method), return
18338         MONO_TYPE_MVAR unchanged.
18339
18340 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18341
18342         * string-icalls.c: Join ignores null strings in the source array.
18343         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
18344         * threads.c: GetAvailableTheads is slightly more accurate.
18345
18346 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
18347
18348         * threads.h threads.c : add mono_threads_set_default_stacksize
18349         and pass default to CreateThread calls.
18350
18351 2003-10-09  Dick Porter  <dick@ximian.com>
18352
18353         * icall.c:
18354         * locales.h:
18355         * locales.c: Internal calls for constructing CultureInfo and
18356         related objects from libicu (if its available.)
18357
18358 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
18359
18360         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
18361
18362 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18363
18364         * threadpool.c: added an argument to async_invoke_thread that is the
18365         item to process, pass the MonoAsyncResult to the thread start function
18366         when creating a new thread. This way we don't need to acquire any lock
18367         when we're creating a new thread. Readded a semaphore for faster
18368         response times (instead of that Sleep i added).
18369
18370 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
18371
18372         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
18373         get daylight change dates better on Windows, fix handling
18374         of platforms without tm_gmtoff.
18375
18376 2003-10-06  Martin Baulig  <martin@ximian.com>
18377
18378         * class.c (inflate_generic_method): Renamed to
18379         mono_class_inflate_generic_method() and made public.
18380         (mono_class_init): Don't inflate the generic methods here.
18381         (mono_class_from_generic): Added `gboolean inflate_methods'
18382         argument.  Inflate the methods here.
18383
18384         * loader.c (mono_method_get_param_names): Ignore instances of
18385         generic types for the moment.
18386
18387         * reflection.c (fixup_method): Added support for inflated methods.
18388         (mono_image_create_token): Use mono_image_get_methodref_token()
18389         for inflated methods.
18390         (mono_custom_attrs_from_param): Ignore instances of generic types
18391         for the moment.
18392         (mono_reflection_bind_generic_parameters): New public function.
18393         Moved all the functionality from
18394         ves_icall_Type_BindGenericParameters() here and added support for
18395         dynamic types.
18396         (mono_reflection_define_generic_parameter): Initialize
18397         `klass->methods' here.
18398
18399         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
18400         functionality into mono_reflection_define_generic_parameter().
18401         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
18402         TypeBuilder, return that TypeBuilder.
18403
18404 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18405
18406         * appdomain.c: removed mono_delegate_semaphore.
18407
18408         * threadpool.c:
18409         (mono_thread_pool_add): moved hash table creation inside and the thread 
18410         creation outside of the critical region.
18411         (mono_thread_pool_finish): removed obsolete code.
18412         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
18413         continue or exit the thread depending on the queue.
18414
18415 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
18416
18417         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
18418         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
18419         handle more bool marshalling options
18420
18421 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
18422
18423         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
18424         arrays of structs. Also add a more descriptive error message when
18425         a structure member is marshalled as LPArray.
18426
18427 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
18428
18429         * marshal.c (mono_marshal_get_native_wrapper): Add support for
18430         marshalling arrays of complex types. Fixes #29098. Also remove an
18431         usused and incomplete function.
18432
18433 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
18434
18435         * gc.c: report heap_size - free_bytes as total memory allocated
18436         (bug#49362).
18437
18438 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
18439
18440         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
18441         fix timezone handling problems on Windows.
18442         
18443         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
18444         asserts when the year is outside the range handled by ms the functions.
18445
18446         * class.c (setup_interface_offsets): If the class is an interface,
18447         fill out its interface_offsets slot.
18448
18449 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18450
18451         * threadpool.c: mark threadpool threads as background.
18452
18453 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
18454
18455         * decimal.c - define DECINLINE to nothing if not using GCC
18456
18457 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
18458
18459         * assembly.c: More refcount fixes.
18460
18461 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18462
18463         * string-icalls.c: if we're not trimming, return the same string.
18464         When not splitting, don't create a new string.
18465
18466 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18467
18468         * image.c:
18469         (mono_image_open): increment the ref_count inside the critical section.
18470
18471 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
18472
18473         * image.c (mono_image_open): Fix reference counting bug.
18474
18475 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
18476
18477         * marshal.c (mono_marshal_type_size) struct alignment changed for 
18478         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
18479         64bits. Avoid leak in mono_marshal_get_native_wrapper when
18480         mono_lookup_pinvoke_call throws.        
18481
18482 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
18483
18484         * reflection.c (mono_reflection_parse_type): Fix #49114.
18485
18486         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
18487         temporary workaround for cygwin header problem.
18488
18489         * object.c (mono_object_isinst): Synchronize this with the code
18490         generated by the JIT for casts.
18491
18492 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
18493
18494         * reflection.c (encode_type): Fix #38332.
18495
18496 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
18497
18498         * marshal.c (mono_marshal_method_from_wrapper): New function to return
18499         the original method from the wrapper method.
18500
18501 2003-09-25  Martin Baulig  <martin@ximian.com>
18502
18503         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
18504         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
18505         (ves_icall_Type_get_IsGenericInstance): New interncall.
18506
18507 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
18508
18509         * object.c: fix cast warning in big endian code.
18510
18511 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
18512
18513         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
18514         
18515 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18516
18517         * assembly.c: don't call check_env from mono_assembly_load. It's
18518         already done once in mono_assemblies_init and may cause headaches when
18519         multiple threads are loading assemblies.
18520
18521 2003-09-19  Martin Baulig  <martin@ximian.com>
18522
18523         * reflection.c (mono_reflection_define_generic_parameter): Don't
18524         allocate `klass->methods', set `klass->flags' to
18525         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
18526
18527 2003-09-18  Martin Baulig  <martin@ximian.com>
18528
18529         * class.c (mono_class_init): Don't create `class->methods' if it's
18530         already initialized.
18531
18532         * metadata.c (mono_metadata_load_generic_params): Make this
18533         actually work.
18534
18535         * reflection.c (mono_reflection_define_generic_parameter): Set
18536         parent class and interfaces from the constraints.
18537
18538         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
18539         to keep this struct in sync with the declaration in TypeBuilder.cs.
18540
18541 2003-09-17  Martin Baulig  <martin@ximian.com>
18542
18543         * metadata.h (MonoType): Replaced the data's `int type_param'
18544         field with `MonoGenericParam *generic_param'.
18545         (MonoGenericParam): Added `MonoClass *klass'.
18546
18547         * class.c (mono_class_from_gen_param): Removed the
18548         `MonoImage *image' and `int type_num' arguments.
18549
18550         * metadata.c (mono_metadata_parse_generic_param): New static
18551         method; creates a MonoGenericParam which just contains the index.
18552         (do_mono_metadata_parse_type): Call
18553         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
18554         MONO_TYPE_MVAR.
18555
18556         * reflection.c (mono_image_typedef_or_ref): Generic type
18557         parameters may be in the same assembly, but never use a typedef
18558         for them.
18559         (mono_reflection_define_generic_parameter): We're now creating a
18560         "real" class for the type parameter; it's now safe to call
18561         mono_class_from_mono_type() on the class'es type, it'll do the
18562         right thing.
18563
18564 2003-09-16  Martin Baulig  <martin@ximian.com>
18565
18566         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
18567         `symfile->range_entry_size' and `symfile->class_entry_size' here;
18568         the `symfile' data structure must be fully initialized before it
18569         gets added to the table.
18570
18571 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
18572
18573         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
18574
18575         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
18576         class init trampolines.
18577
18578 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
18579
18580         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
18581         to the built-in profiler to turn off time and allocation profiling
18582         respectively.
18583
18584 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
18585
18586         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
18587         g_direct_equal.
18588
18589         * debug-helpers.c (mono_method_full_name): Print the wrapper type
18590         in human readable form.
18591
18592 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
18593
18594         * reflection.c icall.c: Fixed warnings.
18595
18596         * image.c (load_class_names): Use a temporary hash table to hold the
18597         namespaces in order to avoid doing many string comparisons.
18598
18599         * image.h: Fix typo.
18600
18601         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
18602         Pass NULL instead of g_direct_equal to the GHashTable constructor 
18603         since the NULL case is short-circuited inside g_hash_table_lookup, 
18604         leading to better performance.  
18605
18606         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
18607         obtain the first custom attribute for a given index. Depends on the
18608         CustomAttribute table being sorted by the parent field.
18609
18610         * reflection.c (mono_custom_attrs_from_index): Use the new function 
18611         for better performance.
18612
18613 2003-09-07  Martin Baulig  <martin@ximian.com>
18614
18615         * class.c (mono_class_init): If we're a generic instance, inflate
18616         all our methods instead of loading them from the image.
18617         (mono_class_from_generic): Set `class->methods = gklass->methods'.
18618
18619 2003-09-07  Martin Baulig  <martin@ximian.com>
18620
18621         * mono-debug-debugger.c: Added support for constructors.
18622
18623 2003-09-06  Martin Baulig  <martin@ximian.com>
18624
18625         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
18626         New interncall.
18627
18628         * reflection.c (mono_reflection_setup_generic_class): Call
18629         ensure_runtime_vtable() to create the vtable.
18630
18631 2003-09-05  Martin Baulig  <martin@ximian.com>
18632
18633         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
18634         MONO_TYPE_MVAR.
18635
18636 2003-09-04  Martin Baulig  <martin@ximian.com>
18637
18638         * reflection.c (mono_reflection_define_generic_parameter): Generic
18639         parameters start with zero.
18640
18641 2003-09-04  Martin Baulig  <martin@ximian.com>
18642
18643         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18644
18645         * reflection.h (MonoReflectionGenericParam): New typedef.
18646         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
18647         the generic parameters from the managed TypeBuilder.
18648
18649         * reflection.c (mono_reflection_define_generic_parameter): New function.
18650         (mono_reflection_create_runtime_class): Encode generic parameters.
18651         (mono_reflection_setup_generic_class): New function; this is
18652         called after adding adding all generic params to the TypeBuilder.
18653         (encode_type): Added MONO_TYPE_VAR.
18654
18655 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
18656
18657         * class.h class.c (mono_class_needs_cctor_run): Moved this method
18658         here from the JIT.
18659
18660         * assembly.h assembly.c: Moved the AOT loading code into an assembly
18661         load hook.
18662
18663 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
18664
18665         * reflection.h reflection.c class.h class.c: Delete duplicate 
18666         definition of mono_type_get_name () from reflection.c and export the
18667         one in class.c.
18668
18669         * class.c: Class loading fixes from Bernie Solomon 
18670         (bernard@ugsolutions.com).
18671
18672         * reflection.c: Endianness fixes from Bernie Solomon 
18673         (bernard@ugsolutions.com).
18674         
18675 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
18676
18677         * assembly.h assembly.c: Define a file format version for AOT
18678         libraries.
18679         
18680         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
18681
18682         * appdomain.h (MonoJitInfo): New field to determine whenever the
18683         code is domain neutral.
18684         
18685 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
18686
18687         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
18688
18689 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
18690
18691         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
18692         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
18693         Avoid caching the result since strings must be domain specific. Fixes
18694         #48050.
18695
18696 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
18697
18698         * marshal.c (mono_marshal_init): Make this callable multiple times
18699         since it is hard to find a correct place to call it.
18700
18701         * object.c (mono_runtime_class_init): Execute static constructors in
18702         the correct appdomain.
18703
18704         * image.c (build_guid_table): Handle the case when multiple images have
18705         the same GUID.
18706
18707 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18708
18709         * icall.c: added a couple of icalls for System.Web.
18710
18711 2003-08-28  Martin Baulig  <martin@ximian.com>
18712
18713         * icall.c (ves_icall_Type_BindGenericParameters): Use
18714         `klass->generic_inst' instead of `&klass->byval_arg' in the
18715         mono_type_get_object() call.  The returned type must be
18716         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
18717
18718 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
18719
18720         * NOTES: New file.
18721
18722         * object.c (mono_class_proxy_vtable): Make it thread safe.
18723
18724         * pedump.c: Fix warning.
18725
18726         * object.c appdomain.h: Get rid of metadata_section. 
18727         It is no longer needed and it was causing deadlocks with domain->lock.
18728
18729         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
18730
18731 2003-08-26  Martin Baulig  <martin@ximian.com>
18732
18733         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
18734
18735 2003-08-26  Martin Baulig  <martin@ximian.com>
18736
18737         * pedump.c (main): Call mono_metadata_init(),
18738         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
18739         and mono_loader_init().
18740
18741 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
18742
18743         * loader.h: Add missing include to fix build.
18744
18745         * image.h: mono_image_load_references is no more.
18746
18747         * assembly.c: Reworked assembly loading to make it really thread safe.
18748         After these changes, the assembly returned by mono_assembly_open is
18749         fully initialized, i.e. all its references assemblies are loaded.
18750
18751         * assembly.c (mono_image_load_references): Renamed to 
18752         mono_assembly_load_references, and made private, since clients no
18753         longer need to call it.
18754
18755         * class.c: Removed calls to mono_assembly_load_references, since it was
18756         a source of deadlocks.
18757
18758         * loader.h loader.c class.h class.c: Protect data structures using a 
18759         new lock, the loader lock.
18760
18761         * class.c (mono_class_setup_vtable): Create temporary hash tables and
18762         GPtrArrays only when needed.
18763
18764         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
18765         into empty structures by mcs. Fixes pinvoke7.cs.
18766         
18767         * domain.c (mono_init): Call a new initialization function.
18768
18769         * appdomain.c (mono_runtime_init): Call the new initializer function
18770         of the marshal module.
18771
18772         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
18773         inserted into empty structures by mcs. Fixes pinvoke7.cs.
18774
18775         * marshal.h marshal.c: Added locks around the wrapper caches to make
18776         this module thread safe.
18777
18778         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
18779         this argument. Fixes pinvoke1.exe.
18780
18781 2003-08-25  Lluis Sanchez <lluis@ximian.com>
18782
18783         * object.h: Added call_type field to MonoMethodMessage and the corresponding
18784         enumeration of values. Removed fields to store remote call output values in
18785         MonoAsyncResult. Not needed any more.
18786         * object.c: Initialize call_type and async_result fields in mono_message_init.
18787         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
18788         dispatching the message.
18789         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
18790         async call to finish. To do it use a message with EndInvoke call type.
18791
18792 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
18793
18794         * loader.h loader.c (mono_method_hash_marhal_info): New function which
18795         determines whenever a method has marshalling info.
18796
18797 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18798
18799         * assembly.c: fix the build on windows.
18800
18801 2003-08-22 Lluis Sanchez <lluis@ximian.com>
18802
18803         * object.cs: Fixed bug #47785.
18804
18805 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
18806
18807         * string-icalls.c (StringReplace): If their are no occurances of
18808         the old string found return a reference to the supplied
18809         string. This saves some memory and matches MS behavoir.
18810         
18811 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18812
18813         * socket-io.c: fixed compilation for systems that define AF_INET6
18814         and don't define SOL_IP/SOL_IPV6.
18815
18816 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
18817
18818         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
18819         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
18820
18821         * rawbuffer.c rawbuffer.h: Make this module thread safe.
18822
18823         * domain.c: Make this module thread safe.
18824
18825         * domain.c (mono_init): Call new initialization function.
18826
18827         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
18828         reference types too. Fixes #38812.
18829
18830         * image.c (mono_image_init): Fixed warnings.
18831
18832         * class.c (mono_class_from_typeref): Handle assembly load failure
18833         correctly.
18834
18835         * appdomain.c (add_assemblies_to_domain): Handle the case when
18836         the references of an assembly are not yet loaded.
18837
18838         * metadata.c image.c assembly.c: Moved initialization of global
18839         variables to a separate function called at startup since lazy 
18840         initialization of these variables is not thread safe.
18841         
18842         * image.c assembly.c: Made this module thread safe by adding locks in 
18843         the appropriate places.
18844
18845         * domain.c (mono_init): Call the new initialization functions of the
18846         three modules.
18847
18848 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
18849
18850         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
18851           make a direct call. It is proxy's work to make the call asynchronous.
18852           mono_delegate_end_invoke(): If the targe is a proxy, just collect
18853           the return values.
18854         * object.cs: mono_method_call_message_new(): read AsyncResult and
18855           state object from parameters list, if this info is requested.
18856         * object.h: Added fields to store remote call output values in
18857           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
18858
18859 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
18860
18861         * object.h: add needed fields to MonoThread.
18862         * threads.c, threads.h: allow registering a function to cleanup data
18863         allocated per thread by the JIT.
18864
18865 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18866
18867         * loader.h: portability fix by Bernie Solomon
18868         * <bernard@ugsolutions.com>.
18869
18870 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
18871
18872         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
18873         return a MonoArray. This simplifies the code and also ensures that
18874         the cache allways contains an object reference as a value.
18875
18876         * icall.c (ves_icall_get_parameter_info): Simplified using the new
18877         function.
18878
18879 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18880
18881         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
18882         fixes a problem with byte ordering when getting the address family for
18883         a socket.
18884
18885 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
18886
18887         * .cvsignore: Added monosn.
18888
18889         * reflection.h reflection.c loader.c: Added support for parameter
18890         marshalling to dynamically created types. Fixes #47295.
18891
18892 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
18893
18894         * rand.c: remove useless warnings.
18895
18896 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
18897
18898         * class.c: implemented ldtoken for methods and fieldrefs.
18899
18900 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18901
18902         * threadpool.c: when mono_async_invoke was called, no one took care of
18903         monitoring the queue. So if the method invoked took some time and we
18904         got new async invoke requests after 500 ms (the thread created waited
18905         that long in WaitForSingleObject), the new async invoke was not called
18906         until the previous one finished.
18907
18908         This is fixed now. Thanks to Totte for helping with it.
18909
18910 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18911
18912         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
18913
18914 2003-08-11  Martin Baulig  <martin@ximian.com>
18915
18916         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
18917
18918 2003-08-06  Martin Baulig  <martin@ximian.com>
18919
18920         * mono-debug-debugger.c: Added support for static fields,
18921         properties and methods.
18922
18923 2003-08-06  Martin Baulig  <martin@ximian.com>
18924
18925         * mono-debug-debugger.c: Don't store the MonoString's vtable to
18926         make this work for applications with multiple application domains.
18927
18928 2003-08-04  Martin Baulig  <martin@ximian.com>
18929
18930         * mono-debug-debugger.c: Completely reworked the type support; the
18931         most important thing is that we're now just using one single
18932         `MonoType' instance per type.
18933
18934 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
18935
18936         * mono-endian.h, mono-endian.c, icall.c: Added icall
18937         ves_icall_System_Double_AssertEndianity to assert double word endianity
18938         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
18939
18940 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18941
18942         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
18943         support, icalls and fixes.
18944
18945 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
18946
18947         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
18948         classes that are a punctuation character in .NET is not the same a
18949         g_unichar_ispunct.
18950
18951 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18952
18953         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
18954
18955 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
18956
18957         * icall.c: Add new MemCopy internalcall.
18958         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
18959         Simplified code; It is not necessary to handle all the cases here,
18960         as the C# code takes care of it.  Only handle the case of the name
18961         resource embedded into the assembly.
18962
18963         Changed signature to return the data pointer and the size of the
18964         data. 
18965
18966 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
18967
18968         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
18969         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
18970
18971 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
18972
18973         * socket-io.c: ignore EINTR error in select.
18974
18975 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
18976
18977         * class.h, class.c: removed unused subclasses field in MonoClass.
18978
18979 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
18980
18981         * icall.c: improve fix of get_base_definition(). If the parent class
18982           doesn't have the mehod, look at the parent of the parent.
18983         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
18984           to check if a parameter is an in or out parameter
18985           (PARAM_ATTRIBUTE_IN is not set by default).
18986           mono_method_return_message_restore(): Use mono_class_value_size to
18987           get the size of a value type. mono_type_stack_size (parameterType)
18988           does not return the correct value if parameterType is byRef.
18989           mono_load_remote_field(), mono_load_remote_field_new(),
18990           mono_store_remote_field(), mono_store_remote_field_new():
18991           raise exception if the remote call returns an exception.
18992
18993 2003-07-28  Martin Baulig  <martin@ximian.com>
18994
18995         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
18996         method.  This is a wrapper around mono_runtime_invoke() which
18997         boxes the instance object if neccessary.
18998
18999 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19000
19001         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
19002         metadata.h, row-indexes.h, verify.c: first cut of generics support.
19003
19004 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19005
19006         * icall.c: disable mcs bug workaround.
19007
19008 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
19009
19010         * object.c (mono_runtime_class_init): Take the metadata_section
19011         mutex before obtaining the domain mutex.
19012
19013         * appdomain.h: Added definition of metadata_section mutex here. 
19014
19015         * object.c: define metadata_mutex here.
19016
19017 2003-07-24  Ravi Pratap  <ravi@ximian.com>
19018
19019         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
19020         fixed.
19021
19022 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
19023
19024         * reflection.c: Fix bug #46669
19025
19026 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19027
19028         * exception.c:
19029         * exception.h:
19030         * icall.c:
19031         * object.h: fill in the type name for TypeLoadException.
19032
19033 2003-07-23  Ravi Pratap  <ravi@ximian.com>
19034
19035         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
19036         relationship between TypeBuilders while compiling corlib) and bug
19037         45993 (Array types returned from the runtime while compiling
19038         corlib were from the loaded corlib).
19039
19040 2003-07-22  Martin Baulig  <martin@ximian.com>
19041
19042         * mono-debug-debugger.c: Reworked the type support a bit more;
19043         distinguish between types and classes.
19044
19045 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
19046
19047         * icall.c: add IsArrayImpl icall.
19048
19049 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
19050
19051         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
19052         initializing real_size only once. Also fix bug #46602.
19053
19054 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
19055
19056         * object.c: Renamed mono_metadata_section to metadata_section.
19057
19058 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
19059
19060         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
19061           empty array if the type is an array. Fixed.
19062           ves_icall_MonoMethod_get_base_definition: if the base method
19063           is abstract, get the MethodInfo from the list of methods of
19064           the class.
19065         * reflection.c: ParameterInfo.PositionImpl should be zero-based
19066           and it was 1-based. Fixed in mono_param_get_objects.
19067
19068 2003-07-20  Martin Baulig  <martin@ximian.com>
19069
19070         * mono-debug.h: Set version number to 31.
19071         (mono_debug_init): Added `MonoDomain *' argument.
19072
19073         * mono-debug-debugger.c: Reworked the type support; explicitly
19074         tell the debugger about builtin types; pass the `klass' address to
19075         the debugger.
19076
19077 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
19078
19079         * image.c: Allow new metadata tables to be loaded without a
19080         warning. Also update the warning message to give the new constant value.
19081                 
19082 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
19083
19084         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
19085         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
19086         array type representation changes.
19087
19088 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19089
19090         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
19091         on Environment.Exit () call.
19092
19093 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
19094
19095         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
19096         requires a matching corlib.
19097
19098 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
19099
19100         * Changelog: My editor decided to add a CR to each line. Sorry about that.
19101           Committed again without the CRs.
19102         
19103 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
19104
19105         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
19106           getting it from the "this" socket instance. Did not work
19107           if the socket is a subclass of Socket.
19108           Also fixed bug #35371.
19109
19110 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19111
19112         * metadata.c: fixed size for TypedByRef.
19113         * loader.c: when searching for a method, consider the vararg amrker.
19114         * unicode.c, decimal.c: constify some arrays.
19115
19116 2003-07-15  Dick Porter  <dick@ximian.com>
19117
19118         * socket-io.c: Fixed compilation for gcc < 3.2.
19119
19120         Fixed compilation for machines that don't have AF_INET6 (thanks to
19121         Bernie Solomon <bernard@ugsolutions.com> for that part.)
19122
19123         Fixed compile warnings.
19124         
19125         Fixed formatting and line endings.
19126
19127 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
19128
19129         * socket-io.h:
19130         * socket-io.c: Added IPv6 support.
19131
19132 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
19133
19134         * class.c (mono_class_is_assignable_from): New function to implement
19135         the is_assignable_from logic. Used by mono_object_isinst, 
19136         Type::IsAssignableFrom () and the interpreter.
19137
19138         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
19139         Object, even interfaces.
19140         
19141         * object.c (mono_object_isinst): Implement in terms of 
19142         is_assignable_from.
19143
19144         * icall.c (ves_icall_type_is_assignable_from): New icall.
19145
19146 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
19147
19148         * domain.c (foreach_domain): fix compiler warning.
19149
19150 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
19151
19152         * image.c (load_metadata_ptrs): use g_strndup because strndup is
19153         not available on all plattforms
19154
19155 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
19156
19157         * image.h image.c: Store the metadata version string in MonoImage.
19158         * icall.c: New icall to retrieve the image version.
19159         * reflection.c (create_dynamic_image): Fill in the image version field
19160         * reflection.c (build_compressed_metadata): Use the image version
19161         from the image structure.
19162
19163 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19164
19165         * appdomain.c: modified comment.
19166         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
19167         That will be its last iteration when mono_gc_cleanup is called from
19168         mono_runtime_cleanup and before the domain is unloaded.
19169
19170         Fixes bug #45962.
19171
19172 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
19173
19174         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
19175         attributes.
19176
19177 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19178
19179         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
19180         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
19181         Bernie Solomon <bernard@ugsolutions.com>.
19182
19183 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19184
19185         * object.c, object.h: provide mono_object_new_fast() for faster
19186         allocation in some special cases.
19187
19188 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
19189
19190         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
19191         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
19192
19193 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
19194
19195         * threadpool.c: fix leaks.
19196
19197 2003-07-01  Dick Porter  <dick@ximian.com>
19198
19199         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
19200         using MonoGHashTables.  Fixes threadpool bug posted to list.
19201
19202 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
19203
19204         * image.h, image.c: added support to load an assembly from a byte array.
19205         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
19206         assembly bundle support.
19207
19208 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
19209
19210         * threadpool.c (mono_thread_pool_add): keep a reference to the
19211         AsyncResult to prevent GC
19212
19213 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19214
19215         * class.c: leak fix.
19216
19217 2003-06-25  Dick Porter  <dick@ximian.com>
19218
19219         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
19220         for the async object, the WaitHandle object will close the handle.
19221         Fixes bug 45321.
19222
19223 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19224
19225         * class.c: in mono_array_class_get (), lookup from the hash with the
19226         same type we insert: this works around a bug in
19227         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
19228         lluis. The real fix will have to wait for after the release.
19229
19230 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19231
19232         * icall.c: fix memory leak when getting type members.
19233
19234 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19235
19236         * reflection.c: added more pubtoken special cases.
19237
19238 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
19239
19240         * class.c: handle field offset correctly when class size
19241         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
19242
19243 2003-06-20  Martin Baulig  <martin@ximian.com>
19244
19245         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
19246         *image' field.
19247
19248 2003-06-20  Martin Baulig  <martin@ximian.com>
19249
19250         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
19251
19252 2003-06-20  Martin Baulig  <martin@ximian.com>
19253
19254         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
19255         just distinguish between variables in registers and variables at
19256         an offset relative to a register.
19257
19258 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19259
19260         * icall.c: #ifdef out latest changes until mcs is fixed.
19261
19262 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19263
19264         * icall.c: return members in metadata order.
19265
19266 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19267
19268         * icall.c: avoid infinite loop in GetTimeZoneData.
19269
19270 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
19271
19272         * icall.c: added Marshal.Prelink/All icalls.
19273
19274 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19275
19276         * object.c, object.h: fix warnings and do some overflow checking
19277         when creating arrays.
19278
19279 2003-06-17  Dick Porter  <dick@ximian.com>
19280
19281         * file-io.h:
19282         * file-io.c: File attributes need to be tweaked slightly when
19283         passed from the managed to the w32 world.
19284
19285 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
19286         * profiler.h profiler-private.h profiler.c: Rework last patch
19287         based on suggestion by Paolo.
19288         
19289 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
19290
19291         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
19292         instruction level coverage data collection.
19293         * profiler.h profiler.c (: Added new callback function which can be
19294         used by the profiler to limit which functions should have coverage
19295         instrumentation.
19296         * profiler.c (mono_profiler_load): Call g_module_build_path to
19297         generate the file name of the profiler library.
19298
19299 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19300
19301         * profiler.c, profiler.h, profiler-private.h: added basic block 
19302         coverage profiling API.
19303
19304 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
19305
19306         * reflection.c (mono_reflection_create_runtime_class): Add support
19307         for events in dynamically generated code.
19308
19309         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
19310         not allocated.
19311
19312 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19313
19314         * icall.c: when getting timezone info, return reasonable values if we
19315         can't get the actual data.
19316
19317 2003-06-14  Dick Porter  <dick@ximian.com>
19318
19319         * threads.c (start_wrapper): Remove the reference to the thread
19320         object in the TLS data, so the thread object can be finalized.
19321         This won't be reached if the thread threw an uncaught exception,
19322         so those thread handles will stay referenced :-( (This is due to
19323         missing support for scanning thread-specific data in the Boehm GC
19324         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
19325
19326 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
19327
19328         * reflection.c: ensure streams and tables are first allocated with
19329         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
19330
19331 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19332
19333         * icall.c: fixed GetElementType for byrefs (bug# 44792).
19334
19335 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
19336
19337         * reflection.c (mono_reflection_create_runtime_class): Add support for
19338         properties to dynamically created classes.
19339         * reflection.c: Fix a few places where non-MonoObjects were inserted
19340         into the tokens hashtable.
19341
19342 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19343
19344         * object.c: some support to handle out of memory exceptions.
19345
19346 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
19347
19348         * marshal.c (mono_marshal_get_native_wrapper): support reference
19349         return types
19350
19351 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19352
19353         * object.h, object.c: more portability stuff from Bernie Solomon.
19354         Unexport mono_object_allocate(). Added mono_object_unbox ().
19355         Set exitcode when an unhandled exception is thrown.
19356
19357 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
19358
19359         * marshal.c (mono_marshal_get_native_wrapper): use custom
19360         marshaler for return types.
19361
19362 2003-06-10  Dick Porter  <dick@ximian.com>
19363
19364         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
19365         ip_mreq is available
19366
19367 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
19368
19369         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
19370         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
19371         by Bernie Solomon <bernard@ugsolutions.com>.
19372
19373 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
19374
19375         * gc.c (mono_gc_init): Avoid error message on shutdown when
19376         GC_DONT_GC=1 is used.
19377
19378         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
19379         New icall to return the GUID of a module.
19380
19381 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19382
19383         * class.c: ensure instance size always includes the parent's size
19384         even whem class size is set explicitly (fixes bug#44294).
19385
19386 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19387
19388         * profiler.h, profiler.c: made the simple profiler thread-safe,
19389         get more accurate timing info. Allow the loading of an
19390         externally-developed profiler module.
19391
19392 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
19393
19394         * marshal.c (mono_marshal_get_native_wrapper): improved
19395         class/byref arguments.
19396         (mono_marshal_get_native_wrapper): better string marshaling support.
19397
19398 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
19399
19400         * class.c: ensure .pack and .size are handled correctly and
19401         simplified layout of static fields.
19402
19403 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
19404
19405         * appdomain.c
19406         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
19407
19408         * loader.c (mono_lookup_pinvoke_call): look for modules in the
19409         current directory (fix bug 44008)
19410
19411 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
19412
19413         * marshal.c (mono_marshal_get_native_wrapper): started support for
19414         custom marshalers.
19415         (mono_delegate_to_ftnptr): consider marshalling specifications
19416
19417 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
19418
19419         * reflection.c, reflection.h: emit custom marshal info.
19420
19421 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19422
19423         * object.c: free the GError.
19424         * icall.c: added CloseEvent_internal.
19425         * threads.[ch]:
19426         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
19427         call.
19428
19429 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
19430
19431         * loader.c (mono_method_get_signature): Add support for dynamic
19432         assemblies.
19433
19434 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
19435
19436         * reflection.c: fixed bug #43905.
19437
19438 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19439
19440         * class.c, domain.c, icall.c, metadata.h, object.h: support for
19441         handling TypedReference and ArgIterator.
19442         * loader.c, loader.h: added function to get signature at call site.
19443
19444 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19445
19446         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
19447         data readonly. Buglets and warning fixes. Some MethodSpec support.
19448
19449 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19450
19451         * class.h, class.c, object.c: remove relative numbering support.
19452
19453 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
19454
19455         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
19456         free the string, until we get a chance to fix Gtk#
19457
19458 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19459
19460         * marshal.c: revert last patch.
19461
19462 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
19463
19464         * icall.c: updates for new mono_class_vtable() not calling
19465         the type constructor anymore.
19466
19467 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19468
19469         * object.h, object.c: separate vtable creation from type
19470         initialization. Make running the .cctor thread safe.
19471
19472 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
19473
19474         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
19475
19476 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
19477
19478         * loader.c (mono_get_method): consider calling convention
19479
19480 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
19481
19482         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
19483         to return the invisible global type for a module.
19484
19485         * reflection.c (mono_image_build_metadata): Emit global fields too.
19486
19487 2003-05-20  Peter Williams  <peterw@ximian.com>
19488
19489         * loader.c (mono_lookup_internal_call): Add a few newlines.
19490
19491 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
19492
19493         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
19494         literal strings.
19495
19496         * appdomain.c (set_domain_search_path): Recalculate search path when
19497         AppDomainSetup.PrivateBinPath changes.
19498
19499         * object.c (mono_class_compute_gc_descriptor): It turns out some
19500         parts of the class libs (like System.Thread) holds pointers to
19501         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
19502         to treat native int a pointer type here.
19503         
19504 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
19505
19506         * appdomain.h, domain.c: add hashtable for jump target resolution.
19507
19508 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
19509
19510         * reflection.h reflection.c icall.c: Added new icalls 
19511         GetManifestResourceInfoInternal, GetModulesInternal and support
19512         infrastructure.
19513
19514 2003-05-16  Dick Porter  <dick@ximian.com>
19515
19516         * icall.c:
19517         * file-io.h:
19518         * file-io.c: Implement System.IO.MonoIO::GetTempPath
19519
19520 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
19521
19522         * object.c: mono_store_remote_field: little fix to previous patch.
19523
19524 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19525
19526         * class.c: add constructors to array classes.
19527         * icall.c: special case array construction for InternalInvoke (),
19528
19529 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
19530
19531         * class.h class.c reflection.c object.c: Added support for field
19532         defaults in dynamically generated classes.
19533
19534 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
19535
19536         * reflection.c: properly encode charset for ddlimport.
19537
19538 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
19539
19540         * threads.c: allow compiling without GC.
19541
19542 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19543
19544         * appdomain.h, object.c, object.h, threads.c, threads.h: added
19545         handling of thread static data.
19546
19547 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19548
19549         * reflection.h, reflection.c: added mono_custom_attrs_free ().
19550
19551 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
19552
19553         * class.c (mono_array_class_get): always set the serializable flags
19554         (mono_array_class_get): always set the SEALED attribute for array types
19555
19556 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
19557
19558         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
19559         attributes (fix for bug 42021).
19560
19561 2003-05-12  Dick Porter  <dick@ximian.com>
19562
19563         * gc.c: Don't run finalizers when the finalizer thread is
19564         finishing up, because the default domain has already been
19565         destroyed.
19566
19567 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
19568
19569         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
19570         value is null, we should throw an exception.   This is slightly
19571         different than the other conventions used for the constructor.
19572
19573 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19574
19575         * socket-io.c: fixed windows build.
19576
19577 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19578
19579         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
19580
19581 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
19582
19583         * object.c (mono_string_new_wrapper): Compatibility fix for MS
19584         compilers.
19585
19586 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
19587
19588         * class.c (mono_class_layout_fields): Add experimental GC aware
19589         auto layout facility. Requires class library changes to work correctly.
19590
19591         (mono_class_setup_vtable): Avoid overriding explicit interface
19592         method implementations. Fixes iface3.exe test.
19593
19594         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
19595         object reference.
19596         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
19597         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
19598
19599         * metadata.h: Add new type classification macro which determines
19600         whenever the type holds an object reference.
19601
19602 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
19603
19604         * marshal.c (mono_marshal_get_native_wrapper): cleanups
19605
19606 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
19607
19608         * gc.c (finalizer_thread): Work around a GC bug.
19609
19610 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
19611
19612         * marshal.c (emit_struct_conv): allow unions
19613
19614         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
19615
19616 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
19617
19618         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
19619
19620 2003-05-06  Martin Baulig  <martin@ximian.com>
19621
19622         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
19623
19624 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19625
19626         * socket-io.c:
19627         (Select_internal): allow NULLs, don't create arrays if not needed.
19628         Coupled with Socket.cs changes.
19629
19630         * threadpool.c:
19631         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
19632         register a finalizer for it that will close the semaphore handle. This
19633         fixes the leak and make Lupus' test run with > 4080 loops.
19634
19635 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
19636
19637         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
19638         Jerome Laban (bug #42287)
19639
19640 2003-05-02  Martin Baulig  <martin@ximian.com>
19641
19642         * debug-mono-symfile.h
19643         (MonoSymbolFile): Moved declaration into mono-debug.h.
19644         (MonoDebugMethodJitInfo): Likewise.
19645         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
19646         argument.
19647         (_mono_debug_address_from_il_offset): Take a
19648         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
19649
19650         * mono-debug.h
19651         (MonoDebugDomainData): New struct.
19652         (mono_debug_get_domain_data): New function.
19653         (mono_debug_add_method): Take an additional `MonoDomain *'
19654         argument.
19655         (mono_debug_source_location_from_address): Likewise.
19656         (mono_debug_il_offset_from_address): Likewise.
19657         (mono_debug_address_from_il_offset): Likewise.
19658
19659 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
19660
19661         * reflection.c: one more check for null type in custom attrs.
19662
19663 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19664
19665         * reflection.c: avoid warning (comparison is always false due to limited
19666         range of data type).
19667
19668 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19669
19670         * icall.c: throw an exception in Type.GetField if the argument 'name'
19671         is NULL.
19672
19673 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
19674
19675         * reflection.c: fixed handling of enums in named arguments to custom
19676         attributes (bug #42123).
19677
19678 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
19679
19680         * reflection.c: use the right array element type and handle
19681         a null for a Type argument, too.
19682
19683 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
19684
19685         * reflection.c: handle arrays as arguments to custom attributes.
19686
19687 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
19688
19689         * reflection.c: handle a string value in a custom attr
19690         ctor that takes an object.
19691
19692 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
19693
19694         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
19695         (fix bug #42063)
19696
19697 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
19698
19699         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
19700
19701 2003-04-27  Martin Baulig  <martin@ximian.com>
19702
19703         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
19704         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
19705         MONO_DEBUGGER_EVENT_BREAKPOINT.
19706         (mono_breakpoint_trampoline_code): Removed.
19707         (mono_debugger_event_handler): The last argument is now a
19708         `guint32'.
19709         (mono_debugger_insert_breakpoint_full): Removed the
19710         `use_trampoline' argument.
19711         (mono_debugger_method_has_breakpoint): Likewise.
19712         (mono_debugger_trampoline_breakpoint_callback): Renamed to
19713         mono_debugger_breakpoint_callback(); take the method and
19714         breakpoint number as arguments.
19715
19716 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
19717
19718         * metadata.c: fix off by one when loading parameters attributes.
19719
19720 2003-04-24  Martin Baulig  <martin@ximian.com>
19721
19722         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
19723
19724 2003-04-24  Martin Baulig  <martin@ximian.com>
19725
19726         * mono-debug-debugger.c: Moved all code which interacts with the
19727         Mono Debugger here.
19728
19729         * debug-mono-symfile.c: This code now just deals with the symbol
19730         file itself, the debugger code is now in mono-debug-debugger.c.
19731
19732 2003-04-23  Martin Baulig  <martin@ximian.com>
19733
19734         * mono-debug.c (mono_debug_source_location_from_il_offset):
19735         New method; like mono_debug_source_location_from_address(), but
19736         takes an IL offset instead of a machine address.
19737
19738 2003-04-23  Martin Baulig  <martin@ximian.com>
19739
19740         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
19741         `line' field; this is now computed by the debugger.
19742
19743 2003-04-23  Martin Baulig  <martin@ximian.com>
19744
19745         * mono-debug.[ch]: New files.  This is the new debugging interface.
19746
19747         * mono-debug-debugger.[ch]: New files.  Moved all code which
19748         interacts with the Mono Debugger here.
19749
19750 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
19751
19752         * domain.c (mono_init): initialize mono_defaults.monitor_class
19753
19754 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
19755
19756         * reflection.c (method_encode_code): Add a spicy exception to help
19757         future compiler authors.
19758
19759 2003-04-21  Martin Baulig  <martin@ximian.com>
19760
19761         * icall.c
19762         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
19763         Make this work with relative pathnames; g_filename_to_uri() needs
19764         an absolute filename.
19765
19766 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
19767
19768         * icall.c: Track name changes in Object and ValueType.
19769
19770 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
19771
19772         * metadata.c (mono_type_stack_size): size should be a multiple of
19773         sizeof (gpointer)
19774
19775 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19776
19777         * gc.c:
19778         (internal_domain_finalize): moved into mono_domain_finalize. No need
19779         to create another thread because the finalizers will be run in the
19780         finalizer thread.
19781         
19782         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
19783         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
19784         to be run (MS does this too).
19785
19786 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
19787
19788         * object.c (mono_class_compute_gc_descriptor): Update comment.
19789
19790         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
19791
19792         * image.h: Add synchronized wrapper cache.
19793
19794         * image.c (do_mono_image_open): Initialize cache.
19795
19796         * reflection.c (create_dynamic_mono_image): Initialize cache.
19797
19798 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19799
19800         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
19801         ves_icall_System_Buffer_ByteLengthInternal.
19802
19803 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19804
19805         * reflection.c: setup klass->nested_in earlier. Allow
19806         a dash in the assembly name.
19807
19808 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
19809
19810         * metadata.c (mono_type_to_unmanaged): dont access
19811         type->data.klass for MONO_TYPE_OBJECT
19812         (mono_type_to_unmanaged): consider System.Delegate class
19813
19814 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
19815
19816         * class.c: just setup supertypes in the proper place instead of
19817         initializing the full element class for arrays.
19818
19819 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19820
19821         * class.c: ensure the element class of arrays is initialized.
19822         Setup the supertype info for array classes, too.
19823
19824 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
19825
19826         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
19827
19828 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19829
19830         * Makefile.am: re-added -m option when running cygpath. This way,
19831         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
19832         separator.
19833         * mono-config.c: same codepath for locating mono config file for WIN32
19834         and the rest.
19835         * assembly.c: if mono_assembly_setrootdir is called, don't override
19836         the value set.
19837
19838 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19839
19840         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
19841         MONO_ASSEMBLIES variable.
19842
19843 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
19844
19845         * icall.c: added Assembly::GetNamespaces() icall.
19846
19847 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19848
19849         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
19850
19851 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
19852
19853         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
19854         * object.c: fixed bug in the construction of vtable for proxies
19855
19856 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
19857
19858         * object.c (mono_array_new): Mark mono_array_new as an icall.
19859
19860 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19861
19862         * class.c: fixed test for public method when overriding interfaces.
19863         Closes bug #40970.
19864
19865 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19866
19867         * appdomain.h, domain.c: added mono_domain_foreach() to
19868         be able to access the currently loaded appdomains.
19869         * object.c: make string interning work across sppdomains.
19870         Mark some functions for use as icalls.
19871
19872 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
19873
19874         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
19875
19876         * reflection.h reflection.c: Allocate long living data using 
19877         GC_MALLOC_ATOMIC so the collector does not need to scan it.
19878
19879         * reflection.c: Double the allocation size in streams instead of
19880         increasing it, to prevent unneccesary copying on large assemblies.
19881         
19882         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
19883         creation if the assembly does not have the Run flag set.
19884
19885 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
19886
19887         * class.h: avoid the C++ keywords in header files (Jerome Laban
19888         spotted and fixed this).
19889
19890 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19891
19892         * object.c:
19893         (mono_unhandled_exception): fill in the arguments for the
19894         UnhandledException event. Only trigger that event for the default
19895         domain (as MS does).
19896
19897 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
19898
19899         * object.c: Improve typed allocation stuff based on suggestions from
19900         Paolo. Also turn it on if the GC library supports it.
19901
19902 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
19903
19904         * object.c object.h class.h: Added experimental typed allocation
19905         facility using the interfaces in gc_gcj.h.
19906
19907         * os/gc_wrapper.h: Added new include files.
19908         
19909 2003-04-03  Martin Baulig  <martin@ximian.com>
19910
19911         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
19912         which is not yet enabled by default.
19913
19914         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
19915         functions.
19916         (mono_gc_lock, mono_gc_unlock): New static functions.
19917
19918         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
19919         functions; stop/start the world for the garbage collector.  This
19920         is using the windows API; we need to complete the SuspendThread()/
19921         ResumeThread() implementation in the io-layer to make this work on Unix.
19922         (mono_gc_push_all_stacks): New public function; tells the garbage
19923         collector about the stack pointers from all managed threads.
19924
19925 2003-04-03  Martin Baulig  <martin@ximian.com>
19926
19927         * object.h (MonoThread): Added `gpointer stack_ptr'.
19928
19929         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
19930
19931 2003-04-03  Martin Baulig  <martin@ximian.com>
19932
19933         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
19934
19935 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
19936
19937         * reflection.c (typebuilder_setup_fields): Initialize field.first and
19938         field.last.
19939
19940 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
19941
19942         * loader.c (mono_lookup_internal_call): Report the corlib that is
19943         out of sync.
19944
19945 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
19946
19947         * icall.c (ves_icall_type_GetTypeCode): fixed check for
19948         System.DBNull (it's class not valuetype).
19949
19950 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19951
19952         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
19953         if the array method was already assigned a token (fixes bug#40646).
19954
19955 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
19956
19957         * reflection.c (mono_reflection_get_type): Attempt type resolve even
19958         if no assembly is given.
19959
19960 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
19961
19962         * metadata.h: Added the new tables.
19963
19964         * row-indexes.h: Added definitions for new tables.
19965
19966         * metadata.c: Add schemas for new tables, and add support for
19967         computing the sizes of them.
19968
19969         * class.c: Update for handling the new type cases.
19970
19971 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
19972
19973         * metadata.h (MONO_TYPE_IS_VOID): new macro
19974
19975 2003-03-31  Martin Baulig  <martin@ximian.com>
19976
19977         * threads.h (MonoThreadCallbacks): Added `thread_created'.
19978
19979         * threads.c (mono_thread_new_init): Call `thread_created' in the
19980         mono_thread_callbacks.
19981
19982 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
19983
19984         * loader.h: added marshalbyrefobject_class to mono_defaults
19985         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
19986         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
19987           generation of output parameters.
19988           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
19989         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
19990           contextbound and the target object belongs to the context of the caller.
19991         * object.h: added context and unwrapped_server variables in MonoRealProxy.
19992         * object.c: Implemented support for interfaces and abstract classes
19993           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
19994           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
19995
19996 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
19997
19998         * class.h class.c (mono_class_is_subclass_of): New function.
19999         
20000         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
20001         routines for most common case (calls from ArrayList::ToArray).
20002
20003         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
20004         routine so programs which call Environment::Exit() can be profiled.
20005
20006         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
20007         Added MONO_ARCH_SAVE_REGS.
20008
20009         * icall.c (ves_icall_type_is_subtype_of): Use new function.
20010
20011 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
20012
20013         * blob.h: Add a couple of new MonoType types definitions.
20014
20015         * tabledefs.h: Add a couple of new call convs.
20016
20017 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
20018
20019         * reflection.h (MonoReflectionDynamicAssembly): track changes in
20020         the layout of the class.
20021
20022         * reflection.c (alloc_table): double the size on overflow to avoid
20023         unnecessary copying.
20024
20025         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
20026         avoid filling out metadata tables and blobs. Also set mb->ilgen to
20027         null so it can be garbage collected.
20028         
20029 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
20030
20031         * reflection.c (mono_reflection_get_type): Return the resolved type
20032         only if it is in the assembly we searched.
20033
20034         * reflection.c (ensure_runtime_vtable): Initialize method slots.
20035
20036         * class.c (mono_class_setup_vtable): Set the slot of the overriding
20037         method.
20038
20039 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20040
20041         * appdomain.c:
20042         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
20043         the right one is 'file:///blah', but MS allows it.
20044         * assembly.c:
20045         (mono_assembly_open): allow 'file://blah'
20046
20047         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
20048
20049 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
20050
20051         * socket-io.c: fixes bug #40310.
20052
20053 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
20054
20055         * reflection.c (mono_reflection_parse_type): handle deeply nested
20056         types correctly.
20057
20058         * reflection.c (mono_image_create_token): Use unique token values
20059         since they will be put into a hash table.
20060
20061         * class.c (mono_class_setup_vtable): If a method occurs in more than
20062         one place in the vtable, and it gets overriden, then change the
20063         other occurances too.
20064
20065         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
20066         object as return type.
20067
20068 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20069
20070         * icall.c: Deleted "ToString" implementation for double and float
20071         because they are full implemented in managed code.
20072
20073 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20074
20075         * reflection.c, reflection.h: implemented and exported functions
20076         to retrieve info about custom attributes.
20077
20078 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20079
20080         * appdomain.c: moved Uri handling to assembly.c
20081         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
20082         work when using a file Uri in *nix and windows.
20083
20084         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
20085         GetReferencedAssemblies.
20086
20087 2003-03-18  Dick Porter  <dick@ximian.com>
20088
20089         * icall.c: Rename a couple of internal calls
20090
20091         * threads.c: Set the thread state to Stopped when a thread exits.
20092         Fixes bug 39377.
20093
20094 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
20095
20096         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
20097         New icall.
20098
20099         * object.c (mono_class_vtable): fix warning.
20100
20101 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
20102
20103         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
20104
20105         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
20106         memory.
20107         (method_encode_clauses): Create exception info structures in the right
20108         order.
20109         (mono_reflection_setup_internal_class): Initialize supertypes field.
20110
20111         * class.c object.c: Handle interfaces which implement other interfaces 
20112         correctly.
20113
20114         * class.h class.c: Move the supertypes array initialization code into 
20115         a separate function so it can be used for dynamic types too. Also call
20116         it earlier, in mono_class_init(), since it can be used before the
20117         type is initialized.
20118
20119 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20120
20121         * Makefile.am:
20122         * assembly.c:
20123         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
20124
20125         * appdomain.c:
20126         * appdomain.h:
20127         * marshal.c:
20128         * object.c: remove warnings.
20129
20130 2003-03-13  Martin Baulig  <martin@ximian.com>
20131
20132         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
20133         (MonoDebugLexicalBlockEntry): New types.
20134
20135         * debug-mono-symfile.c
20136         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
20137
20138 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20139
20140         * process.c: ret can be any non-zero value accroding to MS doc.
20141
20142 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
20143
20144         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
20145         fixing a warning for a miss-used prototype, would have cause
20146         random memory corruption.
20147
20148 2003-03-07  Martin Baulig  <martin@ximian.com>
20149
20150         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
20151         getting really annoying ....
20152
20153 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
20154
20155         * reflection.c (fixup_method): added support for array methods.
20156
20157 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
20158
20159         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
20160         (pointed out by Michael Adams).
20161
20162 2003-03-04  Dick Porter  <dick@ximian.com>
20163
20164         * icall.c: Temporarily reverted the Double and Single ToString()
20165         change, because it broke nunit.
20166
20167 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
20168
20169         * object.h, threads.h: make include files compatible with C++
20170         (patch by Jerome Laban <jlaban@wanadoo.fr>).
20171
20172 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20173
20174         * icall.c: Erased ToString helper functions for Double and Single.
20175         Now, that implementations ar all in managed code (Double and Single
20176         Formatters).
20177
20178 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
20179
20180         * appdomain.c: Added method for initializing the default context of
20181         a domain. Added internal call for getting the default context.
20182         * appdomain.h: Added context variable in MonoDomain struct.
20183         * domain.c: mono_domain_set also sets the default context of the domain
20184         * icall.c: Mapped internal method InternalGetDefaultContext.
20185         * object.c: mono_object_get_virtual_method returns always a remoting
20186         wrapper if the object is a transparent proxy.
20187         mono_runtime_invoke_array: when creating an object by calling the
20188         constructor, if the created object is a proxy, then the constructor should
20189         be called using the a remoting wrapper.
20190
20191 2003-03-03  Dick Porter  <dick@ximian.com>
20192
20193         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
20194         variable so it compiles on solaris.  Problem spotted by
20195         Christopher Taylor <ct@cs.clemson.edu>
20196
20197 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20198
20199         * appdomain.c:
20200         (get_info_from_assembly_name): don't leak value.
20201
20202         * icall.c:
20203         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
20204         result.
20205
20206 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
20207
20208         * assembly.c: export mono_image_load_references ().
20209         * class.c: handle function pointers. mono_class_from_name() now
20210         supports nested type names directly.
20211
20212 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
20213
20214         * reflection.h reflection.c: Encode already created dynamic methods 
20215         and fields correctly as a DEF instead of a REF.
20216
20217         * reflection.c: Get rid of the force_ref argument to 
20218         mono_image_typedef_or_ref since it was wrong in the first place.
20219
20220         * string-icalls.c: add error checking to string constructors according
20221         to the MSDN docs.
20222
20223         * reflection.c: Emit types in the order their TypeBuilders were 
20224         created. Previously, a new table index was assigned to each type before
20225         the tables were emitted. This was wrong because the signature blob
20226         might already refer to a type by its original table index.
20227
20228 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
20229
20230         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
20231         change.
20232         
20233 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20234
20235         * Makefile.am: make assemblies dir have \ instead of / on windows.
20236
20237 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
20238
20239         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
20240         iterate over the NESTEDCLASS table using a linear search since the
20241         table is not guaranteed to be sorted by the secondary key.
20242
20243         * class.c (mono_class_create_from_typedef): fixed up call to
20244         mono_metadata_nesting_typedef.
20245         
20246 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
20247
20248         * marshal.c (mono_string_to_byvalstr): clear the memory as
20249         suggested by Jerome Laban <jlaban@wanadoo.fr>
20250
20251 2003-02-26  Dick Porter  <dick@ximian.com>
20252
20253         * process.c: Cope with padding in .rsrc blocks
20254
20255 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
20256
20257         * metadata.h: reverted the filter_len change, it breaks reflection
20258         
20259 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
20260
20261         * metadata.h: added a new field to store the filter_len
20262         
20263
20264 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
20265
20266         * reflection.c: handle custom attributes for types and members
20267         created with Reflection.Emit (bug#38422).
20268
20269 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
20270
20271         * reflection.c: define RTSpecialName automatically for constructors for
20272         compatibility with MS.NET.
20273
20274         * reflection.c (mono_reflection_create_runtime_class): initialize
20275         nested_in field of dynamically created classes.
20276
20277 2003-02-22  Martin Baulig  <martin@ximian.com>
20278
20279         * debug-mono-symfile.h: Incremented version number.
20280
20281 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
20282
20283         * object.h icall.c process.c: fix warnings.
20284
20285 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
20286
20287         * appdomain.h appdomain.c:
20288         (mono_domain_try_type_resolve): split the 
20289         name_or_tb argument into a name and a tb argument.
20290         (mono_domain_has_type_resolve): new function to check whenever the
20291         application has registered a TypeResolve event handler.
20292         
20293         * icall.c reflection.h reflection.c: move the type resolve logic into
20294         mono_reflection_get_type () so it will be invoked when 
20295         Assembly::GetType () is called.
20296
20297         * reflection.c:
20298         (mono_reflection_get_type): renamed to get_type_internal.
20299         (mono_reflection_get_type): fixed type name generation so it works 
20300         for nested types too.
20301         (mono_reflection_get_type): call has_type_resolve () to avoid the 
20302         costly type name generation if there is no resolve event handler.
20303
20304 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20305
20306         * class.c, image.c: load exported types from file references.
20307
20308 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
20309
20310         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
20311           used to cache the managed methods used to create proxies and make 
20312           remote invocation of methods.
20313         * class.h: Added in MonoVTable a flag to indicate that a class needs 
20314           to be remotely created.
20315         * object.c: Modified the method mono_class_vtable(). It now initializes 
20316           the remote flag of the vtable. Modified mono_object_new_specific(), 
20317           so now it checks the remote flag.
20318         * icall.c: Added a couple of internal methods, one for enabling instance 
20319           creation interception for a type, and one for creating objects bypassing
20320           the remote check.
20321
20322 2003-02-18  Martin Baulig  <martin@ximian.com>
20323
20324         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
20325         New interncall to get a method's metadata token.
20326
20327         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
20328         New interncall for the debugger.
20329
20330 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
20331
20332         * class.c (mono_class_setup_vtable): allocate supertype array
20333
20334 2003-02-18  Martin Baulig  <martin@ximian.com>
20335
20336         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
20337
20338 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20339
20340         * reflection.c:
20341         (assembly_name_to_aname): jump over unknown properties (i've found
20342         something like: 'type, assembly, version=xxx, custom=null, public...',
20343         so now will ignore custom=null and still get the rest of the values).
20344
20345 2003-02-17  Dick Porter  <dick@ximian.com>
20346
20347         * threads.c: Have Thread.Start() wait for a semaphore to signal
20348         that the thread has set up all its local data.  This fixes bug
20349         34323, where Abort() raced the new thread's TLS data.
20350
20351         Also removes the handle_store() call from start_wrapper, because
20352         threads are now always created suspended and there is no longer a
20353         race between the parent and child threads to store the info.
20354
20355 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
20356
20357         * image.c: explain the #- heap issue in a message, hopefully
20358         avoiding FAQs on mono-list.
20359
20360 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20361
20362         * icall.c:
20363         (GetEntryAssembly): if the domain has not invoked
20364         AppDomain.ExecuteAssembly yet, return the assembly of the default
20365         AppDomain.
20366
20367 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
20368
20369         * class.c (mono_ldtoken): make it work in dynamic assemblies.
20370
20371 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
20372
20373         * metadata.c, reflection.c: simple speedup to type hash
20374         and equals code.
20375
20376 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
20377
20378         * image.c, image.h, class.c, assembly.c: move module loading
20379         to MonoImage. When loading metadata, consider alignemnet from
20380         the start of metadata, not from the metadata address in memory.
20381
20382 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
20383
20384         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
20385         AssemblyBuilder objects. Factored out custom attribute creation into
20386         a separate function.
20387         (create_custom_attr): new function to create custom attributes.
20388
20389 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
20390
20391         * Makefile.am: Got tired of typing the full pathname to pedump.
20392         Until there is another option, am installing this.
20393
20394 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
20395
20396         * class.c (class_compute_field_layout): always set field->parent 
20397         (mono_ldtoken): use mono_defaults.fieldhandle_class;
20398
20399 2003-02-11  Dick Porter  <dick@ximian.com>
20400
20401         * threads-types.h:
20402         * monitor.c: Rewrote Monitor, making lock much faster and
20403         Pulse/Wait work as specified.  Also uses much fewer handles, and only
20404         creates them as needed.
20405
20406         * exception.c: Added SynchronizationLockException
20407
20408         * threads.c: Deleted old Monitor implementation.  The new one is
20409         in a new file.
20410
20411 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
20412
20413         * class.c: handled TypedReference type code. Set the correct size for
20414         class data. Setup interface_offsets for interface classes, too.
20415
20416 2003-02-09  Martin Baulig  <martin@ximian.com>
20417
20418         * debug-mono-symfile.h: Reflect latest symbol writer changes.
20419
20420 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
20421
20422         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
20423         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
20424         * object.c: fixed mono_object_get_virtual_method () for interfaces.
20425         * verify.c: check for code that runs after the end of the method.
20426
20427 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20428
20429         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
20430         "System.Math::Round2".
20431         * sysmath.h: Added Floor, Round and Round2 definitions.
20432         * sysmath.c: Modified certain functions that were not 100% compliant
20433         with MS.NET (math precision) and added the implementation of Floor,
20434         Round and Round2.
20435
20436 2003-02-07  Martin Baulig  <martin@ximian.com>
20437
20438         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
20439
20440 2003-02-07  Martin Baulig  <martin@ximian.com>
20441
20442         * debug-mono-symfile.c: Reflected latest symwriter changes.
20443         (mono_debug_create_mono_symbol_file): Removed.
20444         (mono_debug_open_mono_symbol_file): Take an argument which
20445         specifies whether to create a dynamic symbol file.
20446
20447 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
20448
20449         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
20450
20451 2003-02-05  Martin Baulig  <martin@ximian.com>
20452
20453         * reflection.c (mono_image_build_metadata): Make this public,
20454         protect it against being called multiple times, don't create
20455         resources and don't build the compressed metadata here.
20456         (mono_image_create_pefile): Do this here.
20457
20458         * icall.c
20459         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
20460
20461 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20462
20463         * socket-io.c: fixed bug #36322.
20464
20465 2003-02-06  Piers Haken <piersh@friskit.com>
20466
20467         * appdomain.[ch]:
20468         * class.h:
20469         * debug-mono-symfile.c:
20470         * icall.c:
20471         * loader.c:
20472         * mono-config.c:
20473         * monosn.c:
20474         * reflection.c:
20475         * socket-io.c: warning cleanups
20476
20477 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
20478
20479         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
20480         function. works like remoting invoke, but does a check for the Proxy first.
20481
20482 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
20483
20484         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
20485
20486 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
20487
20488         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
20489         array of pointers.
20490         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
20491         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
20492
20493         * object.c (mono_store_remote_field_new): used by the new jit
20494         instead of mono_store_remote_field
20495         (mono_load_remote_field_new): used by the new jit
20496         instead of mono_load_remote_field
20497
20498 2003-02-05  Patrik Torstensson
20499
20500         * appdomain.c: changed unload to take the domain id instead
20501         of domain
20502         
20503         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
20504
20505
20506 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20507
20508         * appdomain.c: don't look for assemblies in ApplicationBase if
20509         PrivateBinPathProbe is set.
20510
20511 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20512
20513         * object.c: make the first argument in main_args contain the absolute
20514         path to the assembly. Fixes bug #37511.
20515
20516 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20517
20518         * icall.c: get correct UTC offset for countries not using daylight
20519         time saving. Fixes bug #30030.
20520
20521 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20522
20523         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
20524         and 1 are the family).
20525
20526 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
20527
20528         * icall.c (ves_icall_InternalExecute): removed wrong assertion
20529
20530         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
20531
20532 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
20533
20534         * reflection.c: added support for SignatureHelper tokens, which is
20535         needed by the Calli opcode.
20536
20537         * reflection.h: track changes to SignatureHelper class.
20538
20539         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
20540
20541 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20542
20543         * appdomain.c: fixed loading assemblies from PrivateBinPath.
20544
20545 2003-02-03  Patrik Torstensson
20546         * appdomain.[c|h], domain.c : 
20547          - Added support for getting a domain via domain id
20548          - Support for setting and getting domain from System.AppDomain 
20549            (used in cross appdomain channel)
20550          - Added support for get/set for a MonoAppContext on a thread 
20551            (Context class in System.Runtime.Remoting.Contexts),
20552          - Removed hack in Get/SetData and ExecuteAssembly.
20553         
20554         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
20555         the managed world to get control when a proxy is created.
20556
20557         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
20558         
20559 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
20560
20561         * icall.c
20562         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
20563         Populate the codebase field as well.
20564
20565 2003-02-02  Martin Baulig  <martin@ximian.com>
20566
20567         * debug-mono-symfile.c
20568         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
20569         (mono_debug_symfile_add_method): Allow interncalls.
20570
20571 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20572
20573         * icall.c: throw parse exception if strtod fails or the string is empty.
20574
20575 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
20576
20577         * marshal.c: handle object type separately from defined
20578         class types.
20579
20580 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
20581
20582         * marshal.c: handle NATIVE_LPSTR for strings when it's
20583         explicitly specified.
20584
20585 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
20586
20587         * reflection.c, reflection.h, icall.c: setup the reflection
20588         handle cache for ModuleBuilders and AssemblyBuilders.
20589
20590 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
20591
20592         * reflection.c (reflection_methodbuilder_to_mono_method): set
20593         pinvoke flag
20594
20595 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20596
20597         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
20598
20599 2003-01-29  Dick Porter  <dick@ximian.com>
20600
20601         * threads.c: No need for the fake_thread kludge now that Thread
20602         doesn't run a class constructor
20603         
20604 2003-01-29  Dick Porter  <dick@ximian.com>
20605
20606         * threads.c: Use g_direct_hash instead of the rather bogus
20607         g_int_hash
20608
20609 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
20610
20611         * marshal.c (mono_marshal_get_native_wrapper): add check for null
20612         (fix pinvoke12.exe)
20613         (mono_marshal_get_struct_to_ptr): generate valid IL code
20614         (mono_marshal_get_ptr_to_struct): generate valid IL code
20615         (*): correctly set sig->pinvoke, we need to memdup the signature
20616         to do that
20617
20618 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20619
20620         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
20621         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
20622
20623 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20624
20625         * profiler.c: provide more callers information.
20626
20627 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
20628
20629         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
20630
20631         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
20632
20633         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
20634
20635 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20636
20637         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
20638         exception instead of going into an infinite loop on dates which it 
20639         can't yet handle.
20640
20641         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
20642         out-of-range exception if needed.
20643
20644         * class.c (mono_class_setup_vtable): allow a virtual method to provide
20645         an implementation for an interface method and to override an inherited
20646         method at the same time. 
20647         Imagine a scenario when a virtual method is used to override a
20648         virtual abstract method in a parent class, and this same method 
20649         provides an implementation for an method inherited from an interface. 
20650         In this case, the interface resolution code will set im->slot, which 
20651         means that the virtual method override pass will skip this method 
20652         which means a pointer to the abstract method inherited from the parent
20653         will remain in the vtable of this non-abstract class.
20654
20655         * class.c: (mono_class_setup_vtable): continue search for a real 
20656         method if only an abstract method is found.     
20657
20658 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20659
20660         * reflection.c: add size to encoding for ByValStr and ByValArray
20661         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
20662
20663 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20664
20665         * class.c (mono_class_setup_vtable): pass the override info as an
20666         argument.
20667
20668         * class.c (mono_class_setup_vtable): set the slot of overriding methods
20669         correctly.
20670         
20671         * reflection.c (ensure_runtime_vtable); add support for method 
20672         overrides.
20673         
20674 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20675
20676         * reflection.c (resolution_scope_from_image): Hack to work to work with
20677         dynamic assemblies.
20678
20679         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
20680         added a 'force_ref' argument to force this function to allways return 
20681         a TypeRef. This is needed by mono_image_get_memberref_token ().
20682         
20683 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20684
20685         * reflection.c (mono_image_get_type_info): interfaces really don't have
20686         a parent.
20687
20688         * reflection.c (mono_image_basic_init): fill out missing fields of
20689         image structure.
20690
20691         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
20692         dynamic assemblies. This is required so dynamic assemblies show up in
20693         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
20694         Type::GetType() etc. This is consistent with MS behaviour.
20695
20696         * image.c image.h reflection.c: add newly created classes to the name 
20697         cache so mono_class_get () will find them.      
20698
20699 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20700
20701         First part of changes to get IKVM.NET running under mono.
20702         
20703         * appdomain.h, appdomain.c: added new function 
20704         mono_domain_try_type_resolve() which will emit TypeResolve events. 
20705         This function will call AppDomain::DoTypeResolve to do the actual work.
20706
20707         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
20708         moved existing code dealing with dynamic tokens to a new function 
20709         called mono_reflection_lookup_dynamic_token (). This function will 
20710         raise TypeResolve events when appropriate. Since reflection.c is not 
20711         part of libmetadata, a new hook function called 
20712         mono_lookup_dynamic_token() is added to class.c which will call this.
20713
20714         * assembly.h assembly.c: make the invoke_load_hook function public,
20715         so it can be called for dynamic assemblies.
20716
20717         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
20718
20719         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
20720         type isn't found.
20721
20722         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
20723         MonoGHashTable, since it contains pointers to objects which the GC 
20724         needs to track.
20725
20726         * assembly.c (search_loaded): remove unused variable.
20727         
20728 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
20729
20730         * object.c: fixed issue exposed by gcc-generated IL programs
20731         that use RVA data for pointers.
20732
20733 2003-01-25  Martin Baulig  <martin@ximian.com>
20734
20735         * threads.c (start_wrapper): Moved the initialization of
20736         `start_func' above the mono_new_thread_init() call to which we
20737         pass it as argument.
20738
20739 2003-01-24  Martin Baulig  <martin@ximian.com>
20740
20741         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
20742         the MonoThread pointer.
20743
20744 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
20745
20746         * icall.c: Rename `PowImpl' to Pow.
20747
20748 2003-01-23  Dick Porter  <dick@ximian.com>
20749
20750         * threads.c (start_wrapper): Create a Thread object if needed, so
20751         the Main() thread can do the class initialisation in a subthread
20752         that has been set up to allow managed code execution.
20753
20754         Pass the thread ID instead of the MonoThread pointer to the thread
20755         start and attach callbacks.  This change is required, because the
20756         jit thread start callback must be called _before_ the Thread
20757         object can be created.
20758         
20759         (mono_thread_init): Removed much object creation code that is no
20760         longer needed.  No managed code is called from here now.
20761
20762         * object.c (mono_runtime_exec_managed_code): Create a subthread
20763         for Main, and call back to the runtime to use it.
20764         Set the exit code when Main exits.
20765
20766         * gc.c: Make sure domain finalisation happens in a subthread.
20767         Re-enable threaded GC, fixing bug 31333 (again).
20768
20769         * environment.c: System.Environment internall calls (so far just
20770         ExitCode is here, the others are still in icall.c)
20771
20772         * appdomain.c (mono_runtime_cleanup): All threads running managed
20773         code should have finished before mono_runtime_cleanup() is
20774         reached, so no need to clean up threads.
20775
20776 2003-01-22  Martin Baulig  <martin@ximian.com>
20777
20778         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
20779         `gpointer func' arguments.      
20780         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
20781         but added `MonoThread *thread' argument.
20782         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
20783
20784         * threads.c (mono_new_thread_init): Added `gpointer func' argument
20785         and pass it to the mono_thread_start_cb callback.
20786         (mono_install_thread_callbacks): New public function to install a
20787         set of callbacks which are set by the debugger.
20788         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
20789
20790 2003-01-22  Martin Baulig  <martin@ximian.com>
20791
20792         * Makefile.am: Install debug-mono-symfile.h.
20793
20794 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
20795
20796         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
20797
20798 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
20799
20800         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
20801         * class.c (mono_ptr_class_get): correctly set access levels of pointers
20802         (mono_array_class_get): correctly set access levels of arrays
20803
20804 2003-01-20      Patrik Torstensson
20805         * image.h (MonoAssemblyName): changed major, minor, build, revision
20806         from signed to unsigned.
20807
20808 2003-01-20  sean kasun <skasun@azstarnet.com>
20809
20810         * reflection.c (load_cattr_value): Now this handles
20811         MONO_TYPE_SZARRAY.  Fixes bug #35629
20812
20813 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
20814
20815         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
20816         integer value
20817
20818 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20819
20820         * decimal.c: fixed bug #26056.
20821
20822 2003-01-17  Martin Baulig  <martin@ximian.com>
20823
20824         * gc.c: Raise an ExecutionEngineException instead of using g_error().
20825
20826 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20827
20828         * exception.[ch]:
20829         (mono_get_exception_type_initialization): new function.
20830
20831         * object.c: throw a TypeInitializationException when an exception is
20832         thrown invoking the class constructor.
20833
20834 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20835
20836         * reflection.c: fixed attribute reading.
20837
20838 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20839
20840         * icall.c:
20841         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
20842         provided, look for the type in the calling assembly and then in
20843         mscorlib; if the assembly name is provided, only try that one.
20844
20845 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
20846
20847         * object.c: register the vtable before there is a chance it's
20848         queried again recursively.
20849
20850 2003-01-13  Duncan Mak  <duncan@ximian.com>
20851
20852         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
20853         gc-internal.h. 
20854         
20855 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
20856
20857         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
20858
20859 2003-01-11  Martin Baulig  <martin@ximian.com>
20860
20861         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
20862         this to 20 for the release.
20863
20864 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
20865
20866         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
20867
20868         * loader.c (mono_method_get_marshal_info): bug fix
20869
20870         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
20871         structures with explicit layout
20872
20873 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
20874
20875         * profiler.c: made the output more readable (and sorted). 
20876         Added caller information for the allocation profiler.
20877
20878 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
20879
20880         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
20881
20882 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20883
20884         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
20885         to get value types.
20886         
20887 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
20888
20889         * object.c, profiler.h, profiler.c, profiler-private.h:
20890         Added object allocation profiler.
20891
20892 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
20893
20894         * reflection.h, reflection.c: handle global methods.
20895         Compress blob entries.
20896
20897 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
20898
20899         * marshal.c: fix compilation.
20900
20901 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
20902
20903         * loader.c (mono_method_get_marshal_info): impl.
20904
20905         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
20906
20907 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20908
20909         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
20910         for reference types.
20911
20912 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
20913
20914         * loader.c: fixed off by one error in loaded parameter names.
20915
20916 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
20917
20918         * marshal.c (mono_marshal_get_icall_wrapper): like
20919         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
20920         instead of a MonoMethod.
20921
20922 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20923
20924         * decimal.c: fixed bug #36537.
20925
20926 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
20927
20928         * marshal.c: throw a missing method exception if a
20929         P/Invoke method is not found.
20930
20931 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
20932
20933         * icall.c: allow a null this for constructors.
20934
20935 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
20936
20937         * icall.c: raise the proper exceptions if the arguments to the
20938         internal Invoke are incorrect.
20939
20940 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
20941
20942         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
20943
20944 2003-01-03  Martin Baulig  <martin@ximian.com>
20945
20946         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20947
20948 2002-12-31  Martin Baulig  <martin@ximian.com>
20949
20950         * debug-mono-symfile.c: Completely rewrote the type section.
20951         Instead of using individual malloc()ed fields, we use one big
20952         continuous memory area and offsets into this area.
20953         See the comments in the source code for details.
20954
20955 2002-12-30  Martin Baulig  <martin@ximian.com>
20956
20957         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
20958
20959 2002-12-30  Martin Baulig  <martin@ximian.com>
20960
20961         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
20962         line number table in this data blob instead of using an external
20963         pointer.
20964
20965 2002-12-28  Martin Baulig  <martin@ximian.com>
20966
20967         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20968
20969 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
20970
20971         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
20972         as a boxed return type.
20973
20974 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
20975
20976         * appdomain.c
20977         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
20978         g_build_filename to properly get separators on the filename created.
20979
20980         * object.h: Small change, introduce MonoMarshalByRefObject to
20981         track the layout of that structure in the C# universe as we make
20982         changes there.
20983
20984 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
20985
20986         * object.c: removed assert to allow static fields on interfaces.
20987         * loader.c: a TypeSpec may be used for any type, not just arrays.
20988
20989 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20990
20991         * class.c, class.h: added mono_class_array_element_size ().
20992         Ignore static methods in interfaces.
20993
20994 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20995
20996         * threads.c: fixed the build under cygwin.
20997
20998 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
20999
21000         * reflection.c: handle nullref constants. Allocate keys for
21001         reflection handles with the GC.
21002
21003 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21004
21005         * threads.c, threads.h: added mono_thread_get_abort_signal()
21006         to get a suitable signal for thread abort.
21007
21008 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21009
21010         * metadata.c: fix handling of ExportedType table.
21011
21012 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21013
21014         * icall.c: added WriteWindowsDebugString internal call.
21015
21016 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21017
21018         * reflection.h: added fields to match C# implementation.
21019
21020 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21021
21022         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
21023
21024 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
21025
21026         * gc.h, gc-internal.h: Rename header for GC internal calls to
21027         gc-internal.h from gc.h as to not clash with Boehm GC having its
21028         header installed as <gc.h> in outside include paths.
21029         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
21030         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
21031
21032 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21033
21034         * icall.c: assign minor, build and revision in FillName.
21035
21036 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
21037
21038         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
21039         Added support for running code generated by Reflection.Emit.
21040
21041 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21042
21043         * appdomain.c: check for NULL argument in LoadFrom.
21044
21045 2002-12-10  Dick Porter  <dick@ximian.com>
21046
21047         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
21048
21049 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21050
21051         * appdomain.c: fix buglet when building exe file name.  Handle full
21052         assembly name (needed after latest changes to AssemblyName).
21053         * image.c:
21054         (mono_image_close): free some hashtables.
21055
21056 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
21057
21058         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
21059         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
21060         on some systems (redhat 7.3) 
21061
21062 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
21063
21064         * threads.c: delete the critical section of a sync block,
21065         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
21066
21067 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
21068
21069         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
21070
21071 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21072
21073         * appdomain.[ch]: handle the assembly preload event to try loading the
21074         assemblies using the paths we have in the current domain.
21075
21076         * assembly.[ch]: created an assembly preload hook that is called to try
21077         loading the assembly by other means that the ones provided here.
21078
21079         * domain.c: initialize the domain search path.
21080
21081         From now on, assemblies (TODO: except corlib and System) are loaded
21082         according to these rules when using mono_assembly_load ():
21083
21084                 1. It tries to load the assembly from the ApplicationBase
21085                 of the current domain appending .dll and .exe (TODO: have to
21086                 try loading from name/name.dll and name/name.exe).
21087
21088                 2. It tries the search path specified in PrivateBinPath for the
21089                 current domain (if any).
21090
21091                 3. Previous behavior.
21092
21093 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
21094
21095         * icall.c: implemented GetInterfaceMap() related icall.
21096         * domain.c, loader.h: load MethodInfo in mono_defaults.
21097
21098 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21099
21100         * gc.c: disable the finalizer thread for now, untill all the issues
21101         with it are resolved.
21102
21103 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21104
21105         * string-icalls.c: handle embedded nulls in string ctor when the
21106         length is specified.
21107
21108 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21109
21110         * class.c: look for explicit interface implementation in parent
21111         classes, too.
21112
21113 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
21114
21115         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
21116
21117 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21118
21119         * gc.c: protect handles with a critical section.
21120
21121 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21122
21123         * icall.c:
21124         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
21125         parameters. If no assembly specified, try getting the type from all
21126         the assemblies in the current domain, else, load the assembly and get
21127         the type from it.
21128
21129 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21130
21131         * marshal.c: applied patch from Aleksey Demakov that fixes
21132         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
21133
21134 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21135
21136         * icall.c: fixed get_location.
21137
21138 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
21139
21140         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
21141         declarations to make it work with older gcc. 
21142
21143         * loader.c (mono_get_method): set signature->pinvoke for native calls
21144
21145 2002-11-20  Dick Porter  <dick@ximian.com>
21146
21147         * threads.c (mono_thread_init): Set the main thread's handle
21148
21149 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21150
21151         * gc.c: allow compilation without GC support. Changed to match the
21152         mono coding style.
21153
21154 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21155
21156         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
21157
21158 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
21159
21160         * reflection.c: set a public key token on the core assemblies.
21161
21162 2002-11-18  Dick Porter  <dick@ximian.com>
21163
21164         * threads.c: Split out some thread initialisation so that other
21165         files can set the start callback function.
21166
21167         * gc.c: Run finalisers in a separate thread, to avoid stack
21168         overflow.  Fixes bug 31333.
21169
21170         * appdomain.c: Set up GC finalisation thread.
21171
21172         * reflection.c: 
21173         * object.c: 
21174         * domain.c: Use gc.h macros for GC_malloc
21175         
21176 2002-11-15  Dick Porter  <dick@ximian.com>
21177
21178         * threadpool.c: 
21179         * threads.c:
21180         * appdomain.c: Removed mono_runtime_init_with_attach(),
21181         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
21182         merging the extra parameter with the existing function.  Removed
21183         unneeded code in mono_thread_attach().
21184
21185 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
21186
21187         * image.c (mono_image_loaded_by_guid): a method to get loaded
21188         images by guid. 
21189         (load_metadata_ptrs): we store the guid as string.
21190
21191 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
21192
21193         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
21194
21195         * metadata.c (mono_guid_to_string): imported method form Zoltan
21196         Varga (slightly modified)
21197
21198         * assembly.c (mono_assembly_open): load precompiled code
21199
21200         * loader.h (MonoMethod): we store the method token for use in the
21201         aot compiler. 
21202
21203 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21204
21205         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
21206         the hook function called when an assembly is loaded.
21207         
21208         * domain.c: Modified file.
21209         (mono_domain_assembly_load): removed hash table insertion of assemblies.
21210
21211         Fixes bug #33196.
21212
21213 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
21214
21215         * reflection.c: Map PEFileKind to the value expected by the WinNT
21216         image loader. 
21217
21218 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21219
21220         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
21221         Read until the buffer is filled completely.
21222
21223 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21224
21225         * icall.c: implemented MonoType.InternalGetEvent ().
21226
21227 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21228
21229         * appdomain.c: implemented InitAppDomainSetup. Delayed
21230         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
21231         the entry_assembly.
21232
21233         * assembly.c: base_dir is now an absolute path ending with
21234         G_DIR_SEPARATOR.
21235
21236         * icall.c: modified get_location according to the above changes.
21237
21238         * object.c: init AppDomain.SetupInformation for the default domain after
21239         we have the entry assembly.
21240
21241         * domain.c: when unloading a domain, setup = NULL.
21242
21243 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
21244
21245         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
21246
21247 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
21248
21249         * object.h, object.c: introduced mono_object_get_virtual_method ()
21250         to lookup the method invoked on an object when a callvirt is done on
21251         a method.
21252         * icall.c: make MethodInfo::Invoke() always do a virtual call.
21253
21254 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21255
21256         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
21257         current domain when loaded an assembly and failed to load it.
21258
21259         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
21260
21261 2002-10-31  Dick Porter  <dick@ximian.com>
21262
21263         * icall.c: 
21264         * file-io.h: 
21265         * file-io.c: Return the error status in a parameter, as the
21266         GetLastError() value has long since been blown away if we try and
21267         look it up in a subsequent internal call invocation.  Delete the
21268         GetLastError() internal call, because it's useless.
21269
21270 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
21271
21272         * class.[ch]: added cast_class to fix bug 29517
21273
21274 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
21275
21276         * marshal.c: create valid IL code in the filter clause:
21277         the new JIT is less forgiving:-)
21278
21279 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21280
21281         * icall.c: removed get_property internal call.
21282
21283 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
21284
21285         * appdomain.h domain.c: Added an ID to appdomains.
21286         
21287         * threads.c threads.h icall.c: Implement icall
21288         Thread:GetDomainID(), and remove unused icall 
21289         CurrentThreadDomain_internal.
21290
21291 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21292
21293         * icall.c: Don't recurse through the base types in GetConstructor.
21294         Fixes bug #32063. 
21295
21296 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
21297
21298         * mempool.h, mempool.c: added mono_mempool_empty() and
21299         mono_mempool_stats().
21300
21301 2002-10-23  Dick Porter  <dick@ximian.com>
21302
21303         * file-io.c: 
21304         * file-io.h: 
21305         * icall.c: Added MonoIO.GetFileType internal call
21306
21307 2002-10-17  Dick Porter  <dick@ximian.com>
21308
21309         * appdomain.c (mono_runtime_cleanup): Don't signal the async
21310         delegate semaphore before waiting for all threads to finish,
21311         because new threads can also call async delegates.  Fixes bug
21312         32004.
21313
21314         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
21315         of 3 seconds, in case another async job is queued.  (This part is
21316         needed because the bug fix reintroduced the 3s exit lag.)  This
21317         makes the mono_runtime_shutdown flag superfluous.
21318
21319 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
21320
21321         * reflection.c: include ehader size in method section headers.
21322         Really check for suplicated modules entries.
21323
21324 2002-10-17  Martin Baulig  <martin@gnome.org>
21325
21326         * debug-mono-symfile.c: Added back support for locals.
21327
21328 2002-10-14  Martin Baulig  <martin@gnome.org>
21329
21330         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
21331         MONO_TYPE_VOID.
21332
21333 2002-10-14  Martin Baulig  <martin@gnome.org>
21334
21335         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
21336         mono_class_get() instead of looking in the class cache. 
21337
21338 2002-10-13  Martin Baulig  <martin@gnome.org>
21339
21340         * debug-mono-symfile.c: Set version number to 28, include the
21341         signature in method names.
21342
21343 2002-10-13  Martin Baulig  <martin@gnome.org>
21344
21345         * debug-mono-symfile.h: Set version number to 27.
21346
21347 2002-10-11  Martin Baulig  <martin@gnome.org>
21348
21349         * gc.c: Don't register/unregister NULL pointers as disappearing links.
21350
21351 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21352
21353         * metadata.c, metadata.h: added helper function to allocate signatures.
21354
21355 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21356
21357         * icall.c: added internal call to get the location of machine.config.
21358
21359 2002-10-08  Martin Baulig  <martin@gnome.org>
21360
21361         * debug-mono-symfile.c: Ignore classes with a pending init for the
21362         moment.
21363
21364 2002-10-03  Dick Porter  <dick@ximian.com>
21365
21366         * threads.c: Freebsd pthread_t is a pointer
21367
21368 2002-10-03  Dick Porter  <dick@ximian.com>
21369
21370         * socket-io.c: Implemented GetHostName_internal
21371
21372 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21373
21374         * mono-config.c:
21375         (mono_config_parse_file): don't leak the text.
21376
21377 2002-10-02  Martin Baulig  <martin@gnome.org>
21378
21379         * debug-mono-symfile.c: Added support for methods.
21380
21381 2002-10-01  Martin Baulig  <martin@gnome.org>
21382
21383         * debug-mono-symfile.c: Don't emit methods and line numbers for
21384         the dynamic symbol file, just write the type table.  We can easily
21385         have an external helper program which creates a symbol file for an
21386         IL file.        
21387
21388 2002-10-01  Dick Porter  <dick@ximian.com>
21389
21390         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
21391         Only add the handle to the cleanup array when we're about to
21392         launch the thread.  Bug 31425 deadlocked when the test was run on
21393         mono under w32.
21394
21395 2002-10-01  Martin Baulig  <martin@gnome.org>
21396
21397         * debug-mono-symfile.c: Added support for properties.
21398
21399 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21400
21401         * reflection.c: unaligned store fix from Mark Crichton
21402         <crichton@gimp.org>.
21403
21404 2002-09-27  Martin Baulig  <martin@gnome.org>
21405
21406         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
21407         New interncall.
21408
21409 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21410
21411         * assembly.h, assembly.c: use a sane API to hook into the assembly
21412         loading process instead of a useless special-purpouse hack
21413         (ngen needs a hook, too, for example).
21414
21415 2002-09-27  Dick Porter  <dick@ximian.com>
21416
21417         * threads.c (mono_thread_init): Call GetCurrentProcess() so
21418         io-layer can set up some process handle info.  Not needed on w32,
21419         but doesn't hurt either.
21420
21421         * process.c: Pass the program name in the second parameter to
21422         CreateProcess, so the path is searched.  Include the working
21423         directory. Implemented process name, process enumeration, and some
21424         process detail internal calls.
21425         
21426         * icall.c: Added internal calls for process lookup, and some
21427         process details
21428
21429 2002-09-26  Martin Baulig  <martin@gnome.org>
21430
21431         * assembly.c (mono_install_open_assembly_hook): New global
21432         function to install a function to be invoked each time a new
21433         assembly is loaded.
21434         (mono_assembly_open): Run this callback function if set.
21435
21436         * debug-mono-symfile.c: Put back line numbers for the dynamic
21437         symbol file and also record the .il file as source file.  This
21438         allows us to install the temporary symbol file as `file.dbg' just
21439         like a compiler-generated one.
21440
21441 2002-09-26  Nick Zigarovich <nick@chemlab.org>
21442
21443         * Corrected typo in gc.c (BOHEM vs BOEHM).
21444
21445 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21446
21447         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
21448         GetProperties. Also avoid calling g_slist_length in GetProperties and
21449         GetMethods.
21450
21451 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21452
21453         * reflection.c: avoid unaligned stores (bug spotted by
21454         Mark Crichton  <crichton@gimp.org>).
21455
21456 2002-09-25  Martin Baulig  <martin@gnome.org>
21457
21458         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
21459         instead of guint64 for addresses and added prologue/epilogue info.
21460
21461 2002-09-25  Martin Baulig  <martin@gnome.org>
21462
21463         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
21464         store line number info.  For the dynamic symbol file, we only need
21465         to provide the JIT generated dynamic line number info for the dynamic
21466         symbol file.
21467
21468 2002-09-25  Martin Baulig  <martin@gnome.org>
21469
21470         * debug-mono-symfile.h: Incremented version number.
21471
21472 2002-09-24  Martin Baulig  <martin@gnome.org>
21473
21474         * class.c (mono_debugger_class_init_func): New global function
21475         pointer variable.
21476         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
21477         call it.
21478
21479         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
21480         function.  This is called via the mono_debugger_class_init_func
21481         hook to add all types to the dynamic type table.
21482         (ves_icall_MonoDebugger_GetType): New interncall to get a class
21483         from its metadata token.
21484
21485         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
21486         New interncall for the debugger.
21487
21488 2002-09-24  Nick Drochak <ndrochak@gol.com>
21489
21490         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
21491         before using it in case it is null.
21492         
21493 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21494
21495         * metadata.c: allow custom modifiers in local var signatures
21496         (bug spotted by Zoltan Varga).
21497
21498 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21499
21500         * class.c: deal with the <Module> class that may have a NULL vtable.
21501         Eliminate warnings.
21502
21503 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21504
21505         * image.c, image.h: more strong name helpers.
21506         * monosn.c: more work: convert pem keys to cryptoapi format.
21507
21508 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
21509
21510         * string-icalls.c: speedup IndexOf.
21511
21512 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21513
21514         * icall.c: updates from Zoltan.2.Varga@nokia.com.
21515
21516 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21517
21518         * icall.c: cleanup: use mono_object_domain ().
21519
21520 2002-09-23  Martin Baulig  <martin@gnome.org>
21521
21522         * debug-mono-symfile.c: Improved type support.
21523
21524 2002-09-22  Martin Baulig  <martin@gnome.org>
21525
21526         * debug-mono-symfile.c: Added support for reference types and strings.
21527
21528 2002-09-22  Martin Baulig  <martin@gnome.org>
21529
21530         * debug-mono-symfile.c: Started to work on the type table.
21531
21532 2002-09-21  Martin Baulig  <martin@gnome.org>
21533
21534         * debug-mono-symfile.c: Largely reworked the symbol table format.
21535         The symbol table is now incrementally updated each time a new
21536         method is added.  We're now also using our own magic and version
21537         so that you don't need to recompile all your classes if the
21538         dynamic table changes.
21539         (mono_debug_update_mono_symbol_file): Removed.
21540         (mono_debug_symfile_add_method): New function to add a method.
21541
21542 2002-09-21  Martin Baulig  <martin@gnome.org>
21543
21544         * icall.c
21545         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
21546         New interncall.
21547
21548         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
21549         New interncall to get a method from its metadata token.
21550
21551 2002-09-21  Martin Baulig  <martin@gnome.org>
21552
21553         * debug-mono-symfile.c: Create type table.
21554
21555 2002-09-20  Martin Baulig  <martin@gnome.org>
21556
21557         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
21558
21559 2002-09-20  Martin Baulig  <martin@gnome.org>
21560
21561         * debug-mono-symfile.c: Provide information about params and locals.
21562
21563 2002-09-20  Martin Baulig  <martin@gnome.org>
21564
21565         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
21566         New interncall.
21567
21568         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
21569         interncall to get a method from its metadata token.
21570
21571 2002-09-20  Martin Baulig  <martin@gnome.org>
21572
21573         * debug-mono-symfile.c: Added a few checks for method->header
21574         being non-NULL.  This should never happen, but for the moment
21575         let's use a g_warning() rather than a g_assert().
21576
21577 2002-09-19  Mark Crichton  <crichton@gimp.org>
21578
21579         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
21580         even if support for it isn't present.  Added an #ifdef to fix this.
21581
21582         * socket-io.c: Added checks back for Solaris support.
21583
21584 2002-09-19  Martin Baulig  <martin@gnome.org>
21585
21586         * debug-mono-symfile.c (read_string, write_string): Reflect latest
21587         changes in the symbol file format.
21588
21589 2002-09-18  Martin Baulig  <martin@gnome.org>
21590
21591         * debug-mono-symfile.c: Set version number to 21.
21592
21593 2002-09-18  Dick Porter  <dick@ximian.com>
21594
21595         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
21596         on netbsd.  Fixes bug 30051.
21597
21598 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21599
21600         * reflection.c:
21601         (set_version_from_string): little fix.
21602
21603 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21604
21605         * monosn.c, Makefile.am: added strong name utility.
21606         * reflection.h, reflection.c: implemented delayed signing,
21607         locale, version and hash id assembly attributes.
21608
21609 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
21610
21611         * loader.c, metadata.c: load param attributes in signatures.
21612
21613 2002-09-16  Martin Baulig  <martin@gnome.org>
21614
21615         * debug-mono-symfile.c: Added string table with all method names.
21616
21617 2002-09-14  Martin Baulig  <martin@gnome.org>
21618
21619         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
21620         fast method lookup.
21621
21622 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21623
21624         * reflection.c: record the public key token of referenced assemblies.
21625
21626 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21627
21628         * image.c, image.h: added functions to get the strong name and the
21629         public key of an assembly.
21630         * pedump.c: use them.
21631
21632 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
21633
21634         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
21635
21636 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
21637
21638         * marshal.c (mono_marshal_get_managed_wrapper): Added
21639         MONO_TYPE_BOOLEAN 
21640
21641 2002-09-11  Martin Baulig  <martin@gnome.org>
21642
21643         * gc.c: Call GC_unregister_disappearing_link() on all links when
21644         finalizing them, this is necessary to aviod a crash in boehm's
21645         finalize handler.
21646
21647 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21648
21649         * gc.c: handle GetTarget for finalized objects spotted and fixed by
21650         nick@chemlab.org.
21651
21652 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
21653
21654         * icall.c: implemented MonoType::Module.
21655         * reflection.c, reflection.h: mono_module_get_object () from
21656         Tomi Pakarinen <tomi.pakarinen@welho.com>.
21657
21658 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21659
21660         * icall.c: ignore overridden methods in GetMethods ().
21661         Fix for FieldInfo::SetValue().
21662         * object.c: handle float/double in runtime invoke.
21663
21664 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21665
21666         * object.c: allow a constructor to be called again on an object.
21667
21668 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21669
21670         * class.h, class.c: move field layout code to it's own function and
21671         export it. Get an interface id earlier. Move fields in MonoClass
21672         so they are more cache friendly and align the bitfields.
21673         * loader.c: temporary handle get_param_names() for a runtime method.
21674         * reflection.c, reflection.h: more code to handle runtime creation of
21675         types.
21676
21677 2002-09-09  Martin Baulig  <martin@gnome.org>
21678
21679         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
21680         signature with the pinvoke field being set for the actual call.
21681
21682 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21683
21684         * icall.c: removed some unused icalls. Start of map of glib charsets
21685         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
21686
21687 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21688
21689         * debug-helpers.c: break infinite loop (found and fixed by
21690         Holger Arnold <harnold@gmx.de>).
21691
21692 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21693
21694         * icall.c: target may be null in create_delegate.
21695
21696 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21697
21698         * marshal.c: handle a boolean return type.
21699
21700 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21701
21702         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
21703
21704 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21705
21706         * gc.c: fix weakreferences.
21707
21708 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
21709
21710         * icall.c: added icall to get default codepage.
21711
21712 2002-09-03  Dick Porter  <dick@ximian.com>
21713
21714         * threads.h: 
21715         * threads.c: Use MonoThread instead of MonoObject where
21716         apropriate.
21717
21718         Store running thread objects in a hash table, so that we have all
21719         the info to hand when waiting for them to finish
21720         (means we don't need OpenThread() any more, so mingw builds should
21721         be fully functional again.)
21722
21723         * verify.c:
21724         * object.h: Added thread ID to MonoThread
21725
21726 2002-09-03  Martin Baulig  <martin@gnome.org>
21727
21728         * icall.c (System.Reflection.Assembly::get_location): New interncall.
21729
21730 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21731
21732         * icall.c: fixed leak in get_temp_path. Thanks lupus.
21733
21734 2002-09-03  Martin Baulig  <martin@gnome.org>
21735
21736         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
21737         argument to store the end address of the disassembled instruction.
21738
21739         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
21740         here from debug-symfile.h.
21741         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
21742         JIT into this struct.
21743         (MonoSymbolFile): Added `char *image_file' field.
21744         (MonoDebugGetMethodFunc): Removed.
21745         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
21746         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
21747         (mono_debug_find_method): New method.
21748
21749         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
21750         create a full symbol file.
21751         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
21752         and static symbol files.
21753         (mono_debug_find_method): The symbol file keeps an internal method hash,
21754         call this to get a MonoDebugMethodInfo from a MonoMethod.
21755
21756         * debug-symfile.[ch]: Removed.
21757
21758 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
21759
21760         * image.c (do_mono_image_open): Remove linker version check.
21761
21762 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
21763
21764         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
21765         wrappers for instance methods.
21766         
21767 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21768
21769         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
21770
21771 2002-08-28  Dick Porter  <dick@ximian.com>
21772
21773         * Makefile.am: Export HOST_CC for w32 builds
21774
21775 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21776
21777         * file-io.c process.c: MonoString are null terminated, no
21778         need for mono_string_to_utf16() anymore.
21779
21780 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21781
21782         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
21783
21784 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
21785
21786         * icall.c, reflection.h: speedup System.MonoType.
21787
21788 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21789
21790         * reflection.c: allow null as the value of a string argument in
21791         custom attributes constructors.
21792
21793 2002-08-27  Martin Baulig  <martin@gnome.org>
21794
21795         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
21796         `trampoline_address' field.
21797
21798 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
21799
21800         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
21801         check (fixes bug #29486) 
21802
21803 2002-08-27  Martin Baulig  <martin@gnome.org>
21804
21805         * debug-mono-symfile.c: Changed the file format in a way that allows us
21806         open it read-only and to use a specially malloced area for all the
21807         dynamic data.  We can now also generate a symbol file on-the-fly if we're
21808         debugging IL code and there is no MCS generated symbol file for it.
21809
21810 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21811
21812         * object.c: added a define for a good string and array
21813         creation speedup (not enabled by default because we need to deal with
21814         the synch stuff).
21815
21816 2002-08-26  Martin Baulig  <martin@gnome.org>
21817
21818         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
21819         function to create a dynamic symbol file.  This is used by the
21820         debugger to create a symbol file for IL code on-the-fly.
21821
21822 2002-08-26  Martin Baulig  <martin@gnome.org>
21823
21824         * loader.c (mono_lookup_pinvoke_call): Include the error message
21825         from g_module_error() in the error message.
21826
21827 2002-08-24  Martin Baulig  <martin@gnome.org>
21828
21829         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
21830         function to update the symbol file.  The symbol file is mmap()ed
21831         writable, but private.  This allows us to install the symbol file
21832         together with the assembly.
21833
21834 2002-08-24  Martin Baulig  <martin@gnome.org>
21835
21836         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
21837         but they can read the new symbol file format which mcs is now creating.
21838
21839         * debug-symfile.c (mono_debug_find_source_location): Moved to
21840         debug-mono-symfile.c; this is now operating on the new symbol file.
21841
21842 2002-08-23  Martin Baulig  <martin@gnome.org>
21843
21844         * debug-helpers.c (mono_method_desc_from_method): New function to get
21845         a MonoMethodDesc from a MonoMethod.
21846
21847 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21848
21849         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
21850         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
21851
21852 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
21853
21854         * string-icalls.[ch]: make helper methods static.
21855
21856 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21857
21858         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
21859         types to it and to SetValueInternal.
21860
21861         * object.c: Moved handle_enum label to its proper place. This was the
21862         f... bug! ;-)
21863
21864         This time i compiled mcs and gtk-sharp and they both work.
21865
21866 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21867
21868         * icall.c: reverted partially my previous patch until 
21869         object.c:set_value handles enums correcly.
21870
21871 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21872
21873         * icall.c:
21874         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
21875         (ves_icall_System_Environment_get_MachineName): removed warning when
21876         compiling under cygwin.
21877
21878 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21879
21880         * object.c: fixed field_get_value() for reference types.
21881
21882 2002-08-22  Dick Porter  <dick@ximian.com>
21883
21884         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
21885         Don't free a buffer while it's still needed.  Patch from Jonathan
21886         Liger <Jonathan.liger@wanadoo.fr>
21887
21888 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
21889
21890         * icall.c (ves_icall_System_Environment_get_Platform): Add new
21891         internal call.
21892
21893 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
21894
21895         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
21896         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
21897
21898         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
21899         we call unmanaged code which throws exceptions.
21900
21901 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21902
21903         * appdomain.h: added per-domain entry_assembly.
21904         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
21905         arguments.
21906         * icall.c: Assembly::GetEntryAssembly icall.
21907         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
21908         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
21909
21910 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21911
21912         * appdomain.h, gc.c: added mono_domain_finalize ().
21913
21914 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21915
21916         * object.c:
21917         (mono_print_unhandled_exception): changed g_warning by g_printerr
21918         because g_log has a 1024 characters limit (yeah, i got a big stack
21919         trace). Don't print exception name, that should be in ToString 
21920         returned string.
21921
21922 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21923
21924         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
21925         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
21926
21927 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21928
21929         * object.c:
21930         (mono_print_unhandled_exception): after previous commit, i realized
21931         that MS calls ToString on the exception. I changed this function to
21932         do that. This way we get stack_trace for free.
21933
21934 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21935
21936         * object.c:
21937         (mono_print_unhandled_exception): invoke Message property instead of
21938         getting 'message' field from Exception. Don't allocate memory for
21939         'trace' and 'message' if not needed.
21940
21941 2002-08-18  Dick Porter  <dick@ximian.com>
21942
21943         * unicode.c: Fix asserts to match Encoder.cs checks
21944
21945 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21946
21947         * marshal.c: fix unaligned store issue and a few wrong
21948         opcode argument types.
21949
21950 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21951
21952         * icall.c: added GetUninitializedObjectInternal internal call.
21953
21954 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
21955
21956         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
21957         to the right domain.
21958
21959 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
21960
21961         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
21962
21963         * class.c (class_compute_field_layout): set blittable to false for Strings
21964
21965         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
21966
21967 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21968
21969         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
21970         first chunk of code to create types at runtime. Code to
21971         handle ReflectedType/DeclaringType. Make reflection handles
21972         domain specific.
21973
21974 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
21975
21976         * class.c: set correct name in arrays.
21977
21978 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
21979
21980         * appdomain.c (mono_domain_transfer_object): make it work with
21981         valuetypes. bug fixes.
21982
21983 2002-08-12  Dick Porter  <dick@ximian.com>
21984
21985         * object.h: Rename some parameters to avoid c++ keywords (Patch
21986         from Joseph Wenninger <kde@jowenn.at>)
21987
21988 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
21989
21990         * icall.c: added icall to implement Assembly.GetFile*.
21991
21992 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21993
21994         * reflection.h, reflection.c: code to embed managed resources.
21995
21996 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21997
21998         * class.c: move all the type size stuff into
21999         class_compute_field_layout().
22000
22001 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22002
22003         * class.c: ensure enums have always the correct instance size.
22004         * unicode.c: remove wrong assert.
22005
22006 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22007
22008         * assembly.c: fix mem corruption issue.
22009         * image.h, image.c: added mono_image_get_resource () to access
22010         managed resources.
22011         * icall.c: implemented Assembly.EntryPoint property and some
22012         Managed Resources related internalcalls.
22013
22014
22015 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22016
22017         * image.c, image.h: impemented mono_image_get_entry_point ().
22018         * appdomain.c: use mono_image_get_entry_point.
22019
22020 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
22021
22022         * reflection.c: support the object type argument when loading
22023         custom attributes.
22024
22025 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
22026
22027         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
22028         String as return type.
22029
22030 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
22031
22032         * reflection.c: fix encoding of named args for custom attrs to match
22033         the ms implementation. Read them back when instantiating custom
22034         attributes.
22035
22036 2002-08-02  Radek Doulik  <rodo@ximian.com>
22037
22038         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
22039         by Dietmar as quick fix
22040         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
22041         16 as stack size, used on more places as quick fix before Dietmar
22042         will fix it properly
22043
22044 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
22045
22046         * object.h, object.c: added accessors for fields and properties.
22047
22048 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
22049
22050         * class.c, class.h: made mono_class_get_field_from_name ()
22051         loop on parent types.
22052         Added mono_class_get_property_from_name ().
22053
22054 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22055
22056         * class.c, class.h: move the code to setup the type vtable in its own
22057         function so that it can be reused also for types created at runtime.
22058         Eliminate the "class" identifier from the header file.
22059         * reflection.c: setup the vtable for enums so that we can create
22060         objects for use in SetConstant ().
22061
22062 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
22063
22064         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
22065         instead of the delegate itself as this pointer (bug #28383)
22066
22067 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
22068
22069         * marshal.c (mono_marshal_get_managed_wrapper): added return type
22070         conversions.
22071
22072 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22073
22074         * loader.c: don't set the pinvoke bit on icalls.
22075
22076 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
22077
22078         * debug-helpers.c (mono_method_full_name): only print a number to
22079         indicate wrapper type (so that the output is more readable in traces).
22080
22081 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
22082
22083         * class.c (mono_class_init): include method override patch from Paolo
22084
22085 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
22086
22087         * icall.c: fixed GetTypeCode().
22088
22089 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
22090
22091         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
22092         use real delegate invoke function to make it work with multicast
22093         delegates (fix bug# 28291).
22094
22095 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22096
22097         * object.c: load constant strings.
22098
22099 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22100
22101         * reflection.c: no magic numbers.
22102         * tabledefs.h: security action enum.
22103
22104 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22105
22106         * assembly.c: fix possible memory corruption.
22107
22108 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22109
22110         * reflection.h, reflection.c: added support for linking resources.
22111         * verify.c: check we have an updated corlib.
22112
22113 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
22114
22115         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
22116         string arrays.
22117         (mono_marshal_string_array): null terminate unmanaged string arrays.
22118         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
22119
22120 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22121
22122         * icall.c: Type.GetType () can now return also types from the
22123         calling assembly.
22124
22125 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22126
22127         * loader.h, loader.c: stack walking support.
22128         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
22129         GetCallingAssembly.
22130
22131 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
22132
22133         * marshal.c: added optimisations for blittable types 
22134
22135         * class.c (mono_array_class_get): do not set blittable attribute on arrays
22136         (mono_class_setup_mono_type): set blittable attribute for single
22137         and double.
22138
22139         * marshal.c (mono_string_utf8_to_builder): impl.
22140         (mono_string_builder_to_utf8): impl.
22141         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
22142
22143 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
22144
22145         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
22146         (mono_marshal_get_managed_wrapper): impl. byref types
22147
22148 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22149
22150         * icall.c:
22151         (search_method): don't display debug message. 
22152
22153 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
22154
22155         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
22156
22157 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22158
22159         * appdomain.c: set the missing filename when throwing exception.
22160
22161 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
22162
22163         * metadata.c (mono_type_size): code cleanup
22164         (mono_type_stack_size): removed some test code
22165
22166 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
22167
22168         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
22169         mono_get_exception_file_not_found now.
22170
22171         * exception.c (mono_exception_from_name_two_strings): New version
22172         that will call a constructor with two string arguments. 
22173         (mono_get_exception_file_not_found): New helper routine, used to
22174         report file-not-found errors.
22175
22176 2002-07-20  Dick Porter  <dick@ximian.com>
22177
22178         * process.h:
22179         * process.c: Pass file handles to CreateProcess
22180         
22181         * icall.c:
22182         * file-io.h:
22183         * file-io.c: Implemented CreatePipe
22184
22185 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
22186
22187         * metadata.c (mono_get_param_info): set alignment for value types
22188
22189 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22190
22191         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
22192         Constify mono_domain_assembly_open().
22193         * loader.c: handle null namespace in icalls.
22194
22195 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
22196
22197         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
22198         (emit_str_to_ptr_conv): marshal object as structs
22199
22200         * metadata.c (mono_type_to_unmanaged): marshal object as structs
22201
22202         * marshal.c (mono_marshal_get_runtime_invoke): support value types
22203
22204 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
22205
22206         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
22207         (mono_marshal_get_native_wrapper): we an now return value types
22208
22209 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22210
22211         * verify.c: more checks implemented.
22212
22213 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
22214
22215         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
22216         (fix bug #27695)
22217         (mono_marshal_get_native_wrapper): allow byref arguments
22218         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
22219         impl. PtrToStringXXX methods
22220         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
22221         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
22222         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
22223         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
22224         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
22225
22226 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22227
22228         * reflection.c: fix buglet in parsing an assembly name.
22229
22230 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
22231
22232         * marshal.c (emit_ptr_to_str_conv): first impl.
22233
22234 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22235
22236         * object.c, class.h: cache the vtable in the class as suggested by
22237         vargaz@freemail.hu (Zoltan Varga).
22238
22239 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22240
22241         * class.h, loader.c: added mono_field_from_token().
22242         * verify.c: first cut of type checking code.
22243
22244 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
22245
22246         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
22247
22248 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
22249
22250         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
22251         (fix bug #27782)
22252         (mono_marshal_get_remoting_invoke): impl.
22253         (mono_delegate_begin_invoke): impl.
22254         (mono_mb_emit_save_args): impl.
22255         (mono_delegate_end_invoke): impl.
22256         (mono_marshal_get_delegate_begin_invoke):
22257         (mono_marshal_get_delegate_end_invoke):
22258         (mono_marshal_get_delegate_invoke): generate a special name for
22259         those methods (including the signature) and associate them whith
22260         the delegate class. 
22261
22262 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
22263
22264         * reflection.[ch]: 
22265         (mono_reflection_type_from_name): now it has a MonoImage parameter
22266         which is used as the default image to search the type in. If the image
22267         is NULL or getting the type from it fails, it defaults to corlib.
22268
22269         * icall.c: changed 1 call to mono_reflection_type_from_name to match
22270         new parameter.
22271
22272 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22273
22274         * reflection.c: update the parameter table index.
22275
22276 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22277
22278         * domain.c: don't include the mark byte in the string hash.
22279
22280 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22281
22282         * icall.cs: icall for Type.GetTypeCode ().
22283         * verify: a couple of fixes and disabled local initialization checks.
22284
22285 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
22286
22287         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
22288
22289         * debug-helpers.c (mono_method_full_name): print the type of the
22290         runtime wrapper
22291
22292         * metadata.c (mono_signature_hash): a hash function for signatures
22293         (mono_signature_hash): better hash algorithm
22294
22295         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
22296
22297         * debug-helpers.c (mono_method_full_name): this can now generate
22298         method names with signatures
22299
22300         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
22301         method dont have this pointers.
22302
22303 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22304
22305         * reflection.c: fixup typebuilder tokens.
22306         * image.c: fix buglet.
22307         * marshal.h: remove whitespace.
22308         * metadata.h, metadata.c: reinstate code that was removed.
22309         * verify.c: handle catch directives and fix another couple of bugs.
22310
22311 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
22312
22313         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
22314         (mono_marshal_get_native_wrapper): make it comp. with the old code
22315         (mono_marshal_get_native_wrapper): support boolean
22316         (mono_marshal_get_managed_wrapper): support more types
22317
22318 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
22319
22320         * class.c (class_compute_field_layout): compute class->blittable attribute.
22321
22322 2002-07-09  Dick Porter  <dick@ximian.com>
22323
22324         * threads.c: Make the thread cleaning up cope with threads that
22325         call ExitThread()
22326
22327 2002-07-08  Radek Doulik  <rodo@ximian.com>
22328
22329         * reflection.c (method_encode_code): use non-translated values to
22330         compute finally_start, this fixes exception handling on ppc, yay!
22331
22332         * decimal.h (struct signscale): fix endianess
22333
22334 2002-07-07  Radek Doulik  <rodo@ximian.com>
22335
22336         * reflection.c: swap box_val and not val
22337
22338 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22339
22340         * reflection.c, reflection.h: handle full assembly info in type name.
22341         Handle Type arguments when loading custom attributes.
22342         * icall.c: updated to use new mono_reflection_type_from_name () method.
22343
22344 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22345
22346         * loader.c:
22347         (method_from_memberref): also print assembly name when method not found.
22348
22349 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22350
22351         * icall.c:
22352         (ves_icall_TypeGetProperties): fixed bug #27473. 
22353
22354 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22355
22356         * reflection.c: display image name and token when cannot find the
22357         .ctor for an attribute.
22358
22359 2002-07-05  Martin Baulig  <martin@gnome.org>
22360
22361         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
22362
22363 2002-07-04  Dick Porter  <dick@ximian.com>
22364
22365         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
22366         compile on mingw.  This will cause mingw builds to not wait for
22367         subthreads to terminate after the main thread does.  I've lodged a
22368         bug with the mingw developers for them to wrap OpenThread().
22369
22370 2002-07-03  Dick Porter  <dick@ximian.com>
22371
22372         * threads.c: Store thread IDs instead of handles, because
22373         GetCurrentThread() returns a pseudohandle and therefore stores
22374         useless values.  mono_thread_cleanup() continues checking the
22375         array of threads until it is empty, to cope with subthreads
22376         spawning new threads after the main thread has finished.
22377
22378         * profiler.h:
22379         * profiler.c:
22380         * profiler-private.h: Pass the thread ID to thread profiler
22381         functions, instead of a handle
22382
22383 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22384
22385         * verify.c: fixes to make it more usable.
22386         * pedump.c: added --verify code to verify IL code in an assembly.
22387
22388 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22389
22390         * reflection.c: turn errors into warnings to allow compiling corlib.
22391
22392 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
22393
22394         * reflection.c: add special cases to compile corlib.
22395
22396 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22397
22398         * reflection.c: handle properties with only a set method.
22399
22400 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22401
22402         * opcodes.h: add enum with opcodes in opval order.
22403
22404 2002-07-01  Dick Porter  <dick@ximian.com>
22405         
22406         * object.h:
22407         * object.c (mono_runtime_run_main): Removed unneeded argument
22408
22409 2002-06-28  Martin Baulig  <martin@gnome.org>
22410
22411         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
22412
22413 2002-06-27  Dick Porter  <dick@ximian.com>
22414
22415         * threads.c: Store the handle in both the parent thread and in the
22416         subthread, to minimise the time between starting a new thread and
22417         storing its ID.
22418
22419 2002-06-26  Dick Porter  <dick@ximian.com>
22420
22421         * appdomain.c (mono_runtime_cleanup): Close the socket library
22422         after all the threads have finished, not before
22423
22424 2002-06-26  Martin Baulig  <martin@gnome.org>
22425
22426         * debug-symfile.c (mono_debug_find_source_location): Added
22427         `guint32 *line_number' argument.  If it's not NULL, store the line number
22428         there and return the file name without the line number.
22429
22430 2002-06-25  Dick Porter  <dick@ximian.com>
22431
22432         * icall.c:
22433         * process.h:
22434         * process.c: Process forking and other support functions
22435
22436 2002-06-25  Dick Porter  <dick@ximian.com>
22437
22438         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
22439         things dont happen when the image is closed.
22440         (mono_image_lookup_resource): Walk the resource section looking
22441         for a particular entry
22442
22443         * cil-coff.h: PE resource section decoding
22444
22445 2002-06-25  Dick Porter  <dick@ximian.com>
22446         
22447         * assembly.h:
22448         * assembly.c: 
22449         (mono_assembly_foreach): Accessor functions to walk the list of
22450         loaded assemblies
22451         (mono_assembly_set_main):
22452         (mono_assembly_get_main): Process methods need to know which
22453         assembly is the "main" one
22454
22455         * object.c (mono_runtime_run_main): Record the main assembly
22456
22457         * debug-helpers.c: Fix typo
22458
22459 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
22460
22461         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
22462         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
22463
22464 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22465
22466         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
22467
22468 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
22469
22470         * image.c (do_mono_image_open): Initialize reference count,
22471         otherwise we leak the MonoImage.
22472
22473 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22474
22475         * reflection.c: small tweak to handle self-hosting.
22476
22477 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22478
22479         * reflection.c: fix type name parse code.
22480
22481 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22482
22483         * reflection.c: break out of the loop.
22484         * image.c: special case corlib.
22485
22486 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22487
22488         * reflection.c: add all the custom attrs at the end to ensure the
22489         ctors have been properly initialized when the attributes are defined
22490         in the current assembly.
22491
22492 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22493
22494         * reflection.c: handle correctly multiple-nested types.
22495
22496 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
22497
22498         * row-indexes.h: fix typos.
22499         * reflection.c: adjust for typos and fix method_def_or_ref
22500         encoding in MethodImpl table.
22501
22502 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22503
22504         * reflection.c: fix entry point patching (thanks Serge!).
22505
22506 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
22507
22508         * verify.c: add check for System.Exception
22509
22510 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22511
22512         * image.c, class.c: minifix for code just c&p'ed.
22513         * reflection.c: warning fix.
22514         * object.h, loader.h, domain.c: load also StringBuilder.
22515
22516 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22517
22518         * marshal.h, marshal.c: some support code to handle complex marshaling.
22519
22520 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22521
22522         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
22523         Better signatures with vtable error dump.
22524
22525 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
22526
22527         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
22528
22529 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
22530
22531         * icall.c (ves_icall_Type_GetField): impl.
22532
22533 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22534
22535         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
22536         to retrieve a marshal description blob for a field or param.
22537
22538 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22539
22540         * reflection.h, reflection.c: change order of nested type emission
22541         to avoid table corruption. The NestedTypes table is sorted.
22542         * icall.c: change order of GetConstructor results to workaround mcs bug.
22543
22544 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22545
22546         * reflection.h, reflection.c: handle field and param marshal
22547         information.
22548
22549 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22550
22551         * icall.c, marshal.c marshal.h: more Marshal class implementation.
22552
22553 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22554
22555         * reflection.c: fix call convention.
22556
22557 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22558
22559         * reflection.h, reflection.c: mono_image_get_memberref_token()
22560         takes a type instead of a class, now. Added
22561         mono_image_get_array_token() to create tokens for the special
22562         multi-dim array methods.
22563
22564 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22565
22566         * assembly.c: handle modules (no assembly table). Split
22567         loading references in its own function.
22568         * class.c: handle moduleref resolution scope.
22569         * image.c, image.h: cache module name in image.
22570
22571 2002-06-07  Martin Baulig  <martin@gnome.org>
22572
22573         * reflection.c (mono_image_get_type_info): Only add a class layout entry
22574         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
22575
22576 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22577
22578         * icall.c: more signature fixes that used uint instead of int.
22579
22580 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22581
22582         * reflection.c: fixed signature of field refs.
22583
22584 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22585
22586         * class.c, reflection.c: handle typerefs of nested types
22587         (both on read and when writing files).
22588
22589 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
22590
22591         * icall.c: fix method signatures that tried to workaround the previous
22592         typo, d'oh!
22593
22594 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22595
22596         * debug-helpers.c: fix typo.
22597
22598 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22599
22600         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
22601         rewrote the PE/COFF writing code (our programs are understood by the
22602         ms runtime, now).
22603
22604 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22605
22606         * gc.c, gc.h, icall.c: weakreference support.
22607
22608 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22609
22610         * Makefile.am, mono-config.c: use $(sysconfdir).
22611
22612 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22613
22614         * icall.c: changed default precision of Double.ToString() to 15.
22615         Fixed memory leak. Unified with Single.ToString.
22616
22617 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
22618
22619         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
22620
22621 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22622
22623         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
22624         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
22625         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
22626         and myself.
22627
22628 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22629
22630         * debug-symfile.c, sysmath.c: yet more compilation fixes.
22631
22632 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22633
22634         * reflection.c, socket-io.c: more compilation fixes.
22635
22636 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22637
22638         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
22639         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
22640         unicode.c: warning and compiler compatibility fixes.
22641
22642 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22643
22644         * class.h, metadata.c: fixed warnings/compilation errors.
22645
22646 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22647
22648         * Makefile.am, mono-config.c, mono-config.h: configuration file
22649         support routines.
22650         * loader.c, loader.h: make Dll mapping configurable at runtime in the
22651         config file. Export methods to insert and lookup mappings.
22652
22653 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22654
22655         * reflection.c: handle types and boxed objects in custom attr
22656         constructors.
22657
22658 2002-05-30  Martin Baulig  <martin@gnome.org>
22659
22660         * debug-symfile.c
22661         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
22662
22663 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
22664
22665         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
22666         to lookup the implmap row for a P/Invoke method.
22667         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
22668         P/Invoke method from the runtime on an as needed basis.
22669
22670 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
22671
22672         * metadata.c (mono_metadata_parse_signature): impl.
22673
22674 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22675
22676         * class.c: handle .pack directive.
22677
22678 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22679
22680         * object.c: initialize static fields with RVA data.
22681
22682 2002-05-25  Martin Baulig  <martin@gnome.org>
22683
22684         * debug-symfile.c
22685         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
22686
22687 2002-05-24  Martin Baulig  <martin@gnome.org>
22688
22689         * debug-symfile.c
22690         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
22691         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
22692         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
22693
22694 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22695
22696         * object.c: special case string ctros in invoke.
22697         * gc.c: silly whitespace changes.
22698
22699 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
22700
22701         * threadpool.[ch]: impl. a threadpool that can
22702         be used by mint and mono.
22703
22704 2002-05-22  Martin Baulig  <martin@gnome.org>
22705
22706         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
22707         The first argument is now a `MonoReflectionModuleBuilder *', the return
22708         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
22709         `methods' field to get the method builder.  The `token' argument is the
22710         unfixed token.
22711
22712         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
22713         invalid characters instead of g_assert_not_reached()ing.  This seems
22714         to be the behaviour of mscorlib.
22715
22716 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
22717
22718         * object.c (mono_runtime_invoke_array): applied patch from Rachel
22719         Hestilow to fix bug #25104
22720
22721 2002-05-21  Martin Baulig  <martin@gnome.org>
22722
22723         * debug-symfile.c (mono_debug_find_source_location): New function.
22724         Looks up an IL offset in the line number table and returns the source
22725         location as a string.
22726
22727 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22728
22729         * icall.c:
22730         (mono_double_ToStringImpl): changed %f by %g until we have something
22731         better.
22732
22733 2002-05-21  Nick Drochak  <ndrochak@gol.com>
22734
22735         * icall.c : Use different name for Math.Pow's icall.  Needed to check
22736         parameters first in C#.
22737
22738 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22739
22740         * icall.c, reflection.h: added icall to get info about an event.
22741
22742 2002-05-20  Radek Doulik  <rodo@ximian.com>
22743
22744         * object.c (mono_value_box): don't use memcpy for boxing on BIG
22745         endian
22746         (mono_value_box): don't use memcpy for small sizes on
22747         architectures with unaligned access
22748
22749 2002-05-20  Martin Baulig  <martin@gnome.org>
22750
22751         * reflection.c (mono_reflection_setup_internal_class): Don't crash
22752         if `tb->parent == NULL'.
22753         (mono_reflection_create_internal_class): New function.  This is
22754         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
22755         for enum types.
22756
22757         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
22758         New interncall.
22759
22760 2002-05-19  Martin Baulig  <martin@gnome.org>
22761
22762         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
22763         argument to get the length, don't default to the array length.
22764
22765 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
22766
22767         * assembly.c (mono_assembly_setrootdir): New function used to
22768         override the MONO_ASSEMBLIES directory.
22769
22770 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22771
22772         * icall.c: ValueType_GetHashCode() initialize local var.
22773
22774 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22775
22776         * reflection.c: sort custom attributes table.
22777
22778 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22779
22780         * reflection.c: support named args in custom attributes (write support).
22781
22782 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22783
22784         * reflection.c: fix finally position calculation.
22785
22786 2002-05-15  Radek Doulik  <rodo@ximian.com>
22787
22788         * reflection.c: fixed endianess at many places
22789
22790         * icall.c (ves_icall_InitializeArray): comment out debug msg
22791
22792 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
22793
22794         * object.c (mono_unhandled_exception): new function to handle
22795         unhandled exceptions.
22796         (mono_unhandled_exception): call the UnhandledException event.
22797         (mono_runtime_delegate_invoke): impl.
22798
22799 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
22800
22801         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
22802         returns the RVA, not the direct pointer to the data. Handle the case
22803         when the class size is fixed.
22804
22805 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22806
22807         * reflection.c: fix some endianess issues.
22808
22809 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
22810
22811         * object.c (mono_runtime_invoke): is now able to catch exceptions.
22812
22813         * threads.c (mono_thread_init): added a callback which is invoked
22814         at thread start.
22815
22816 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
22817         
22818         * icall.c: make GetHashCode return non-negative values.
22819
22820 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
22821
22822         * object.c, icall.c, gc.c: revert to address-based hashcode.
22823
22824 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
22825
22826         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
22827
22828 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22829
22830         * icall.c, class.c: special case <Module>.
22831
22832 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
22833
22834         * icall.c: fix bug in GetNow().
22835
22836 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
22837
22838         * object.c (mono_runtime_class_init): make sure that we call all
22839         static class constructors.
22840
22841 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22842
22843         * reflection.c: sort methodsemantics table.
22844
22845 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22846
22847         * reflection.h, reflection.c: honour init locals setting.
22848
22849 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
22850
22851         * icall.c: copied Double ToStringImpl for Single ToStringImpl
22852
22853 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22854
22855         * reflection.c: support ContructorBuilders in attribute blob creation.
22856
22857 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22858
22859         * reflection.c: some changes to build a binary that can be run
22860         directly in windows.
22861
22862 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
22863
22864         * loader.c: print a big message when an icall can't be found.
22865
22866 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22867
22868         * string-icalls.c: fix bug 24248.
22869
22870 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
22871
22872         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
22873         icall.c, reflection.h: separate assembly loading by pathname and by
22874         assembly name. Use the MONO_PATH env var to search for assemblies.
22875
22876 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22877
22878         * assembly.c, image.h: add some support for assemblies
22879         with multiple modules.
22880         * class.c, class.h: export mono_class_from_typeref().
22881         * loader.c: remove duplicated code and use mono_class_from_typeref(),
22882         instead.
22883
22884 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22885
22886         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
22887         documentation says (the ECMA one is correct).
22888
22889 2002-05-02  Dick Porter  <dick@ximian.com>
22890
22891         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
22892         Don't name the synchronisation mutex.
22893
22894 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
22895
22896         * rand.c
22897         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
22898         Make the prototypes match.
22899         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
22900         Same.
22901
22902         * icall.c
22903         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
22904         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
22905         all systems have tm.tm_zone, so use strftime() with %Z to print
22906         the timezone abreviation into a temp string.
22907
22908         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
22909         rather than mono_array_addr() on a MonoString on Big Endian
22910         machines.
22911
22912 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
22913
22914         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
22915         fix bug 24041
22916
22917 2002-04-30  Dick Porter  <dick@ximian.com>
22918
22919         * socket-io.c: Cope with SOCKET being an integer rather than a
22920         pointer now.
22921
22922         * threads.c: Added Thread_free_internal, to deal with thread
22923         handle cleanup.  Moved calls to handle_store() and handle_remove()
22924         to start_wrapper(), so each can only be called once.  Allocate
22925         synchronisation blocks with GC_malloc(), and use GC finalisation
22926         to close the handles.
22927
22928         * icall.c: added System.Threading.Thread::Thread_free_internal
22929
22930 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22931
22932         * icall.c: support Environment.Exit, CommandLineArgs().
22933
22934 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22935
22936         * object.c, object.h: added mono_runtime_run_main () and
22937         mono_runtime_get_main_args () for use in System.Environment.
22938
22939 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22940
22941         * gc.c: fix thinko, enable actual finalization since the jit is now
22942         fixed.
22943
22944 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22945
22946         * gc.c, object.c: take into account that an object may be offset wrt the address
22947         returned by GC_malloc().
22948
22949 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
22950
22951         * image.c: handle files without entries in the assembly table (modules).
22952
22953 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
22954
22955         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
22956         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
22957         allowed to be null when it's System.Object class setup.
22958
22959 2002-04-27  Martin Baulig  <martin@gnome.org>
22960
22961         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
22962         if `tb->parent == NULL' rather than crashing.
22963
22964 2002-04-28  Nick Drochak  <ndrochak@gol.com>
22965
22966         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
22967         calling acos() where asin() should have been called.
22968
22969 2002-04-26  Martin Baulig  <martin@gnome.org>
22970
22971         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
22972         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
22973         there's a subdirectory called `System', but we don't want to read that
22974         subdirectory as an assembly.
22975
22976 2002-04-25  Martin Baulig  <martin@gnome.org>
22977
22978         * debug-symfile.c: Reflect latest MonoString changes.
22979
22980 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22981
22982         * rand.c, rand.h: instance method icalls need to have an explicit
22983         this pointer as first argument in the C implementation.
22984
22985 2002-04-25  Nick Drochak <ndrochak@gol.com>
22986
22987         * icall.c: Fix typo in map for GetNonZeroBytes
22988
22989 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22990
22991         * string-icalls.c : String does now passes unit tests without any 
22992         errors, the following changes has been made:
22993         
22994         Implemented replace methods.
22995         Renaming of methods to (try) follow the standard.
22996         Fixed compare ordinal
22997         Made all memory allocated directly to function instead of via icall function.
22998         Small performance fix in is_in_array function
22999                         
23000  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
23001
23002         c (mono_string_Internal_ctor_charp_int_int):
23003         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
23004         sindex < 0, throw ArgumentOutOfRangeException instead of
23005         ArgumentNullException.
23006
23007         Added new check for length == 0, however
23008         I need to make it return String.Empty from the C code.
23009         
23010         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
23011         that calculate the length for us here.
23012         
23013         (mono_string_Internal_ctor_sbytep_int_int): Replaced
23014         mono_string_new_utf16 with mono_string_new, since value is utf8.
23015
23016 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23017
23018         * object.c: register the object for finalization if needed.
23019         Allocate one more char in the string for the terminating 0 char.
23020
23021 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23022
23023         * class.c, class.h, image.c: check if a type implemenst a destructor.
23024         Use the proper key for array class lookups.
23025         * icall.c: register the icalls in the System.GC class.
23026         * gc.c, gc.h: GC-related functions and icalls.
23027
23028 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23029
23030         * icall.c:
23031         * socket-io.c:
23032         * unicode.c: free some strings gotten from mono_string_to_utf8 and
23033         changed a couple of free () by g_free ().
23034
23035         * decimal.c: one-liner in the comments for decimal2string ().
23036
23037 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
23038
23039         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
23040
23041 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
23042
23043         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
23044         * object.c (mono_runtime_invoke_array) : handle null in params
23045
23046 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
23047
23048         * string-icalls.c: fixed bug in split (one off bug)
23049
23050 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
23051
23052         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
23053         * icalls.c: added String::Equals as internal method
23054
23055 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
23056
23057         * threads.c: fixed bug in the double interlocked functions
23058
23059 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
23060
23061         * threads.c: implemented all of the new interlocked icalls.
23062         * string-icalls.c: fix a bug in insert.
23063         * icalls.c: added the icalls for interlocked, removed old string functions.
23064         
23065 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23066
23067         * loader.c: fix off-by-one error when reading argument names.
23068
23069 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23070
23071         * profiler.c: win32 counter implementation (untested).
23072         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
23073         (the latter needs testing and more complete impl. from win32 folks).
23074
23075 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
23076
23077         * object.c: mono_array_new_full workaround mono_array_class_get
23078         problem.
23079
23080 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23081
23082         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
23083         * object.h (mono_string_chars): Changed casting type.
23084
23085 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23086
23087         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
23088                            method signatures to use gunichar2 instead of gint16.
23089
23090 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
23091
23092         * object.h, object.c: domain-specific versions of mono_object_new and
23093         mono_array_new.
23094
23095 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
23096
23097         * object.c: changed String layout
23098
23099         * string-icalls.c (mono_string_Internal_ctor_chara): added
23100         internal string constructors.
23101
23102 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
23103
23104         * threads.c: pass 'this' to the thread start routine.
23105
23106 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23107
23108         * string-icalls.c: fix IndexOf and LastIndexOf. Now
23109         InternalCompareStr don't call twice mono_string_cmp_char for the last
23110         character. Improved performance in mono_string_cmp_char.
23111
23112 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23113
23114         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
23115         code into its own library: libmonoruntime.
23116
23117 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
23118
23119         * object.h, object.c: changed array format so that szarrays do not
23120         require a bounds structure.
23121         * icall.c, appdomain.c: support for new szarray format.
23122
23123 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
23124
23125         * metadata.c: compare also the retuns type when comparing signatures:
23126         we didn't do this as an optimization since really overloaded methods
23127         must differ also in the arguments, but this doesn't work with
23128         low-level IL code (or when using explicit conversion operators: see
23129         bug#23498 for an example).
23130
23131 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23132
23133         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
23134
23135 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23136
23137         * icall.c: make MonoType::GetElementType its own icall.
23138
23139 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23140
23141         * icall.c: remove MonoMethod_get_Name().
23142         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
23143         object.
23144
23145 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23146
23147         * string-icalls.c: optimized a few methods.
23148
23149 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23150
23151         * icall.c: added all new string internal calls
23152         * string-icalls.c: added, new string internal call implementation.
23153         * object.c: added mono_string_new_size for allocating a string a size
23154
23155 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
23156
23157         * object.c (mono_object_isinst): use the same code as in the
23158         optimized x86 version.
23159
23160 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23161
23162         * profiler.c: TSC-based timer code (faster and more accurate).
23163         Not hooked up in configure, yet (set USE_X86TSC to 1).
23164
23165 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
23166
23167         * profiler.c, profiler.h: track time spent compiling methods.
23168         * threads.c: track thread creation/destruction.
23169
23170 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
23171
23172         * profiler.c, profiler.h, profiler-private.h: profiling interface
23173         and sample implementation. Moved here so that it can be used also by
23174         the jit.
23175
23176 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
23177
23178         * reflection.c, reflection.h: keep types and other handles separate in
23179         the hash tables for referred tokens. Add guid for modules.
23180
23181 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
23182
23183         * assembly.c: fix bugs found with valgrind.
23184         * metadata.h, metadata.c: added mono_metadata_guid_heap().
23185
23186 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
23187
23188         * threads: added icall support for getting current domain for
23189                    the thread.
23190  
23191 2002-04-13  Martin Baulig  <martin@gnome.org>
23192
23193         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
23194         (MonoDebugVarInfo): Added `index' field for register based addresses.
23195         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
23196         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
23197         `MonoDebugVarInfo *params' and `guint32 this_offset' with
23198         `MonoDebugVarInfo *this_var'.
23199
23200         * debug-symfile.c (relocate_variable): New static function to write
23201         a location description for a local variable or method parameter.
23202
23203 2002-04-12  Martin Baulig  <martin@gnome.org>
23204
23205         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
23206         stack offset and begin/end scope address of a local variable.
23207         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
23208         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
23209         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
23210
23211         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
23212         Added new relocation types for start/end scope of a local variable.
23213
23214 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23215
23216         * object.h: add mono_object_domain() macro.
23217         * reflection.c: handle typespecs.
23218         * icall.c: MonoMethod::get_Name() implementation.
23219
23220 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23221
23222         * icall.c: String::GetHashCode() icall implementation.
23223
23224 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23225
23226         * icall.c: String::IndexOfAny icall.
23227         * object.c, object.h: make array->max_length more useful.
23228         Intrduced mono_object_class() and mono_string_length() macros.
23229
23230 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23231
23232         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
23233         instead of g_unichar_isdigit.
23234
23235 2002-04-11  Nick Drochak  <ndrochak@gol.com>
23236
23237         * icall.c: Implement a simple Double.ToString().
23238
23239 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23240
23241         * appdomain.h: only io-layer.h is supposed to be included.
23242         * icall.c: explicitly import environ. Fix warning.
23243
23244 2002-04-10  Nick Drochak  <ndrochak@gol.com>
23245
23246         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
23247                 return true even if it's not Daylight Savings time.
23248                 Only return false for the case where the function isn't
23249                 implemented for a plaform (read Windows).
23250
23251 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23252
23253         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
23254         data with a mutex.
23255
23256 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
23257
23258         * mempool.c (mono_mempool_alloc): only use g_malloc when
23259         absolutely necessary.
23260
23261 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
23262
23263         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
23264
23265         * class.c (mono_class_vtable): use domain mempool to allocate vtable
23266         (mono_class_proxy_vtable): use domain mempool
23267
23268 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23269
23270         * appdomain.h, appdomain.c: split initialization that requires the
23271         execution engine support into mono_runtime_init().
23272
23273 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
23274
23275         * class.c (mono_class_init): don't include vtable inside MonoClass
23276         to save some memory, gather some statistics.
23277         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
23278
23279 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23280
23281         * icall.c: internalcall implementation for ValueType.Equals().
23282
23283 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
23284
23285         * object.c (mono_message_init): moved 
23286         (mono_runtime_exec_main): new arch. independent impl.
23287         (mono_runtime_invoke_array): new method - like
23288         mono_runtime_invoke, but you can pass an array of objects.
23289         (mono_remoting_invoke): new arch. independent impl.
23290         (mono_message_invoke): new arch. independent impl.
23291         (mono_runtime_class_init): new arch. independent impl.
23292         (mono_runtime_object_init): new arch. independent impl.
23293
23294 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23295
23296         * metadata.c, object.c, reflection.c: documented the exported
23297         functions.
23298
23299 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
23300
23301         * icall.c: simpler code to pass the assembly builder data to corlib.
23302         Implement GetNestedTypes() internalcall.
23303
23304 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23305
23306         * class.c: warn if a type can't be loaded.
23307
23308 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
23309
23310         * image.h: typedef MonoImageOpenStatus
23311         * types.h: removed unused file
23312         
23313 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
23314
23315         * icall.c: Enum_ToObject accepts enum value arguments.
23316
23317 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23318
23319         * class.c: move initialization of properties, events and nested
23320         classes, so that they happen for interfaces, too.
23321
23322 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23323
23324         * icall.c: cleanup some ugly casts in Array_SetValue*.
23325
23326 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23327
23328         * icall.c: the values array fro enums is of the correct type, now.
23329         Implement (correctly) getFullName instead of assQualifiedName for
23330         MonoType.
23331         * reflection.h, reflection.c: added mono_type_get_name ().
23332
23333 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23334
23335         * assembly.c, image.h: for each MonoImage, record from wich assembly
23336         it was loaded.
23337         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
23338         Make Type.Assembly work.
23339
23340 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
23341
23342         * debug-symfile.h: use char* instead of gpointer to avoid
23343         unnecessary casts.
23344
23345         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
23346
23347         * icall.c (ves_icall_InternalExecute): impl. FielSetter
23348         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
23349
23350 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
23351
23352         * icall.c (mono_message_init): impl. (code cleanup)
23353         (ves_icall_InternalExecute): impl. FieldGetter
23354
23355         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
23356         defined we call all (non-static)methods through the vtable. 
23357
23358 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
23359
23360         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
23361         finalizer even though the memory is still referenced (and the chunk of
23362         memory is not freed).
23363
23364 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
23365
23366         * assembly.c: fix brokeness.
23367
23368 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
23369
23370         * class.c: kill some warnings. Check explicit interface method
23371         implementation also without considering the namespace.
23372         Load also literal strings in static class data.
23373
23374 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
23375
23376         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
23377         (default_assembly_name_resolver): Make the resolver take the
23378         "base" directory where the assembly was originally defined, so we
23379         can load DLLs that are in the same directory as the assembly that
23380         is being referenced.
23381
23382 2002-03-28  Dick Porter  <dick@ximian.com>
23383
23384         * file-io.h: 
23385         * file-io.c:
23386         * socket-io.c: 
23387         * unicode.h: 
23388         * unicode.c: Warning cleanups
23389
23390 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
23391
23392         * object.h, reflection.h: use the correct type instead of MonoObject.
23393
23394 2002-03-28  Martin Baulig  <martin@gnome.org>
23395
23396         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
23397         (mono_debug_update_symbol_file): Initialize classes if necessary.
23398
23399 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23400
23401         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
23402         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
23403
23404 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
23405
23406         * assembly.h: fix function prototype.
23407         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
23408         * mono-endian.h: use const cast.
23409
23410 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
23411
23412         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
23413
23414 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23415
23416         * loader.c: don't assert when a typeref can't be loaded, give
23417         a chance to the runtime to trow an exception instead.
23418         * loader.h: fix warning.
23419
23420 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
23421
23422         * class.c (mono_class_proxy_vtable): added proxy support
23423
23424 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
23425
23426         * icall.c: removed last of PAL calls, added System.Environment
23427         * file-io.h, file-io.c: MonoIO implementation
23428         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
23429
23430 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23431
23432         * appdomain.c: do not use the byte marker in ldstr table lookup.
23433         * debug-helpers.c: allow two ':' to separate class and method name.
23434         * object.c: allocate arrays bounds with the GC, too.
23435         * verify: add a few more checks.
23436
23437 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
23438
23439         * reflection.c: output also literal strings. Allocate parameter data
23440         with GC_malloc() (thanks, Martin, for catching this!).
23441
23442 2002-03-26  Martin Baulig  <martin@gnome.org>
23443
23444         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
23445         include the `this' offset in the `param_offsets'.
23446
23447 2002-03-25  Martin Baulig  <martin@gnome.org>
23448
23449         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
23450         mono_debug_get_class() function to get the classes. Added new
23451         relocation types for arrays and strings.
23452         (mono_debug_get_class): New static function to search in all
23453         referenced assemblies for a metadata token.
23454
23455         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
23456
23457 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
23458
23459         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
23460         hold gc-allocated objects. Make the string heap a stream like the
23461         others. Removed duplicated code when writing stream info.
23462         Added asserts to catch possible buffer overflows. Set the sorted map
23463         for tables that need sorting. Added some documentation.
23464
23465 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
23466
23467         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
23468         for interned strings and vtables.
23469
23470 2002-03-24  Martin Baulig  <martin@gnome.org>
23471
23472         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
23473         it in the array since it was created with g_slist_prepend().
23474
23475 2002-03-24  Martin Baulig  <martin@gnome.org>
23476
23477         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
23478         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
23479         (mono_debug_method_from_token): Renamed to
23480         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
23481         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
23482
23483         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
23484         relocation types.
23485
23486         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
23487
23488 2002-03-24  Martin Baulig  <martin@gnome.org>
23489
23490         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
23491         (mono_debug_method_from_token): New func.
23492
23493         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
23494         New interncall, calls mono_debug_local_type_from_signature().
23495         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
23496         calls mono_debug_method_from_token().
23497
23498 2002-03-23  Martin Baulig  <martin@gnome.org>
23499
23500         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
23501         specifies the number of bytes to be converted, not the array size.
23502         Return the number of chars, not the number of bytes.
23503         (ves_icall_iconv_get_chars): The `byteCount' argument
23504         specifies the number of bytes to be converted, not the array size.
23505
23506 2002-03-23  Martin Baulig  <martin@gnome.org>
23507
23508         * reflection.h (MonoReflectionSigHelper): New type.
23509
23510         * reflection.c (mono_reflection_sighelper_get_signature_local),
23511         (mono_reflection_sighelper_get_signature_local): New functions.
23512
23513         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
23514         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
23515         interncalls.
23516
23517 2002-03-23  Martin Baulig  <martin@gnome.org>
23518
23519         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
23520         is_writeable is set.
23521         (mono_raw_buffer_update): New function to write the modified map
23522         back to disk.
23523
23524         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
23525
23526         * debug-symfile.c (mono_debug_update_symbol_file): Call
23527         mono_raw_buffer_update() when done writing.
23528
23529 2002-03-23  Martin Baulig  <martin@gnome.org>
23530
23531         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
23532
23533         * debug-symfile.c: Added support for arguments and local variables.
23534
23535 2002-03-23  Dick Porter  <dick@ximian.com>
23536
23537         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
23538         protected by ifdefs, hence breaking the w32 build.
23539
23540 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23541
23542         * object.c: implement is_interned() the right way.
23543
23544 2002-03-21  Martin Baulig  <martin@gnome.org>
23545
23546         * debug-symfile.[ch]: New files to handle debugging information
23547         files. There's also support to dynamically update these symbol
23548         files to include machine dependent information.
23549
23550 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
23551
23552         * threads.c (mono_thread_create): new function to create thread
23553         from C
23554
23555 2002-03-20  Martin Baulig  <martin@gnome.org>
23556
23557         * icall.c (ves_icall_InternalInvoke): Create a new object if the
23558         method is a constructor.
23559         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
23560         points to ves_icall_InternalInvoke().
23561
23562 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
23563
23564         * file-io.c: Flush shouldn't throw exceptions.
23565
23566 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
23567
23568         * file-io.c: FileStream flush support; FileSetLength now
23569         restores file pointer.
23570
23571 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23572
23573         * class.c: set image for pointer classes.
23574
23575 2002/03/19  Nick Drochak <ndrochak@gol.com>
23576
23577         * sysmath.c: Forgot one.
23578
23579 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
23580
23581         * sysmath.c: Avoid redefining existing names.
23582
23583 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
23584
23585         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
23586         handled by runtime as icall rather than dllimport from libm.so
23587         * file-io.c, file-io.h: fixed handle argument type.
23588
23589 2002-03-18  Dick Porter  <dick@ximian.com>
23590
23591         * reflection.c (mono_image_get_type_info): rename interface to
23592         iface, because of "#define interface struct" on windows.
23593
23594 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
23595
23596         * class.c, class.h: rename and export mono_ptr_class_get().
23597         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
23598         * reflection.c, reflection.h, icall.c: better/saner type name
23599         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
23600         method signatures.
23601
23602 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
23603
23604         * class.c (mono_class_init): removed hardcoded GHC_SLOT
23605
23606         * icall.c (ves_icall_InternalInvoke): impl.
23607
23608 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23609
23610         * reflection.c: output the interface map table, too.
23611
23612 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
23613
23614         * class.c (class_compute_field_layout): separate computation of 
23615         static field layout
23616
23617 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
23618
23619         * icall.c: added System.Buffer support.
23620         * file-io.c: moved file icalls from PAL to FileStream.
23621
23622 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
23623
23624         * icall.c (ves_icall_System_Object_GetHashCode): impl.
23625
23626 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
23627
23628         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
23629
23630 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23631
23632         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
23633
23634 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
23635
23636         * debug-helpers.{c,h}: moved here from monograph some useful functions
23637         to locate a method by name/signature in a class or image. Included
23638         also a small and flexible IL disassembler.
23639
23640 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23641
23642         * reflection.c: fixup tokens in methods with small header size, too.
23643
23644 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
23645
23646         * object.c (mono_string_to_utf8): remove assert(!error), instead
23647         print a warning. 
23648
23649 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
23650
23651         * icall.c: update to the new mono_Array_class_get interface.
23652
23653 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23654
23655         * appdomain.c, object.c: Boehm-GC enable.
23656         * icall.c: make get_data_chunk() support split data requests.
23657         Ensure a class is initialized in more cases. Return only the first
23658         property found in GetProperties() or the compiler gets confused. 
23659         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
23660         * reflection.h, reflection.c: add fixup mechanism for field and method
23661         tokens. Initialize assembly->typeref in a single place. Output
23662         properties after events. Support custom attributes for events, too.
23663         Typo fix for paramter custom attrs.
23664
23665 2002-03-07  Martin Baulig  <martin@gnome.org>
23666
23667         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
23668
23669 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
23670
23671         * class.c (mono_array_class_get): fix. for multi. dim. arrays
23672
23673 2002-03-06  Martin Baulig  <martin@gnome.org>
23674
23675         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
23676         non-zero lower bounds. See testcases #F10-#F13.
23677
23678 2002-03-05  Martin Baulig  <martin@gnome.org>
23679
23680         * exception.c (mono_get_exception_argument_out_of_range): New exception.
23681
23682         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
23683         ves_icall_System_Array_GetValue(), only calculate the absolute array position
23684         here.
23685         (ves_icall_System_Array_SetValue): Likewise.
23686         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
23687         as argument and does the actual work. This function is used when copying a
23688         multi-dimensional array.
23689         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
23690         now do all the widening conversions of value types.
23691         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
23692
23693 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23694
23695         * class.c: remove some magic numbers and use the smbolic names,
23696         instead. Added init_events() to load event info at class init time.
23697         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
23698         and mono_metadata_methods_from_event().
23699         * reflection.h, reflection.c: added support for writing out the evnets
23700         related information.
23701
23702 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23703
23704         * reflection.h, icall.c: use a different method (GetInterfaces)
23705         to gather interface info and add isbyref, isprimitive and
23706         ispointer to the ves_icall_get_type_info() return value.
23707
23708 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23709
23710         * class.h: stared adding support for events.
23711         * icall.c: split find_members implementation. Added debug icall to get
23712         the address of an object.
23713         * reflection.c: handle TypeBuilders in mono_type_get_object().
23714
23715 2002-03-01  Martin Baulig  <martin@gnome.org>
23716
23717         * icall.c (ves_icall_System_Array_GetLength): This must throw an
23718         ArgumentOutOfRangeException(), not an ArgumentException().
23719         (ves_icall_System_Array_GetLowerBound): Likewise.
23720         (ves_icall_System_Array_GetValue): Improved argument checking.
23721         (ves_icall_System_Array_SetValue): Improved argument checking.
23722
23723 2002-03-01  Martin Baulig  <martin@gnome.org>
23724
23725         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
23726         called with invalid arguments rather than just dying with g_assert().
23727         (ves_icall_System_Array_SetValue): Likewise.
23728         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
23729         raise a NotImplementedException instead.
23730         (ves_icall_System_Array_GetLength): Added argument checking.
23731         (ves_icall_System_Array_GetLowerBound): Added argument checking.
23732
23733 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
23734
23735         * object.h (mono_assert): new macros mono_assert and
23736         mono_assert_not_reached
23737
23738 2002-02-28  Martin Baulig  <martin@gnome.org>
23739
23740         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
23741         and "System::String::IsInterned" to "System::String::_IsInterned".
23742
23743 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
23744
23745         * icall.c: remove hacks for typebuilder. Added icall to create a
23746         modified type from a tybebuilder.
23747         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
23748         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
23749         to create a backing MonoClass for a TypeBuilder.
23750
23751 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23752
23753         * class.c, class.h: more refactoring of class init.
23754         Export mono_class_setup_mono_type() and mono_class_setup_parent().
23755
23756 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
23757
23758         * marshal.c, marshal.h: start of marshaling interface.
23759
23760 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
23761
23762         * icall.c: fix order in assembly qualified name icall.
23763
23764 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
23765
23766         * class.c: do not free str, since we store it in the hash table.
23767         * reflection.h: add label field to MonoILExceptionInfo.
23768         * reflection.c: handle references to more than one assembly. Handle
23769         case when there isn't a module created in the assembly.
23770
23771 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23772
23773         * class.c: Fix typo. Start refactoring of class init code.
23774
23775 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23776
23777         * appdomain.c: exit with 1 on error.
23778         * class.c: we already have the name in MonoClassField.
23779         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
23780         MonoStreamHeader instead of an offset of image->raw_metadata.
23781
23782 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
23783
23784         * appdomain.c (mono_init): Be even more descriptive about the error.
23785
23786 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
23787
23788         * appdomain.c: give the user an informative message when corlib can't
23789         be loaded.
23790
23791 2002-02-26  Martin Baulig  <martin@gnome.org>
23792
23793         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
23794         New icall to get the time zone data.
23795
23796 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23797
23798         * reflection.c: set virtual and raw size of section correctly.
23799         * threads.c: transfer domain information to newly created threads.
23800
23801 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
23802
23803         * class.c: when instancing a class in a domain, load the default
23804         vaules for static fields from the constant table. Fix System.Enum to
23805         not be an enum.
23806         * icall.c: implement Object::GetType() internalcall. Implemented
23807         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
23808         Fixed checking of binding flags in find_members().
23809         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
23810         * reflection.c: handle enumerations when writing to the constant
23811         table. Use a different object cache for types.
23812
23813
23814 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
23815
23816         * object.c (mono_object_isinst): fix for arrays
23817
23818         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
23819
23820 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
23821
23822         * object.c: don't use mprotect ()  and fix intern pool hash table
23823         lookup for big endian systems.
23824
23825 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23826
23827         * icall.c: change type_is_subtype_of () signature.
23828
23829 2002-02-21  Mark Crichton  <crichton@gimp.org>
23830
23831         * rand.c, rand.h: Added random number generator for
23832         System.Security.Cryptography classes.
23833
23834         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
23835
23836         * icall.c: Added System.Security.Cryptography calls.
23837
23838 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
23839
23840         * class.c, icall.c, metadata.c: better support for pointer types.
23841         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
23842         * reflection.c: Add support for getting custom attrs for properties
23843         and simplify some code.
23844
23845 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23846
23847         * icall.c: change getToken () and add custom attribute GetBlob()helper
23848         method.
23849         * reflection.h: add custom attrs array to the reflection builder structures.
23850         * reflection.c: encode and emit custom attributes for all the relevant
23851         reflection objects. Cache fieldref and methodref tokens. Change
23852         mono_image_create_token() interface to take a MonoDynamicAssembly.
23853         More complete custom attributes decoder. Load custom attributes for
23854         Assembly, Field, Method and Constructor objects, too. Make the
23855         returned array an Attribute[] one, not object[]. Added
23856         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
23857         custom attribute constructor.
23858
23859 2002-02-20  Dick Porter  <dick@ximian.com>
23860
23861         * icall.c:
23862         * rawbuffer.c:
23863         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
23864         problem code out for now).
23865
23866 2002-02-19  Radek Doulik  <rodo@ximian.com>
23867
23868         * object.c (mono_ldstr): use hash table to avoid multiple swapping
23869
23870 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
23871
23872         * icall.c: register the GetCustomAttributes method.
23873         * object.c, object.h: add mono_string_new_len ().
23874         * reflection.h, reflection.c: added mono_runtime_invoke(),
23875         mono_install_runtime_invoke(). Added
23876         mono_reflection_get_custom_attrs () to load custom attributes and
23877         create the attribute objects.
23878
23879 2002-02-19  Dick Porter  <dick@ximian.com>
23880         * threads-dummy-types.c:
23881         * threads-dummy-types.h:
23882         * threads-dummy.c:
23883         * threads-dummy.h:
23884         * threads-pthread-types.c:
23885         * threads-pthread-types.h:
23886         * threads-pthread.c:
23887         * threads-pthread.h:  Deleted obsolete files
23888
23889 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
23890
23891         * class.c (mono_class_vtable): runtime init the class when we
23892         allocate static class data.
23893
23894         * icall.c (ves_icall_System_Array_SetValue): check for null values.
23895
23896         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
23897         and String - but we will need generic marshalling support in the
23898         future. 
23899         (mono_init): set the domain name in a ms compatible way
23900
23901         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
23902         String[].
23903
23904 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
23905
23906         * object.c (mono_array_clone): use alloca() instead of g_malloc  
23907         for sizes
23908
23909         * appdomain.c (mono_domain_unload): impl.
23910
23911 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
23912
23913         * appdomain.c, object.c: fix intern pool implementation.
23914         * class.c: fix alignment code.
23915
23916 2002-02-16  Radek Doulik  <rodo@ximian.com>
23917
23918         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
23919         and s2 > s1, just copy lower bytes to be compatible with little
23920         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
23921         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
23922
23923         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
23924         force big_endian to be 1 for big endian machines 
23925         (ves_icall_iconv_new_decoder): ditto
23926
23927 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
23928
23929         * socket-io.c (convert_sockopt_level_and_name): If the system
23930         doesn't define SOL_IP or SOL_TCP, get them by hand using
23931         getprotobyname() and caching the values (because this could be a
23932         slow operation).
23933         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
23934         Use the appropriate struct when the system does support it. Ie,
23935         not all systems have struct ip_mreqn so use struct ip_mreq when
23936         appropriate.
23937
23938 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
23939
23940         * reflection.c: handle finally clauses.
23941
23942 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
23943
23944         * socket-io.c: use g_snprintf() instead of snprintf.
23945
23946 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
23947
23948         * reflection.c (mono_param_get_objects): Cast second argument to
23949         mono_method_get_param_names to a const char** to silence the
23950         compiler warning.
23951
23952         * appdomain.c (mono_domain_assembly_open): Put parens around the
23953         truth statement in the for-loop.
23954
23955         * unicode.c (iconv_convert): Got rid of a compiler warning about
23956         int i being unused when the system has a new iconv.
23957         (iconv_get_length): Same.
23958
23959         * image.c (load_class_names): Cast the second argument to
23960         g_hash_table_insert() to char* to hush compiler warnings about the
23961         arg being a const.
23962         (mono_image_open): Same here.
23963
23964         * socket-io.c: Don't conditionally include sys/filio.h or
23965         sys/sockio.h here anymore since we now get them from
23966         io-layer/io-layer.h
23967         (inet_pton): If the system doesn't support inet_aton, implement
23968         using inet_addr and also #define INADDR_NONE if it isn't defined
23969         by the system.
23970
23971 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
23972
23973         * metadata.c, metadata.h: added function to get packing and size info
23974         of a typedef.
23975         * reflection.h, reflection.c: handle field RVA data. Save info about
23976         the table layout if needed. Assign typedef indexes to all the types
23977         before dumping the info about them to avoid forward reference problems.
23978
23979 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
23980
23981         * socket-io.c (convert_sockopt_level_and_name): ifdef
23982         SO_ACCEPTCONN because it is not defined on my system (old debian)
23983
23984 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23985
23986         * opcode.c: use stddef.h to get NULL.
23987
23988 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
23989
23990         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
23991         for FIONBIO, FIONREAD and SIOCATMARK.
23992         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
23993         define INADDR_NONE and besides, inet_addr() is deprecated and
23994         should not be used. Use inet_pton() instead - it also has the
23995         added bonus that it can easily handle IPv6 addresses as well.
23996         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
23997
23998 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23999
24000         * decimal.c: remove _MSC_VER conditional.
24001
24002 2002-02-13  Dick Porter  <dick@ximian.com>
24003
24004         * socket-io.c: 
24005         * icall.c: Internal calls for Blocking, Select, Shutdown,
24006         GetSocketOption and SetSocketOption
24007
24008 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24009
24010         * assembly.cs: better resolver: use it instead of some kludgy
24011         code.
24012
24013 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
24014
24015         * reflection.c: the best way to speed-up the compiler is to avoid
24016         infinite loops.
24017
24018 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
24019
24020         * class.c (mono_class_vtable): changed the object layout
24021         (obj->vtable->class). 
24022         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
24023
24024 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24025
24026         * assembly.c: look for assemblies in the assembly dir, too.
24027
24028 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24029
24030         * class.c: fix thinko in mono_class_from_type().
24031
24032 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24033
24034         * exception.h, exception.c: added TypeLoadException.
24035         * object.h, object.c: added mono_array_clone ().
24036         * icall.c: handle throwOnError in AssemblyGetType().
24037         Added Array.Clone().
24038         * opcode.h, opcode.c: use a single value for the opcode val.
24039         Compile fix for non-gcc compilers.
24040
24041 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
24042
24043         * opcodes.c, opcodes.h: export interesting info about opcodes.
24044
24045 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
24046
24047         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
24048         icalls. 
24049
24050         * class.c (class_compute_field_layout): set element_class for enums
24051         (mono_class_create_from_typedef): set element_class for normal classes
24052
24053         * icall.c (ves_icall_System_Enum_get_value): impl.
24054
24055         * class.c (mono_class_create_from_typedef): do not set valuetype
24056         flag for System.ValueType and System.Enum
24057
24058 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
24059
24060         * unicode.c (iconv_convert): fix big endian problem.
24061
24062 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24063
24064         * class.c: add asserts if we are ever going to scribble over memory.
24065         * socket-io.c: not all systems have AF_IRDA defined.
24066
24067 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
24068
24069         * class.c (class_compute_field_layout): do not consider static
24070         fields to compute alignment
24071
24072 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
24073
24074         * appdomain.c (mono_appdomain_get): impl.
24075         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
24076
24077 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
24078
24079         * icall.c: ignore "file://" prefix when loading an assembly.
24080
24081 2002-01-23  Dick Porter  <dick@ximian.com>
24082
24083         * socket-io.c:
24084         * icall.c:
24085         * Makefile.am: Added socket support
24086
24087 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
24088
24089         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
24090         code back.  This should return the assemblies that are loaded by
24091         the runtime on behalf of an application domain. 
24092
24093         The current implementation is still broken, it just returns every
24094         assembly loaded, but until we get real applications domain this
24095         will do.
24096
24097 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
24098
24099         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
24100         AppDomain object.
24101
24102 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
24103
24104         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
24105         the mono_class_from_name lookup.
24106         (ves_icall_get_parameter_info): ditto.
24107         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
24108         method.
24109         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
24110
24111 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
24112
24113         * class.c: load also nested classes on class init.
24114         System.ValueType instance methods gets passed boxed
24115         values, unless methods in derived classed that get a pointer to the
24116         data.
24117         * icall.c: use better name parsing code in GetType().
24118         * image.c, image.h: add mono_image_loaded ().
24119         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
24120         * reflection.c, reflection.h: added mono_reflection_parse_type().
24121
24122 2002-01-22  Veronica De Santis <veron78@interfree.it>
24123
24124         * icall.c : Added mapping of internal calls for Manual and Auto reset events
24125         * threads.c : Added the implementation of internal calls for events
24126         * threads.h : Added prototypes of internal calls for events
24127         
24128 2002-01-21  Radek Doulik  <rodo@ximian.com>
24129
24130         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
24131
24132 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
24133
24134         * class.c (mono_class_init): set min_align to 1 (instead of 0)
24135         (mono_class_value_size): use min_align
24136
24137 2002-01-20  Dick Porter  <dick@ximian.com>
24138
24139         * threads.h:
24140         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
24141         so it compiles on w32.
24142
24143 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
24144
24145         * metadata.c (mono_type_stack_size): impl.
24146
24147         * class.c (mono_class_get_field): impl. memberref token
24148
24149 2002-01-16 Veronica De Santis <veron78@@interfree.it>
24150
24151         * icall.h : Added the internal calls mapping for CreateMutex_internal
24152                     and ReleaseMutex_internal.
24153         * threads.h : Added the prototype of mutexes internal calls.
24154         * threads.c : Added the implementations of mutexes internal calls.
24155
24156 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
24157
24158         * metaparse.h: removed unused file.
24159         * reflection.c, reflection.h: added stream_data_align () function 
24160         to align data in streams and keep stream aligned. Add support for
24161         exception support in method headers.
24162
24163 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
24164
24165         * unicode.c: make iconv_convert () return the number of bytess written
24166         in the output buffer.
24167
24168 2002-01-15  Dick Porter  <dick@ximian.com>
24169         * threads.c: Make the runtime's idea of infinite timeouts coincide
24170         with the class library's
24171
24172         Fix a particularly egregious bug in mono_thread_cleanup(). That
24173         code was so utterly bogus it must have been written on a Monday.
24174
24175 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
24176
24177         * reflection.h: add subtypes field to TypeBuilder.
24178         * reflection.c: encode constants for literal fields.
24179         Handle subtypes. Fix user string token (and add a zero byte)
24180         at the end.
24181         
24182 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
24183
24184         * class.c (mono_class_init): bug fix: assign slot numbers for
24185         abstract methods.
24186
24187 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24188
24189         * reflection.c: don't try to output a code RVA for abstract methods.
24190         Small fixes for method header format. Output parameter info to the
24191         ParamDef table. Save method overriding info to MethodImpl table.
24192         Fix property support. Allow typedef.extends to be a type in the
24193         building assembly.
24194         * verify.c: fix off-by-one error.
24195
24196 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
24197
24198         * class.c: fix mono_class_from_mono_type () for szarray types.
24199         Remove unused cache check in mono_class_from_type_spec().
24200         * icall.c: *type_from_name () functions handle simple arrays and byref.
24201         * reflection.c: handle byref and szarray types. Handle methods without
24202         body (gets P/Invoke compilation working). Handle types and fields in
24203         get_token ().
24204         * reflection.h: add rank to MonoTypeInfo.
24205
24206 2002-01-10  Dick Porter  <dick@ximian.com>
24207
24208         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
24209         internal calls
24210
24211 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
24212
24213         * icall.c: initialize class in type_from_handle ().
24214         Loop also in parent classes for get_method ().
24215         * reflection.c: properly encode class and valuetype types.
24216         Start on encoding TypeBuilder types. Handle fieldrefs.
24217         Use correct length when registering a user string.
24218         Handle ConstructorBuilder and MonoMethod in get_token ().
24219         Make mono_type_get_object () aware of cached types.
24220         * object.c: back out change to mono_string_new ().
24221
24222 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
24223         * object.c: mono_string_new should return a NULL when the string 
24224         passed in is NULL -- not try to deference it.
24225         
24226 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
24227
24228         * icall.c: hack to make IsSubType work for TypeBuilders.
24229         * reflection.c: emit constructors before methods.
24230         Retrieve param names in mono_param_get_objects().
24231
24232 2002/01/05  Nick Drochak  <ndrochak@gol.com>
24233
24234         * Makefile.am: fix list of headers and sources so automake 1.5
24235         doesn't complain. Removed \# at end of list.
24236
24237 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
24238
24239         * reflection.c: get token for a method ref. Set return type of
24240         constructor to void.
24241         * loader.c: debug message.
24242         * class.c: typo fix.
24243
24244 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
24245
24246         * icall.c: fix array init with rank > 1. FindMembers
24247         loops in parent class as well.
24248         * image.c: do not insert nested types in name cache.
24249         * reflection.c: warning fix.
24250         * reflection.h: add override method (for interface impl).
24251
24252 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
24253
24254         * metadata.c: fix customattr decoding.
24255
24256 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
24257
24258         * rawbuffer.cs: Added native Win32 implementation, avoids using
24259         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
24260
24261 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
24262
24263         * class.c: make the low-level routines handle the cache.
24264
24265 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
24266
24267         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
24268
24269 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
24270
24271         * class.c: fix mono_array_element_size() for objects.
24272         * class.h, class.c: add properties to MonoClass and load them
24273         at init time.
24274         * icall.c: check with isinst() when assigning a value to an array
24275         instead of requiring the classes to match exactly.
24276         Implemented icall for System.Type::GetType().
24277         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
24278         enums. Handle bindingflags when looking for methods and fields.
24279         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
24280         and mono_metadata_methods_from_property().
24281         * reflection.h, reflection.c: added structures for propreties,
24282         parameters and enums. Implemented mono_property_get_object() and
24283         mono_param_get_objects().
24284
24285 2001-12-18  Dick Porter  <dick@ximian.com>
24286
24287         * file-io.c: Use mono_string_to_utf16() instead of
24288         mono_string_chars()
24289
24290         * object.c: Added mono_string_to_utf16(), which copies the non
24291         NULL-terminated MonoString into a new double-null-terminated
24292         buffer.
24293
24294 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
24295
24296         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
24297
24298 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
24299
24300         * file-io.c: raise exceptions if handle is invalid.
24301
24302 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
24303
24304         * assembly.c: yet another check for mscorlib.
24305         * class.c, class.h: load nesting info for classes.
24306         * icall.c: many new functions to support the Reflection classes.
24307         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
24308         * reflection.h, reflection.c: mono_image_create_token(),
24309         mono_assembly_get_object(), mono_type_get_object(),
24310         mono_method_get_object(), mono_field_get_object(): methods to return
24311         objects that parallel the C representation of assemblies, types,
24312         methods, fields.
24313
24314 2001-12-11  Dick Porter  <dick@ximian.com>
24315
24316         * icall.c:
24317         * file-io.c: Internal calls for file IO.
24318
24319 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
24320
24321         * tabledefs.h: missing FileAttributes.
24322         * verify.h, verify.c: use is_valid_string () to simplify and check for
24323         valid strings more correctly. Fix warnings and speeling.
24324         Check more tables: Filed, File, ModuleRef, StandAloneSig.
24325         Check code: branches, maxstack, method calls.
24326
24327 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
24328
24329         * object.c (mono_object_allocate): removed static, so that the jit
24330         can allocate value types.
24331
24332         * icall.c (ves_icall_System_DateTime_GetNow): impl.
24333
24334 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24335
24336         * class.c: init enum types right away and register the
24337         token->MonoClass map in mono_class_create_from_typedef ().
24338         * verify.h, verify.c: first cut of the verifier.
24339         * pedump.c: add --verify switch to verify metadata tables.
24340         * tabledefs.h: add some missing enums.
24341
24342 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
24343
24344         * class.c (mono_install_runtime_class_init): impl.
24345         (mono_class_init): renamed mono_class_metadata_init to
24346         mono_class_init, also removed the metadata_inited flag
24347
24348         * object.c (mono_object_isinst): use faster algorithm
24349
24350 2001-11-30  Radek Doulik  <rodo@ximian.com>
24351
24352         * mono-endian.h: reverted last change
24353         added function prototypes
24354
24355         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
24356         add mono-endian.c back
24357
24358         * mono-endian.c: returned back, as Paolo pointed out, it's needed
24359         for unaligned access, I've mistaked it with endianess. I am
24360         sorry.
24361         (mono_read16): fix reverted endianess
24362         (mono_read64): ditto
24363         (mono_read32): ditto
24364
24365 2001-11-30  Dick Porter  <dick@ximian.com>
24366
24367         * exception.c: Implement mono_exception_from_name()
24368
24369 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24370
24371         * metadata.h, metadata.c: remove params_size and locals_size and their
24372         calculation from the metadata code: they are only usefult to the
24373         interp.
24374
24375 2001-11-29  Radek Doulik  <rodo@ximian.com>
24376
24377         * object.c (mono_ldstr): swap bytes here, it's probably not the
24378         best place, but works for me now, I'll redo it once I know mono
24379         better, also note that I add PROT_WRITE and don't reset back, also
24380         note that it's only affects big endians, so x86 should be OK
24381
24382         * mono-endian.h (read16): use just glib macros for both endians
24383
24384         * mono-endian.c: removed as glib macros are used in in
24385         mono-endian.h so we don't need to care about endianess for read
24386         macros as glib does that for us already
24387
24388 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
24389
24390         * class.h, class.h: take minimum alignment into consideration so
24391         that the fields of a class remain aligned also when in an array.
24392
24393 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24394
24395         * loader.h, loader.c: add mono_method_get_param_names().
24396         * class.c: 0-init class fields.
24397
24398 2001-11-26  Dick Porter  <dick@ximian.com>
24399
24400         * icall.c:
24401         * threads-types.h:
24402         * threads.c: New file that handles System.Threading on all platforms
24403
24404         * object.c: 
24405         * object.h: Remove the synchronisation struct from MonoObject,
24406         replace it with a pointer that gets initialised on demand
24407
24408         * Makefile.am: Replace all the system-specific threading code with
24409         a single file that uses the new wrapper library
24410
24411 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
24412
24413         * class.c, class.h: add mono_install_trampoline() so that the runtime
24414         can register a function to create a trampoline: removes the ugly
24415         requirement that a runtime needed to export arch_create_jit_trampoline.
24416         * object.h, object.c: added mono_install_handler() so that the runtime
24417         can install an handler for exceptions generated in C code (with
24418         mono_raise_exception()). Added C struct for System.Delegate.
24419         * pedump.c: removed arch_create_jit_trampoline.
24420         * reflection.c: some cleanups to allow registering user strings and
24421         later getting a token for methodrefs and fieldrefs before the assembly
24422         is built.
24423         * row-indexes.h: updates and fixes from the new ECMA specs.
24424
24425 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
24426
24427         * class.h, class.c: add enum_basetype field to MonoClass.
24428         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
24429         to get index in the constant table reated to a field, param or
24430         property.
24431         * reflection.h, reflection.c: handle constructors. Set public-key and
24432         version number of the built assembly to 0.
24433         * row-indexes.h: update from new ECMA spec.
24434
24435 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24436
24437         * class.h, class.c: add a max_interface_id to MonoClass.
24438         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
24439         since it's used to do that. Added mono_type_type_from_obj().
24440         Make GetType() return NULL instead of segfaulting if the type was not
24441         found. Handle simple arrays in assQualifiedName.
24442         * object.h: add a struct to represent an Exception.
24443         * reflection.c: output call convention in method signature.
24444         Add code to support P/Invoke methods and fixed offsets for fields.
24445
24446 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
24447
24448         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
24449         the value.
24450         * icall.c: use mono_array_addr instead of array->vector: fixes the
24451         reflection image writing.
24452         * reflection.c: init call convention byte to 0 in method signature.
24453         Encode the property signature. Don't output property-related methods
24454         twice. Really process the properties for a type (don't cast a field to
24455         a property, my mom always told me that).
24456         Fix 64 bit issues in pointer alignment in a different and more
24457         readable way.
24458
24459 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
24460
24461         * loader.h: Removed type class from MonoDefaults, added monotype
24462
24463         * loader.c: Loaded MonoType, removed loading of Type
24464
24465         * icall.c (my_mono_new_object): Now returns a System.MonoType,
24466         and fills in System.Type._impl with a RuntimeTypeHandle rather
24467         than the actual MonoClass *
24468
24469         (ves_icall_type_from_handle): change from type_class to
24470         monotype_class
24471
24472         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
24473         implemented
24474
24475         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
24476         implemented
24477
24478         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
24479
24480         (ves_icall_System_Reflection_Assembly_GetType): implemented
24481
24482         (ves_icall_System_MonoType_assQualifiedName): implemented
24483
24484         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
24485
24486 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
24487
24488         * assembly.c (mono_assembly_open): Implement a cache for the
24489         assemblies. 
24490
24491         (mono_assembly_close): only destroy the assembly when the last
24492         reference is gone.
24493         
24494 2001-11-09  Dick Porter  <dick@ximian.com>
24495
24496         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
24497
24498 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
24499
24500         * class.c (mono_class_metadata_init): bug fix: compute the right slot
24501
24502 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24503
24504         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
24505         from Martin Weindel.
24506         * object.h: add mono_string_chars ().
24507
24508 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
24509
24510         * reflection.c (build_compressed_metadata): Eliminates warnings
24511         and uses 64-bit clean code.
24512
24513         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
24514         (mono_type_equal): Change signature to eliminate warnings.
24515
24516 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24517
24518         * icall.c, loader.c: remove the internalcall array constructors.
24519         Changes to match the new MonoArray structure.
24520         * object.h, object.c: an array object doesn't allocate an extra
24521         vector. Add mono_array_new_full () to create jagged arrays easily.
24522
24523 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24524
24525         * metadata.h, metadata.c: add mono_metadata_field_info () to
24526         retreive all the info about a field from vairous tables.
24527         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
24528         * class.h, class.c: augment MonoClassField with more info.
24529         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
24530         policy and load a field's RVA if needed.
24531
24532 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
24533
24534         * class.c (mono_class_metadata_init): create a trampoline for all
24535         virtual functions instead of actually compiling them.
24536
24537 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
24538
24539         * class.h, class.c: include name in MonoClassField.
24540         * class.c: fix fundamental type of System.Object and System.String.
24541         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
24542         tokens in ldtoken.
24543         * icall.c: remove internalcalls for the Reflection stuff that is now
24544         done in C# code.
24545         * loader.c: mono_field_from_memberref () implementation.
24546         * mono-endian.c: thinko (s/struct/union/g).
24547         * object.c, object.h: make the mono_string_* prototypes actually use
24548         MonoString instead of MonoObject.
24549         * reflection.c, reflection.h: updates for changes in the reflection
24550         code in corlib: we use C structures that map to the actual C# classes.
24551         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
24552         fat method header if needed and use the info from the ILGenerator for
24553         methods. Handle fields in types. Misc fixes.
24554
24555 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
24556
24557         * class.c (mono_class_metadata_init): bug fix: always allocate
24558         space for static class data
24559
24560 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
24561
24562         * class.c (mono_compute_relative_numbering): use relative
24563         numbering to support fast runtime type checks.
24564
24565 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
24566
24567         * class.c (mono_class_create_from_typeref): added debugging output
24568         to print class name when MonoDummy is returned instead of real class
24569
24570 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
24571
24572         * class.c (mono_class_metadata_init): interface offset table now
24573         contains pointers into the vtable - this is more efficient for the jit
24574
24575 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
24576
24577         * class.c (mono_class_metadata_init): use a temporary vtable (the
24578         old algorithm only worked for the interpreter, but not for the jit)
24579
24580 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
24581
24582         * loader.c (method_from_memberref): use mono_class_get to get the
24583         class of an array instead of using System.Array directly.
24584         (mono_get_method): also add MEMBERREF methods to the method cache
24585         which usefull for arrays.
24586
24587 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
24588
24589         * pedump.c (arch_compile_method): added to compute vtable entry
24590
24591         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
24592         number of interfaces.
24593         
24594         * class.h: merged MonoArrayClass into MonoClass
24595
24596         * class.c (mono_class_create_from_typedef): compute the vtable size and
24597         allocate space to include the vtable inside MonoClass
24598         (mono_class_metadata_init): initialize the vtable
24599
24600 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
24601
24602         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
24603         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
24604         * image.c: endian fixes by Laurent Rioux.
24605         * object.h, object.c: rename MonoStringObject to MonoString and
24606         MonoArrayObject to MonoArray. Change some function names to conform to
24607         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
24608         guint16* as first argument, so don't use char*.
24609         Provide macros to do the interesting things on arrays in a portable way.
24610         * threads-pthread.c: updates for the API changes and #include <sched.h>
24611         (required for sched_yield()).
24612         * icall.c: updates for the API changes above.
24613         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
24614         platforms that need them.
24615
24616 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24617
24618         * class.c: set the correct type for all the fundamental
24619         type when loading the class.
24620
24621 2001-10-05  Dick Porter  <dick@ximian.com>
24622
24623         * threads-pthread.c (pthread_mutex_timedlock): Simple
24624         compatibility version for C libraries that lack this call.
24625
24626 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24627
24628         * class.c: MonoTypes stored in MonoClass are stored as
24629         fundamental MonoTypes when the class represents a
24630         fundamental type (System.Int32, ...).
24631         The TypeHandle return by ldtoken is a MonoType*.
24632         * icall.c: ves_icall_get_data_chunk () write out all the
24633         PE/COFF stuff. Implement ves_icall_define_method (),
24634         ves_icall_set_method_body (), ves_icall_type_from_handle ().
24635         * image.c: properly skip unknown streams.
24636         * loader.h, loader.c: add type_class to mono_defaults.
24637         * metadata.c, metadata.h: export compute_size () as
24638         mono_metadata_compute_size () with a better interface.
24639         Typo and C&P fixes.
24640         * pedump.c: don't try to print the entry point RVA if there is no entry point.
24641         * reflection.c, reflection.h: many cleanups, fixes, output method
24642         signatures and headers, typedef and typeref info, compress the metadata
24643         tables, output all the heap streams, cli header etc.
24644         * row-indexes.h: typo fixes.
24645
24646 2001-10-04  Dick Porter  <dick@ximian.com>
24647
24648         * object.h: Add a synchronisation mutex struct to MonoObject
24649
24650         * object.c (mono_new_object): Initialise the object
24651         synchronisation mutexes
24652
24653         * icall.c: System.Threading.Monitor internal calls
24654         
24655         * threads-pthread.h:
24656         * threads-pthread.c: System.Threading.Monitor internal calls
24657
24658         * threads-types.h: New file, includes the system-specific thread
24659         structures
24660         
24661         * threads-pthread-types.h:
24662         * threads-pthread-types.c: New files, handle pthread-specific
24663         synchronisation types
24664
24665         * threads-dummy-types.h: 
24666         * threads-dummy-types.c: New files of dummy support for
24667         thread-specific types
24668
24669         * metadata.c:
24670         * image.c:
24671         * pedump.c: include mono-endian.h not endian.h
24672         
24673         * Makefile.am: More threads files.
24674         Name mono-endian.h not endian.h
24675
24676 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
24677
24678         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
24679         stuff and implement a few more bits.
24680         * icall.c: a field needs to be dereferenced twice. Do not use the same
24681         name for two variables in the same scope.
24682         * image.c, image.h: cleanups.
24683
24684 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
24685
24686         * class.c (mono_class_metadata_init): bug fix: compute the right size
24687
24688 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
24689
24690         * icall.c: implemented some of the Reflection internalcalls.
24691         * image.c, image.h: start writing out the PE/COFF image.
24692         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
24693         that does the reverse than decode_blob_size ().
24694         * object.c: use mono_metadata_encode_value (). Move here
24695         temporary implementation of mono_string_to_utf8 ().
24696         * rawbuffer.c: make malloc_map static.
24697
24698 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24699
24700         * metadata.c: fix type comparison for arrays.
24701         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
24702         Added a couple of new classes to monodefaults.
24703         * icall.c: added a couple of Reflection-related internalcalls.
24704         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
24705         Added a byval_arg MonoType to MonoClass.
24706
24707 2001-09-28  Dick Porter  <dick@ximian.com>
24708
24709         * icall.c:
24710         * threads-pthread.h: 
24711         * threads-pthread.c: Implemented internal calls for
24712         LocalDataStoreSlot operations.  Applied mutexes around all shared
24713         data.  Reworked the thread creation and Start() operations to
24714         avoid a race condition.
24715         
24716         * threads-dummy.h:
24717         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
24718
24719 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
24720
24721         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
24722
24723 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
24724
24725         * class.c, loader.c: warn and return NULL instead of erroring out.
24726         * icall.c: added System.AppDomain::getCurDomain().
24727         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
24728
24729 2001-09-25  Dick Porter  <dick@ximian.com>
24730
24731         * threads-pthread.h:
24732         * threads-pthread.c: Implemented timed thread joining and added
24733         System.Threading.Thread::Join_internal internal call
24734
24735         * icall.c: Added System.Threading.Thread::Join_internal internal call
24736
24737         * threads-dummy.h:
24738         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
24739
24740 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
24741
24742         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
24743         mono_string_intern () to implement the semantics of the ldstr opcode
24744         and the interning of System.Strings.
24745         * icall.c: provide hooks to make String::IsIntern and String::Intern
24746         internalcalls.
24747
24748 2001-09-23  Dick Porter  <dick@ximian.com>
24749
24750         * threads-dummy.c: 
24751         * threads-dummy.h: New files of dummy threading routines
24752
24753         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
24754         support code based on system specifics
24755
24756         Rename PTHREAD_LIBS to THREAD_LIBS
24757         
24758 2001-09-23  Dick Porter  <dick@ximian.com>
24759
24760         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
24761         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
24762         internal calls.
24763         (mono_thread_init): Set up a Thread object instance to return when
24764         the main thread calls Thread.CurrentThread
24765         (mono_thread_cleanup): Wait for all subthreads to exit
24766
24767         * icall.c: New internal calls for System.Threading.Thread::Sleep
24768         (including Schedule) and CurrentThread
24769
24770         * threads.h: New file, to insulate thread-specific stuff from the
24771         rest of the code
24772
24773 2001-09-21  Dick Porter  <dick@ximian.com>
24774
24775         * threads-pthread.h: 
24776         * threads-pthread.c: New file, for handling pthreads-style
24777         threading support.  Start() now starts a new thread and executes
24778         the ThreadStart delegate instance.
24779
24780         * icall.c: Added the internalcall for
24781         System.Threading.Thread::Start_internal
24782
24783         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
24784
24785 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
24786
24787         * loader.c: work around the different signatures for delegates
24788         constructors csc generates in compiled code vs the ones compiled in mscorlib.
24789
24790 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
24791
24792         * class.h, class.c: add mono_class_get_field_from_name ().
24793         * *: Fix C comments and other ANSI C issues.
24794
24795 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
24796
24797         * endian.h, assembly.c: fix some endianness issues.
24798
24799 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
24800
24801         * loader.h, load.c: add delegate_class to mono_defaults.
24802         Handle runtime provided methods in mono_get_method ().
24803
24804 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
24805
24806         * loader.c (mono_get_method): use pinvoke for internal call
24807
24808         * icall.c: use pinvoke for internal call
24809
24810         * loader.c (method_from_memberref): set the method name
24811
24812 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
24813
24814         * metadata.c: help the compiler generate better code for
24815         mono_class_from_mono_type ().
24816
24817 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
24818
24819         * class.c (mono_class_metadata_init): delayed computing of the
24820         class size to mono_class_metadata_init ()
24821
24822 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
24823
24824         * class.c, class.h: add an interfaces member to MonoClass.
24825         * image.c, image.h: add assembly_name field to MonoImage
24826         from the assembly table.
24827         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
24828
24829 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24830
24831         * class.c: Handle Array in mono_class_from_mono_type ().
24832         * metadata.c, pedump.c: some endian fixes.
24833
24834 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24835
24836         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
24837         * metadata.c: fix small problem introduced with the latest commit.
24838
24839 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
24840
24841         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
24842         We don't need a MonoMetadata pointer anymore to compare signatures in
24843         mono_metadata_signature_equal (), update callers.
24844         Reduced memory usage an number of allocations for MonoMethodHeader and
24845         MonoMethodSignature.
24846
24847 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
24848
24849         * metadata.c: added compare for szarray.
24850
24851 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
24852
24853         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
24854         and add a couple more types to it and mono_defaults. Give an hint on
24855         classes that need implementing in our corlib and are referenced
24856         in mscorlib.
24857
24858 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
24859
24860         * class.h, class.c: keep track if a class is also an Enum.
24861         * loader.c: Implement a couple more types for use in libffi
24862         marshalling. Gives better diagnostics when failing to dlopen
24863         a library. Set method->klass for P/Invoke methods, too.
24864
24865 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
24866
24867         * class.c, class.h: add a MonoType this_arg to MonoClass that
24868         represents a pointer to an object of the class' type that
24869         can be used by the interpreter and later the type cache.
24870         Add best guess alignment info for valuetype objects.
24871
24872 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
24873
24874         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
24875         into MonoType: one less level of indirection and allocation and
24876         simplifies quite a bit of code. Added cache for MonoTypes that are
24877         used frequently, so that we don't need to allocate them all the time.
24878
24879 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
24880
24881         * class.c (mono_class_create_from_typedef): System.Enum is also a
24882         value type, although it does not derive from System.ValueType
24883         (maybe a bug in the ms compiler?)
24884
24885         * metadata.c (mono_type_size): return the right size for value types
24886
24887         * loader.c (mono_get_method): only initialize method header if not abstract
24888
24889         * class.c (mono_class_from_mono_type): use mono_default values. 
24890
24891 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
24892
24893         * *: use MonoClass pointers instead of <type_tokens>
24894         
24895         * class.h: new flag: metadata_inited.
24896
24897         * class.c (mono_class_metadata_init): impl.
24898         (mono_class_instance_size): impl.
24899         (mono_class_data_size): impl.
24900
24901 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24902
24903         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
24904         MonoClass now has the name and name_space fields. 
24905         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
24906         mono_get_method () takes and optional MonoClass as argument.
24907         Removed mono_typedef_from_name() and added mono_class_token_from_name()
24908         instead that takes advantage of a map from class names to typedef
24909         tokens in MonoImage.
24910
24911 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
24912
24913         * metadata.c: zero is not a valid alignment boundary.
24914         Merge MONO_TYPE_VOID in default decoding code.
24915
24916 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
24917
24918         * image.h: merged MonoMetadata into MonoImage
24919
24920         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
24921         identify the type of elements.
24922
24923 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
24924
24925         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
24926         * cil-coff.h: split MonoMSDOSHeader and add size info.
24927         * image.c: add some consistency checks.
24928         * metadata.c: fix row size computation: one programmer
24929         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
24930         add explanation for the locator routine.
24931         Fix decoding of size in method header.
24932         
24933 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
24934
24935         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
24936         (g_concat_dir_and_file): Bring g_concat_dir_and_file
24937         function from gnome-libs.  This uses the right path separator
24938         based on the OS, and also works around a bug in some systems where
24939         a double slash is not allowed. 
24940         (default_assembly_name_resolver): Use g_concat_dir_and_file
24941         (mono_assembly_open): ditto.
24942
24943 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
24944
24945         * metadata.c (mono_metadata_signature_equal): impl.
24946
24947         * *: void is now a realy MonoType (instead of using NULL)
24948         
24949         * metadata.c (do_mono_metadata_parse_type): use
24950         mono_metadata_parse_type to parse void value.
24951
24952 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
24953
24954         * metadata.c, metadata.h: in the signature and method header store
24955         only the space required for holding the loca vars and incoming arguments.
24956
24957 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
24958
24959         * metadata.c (do_mono_metadata_parse_type): treat void like any
24960         other type (instead of assigning NULL);
24961
24962 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
24963
24964         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
24965
24966 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
24967
24968         * image.c (do_mono_image_open): added a cache for arrays.
24969
24970 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24971
24972         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
24973         decode a single column from a row in a metadata table and changes
24974         to take advantage of it in the typedef locator (gives a nice speed up).
24975         Store offset info for function params.
24976
24977 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
24978
24979         * image.h (MONO_IMAGE_IS_CORLIB): removed 
24980
24981 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
24982
24983         * assembly.c: how could mono_assembly_close () had ever worked?
24984         * metadata.c, metadata.h: provide offset info for local vars.
24985         Implement mono_type_size () to take care of alignment as well
24986         as size (it was mono_field_type_size in cli/class.c before).
24987
24988 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
24989
24990         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
24991
24992         * assembly.h (CORLIB_NAME): set to corlib.dll
24993
24994         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
24995
24996 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24997
24998         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
24999         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
25000         tokentype.h: massive namespace cleanup.
25001
25002 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
25003
25004         * metadata.h, metadata.c: decode exception clauses when parsing method header.
25005
25006 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
25007
25008         * metadata.c (mono_metadata_free_type): added check for type !=
25009         NULL (void) before calling mono_metadata_free_type()
25010
25011 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
25012
25013         * metadata.h, row_indexes.h: added header with enumerations to use
25014         to index in the columns from tables in metadata and to decode coded
25015         tokens: we should start using this instead of embedding magic numbers
25016         all over the code.
25017
25018 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
25019
25020         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
25021         Move metadata_t info from cli_image_info_t to MonoImage, where
25022         it's easily accessible. Changed all the uses accordingly.
25023         Added the method and class caches to MonoImage.
25024         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
25025         and mono_metadata_decode_value () signature to be more consistent
25026         with the other parse functions (and simplify code). Taken advantage
25027         of zero-length array allocation with GCC. Removed reduntant (and
25028         wrong) MonoFieldType struct and use MonoParam instead. Changed
25029         mono_metadata_parse_field_type () to use common code for parsing.
25030         Added mono_metadata_typedef_from_field () and
25031         mono_metadata_typedef_from_method () to lookup a typedef index from a
25032         field or method token.
25033         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
25034
25035 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
25036
25037         * metadata.c (mono_metadata_parse_field_type): Implement. 
25038         (do_mono_metadata_parse_type): Split engine from
25039         mono_metadata_parse_type, so that we can create smaller structures
25040         for things that just have one pointer to the MonoType (look at
25041         the MonoFieldType)
25042
25043 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
25044
25045         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
25046         as Jan Gray found out, it is incorrect. 
25047
25048 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
25049
25050         * assembly.c: Implement asssembly loading.  This loads an image
25051         and loads all the referenced assemblies.  Come to think of it, we
25052         could always do lazy loading of the assemblies. 
25053
25054         * image.c (mono_image_open): Keep loaded images in a hashtable.
25055
25056         * image.h (MonoImage): Add reference count.
25057
25058 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
25059
25060         * assembly.c (mono_assembly_open): Keep track of the file name in
25061         case the assembly has no ASSEMBLY table.
25062
25063         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
25064         from get.c here.
25065
25066 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
25067
25068         * metadata.c, metadata.h: decode local vars in method header
25069         parse function. Change callers accordingly.
25070
25071 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
25072
25073         * metadata.h, cil-coff.h: protect against multiple inclusion.
25074         Added some new structures to hold information decoded from metadata:
25075         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
25076         and relevant decoding/free functions.
25077         * metadata.c: implement decoding functions. Add warning for out of bounds
25078         index in mono_metadata_locate(). Implement mono_get_method () to retreive
25079         all the info about a method signature and invocation. Remove check on
25080         uninitialized local var in parse_mh() and fix memory leak.
25081
25082 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
25083
25084         * metadata.h: More macros.
25085
25086         * tokentype.h: New file.
25087
25088 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
25089
25090         * assembly.c: added a consistency check and initialize
25091         some structures with g_new0().
25092         * metadata.c: fixed a couple more bugs in table size computation
25093         and add other checks for out-of bound access to metadata.
25094
25095 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
25096
25097         * metatada.c: fix bugs computing table sizes. Spew a
25098         warning when index in string heap is out of bounds.
25099
25100 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
25101
25102         * metadata.h: Add a couple of macros to manipulate tokens. 
25103
25104 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
25105
25106         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
25107         cli_section_tables).
25108
25109 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
25110
25111         * metadata.c (mono_metadata_user_string): New function, provides
25112         access to the UserString heap. 
25113
25114 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
25115
25116         * metadata.c: Add inline documentation.
25117
25118 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
25119
25120         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
25121         files. 
25122
25123 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
25124
25125         * typeattr.h: New file, TypeAttribute flags. 
25126
25127 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
25128
25129         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
25130         mono_assembly_ensure_section): Section loading code.
25131         (load_section_tables): Load the sections.
25132
25133         * mono/metadata/metadata.c (mono_metadata_locate_token,
25134         mono_metadata_locate): Functions to locate the information
25135         definition given a token or a table and an index.
25136         (mono_metadata_compute_table_bases): New.
25137         (compute_size): New function to compute the sizes of the various
25138         tables.
25139
25140         * mono/metadata/metadata.h: Finish listing the different index
25141         types. 
25142
25143         * mono/metadata/pedump.c: Improve to dump new information.
25144
25145 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
25146
25147         * mono/metadata/metadata.c: Entered all the tables matching
25148         Beta2. 
25149
25150         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
25151
25152
25153