fbf9f8225b2547c42dd3645aab8c3440e43bc06f
[mono.git] / mono / metadata / ChangeLog
1 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
2
3         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
4         their size on all platforms for perf reasons.
5
6 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7
8         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
9         object-internal.h
10
11         * object-internal.h: Same.
12
13 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
14
15         * reflection.h: Fix the build I just broke.
16
17 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
18
19         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
20         Test if a token is valid, this remove explicit usage of 
21         MonoDynamicImage::tokens from the verifier code.
22
23         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
24
25         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
26         instead of direct access to MonoDynamicImage::tokens.
27
28 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
29
30         * verify.c (token_bounds_check): Fix the build I just broke.
31
32 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
33
34         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
35
36         * verify.c (verifier_load_method): Fixed the errors message.
37
38         * verify.c (mono_method_verify): Fixed a debug message.
39
40 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
41
42         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
43         mono-perfcounters.h, class-internals.h: support for predefined
44         writable counters, query of categories and counters, bugfixes.
45
46 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
47
48         * verify.c (do_refanytype): Verify the refanytype opcode.
49
50         * verify.c (mono_method_verify): Use do_refanytype.
51
52 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
53
54         * verify.c (do_mkrefany): Verify the mkrefany opcode.
55
56         * verify.c (mono_method_verify): Use do_mkrefany.
57
58 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
59
60         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
61         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
62         implementation.
63
64 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
65
66         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
67         the type load exception.
68
69 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
70
71         * verify.c: Added a few FIXME for method signatures
72
73         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
74         of mono_method_get_signature and get vararg call working. Removed unused
75         checks for return value.
76
77         * verify.c (do_refanyval): Verify the refanyval opcode.
78
79         * verify.c (mono_method_verify): Implemented verification of arglist and
80         use do_refanyval.
81
82 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
83
84         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
85         vtypes to marshal.c.
86
87         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
88         it works for AOT as well.
89
90 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
91
92         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
93         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
94         the system time is adjusted.
95
96 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
97
98         * icall.c, icall-def.h: use the new time functions (fixes the
99         non-monotonic behaviour of TickCount).
100
101 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
102
103         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
104         it breaks the build.
105         
106         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
107         cattr is not finished yet.
108
109 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
110
111         * verify.c: Proper token validation for field, method and type.
112
113 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
114
115         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
116
117         * loader.c (method_from_memberref): Generate type load error instead of method missing
118         if the type is not found.
119
120 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
121
122         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
123         some of the conversions caused the generation of a marshal directive exception.
124
125 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
126
127         verify.c: Report which exception should be thrown by the JIT.
128         Added a lot of FIXME notes.
129
130 2008-02-22  Mark Probst  <mark.probst@gmail.com>
131
132         * generic-sharing.c: Runtime generic context slots are not
133         instantiated on init anymore.  Instead, provide function to do the
134         instantiating on demand.
135
136         * class-internals.h: Added vtable to runtime generic context.
137         Macros for encoding direct and indirect slot offsets in one
138         guint32.
139
140 2008-02-21  Mark Probst  <mark.probst@gmail.com>
141
142         * object.c, generic-sharing.c: Moved some generic sharing code
143         from object.c to generic-sharing.c.
144
145         * generic-sharing.c: Added support for extensible runtime generic
146         context.
147
148         * metadata-internals.h: Two new hash tables in MonoImage for
149         extensible runtime generic context support.
150
151         * domain.c: Unregister generic vtables upon domain unloading.
152
153         * image.c: Destroy new hash tables upon image unloading.
154
155         * metadata.c: Unregister generic subclasses upon image unloading.
156
157         * class-internals.h: New data structure for runtime generic
158         context template.  New fields in the runtime generic context for
159         extensible part.
160
161         * Makefile.am: Added generic-sharing.c.
162
163 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
164
165         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
166         there is a pending loader exception, raise it.
167
168         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
169         same.
170
171         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
172         same.
173
174         Fixes #363450.
175
176 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
177
178         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
179
180         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
181         
182         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
183         ref-only requests for compatibility with MS.
184
185 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
186
187         * reflection.c (mono_custom_attrs_from_method): Don't silently
188         return an empty list for generic method instances.
189         (mono_custom_attrs_from_param): Likewise.
190
191 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
192             Raja R Harinath  <harinath@hurrynot.org>
193
194         Fix #354757
195         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
196         * class.c (mono_class_inflate_generic_method_full): Initialize it
197         when a fully-open method is instantiated.
198         * metadata.c (inflated_method_equal, inflated_method_hash): Update
199         to new field.
200         * reflection.c (inflate_mono_method): Don't create a temporary context.
201
202 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
203
204         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
205         Compute correct value, to prepare for imethod->reflection_info going away.
206
207 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
208
209         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
210
211 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
212
213         * verify.c: Implement skip visibility flag.
214
215 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
216
217         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
218         which contains an extra field to tell the kind of exception that should be thrown.
219
220         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
221
222 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
223
224         * loader.c (mono_method_get_param_names): Initialize 'klass' after
225         'method' is updated.
226
227 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
228
229         * class.c (mono_class_layout_fields): Set class->min_align for classes using
230         explicit layout as well. Fixes #360375.
231
232 2008-02-11  Geoff Norton  <gnorton@novell.com>
233
234         * loader.c: Guard and dereference against inflated generic methods
235
236 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
237
238         * class.c: Include Retargetable spec in assembly name.
239         * assembly.c: Always include PublicKeyToken spec in assembly name
240         (with value "null" if assembly is not signed), and include
241         Retargetable spec.
242         * icall-def.h: Added icall for Assembly.get_fullname.
243         * icall.c: Added icall returning the fullname of an assembly.
244
245 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
246
247         * class.c (mono_class_setup_vtable_general): Add a missing call to
248         mono_class_setup_methods () which is needed in the AOT case.
249
250 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
251
252         * verify.c (mono_type_get_stack_name): Added. Return the name for the
253         stack type of the given MonoType.
254
255         * verify.c (verify_type_compatibility_full): Handle the void type.
256
257         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
258         way stack merging works.
259
260         * verify.c (store_local): Improved verification message.
261
262         * verify.c (do_branch_op): If the merging is invalid, the method
263         is unverifiable and not invalid. Improved error message.
264
265         * verify.c (merge_stacks): Properly merge a boxed valuetype and
266         a reference type diferent than System.Object. Improved error
267         message.
268
269 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
270
271         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
272
273         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
274         type of an enum even if the argument is byref.
275
276         * verify.c: Replace all explicit uses of enumtype and enum_basetype
277         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
278
279         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
280
281         *verify.c (verify_type_compatibility_full): Make enum types
282         compatible with their base types.
283
284         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
285         types are compatible for the special case of a boxed valuetype and
286         System.Object.
287
288         * verify.c (verify_stack_type_compatibility): The function
289         is_compatible_boxed_valuetype was extracted from here.
290
291         * verify.c (push_arg): Only set ctx->has_this_store if the method
292         is not static.
293
294         * verify.c (do_ldelem): Fixed a typo in an error message and added
295         strict check for mixing int32 and native int as the array type
296         and ldelem type.
297
298         * verify.c (merge_stacks): Consider boxed valuetypes in the
299         compatibility checks.
300
301 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
302         * profiler.h: (MonoGCEvent): Added start-stop the world events.
303
304 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
305         *class.c: use_new_interface_vtable_code: renamed the env var to have
306         a "MONO_" prefix, and fix the logic to enable it by default.
307
308 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
309         *class.c:
310         mono_class_setup_vtable_general: rewrote the way in which interface
311         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
312         makes the code more maintainable.
313         For now the old code is still there, and can be activated setting
314         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
315
316 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
317
318         * verify.c: guarded some debug functions around and #ifdef.
319
320         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
321
322 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
323
324         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
325         changes for now since they seem to break too many things.
326
327 2008-02-05  Mark Probst  <mark.probst@gmail.com>
328
329         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
330         mono_marshal_find_nonzero_bit_offset): Added macro and function
331         for finding the byte- and bit-offset of a bitfield within a
332         struct.
333
334 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
335
336         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
337         (mono_marshal_get_struct_to_ptr): Ditto.
338
339         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
340         cctor_signature.
341
342 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
343
344         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
345         between methods for non-corlib types.
346
347 2008-02-02  Geoff Norton  <gnorton@novell.com>
348
349         * loader.c (mono_method_get_param_names): Populate the parameter name for 
350         generic parameters as well. (Fixes #342536)
351
352 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
353
354         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
355
356         * verify.c (do_invoke_method): Fix for calling with byref structs.
357
358         * verify.c (do_cast): push a boxed value type based on the type token and not
359         the type of stack.
360
361 2008-01-31  William Holmes  <billholmes54@gmail.com>
362
363         * process.c (process_module_string_read): Check the size returned form 
364           VerQueryValue to avoid out of memory exception. 
365
366 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
367
368         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
369         Handle properly modules which are not in the moduleref table. Fixes
370         #356938.
371
372 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
373
374         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
375         the dynamic case which is now in managed code.
376         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
377
378         * marshal.c (mono_string_to_bstr): Fix a warning.
379         (init_com_provider_ms): Ditto.
380
381         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
382
383         * exception.c (mono_get_exception_out_of_memory): New helper function.
384
385 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
386
387         * marshal.c: Add support for BSTR marshalling
388         using other COM systems.
389
390         Code is contributed under MIT/X11 license.
391
392 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
393
394         * object.c (mono_runtime_invoke_array): reverted previous
395         commit as it breaks the build.
396
397 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
398
399         * object.c (mono_runtime_invoke_array): Verify arguments for
400         invalid types. Fixes #348522.
401
402 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
403
404         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
405         non-final virtual calls using call. 
406
407         * verify.c (do_invoke): fixed some TODOs.
408
409         * verify.c (push_arg): set has_this_store for "ldarga 0".
410
411 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
412
413         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
414         which belong to an inflated class. Fixes #356531.
415
416 2008-01-26  Robert Jordan  <robertj@gmx.net>
417
418         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
419         which resort to FindFirstFile when a certain error condition
420         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
421         Code is contributed under MIT/X11 license.
422
423 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
424
425         * marshal.c (emit_marshal_string): Fix out string marshalling
426         to use specified encoding. Fixes #323900.
427
428         Code is contributed under MIT/X11 license.
429
430 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
431
432         * class.c (mono_class_inflate_generic_method_full): Don't modify
433         iresult->context after cache check.
434
435 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
436
437         * class.c (mono_class_inflate_generic_method_full): Change the
438         struct assignments to memcpy for better visibility and add some comments.
439
440 2008-01-23  Dick Porter  <dick@ximian.com>
441
442         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
443         procedure, and make it work on windows.
444
445 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
446
447         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
448         a MonoReflectionTypeBuilder since it is always of that type.
449
450         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
451
452         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
453
454         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
455         
456         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
457
458         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
459
460         * reflection.c (mono_reflection_create_runtime_class): Remove already created
461         instantiations from the type cache.
462
463 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
464
465         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
466
467         * verify.c (do_unbox_value): push a controled mutability managed pointer.
468
469 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
470
471         * verify.c (do_ldstr): added, verifies if the #US token is valid.
472
473         * verify.c (mono_method_verify): removed old TODO
474
475 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
476
477         * verify.c (do_newobj): add visibility check.
478
479 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
480
481         * verify.c (do_load_function_ptr): add visibility check.
482
483 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
484         *class.c:
485         mono_generic_class_get_class: hook profiler events.
486         mono_field_get_offset: added to support heap-shot in the new profiler.
487         *class.h: exported mono_field_get_offset.
488         * reflection.c:
489         mono_reflection_setup_internal_class: hook profiler events.
490
491 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
492
493         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
494         argument here too and use it to avoid checking for pending exceptions if 
495         possible.
496
497 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
498
499         * assembly.c (build_assembly_name): add arg for passing the assembly
500         flags. Do not consider a PublicKey with value "null" valid.
501         (mono_assembly_name_parse_full): added boolean argument that will be
502         set if the assembly name contains a PublicKeyToken spec. Added support
503         for the Retargetable spec for which only Yes or No are allowed as valid
504         value. Consider assembly name invalid if Retargetable spec is set, but
505         either version, culture or public key (token) are not specified.
506         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
507         with implementation in assembly.c.
508         * icall.c (fill_reflection_assembly_name): also copy assembly flags
509         from MonoAssemblyName.
510         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
511         introduced argument for mono_assembly_name_parse_full to know if the
512         assembly name has a PublicKeyToken spec, and if it has instruct
513         fill_reflection_assembly_name to use default value for keyToken (if
514         PublicKeyToken is null).
515
516 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
517
518         * verify.c (mono_method_verify): fixed ovf ops with
519         float values. They are unverifiable now.
520
521 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
522
523         * class.c (set_failure_from_loader_error): add BadImageException to the
524         list of exceptions that can cause a type to fail to load.
525
526         * class.c (mono_class_get_exception_for_failure): same.
527
528 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
529
530         * verify.c (in_any_exception_block): added, check if offset
531         is part of any exception handling clause.
532
533         * verify.c (get_stack_type): added VAR and MVAR types.
534
535         * verify.c (do_stobj): better error messages.
536
537         * verify.c (do_cpobj): added, check cpobj.
538
539         * verify.c (do_initobj): added, check initobj.
540
541         * verify.c (do_sizeof): added, check sizeof.
542
543         * verify.c (do_localloc): added, check localloc.
544
545         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
546
547 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
548
549         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
550         save_lmf/restore_lmf opcodes.
551
552         * threads.c (mono_threads_install_notify_pending_exc): New function to
553         install a callback notifying the JIT there is a pending exception on a thread.
554         (mono_thread_request_interruption): Call the new callback.
555         (mono_thread_get_and_clear_pending_exception): New function to return the
556         exception pending on a thread.
557
558         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
559         to turn off checking for pending exceptions.
560         (mono_marshal_get_native_wrapper): Ditto.
561
562 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
563
564         * threads-types.h: Get rid of the unnecessary extern declarations.
565
566 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
567
568         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
569         return field from parent class if not private.
570         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
571         returns fields from parent class if they are not private.
572         (method_nonpublic): added function to determine if a given method
573         should be considered non-public. Returns false for private methods
574         on parent class, and internal methods from parent on the 1.0 profile.
575         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
576         use method_nonpublic function to determine whether method should be
577         returned.
578         (property_accessor_public): use newly introduced method_nonpublic
579         function to determine whether accessor is non-public. 
580         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
581         event from parent class if not private. Only return static event if
582         Static flag is set, and only return static event from parent class if
583         FlattenHierarchy flag is set.
584         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
585         include non-private events from parent class.
586
587 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
588
589         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
590         warning.
591
592 2008-01-16  Wade Berrier <wberrier@novell.com>
593
594         * security.c: Add assembly.h header to appease some warnings
595
596 2008-01-16  Dick Porter  <dick@ximian.com>
597
598         * process.c (process_module_string_read): Remove trailing null
599         when saving string.
600
601 2008-01-16  Mark Probst  <mark.probst@gmail.com>
602
603         * class-internals.h: A new data structure describing the layout of
604         a runtime generic context (MonoRuntimeGenericContextTemplate).
605
606         * metadata-internals.h: Added a hash table to MonoDomain that maps
607         from open generic classes to their runtime generic context
608         templates.
609
610         * object.c: Building of the runtime generic context, including
611         proper handling of generic type arguments of superclasses.
612         Building of the runtime generic context according to the template.
613
614 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
615
616         * class.c (mono_class_setup_fields): Set field.count for generic instances.
617         Fixes #350856.
618
619         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
620         mono_portability_find_file (). Fixes #325466.
621         (mono_image_get_public_key): Fix a warning.
622
623 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
624
625         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
626         Fixes #353550.
627         (mono_class_from_name_case): Ditto.
628
629 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
630
631         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
632           common storage for the tables used in the System/NumberFormatter class.
633
634 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
635
636         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
637
638 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
639
640         * verify.c (get_boxable_mono_type): check if the token is valid.
641
642         * verify.c (set_stack_value): changed to add an error if an
643         invalid type is set on stack. Changed all callers due to signature change.
644
645         * verify.c (do_stobj): implement stobj validation.
646
647 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
648
649         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
650         set container->is_method, it was set earlier.
651
652         * metadata.c (type_in_image): Handle MVARs which belong to not finished
653         generic methods.
654
655         * reflection.c (mono_reflection_initialize_generic_parameter): Set
656         is_method of the generic container to TRUE for methods.
657
658 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
659
660         * metadata.c (type_in_image): Handle type parameters properly.
661
662         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
663         memory ownership of this structure.
664
665 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
666
667         * verify.c (get_boxable_mono_type): make typedref types been just
668         unverifiable. check for void type.
669
670         * verify.c (do_unbox_any): added, verify opcode unbox.any.
671
672         * verify.c (do_load_function_ptr): accept method spec tokens.
673
674 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
675
676         * marshal.c (mono_class_native_size): Always set *align even if this is called
677         recursively.
678
679 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
680
681         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
682         out-of-date.
683
684 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
685
686         * verify.c: removed some old unused tables. A huge bunch of small fixes
687         to things found while testing the verifier with mono basic.
688
689         * verify.c (dump_stack_value): dump null literal flag to.
690
691         * verify.c (verify_type_compatibility_full): fix comparison
692         for types that have a generic super type.
693
694         * verify.c (verify_stack_type_compatibility): fix compatibility
695         between null literals and reference types. fix compatibility between
696         boxed valuetypes and object. fix corner case test for enums.
697
698         * verify.c (do_cmp_op): proper verification of cgt.un in case
699         of reference types.
700
701         * verify.c (do_invoke_method): fix error message.
702
703         * verify.c (do_store_indirect
704
705         * verify.c (check_is_valid_type_for_field_ops): proper verification
706         of managed pointers to valuetypes and boxed valuetypes. proper verification
707         of null literals.
708
709         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
710         allow token to be a reference type.
711
712         * verify.c (do_cast): proper handling of boxes valuetypes.
713
714         * verify.c (do_stelem): proper handling of storing a boxed valuetype
715         in object[].
716
717         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
718         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
719         fixed the decoding of unbox_any
720
721 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
722
723         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
724
725 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
726
727         * verify.c (do_newobj): do delegate verification.
728
729         * verify.c (verify_delegate_compatibility): perform delegate
730         verification.
731
732         * verify.c (verify_ldftn_delegate): perform tests related to
733         ldftn delegates.
734
735         * verify.c (mono_delegate_signature_equal): perform the
736         slightly diferent signature comparison required by delegates.
737
738         * metadata.c (mono_metadata_type_equal_full): added and exported
739         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
740         allows signature only comparison.
741
742         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
743         as MONO_INTERNAL.
744
745 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
746
747         * verify.c: added a bunch of stack_slot_* functions to
748         make access to stack slot type easier. This is required to
749         allow optional flags, like null literal, boxed value and
750         this pointer.
751         All access paths to IlStackDesc::stype have been changed 
752         to use these new funcions.
753         Removed a bunch of unused functions and cleared all warnings.
754         This patch introduces the usage of the this pointer and 
755         boxed value flags.
756
757 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
758
759         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
760
761 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
762
763         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
764         match managed version.
765
766         * appdomain.c: Bump corlib version.
767         
768         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
769         argument.
770
771 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
772
773         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
774         Set public key token to zero-length byte array if assembly is not
775         strongnamed.
776
777 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
778
779         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
780         writing a vtype array elem.
781
782 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
783
784         * assembly.c (build_assembly_name): return FALSE if length of token is
785         not 16 (if not "null").
786         (mono_assembly_name_parse_full): return FALSE if value of version,
787         culture, token or key is 0.
788         * icall.c (fill_reflection_assembly_name): add boolean arguments to
789         specify whether public key and public key token must be set to default
790         value (zero-length byte array) if not available. Set versioncompat to
791         SameMachine. If public key is available or the default is set, then
792         set PublicKey flag.
793         (ves_icall_System_Reflection_Assembly_FillName): if no public key
794         is available, use empty byte array as default value. On the 2.0
795         profile, use default value for public key token if not set.
796         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
797         profile, use default value for public key if not set. On the 2.0
798         profile, use default value for public key token if not set.
799         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
800         default values for public key and public key token.
801
802 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
803
804         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
805         field to keep it in synch with the managed object.
806
807         * marshal.c (emit_marshal_object): Add support for byref marshalling of
808         delegates. Fixes #351520.
809
810         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
811         contains defined memory.
812         
813         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
814
815         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
816         
817         * sgen-gc.c (check_consistency): New helper function to do a consistency check
818         of the GC data structures.
819
820         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
821
822         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
823         
824         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
825         barrier.
826         (mono_array_clone_in_domain): Ditto.
827         (mono_array_clone_in_domain): Ditto.
828
829         * threads.c (start_wrapper): Register the thread start argument as a GC root.
830         (cache_culture): Use a write barrier.
831
832         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
833         (ves_icall_get_property_info): Ditto.
834
835         * object.h (MONO_STRUCT_SETREF): New macro.
836
837         * class-internals.h (MonoStats): Add some GC statistics.
838
839         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
840
841 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
842
843         * exception.c (mono_exception_from_name_two_strings):
844         Break from loop after method is found.
845
846 2008-01-04  Dick Porter  <dick@ximian.com>
847
848         * process.c (process_module_string_read): Rename variable to
849         reflect correct usage, after fixing bug 345972.
850
851 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
852
853         * verify.c (mono_type_create_fnptr_from_mono_method): 
854         created a MonoType function pointer instance to be used during
855         verification. The verifier releases this memory at end.
856
857         * verify.c (mono_method_is_constructor): extracted repeated
858         checks for constructor into a single class.
859
860         * verify.c (do_push_field): use new extracted method
861         for constructor check.
862
863         * verify.c (do_newobj): same.
864
865         * verify.c (do_ldftn): renamed to do_load_function_ptr
866         and make it verify ldvirtftn too.
867
868         * verify.c (mono_method_verify: proper verification
869         of ldvirtftn. release created MonoMethod instances.
870
871 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
872
873         * verify.c (token_bounds_check): added.
874
875         * verify.c (do_ldftn): added.
876
877         * verify.c (mono_method_verify): proper verificartion of ldftn.
878
879 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
880
881         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
882         than the table row count. It's the resposibility of the caller to
883         make the bounds check and raise the correct error.
884
885         * metadata.c (mono_metadata_decode_row_col): Same.
886
887         * loader.c (mono_get_method_from_token): perform bounds check
888         on token for methoddef table.
889
890 2007-12-29  Miguel de Icaza  <miguel@novell.com>
891
892         * icall.c
893         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
894         assert into a negative result, the managed code already coped with
895         that.
896
897         Some folks on Windows reported this error. 
898
899 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
900
901         * appdomain.c: Bump corlib version.
902         * icall.c:
903         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
904         CultureInfo.CreateCulture to create CultureInfo for name.
905         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
906         create CultureInfo for name. Fixes bug #347174.
907
908 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
909
910         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
911         flags.
912
913         * verify.c (is_valid_branch_instruction): allow branching to the
914         first instruction of the protected block.
915
916         * verify.c (is_valid_cmp_branch_instruction): same.
917
918         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
919         avoid double initialization.
920
921         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
922         detect which cases the eval stack should just be copied.
923
924         * verify.c (mono_method_verify): check if the eval stack
925         is empty when entering a protected block.
926
927 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
928
929         * verify.c: added is_clause_in_range, is_clause_inside_range,
930         is_clause_nested and verify_clause_relationship. They perform
931         the verifications stated in P1 12.4.2.7.
932
933         * verify.c (mono_method_verify): remove some unused variables,
934         add the new exception clause checks, add instruction border
935         checks for protected block start/end, improved some error 
936         messages and fixed a bug in the way invalid instruction access
937         is detected.
938
939 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
940
941         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
942         from GC 7.0 if available.
943
944         * object.c: Remove an unused define.
945         
946         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
947
948         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
949
950         * null-gc.c (mono_gc_make_descr_for_array): Implement.
951
952         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
953
954         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
955         to take the same arguments as the other make_descr functions.
956
957         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
958
959         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
960         directly.
961
962         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
963         mini.c.
964
965         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
966         call to boehm-gc.c.
967
968         * boehm-gc.c (mono_gc_register_root): Fix a warning.
969
970         * null-gc.c (mono_gc_register_root): Fix a warning.
971
972         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
973
974         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
975         (mono_gc_base_init): Call GC_init ().
976
977         * null-gc.c: Define mono_gc_register_root () as a no-op.
978
979         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
980
981 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
982
983         * verify.c: add prototype for merge_stacks at top
984
985         * verify.c (do_switch): added.
986
987         * verify.c (merge_stacks): on some cases the stack merging
988         was not happening properly. Unequal stack sizes at merge
989         points should be invalid.
990
991         * verify.c (mono_method_verify): added more debug info on stack state.
992         verify switch properly.
993
994 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
995
996         * method-builder.h: New file, moved the mono_mb_ declarations here from 
997         marshal.h.
998
999         * boehm-gc.c marshal.c: Include method-builder.h.
1000
1001         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
1002
1003         * marshal.c: Remove some code which is now in method-builder.c.
1004
1005 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
1006
1007         * method-builder.c: New file, extraction of the method builder functionality 
1008         from marshal.c.
1009
1010         * marshal.c: Move the mb functions into method-builder.c.
1011
1012         * marshal.h marshal.c: Export some mono_mb_... functions.
1013
1014         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
1015
1016         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
1017         the caller.
1018
1019         * class.c (mono_class_get_full): Check the token type in the dynamic case.
1020
1021         * loader.c (mono_field_from_token): Ditto.      
1022
1023         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
1024         type as well.
1025         
1026         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
1027         Fixes #342565.
1028
1029         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
1030         a helper function for setting it.
1031
1032         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
1033
1034         
1035         * assembly.c: Significally simplify code now that referenced assemblies are 
1036         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
1037
1038         * threads.h: Don't include  the internal threads-types.h header file. Fixes
1039         #349952.
1040
1041 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
1042
1043         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
1044         instructions that were target of branches or are at protected block boundaries.
1045
1046         * verify.c (in_same_block): handle filter clauses.
1047
1048         * verify.c (is_valid_branch_instruction): added. checks the target of
1049         instructions br or brtrue/false.
1050
1051         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
1052         binary branch instructions such as beq and bge.
1053
1054         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
1055         and made it pin the instruction as been part of the exception block.
1056
1057         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
1058         of in_same_block.
1059
1060         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
1061         of in_same_block.
1062
1063         * verify.c (do_ret): ret from a protected block is unverifiable and
1064         not invalid.
1065
1066         * verify.c (do_static_branch): verify br and br.s instructions.
1067
1068         * verify.c (merge_stacks): add extra param to support detection
1069         of branches in the middle of instructions.
1070         
1071         * verify.c (mono_method_verify): verify branches and exception blocks
1072         that target the middle of instructions. Proper verification of br and br.s.
1073
1074 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
1075
1076         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
1077         skip_visibility field.
1078         (reflection_methodbuilder_from_dynamic_method): Ditto.
1079
1080         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
1081         registrations. Fixes #348193.
1082
1083         * threads.h: Move the internal mono_thread_get_pending_exception () to
1084         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
1085
1086 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
1087
1088         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
1089         icall registration. Fixes #348193.
1090
1091         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
1092         for corlib classes into object. Fixes #349621.
1093
1094 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
1095
1096         * icall.c (property_accessor_nonpublic): new function to determine
1097         whether an accessor allows a property to be considered non-public.
1098         Returns false for private accessor(s) from parent class, and internal
1099         accessor(s) from parent on 2.0 profile (and higher).
1100         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
1101         to determine whether property should be included if NonPublic flag
1102         is set. Fixes bug #349078.
1103
1104 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
1105
1106         * verify.c (init_stack_with_value): added.
1107
1108         * verify.c (mono_method_verify): extracted common
1109         code for exception initialization into init_stack_with_value.
1110
1111         * verify.c (mono_method_verify): initialize the exception
1112         for handler clauses as well.
1113
1114         * verify.c (mono_method_verify): fix the exception clause
1115         ordering rules, it should use handler end offset and not
1116         start offset.
1117
1118 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
1119
1120         * rawbuffer.c: remove useless warning.
1121
1122 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
1123
1124         * threads.h, threads-types.h: move functions to the correct header
1125         (fixes bug#349952).
1126
1127 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1128
1129         * verify.c (mono_method_verify): proper verification
1130         of exception handling clauses ranges and fallthru in
1131         and out of protected blocks.
1132
1133 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1134
1135         * verify.c (mono_method_verify): fixed compilation issue.
1136
1137 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1138
1139         * verify.c (mono_method_verify): a printf slipped in, changed
1140         to use verifier debug macro.
1141
1142 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
1143
1144         * verify.c (is_correct_leave): check for filter clauses.
1145
1146         * verify.c (do_filter): added.
1147
1148         * verify.c (mono_method_verify): property verification of leave.
1149
1150
1151 2007-12-18  Mark Probst  <mark.probst@gmail.com>
1152
1153         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
1154         Win32 build, until we figure out how to do the proper thing on
1155         Win32.
1156
1157 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
1158
1159         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
1160         by the previous patch.
1161         
1162         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
1163         the assembly resolve handler for refonly assemblies.
1164
1165 2007-12-17  Mark Probst  <mark.probst@gmail.com>
1166
1167         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
1168         Make sure only one thread is allowed to commence shutdown, and
1169         don't allow new threads to be started once shutdown is in
1170         progress.
1171
1172 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
1173
1174         * verify.c (is_correct_endfilter): added.
1175
1176         * verify.c (is_unverifiable_endfilter): added.
1177
1178         * verify.c (do_endfilter): added.
1179
1180         * verify.c (mono_method_verify): property verification of endfilter
1181         and fixed a corner case or endfinally.
1182
1183 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
1184
1185         * verify.h: new flags to support fail fast of unverifiable code and
1186         do non-strict verification. Non-strict verification is required to
1187         have MS runtime compatibility. There are a huge amount of unverifiable
1188         code that it accepts as verifiable. The strict mode verifies the code
1189         as the specs says.
1190         Non-strict mode will be required in cases where code needs to be
1191         accepted as verifiable but fails under strict mode.
1192
1193         * pedump.c: added support to fail fast and non-strict verification.
1194
1195         * verify.c: added support for both fail fast and non-strict verification.
1196
1197 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
1198
1199         * verify.c (is_correct_endfinally): added.
1200
1201         * verify.c (mono_method_verify): property verification of endfinally.
1202
1203 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
1204
1205         * verify.c (in_any_block): check for filter clauses.
1206
1207         * verify.c (is_correct_rethrow): added.
1208
1209         * verify.c (mono_method_verify): property verification of rethrow.
1210
1211         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
1212
1213 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
1214
1215         * verify.c (do_throw): added.
1216
1217         * verify.c (mono_method_verify): property verification of throw
1218
1219 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
1220
1221         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
1222         assemblies. Fixes #346425.
1223
1224 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
1225
1226         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
1227         FieldBuilders.
1228
1229         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
1230
1231         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
1232         prevent asserts when this is called with a token which might not be valid.
1233
1234         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
1235         lookup_dynamic_token_class with valid_token == FALSE.
1236
1237         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
1238
1239         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
1240
1241         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1242         
1243 2007-12-10  Mark Probst  <mark.probst@gmail.com>
1244
1245         * gc.c: Don't delay threadpool thread finalization unless Mono is
1246         shutting down.
1247
1248 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1249
1250         * threads.c: turn an assert into a non-fatal warning.
1251
1252 2007-12-09  Robert Jordan  <robertj@gmx.net>
1253
1254         * icall.c (GetVirtualMethod): Add missing argument validation.
1255
1256 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1257
1258         * verify.c (do_cast): added.
1259
1260         * verify.c (mono_method_verify): property verification of castclass and isinst.
1261
1262
1263 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1264
1265         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
1266
1267         * verify.c (do_stelem): added.
1268
1269         * verify.c (mono_method_verify): property verification of stelem.X.
1270
1271 2007-12-07  Mark Probst  <mark.probst@gmail.com>
1272
1273         * class.c, class-internals.h: Introduce an environment variable
1274         (MONO_GENERIC_SHARING) through which the extent of generic code
1275         sharing can be controlled (share all classes, share only corlib
1276         classes, or share nothing).
1277
1278         * object.c: Only create runtime generic context for classes for
1279         which sharing is enabled.
1280
1281 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1282
1283         * verify.c (do_ldelem): refactor it to work with ldelem.any.
1284
1285         * verify.c (mono_method_verify): property verification of ldelem.any.
1286
1287 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1288
1289         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
1290         added ldelem.X opcodes.
1291
1292         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
1293
1294         * verify.c: proper verification of ldelem.X 
1295
1296 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
1297
1298         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
1299
1300 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
1301
1302         * verify.c (mono_method_verify): null literal requires special handling,
1303         the value pushed on stack need to be flagged as so.
1304
1305         * verify.c (do_ldelema): Verify ldelema properly.
1306
1307 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
1308
1309         * verify.c: Verify ldlen properly.
1310
1311 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
1312
1313         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
1314         to the target object's type. Fixes #346160.
1315
1316 2007-12-05  Dick Porter  <dick@ximian.com>
1317
1318         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
1319         Solaris needs the same workaround as BSD-derived systems.  Fixes
1320         bug 323524, patch by Burkhard Linke
1321         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
1322
1323 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
1324
1325         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
1326         handle to use when error dialog is shown; otherwise, update mask
1327         to show no error dialog when an error occurs.
1328
1329 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
1330
1331         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
1332
1333         * class.c (mono_class_get_field_default_value): New helper function to initialize
1334         field->def_type and field->data.
1335
1336 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
1337
1338         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
1339         the general one.
1340
1341         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
1342
1343         * marshal.c: Avoid depending on delegate->method_info being set.
1344
1345         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
1346         
1347         * object.c (mono_delegate_ctor): Set delegate->method.
1348
1349         * object-internals.h (struct _MonoDelegate): Add 'method' field.
1350
1351         * appdomain.c: Bump corlib version.
1352
1353 2007-11-27  Raja R Harinath  <harinath@gmail.com>
1354
1355         * metadata.c (mono_generic_inst_equal_full): Short-circuit
1356         equality check if we're comparing canonicalized MonoGenericInsts.
1357
1358 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
1359
1360         * class.c (generic_array_methods): Call mono_class_setup_methods () before
1361         accessing class->methods.
1362
1363 2007-11-22  Dick Porter  <dick@ximian.com>
1364
1365         * threads.c: Ensure that the synch_cs is set before trying to use
1366         it.
1367
1368 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
1369
1370         * profiler.c: r89126 broke the statistial profiler, unbreak.
1371
1372 2007-11-22  Martin Baulig  <martin@ximian.com>
1373
1374         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
1375
1376         * mono-debug.c
1377         (mono_debug_debugger_version): Bump to 3.
1378         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
1379         -> mono_debugger_class_initialized().
1380
1381         * mono-debug-debugger.c
1382         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
1383
1384         * class.c
1385         (mono_debugger_start_class_init_func): Removed.
1386         (mono_debugger_class_loaded_methods_func): Added.
1387         (mono_class_setup_methods): Call it here.
1388
1389 2007-11-22  Martin Baulig  <martin@ximian.com>
1390
1391         * mono-debug.c
1392         (mono_debug_add_delegate_trampoline): New public method.
1393         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
1394
1395         * mono-debug.h
1396         (MonoSymbolTable): Added `global_data_table'.
1397         (MonoDebuggerTypeKind): Removed.
1398
1399 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
1400
1401         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
1402         these methods.
1403
1404         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1405         
1406 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1407
1408         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
1409
1410 2007-11-20  Martin Baulig  <martin@ximian.com>
1411
1412         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
1413
1414         * mono-debug-debugger.c
1415         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
1416         (mono_debugger_remove_breakpoint): Likewise.
1417         (mono_debugger_check_breakpoints): Likewise.
1418         (mono_debugger_register_class_init_callback): New public method.
1419         (mono_debugger_remove_class_init_callback): Likewise.
1420         (mono_debugger_add_type): Likewise.
1421
1422         * mono-debug-debugger.h
1423         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
1424
1425 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
1426
1427         * class.c: more interface implementations needed for the
1428         array enumerator (fixes bug #341112).
1429
1430 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
1431
1432         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
1433         fix ParamName of ArgumentNullExceptions.
1434
1435 2007-11-17  Miguel de Icaza  <miguel@novell.com>
1436
1437         * reflection.c (mono_reflection_encode_sighelper): Generate the
1438         modopts and modreqs.   I have a useless test that crashes monodis,
1439         but that shows the code working.
1440
1441 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
1442
1443         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
1444         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
1445
1446 2007-11-15  Dick Porter  <dick@ximian.com>
1447
1448         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
1449         When joining a thread, it's the thread that's calling Join that
1450         gets WaitSleepJoin state not the target.  Fixes the standalone
1451         test case in bug 334740, and hopefully the whole bug too.
1452
1453 2007-11-15  Dick Porter  <dick@ximian.com>
1454
1455         * process.c: Read file version info from the files pointed at by
1456         process modules, not the current process.  Fixes bug 315969.
1457
1458         Use windows typedef names in some places to fix warnings on the
1459         windows build.
1460
1461 2007-11-15  Mark Probst  <mark.probst@gmail.com>
1462
1463         * image.c, metadata-internals.h: Added a generic_class_cache hash
1464         to MonoImage for looking up generic classes when sharing generics.
1465
1466 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1467
1468         * sgen-gc.c: warning cleanups.
1469
1470 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
1471
1472         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
1473         inherited properties.
1474
1475 2007-11-14  Mark Probst  <mark.probst@gmail.com>
1476
1477         * object.c, class-internals.h: Added more information to the
1478         runtime generic context.
1479
1480 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
1481
1482         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
1483         instead of just the target method. Generalize the abstract method handling to
1484         handle any non-static method.
1485
1486         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1487         mono_marshal_get_delegate_invoke () signature change.
1488
1489 2007-11-13  Mark Probst  <mark.probst@gmail.com>
1490
1491         * class.c, class-internals.h: Made
1492         mono_type_get_basic_type_from_generic () public.  Fixed member
1493         access check for shared generics.
1494
1495         * loader.c: Don't insert field into field cache if it's part of a
1496         non-inflated generic class.
1497
1498         * domain.c, domain-internals.h: The generic sharing context is now
1499         part of the jit info data structure.  Added two accessor
1500         functions.
1501
1502 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
1503
1504         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
1505         the array Get/Set/Address methods, since the JIT inlines them.
1506
1507         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
1508
1509         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
1510         (mono_image_init): Initialize runtime_invoke_direct_cache.      
1511
1512         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1513         mono_marshal_get_delegate_invoke signature change.
1514
1515         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
1516         an additional argument. Add support for invoking abstract methods.
1517
1518         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
1519
1520         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
1521
1522 2007-11-09  Mark Probst  <mark.probst@gmail.com>
1523
1524         * class.c: Do field layout for open generic classes as well.
1525
1526 2007-11-09  Mark Probst  <mark.probst@gmail.com>
1527
1528         * gc.c, gc-internal.h: Don't finalize threadpool threads with
1529         other objects, because the threadpool is still around.  Put them
1530         in a list instead and after finalizing all other objects in the
1531         root domain shut down the thread pool and then finalize the
1532         threads.  Fixes bug #337383.
1533
1534         * threads.c, thread-types.h: New mono_thread_create_internal()
1535         function for marking a thread with the threadpool flag before it
1536         started.  Set synch_cs to NULL after freeing it.
1537
1538         * threadpool.c: Mark threadpool threads before they start.
1539
1540 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1541
1542         * reflection.h, reflection.c: don't export random functions
1543         and lazy load dbnull and missing objects.
1544
1545 2007-11-07  Jonathan Chambers <joncham@gmail.com>
1546
1547         * class.c: Initialize COM types if COM interfaces
1548         are present (not just COM classes).
1549         
1550         Code is contributed under MIT/X11 license.
1551
1552 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
1553         * reflection.c:
1554         create_dynamic_mono_image: hook module profiler events (dynamic case).
1555         mono_image_basic_init: hook assembly profiler events (dynamic case).
1556
1557 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
1558         * profiler.c:
1559         simple_appdomain_unload: completely terminate the profiler
1560         instead of only processing the statistical samples.
1561         simple_shutdown: make sure this is really called exactly once,
1562         even in multithreaded applications, and always listen to
1563         appdomain events.
1564         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
1565         here, the "[un]load" functions will do it.
1566         Fixes bugs #333791 and #325261.
1567
1568 2007-11-07  Geoff Norton  <gnorton@novell.com>
1569
1570         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
1571         rather than depend on __APPLE__.
1572
1573 2007-11-07  Mark Probst  <mark.probst@gmail.com>
1574
1575         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
1576
1577 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
1578
1579         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
1580         UTF16 MonoString. Fix the crash from bug #335488
1581
1582 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
1583
1584         * marshal.c: Correct (for non-Win32 OS) length != size in 
1585         mono_string_from_bstr. Fix #339530.
1586
1587 2007-11-06  Geoff Norton  <gnorton@novell.com>
1588
1589         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
1590         to succeed
1591
1592 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
1593
1594         * process.c: Added run-time GetProcessId API detection for Windows.
1595
1596 2007-11-04  Miguel de Icaza  <miguel@novell.com>
1597
1598         * reflection.c  (mono_param_get_objects): If a parameter has the
1599         attribute [System.Runtime.InteropServices.Optional] we should
1600         set the DefaultValue of the ParameterInfo to be
1601         System.Reflection.Missing instead of DBNull.
1602
1603         See bug #339013.
1604
1605         (mono_get_reflection_missing_object): New method,
1606         returns the System.Reflection.Missing.Value singleton instance.
1607
1608 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
1609
1610         * culture-info-table.h : regenerated.
1611
1612 2007-11-02  Jonathan Chambers <joncham@gmail.com>
1613
1614         * icall.c: Use GetEnvironmentStrings on windows
1615         so we are using the same environment block as 
1616         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
1617         #333740.
1618         
1619         Code is contributed under MIT/X11 license.
1620
1621 2007-10-31  Martin Baulig  <martin@ximian.com>
1622
1623         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
1624
1625         * mono-debug-debugger.h
1626         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
1627
1628 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
1629
1630         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
1631         classes.
1632
1633 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
1634
1635         * culture-info-table.h : regenerated.
1636
1637 2007-10-30  Robert Jordan  <robertj@gmx.net>
1638
1639         * icall-def.h, icall.c:
1640         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
1641
1642         Code is contributed under MIT/X11 license.
1643
1644 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
1645
1646         * class.c (mono_class_setup_vtable): Find the inflated methods in the
1647         inflated class instead of inflating them again.
1648         
1649         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
1650         dynamic case.
1651
1652         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
1653         Call setup_supertypes () after klass->parent is set.
1654         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
1655
1656         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
1657         for inflated instances of not yet created dynamic generic classes.
1658         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
1659         times from inflated_method.
1660         (methodbuilder_to_mono_method): Ditto.
1661
1662 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1663
1664         * gc.c: code cleanup and removed old untested option of not creating the
1665         finalizer thread.
1666
1667 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
1668
1669         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
1670         creating a jump trampoline for dynamic methods.
1671
1672 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
1673
1674         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
1675         generic TypeBuilders when called from another method of the same type (bug #335131).
1676
1677
1678 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
1679
1680         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
1681         doesn't seem to work perfectly.
1682         
1683         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
1684         called multiple times.
1685         (methodbuilder_to_mono_method): Ditto.
1686         (resolve_object): Inflate FieldBuilder's.
1687
1688 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1689
1690         * string-icalls.c, string-icalls.h, appdomain.c: patch from
1691         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
1692         RemoveEmptyEntries in the string.Split implementation (bug #322375).
1693
1694 2007-10-26  Dick Porter  <dick@ximian.com>
1695
1696         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
1697         Thread initialisation changes
1698
1699 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
1700
1701         * verify.c: fix compatibility check between arrays and System.Array
1702
1703 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
1704
1705         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
1706         too. Fixes #336999.
1707
1708 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
1709
1710         * object.c (mono_value_box): Use typed allocation here.
1711
1712 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
1713
1714         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
1715         trampoline instead of compiling the method right away.
1716
1717         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
1718
1719 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
1720
1721         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
1722         related fields for dynamic classes. Fixes #334493.
1723
1724 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
1725
1726         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
1727         
1728         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
1729
1730         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
1731         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
1732
1733         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
1734
1735         * reflection.c (create_generic_typespec): Initialize klass->generic_container
1736         if needed.
1737         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
1738
1739 2007-10-18  Jonathan Chambers <joncham@gmail.com>
1740
1741         * marshal.c: Use correct key when removing item
1742         from ccw_hash.
1743         
1744         Code is contributed under MIT/X11 license.
1745
1746 2007-10-17  William Holmes  <billholmes54@gmail.com>
1747
1748         *marshal.c: Adding a case to marshal booleans to U1
1749
1750         Code is contributed under MIT/X11 license.
1751
1752 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
1753
1754         * class.c (mono_class_from_name): Search the modules compromising dynamic
1755         assemblies. Fixes #331601.
1756
1757 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
1758
1759         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
1760         exception if the type name contains an assembly component. Fixes #334203.
1761
1762         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
1763         modules inside dynamic assemblies. Fixes #334200.
1764         
1765         * reflection.c: Set image->public_key and image->public_key_length;
1766
1767         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
1768         fields.
1769
1770         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
1771         
1772 2007-10-16  Mark Probst  <mark.probst@gmail.com>
1773
1774         * metadata.c: Implemented correct comparing of generic classes.
1775         An inflated generic class can be equal to a non-inflated one if it
1776         is inflated with generic type variables as type arguments.  Fixes
1777         bug #333798.
1778
1779 2007-10-15  Dick Porter  <dick@ximian.com>
1780
1781         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
1782         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
1783         81646.
1784
1785         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
1786         instead of a monitor lock.  This means that monitor_try_enter and
1787         co can set the thread state safely.
1788         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
1789         thread_interrupt_requested, so interrupt actually works.
1790
1791         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
1792         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
1793         state accessor function
1794
1795 2007-10-15  Martin Baulig  <martin@ximian.com>
1796
1797         * mono-debug.h
1798         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
1799         the debugger with the current runtime.
1800
1801 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
1802
1803         * object.c, object-internals.h: added the ability to set a single
1804         trampoline for all the slots in a vtable.
1805
1806 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1807
1808         * marshal.c: deal with a possible race condition during multicast
1809         delegate invocation.
1810
1811 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1812
1813         * class.c: ensure value type methods don't have the synchronized
1814         flag set.
1815
1816 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
1817
1818         * string-icalls.c, string-icalls.h: reverted unapproved patch that
1819         breaks the build.
1820
1821 2007-10-11  Joel Reed  <joelwreed@comcast.com>
1822
1823         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
1824         to take an options parameter so that empty entries can be removed during
1825         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
1826
1827 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
1828
1829         * marshal.c: make sure we don't store the signature from a dynamic
1830         method into the runtime invoke cache (bug #327189).
1831
1832 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1833
1834         * marshal.c: make sure the wrapper methods are properly initialized.
1835
1836 2007-10-11  Mark Probst  <mark.probst@gmail.com>
1837
1838         * metadata.c, metadata-internals.h: Generalized
1839         mono_type_stack_size() to mono_type_stack_size_internal() which
1840         takes an additional argument specifying whether it allows open
1841         types.
1842
1843 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
1844
1845         * verify.c (do_invoke_method): handle typedbyref params
1846         correctly and check for unverifiable return values.
1847
1848         * verify.c (do_newobj): fix a warning.
1849
1850 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
1851
1852         * verify.c: don't tread typedbyref as allways unverifable,
1853         so uses, like (ld/st)loc.0 are valid. verify for the cases
1854         that it matters, like boxing related operations.
1855
1856 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
1857
1858         * verify.c: add verification of the newobj opcode. verification
1859         of delegate instantation still missing due ldftn and virldftn not
1860         pushing the function type on stack
1861
1862 2007-10-08  Mark Probst  <mark.probst@gmail.com>
1863
1864         * class-internals.h: Runtime generic context data structure
1865         definition.
1866
1867         * object.c: Initialization of runtime generic context at runtime
1868         vtable creation time.
1869
1870 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
1871         * class.c (mono_class_create_from_typedef,
1872         mono_class_from_generic_parameter, mono_ptr_class_get,
1873         mono_fnptr_class_get, mono_bounded_array_class_get)
1874         * domain.c (mono_domain_create, mono_domain_free)
1875         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
1876         * image.c (do_mono_image_load, mono_image_close):
1877         Hooked up load-unload profiler events.
1878
1879 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
1880
1881         * domain.c: track statistics about the actual amount of native code
1882         allocated.
1883
1884 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
1885
1886         * class.c: the valuetype enumerators don't have the additional
1887         supertypes interfaces.
1888
1889 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1890
1891         * class.c: need more interfaces setup for the IEnumerator<T>
1892         object created for arrays (tests/ienumerator-interfaces.2.cs).
1893
1894 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
1895
1896         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
1897
1898 2007-10-05  Alp Toker  <alp@atoker.com>
1899
1900         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1901         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1902         #315863.
1903
1904 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
1905
1906         * verify.c (verify_type_compatibility_full): verification of
1907         compatibility improved, validates correctly non-strict checks between
1908         native int and I4 types different than (unsigned)int32.
1909
1910         * verify.c (do_store_indirect): added, do all verification of
1911         ldind.X opcodes. 
1912
1913         * verify.c (get_load_indirect_mono_type): renamed to
1914         get_indirect_op_mono_type, as it now returns the MonoType for 
1915         ldind.X and stind.X opcodes.
1916
1917 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
1918
1919         * reflection.c: Fix the encoding of generic type definition for
1920         TypeBuilders.
1921
1922         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
1923         mono_image_typedef_or_ref but allows to specify if typespec lookups should
1924         be made. Typespec check is done prior to typeref cache lookup.
1925
1926         * reflection.c (mono_image_typedef_or_ref): now just delegate to
1927         mono_image_typedef_or_ref_full.
1928
1929         * reflection.c (encode_generic_class): encode the generic class
1930         directly instead of calling encode_type.
1931
1932         * reflection.c (encode_type): encode the generic type definition
1933         MonoClass as a generic instantiation.
1934
1935         * reflection.c (create_typespec): cache typespec tokens in
1936         the assembly->typespec cache. Don't create typespec for a generic
1937         instance MonoClass. Create typespec for the generic type defintion.
1938
1939         * reflection.c (create_generic_typespec): encode the generic
1940         class directly instead of calling encode_type.
1941
1942         * reflection.c (mono_image_create_token): encode the generic
1943         type definition not using a typespec for MonoType instances.
1944
1945
1946 2007-10-04  Raja R Harinath  <rharinath@novell.com>
1947
1948         Fix #328812
1949         * class.c (mono_image_init_name_cache): Don't return nested
1950         'protected internal' classes.
1951         (mono_class_from_name_case): Likewise.
1952
1953 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
1954
1955         * icall-def.h, icall.c : get_bundled_machine_config() is now the
1956           common function used by both DefaultConfig in System.dll and
1957           InternalConfigurationHost in System.Configuration.dll.
1958
1959 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
1960
1961         * class.c: automatically add to vectors only a few essential explicit
1962         generic interfaces. The rest of the interfaces that arrays should
1963         provide are currently implicitly added (but still not lazily, see the
1964         design in the discussion of bug#325495 for the details of what is
1965         needed for that). Additionally, implicit interfaces are assigned the
1966         same vtable slot as the explicit interfaces (as they are compatible):
1967         this enables huge memory savings since we don't need to instantiate
1968         as many memthods and as large vtables anymore. Also, Since
1969         GetEnumerator<T> returns an instance of a type that is required to
1970         support a similarly large set of interfaces as arrays, we add
1971         implicit interfaces and interface offset sharing support to those
1972         types, too. This change adds all the required interfaces so that
1973         the anonarray.cs test case in the bug report works (we don't add
1974         all the interfaces to arrays of arrays 3-level deep and more because
1975         of the memory requirements explained in the bug and since they are much
1976         less common: the lazy-loading support will enabled them to work, too).
1977
1978 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
1979
1980         * verify.c (merge_stacks): major clean up, all type compatibility
1981         checks are done by verify_type_compatibility. This fix my earlier lack
1982         of understanding of the CLR type system and merge_stacks no longer looks
1983         scary.
1984
1985         * verify.c: fixed some bad spelling.
1986
1987 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
1988
1989         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
1990         a given stack slock.
1991         
1992         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
1993         verify_type_compatibility_full. This removed a near indentical function and fixed
1994         handling of Int32 and IntPtr across all opcodes.
1995
1996 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
1997
1998         * class.c: only vectors have the additional generic interfaces.
1999
2000 2007-10-01  Jonathan Chambers <joncham@gmail.com>
2001
2002         * mono-config.c: Use g_strcasecmp instead of
2003         strcasecmp like everywhere else to fix
2004         compilation with MSVC.
2005         
2006         Code is contributed under MIT/X11 license.
2007
2008 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2009
2010         * object.c, object-internals.h: refactored the IMT code to enable
2011         building a single slot at a time and lazily creating the IMT trampolines
2012         and thunks.
2013
2014 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
2015
2016         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
2017
2018         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
2019         Fixes #328501.
2020         
2021 2007-09-29  Raja R Harinath  <harinath@gmail.com>
2022
2023         * loader.c (method_from_methodspec): Rearrange to avoid
2024         un-necessary exposition.  Don't assert out if the method's
2025         declaring type is a generic type definition.
2026
2027 2007-09-28  Martin Baulig  <martin@ximian.com>
2028
2029         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
2030
2031 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
2032
2033         * class-internals.h: optimize field layout of MonoClass to
2034         requires less cachelines at runtime and save a few bytes on 64 bit
2035         systems.
2036
2037 2007-09-28  Jb Evain  <jbevain@novell.com>
2038
2039         * reflection.c: when encoding type names in custom attributes,
2040         if the type is a closed generic type, its generic arguments
2041         have to be serialized as AssemblyQualifiedName, so that when
2042         they are deserialized, it's possible to re-create them properly.
2043         Fixes #329450.
2044
2045
2046 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2047
2048         * object.c, class-internals.h: added delegate-creation counter.
2049
2050 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
2051
2052         * class.c: cleanup of the code that synthetizes interfaces for
2053         arrays in 2.0: saves quit a bit of corlib mempool memory.
2054         Code to fix bug #325495 ifdeffed out for now until the issues
2055         with memory usage and O(n^2) behaviour are fixed.
2056
2057 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2058
2059         * marshal.c: when possible, do not duplicate the name of the methods
2060         in the method builder and in the generated MonoMethod.
2061
2062 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
2063         * verify.c: added support for type checking ldind_* opcodes.
2064
2065 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
2066
2067         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
2068         which is used to distinguish the fully open instantiation of a TypeBuilder
2069         with the rest. This temporary hack is required to restore the property that
2070         the fully open instantiation is the same type of the generic type definition.
2071
2072         * class-internals.h (mono_generic_class_is_generic_type_definition):
2073         new function as part of the internal API.
2074
2075         * class.c (inflate_generic_type): return NULL when the generic inst is
2076         fully open. The fully open generic type is now the same as the generic type
2077         definition for non TypeBuilder types.
2078
2079         * class.c (mono_generic_class_get_class): removed assert since it is
2080         no longer valid, gklass->cached_class can point to the generic type definition.
2081
2082         * class.c (mono_generic_class_is_generic_type_definition): new.
2083
2084         * metadata.c (mono_generic_class_hash): added is_tb_open field
2085         to the hash calculation.
2086
2087         * metadata.c (free_generic_class): if the generic class is associated
2088         with the generic type definition, its field will come from the mempool and
2089         must not be freed.
2090
2091         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
2092         new, this function identifies the corner case of a TypeBuilder fully open
2093         instantiation.
2094
2095         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
2096         for lookup. Set gclass->cached_class to be the container class in case of
2097         the fully open instantiation of non TypeBuilder types.
2098
2099         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
2100         to compare generic classes.
2101
2102         * reflection.c (method_encode_methodspec): remove assert that
2103         no longer is valid.
2104
2105         * reflection.c (mono_reflection_generic_class_initialize): add
2106         an aditional assert to ensure the proper type is used.
2107
2108 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
2109
2110         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
2111         to enjoy it.
2112
2113 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
2114
2115         * verify.c (push_arg): Fixed support for ldarga
2116         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
2117         MonoType used as first arg in case of instance calls.
2118
2119 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
2120
2121         * verify.c: Support for verifying VAR and MVAR types, 
2122
2123 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
2124
2125         * icall.c (ves_icall_get_property_info): Set the reflected type of the
2126         accessors correctly.
2127
2128 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
2129
2130         * threads.c: support OSX and other systems in
2131         mono_thread_get_stack_bounds (bug #328026).
2132
2133 2007-09-25  Martin Baulig  <martin@ximian.com>
2134
2135         * mono-debug.h
2136         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
2137
2138 2007-09-24  Martin Baulig  <martin@ximian.com>
2139
2140         * mono-debug.h
2141         (MonoDebugClassEntry): Moved the definition of this struct into
2142         mono-debug.c to make it private.
2143
2144         * mono-debug.c
2145         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
2146         type table per symbol file, we don't need to store the symfile id
2147         any longer.
2148
2149 2007-09-24  Martin Baulig  <martin@ximian.com>
2150
2151         Create one type table per symbol file, since a `MonoClass *' gets
2152         invalid when its image is unloaded.
2153
2154         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
2155         (MonoDebugHandle): Added `type_table'.
2156
2157 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
2158
2159         * mempool.c, mempool.h: added mono_mempool_new_size () API
2160         to be able to specify a smaller initial size for the pool.
2161         Adjusted the code to slowly increase pool size before using
2162         the previous default size.
2163         * image.c: use a small initial size for image mempools.
2164
2165 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
2166
2167         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
2168         Fixes ##320990.
2169
2170         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
2171         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
2172
2173 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
2174
2175         * metadata.c (mono_type_create_from_typespec): Remove an invalid
2176         free. Fixes #327438.
2177
2178 2007-09-21  Raja R Harinath  <harinath@gmail.com>
2179
2180         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
2181         generic instantiations, etc.
2182         <MONO_TYPE_ARRAY>: Likewise.
2183
2184 2007-09-21  Martin Baulig  <martin@ximian.com>
2185
2186         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
2187         these structs were never defined.
2188         (MonoDebugHandle): Removed the `_priv' field, it was never used.
2189
2190 2007-09-21  Martin Baulig  <martin@ximian.com>
2191
2192         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
2193
2194 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
2195
2196         * image.c: removed the guid hash tables: we can get the same info
2197         without the additional memory usage hit (partially fixes also bug #327052).
2198
2199 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2200
2201         * profiler.h, profiler-private.h, profiler.c: add a new profiler
2202         event to handle unloading methods. After the event is called, the
2203         corresponding MonoMethod* must be considered invalid.
2204         * loader.c (mono_free_method): call the new mono_profiler_method_free
2205         event.
2206
2207 2007-09-20  Mark Probst  <mark.probst@gmail.com>
2208
2209         * domain-internals.h: New flag in MonoJitInfo which marks shared
2210         generic methods.  New hash table (shared_generics_hash) in
2211         MonoDomain to keep track of shared generic methods.  Prototypes
2212         for functions to register and lookup shared generic methods.
2213
2214         * domain.c: Support for registering and looking up shared generic
2215         methods via a hash table (shared_generics_hash) in MonoDomain.
2216
2217         * class-internals.h: New exception to signal failure of shared
2218         compilation of a generic method.  New counters for generics
2219         sharing in MonoStats.
2220
2221 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
2222
2223         * image.c, metadata-internals.h: don't keep a file descriptor open
2224         for loaded assemblies (bug#325988).
2225
2226 2007-09-19  Raja R Harinath  <rharinath@novell.com>
2227
2228         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
2229         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
2230         use the corresponding datatypes.
2231         (type_in_image): Update to changes.
2232         (CleanForImageUserData): Simplify.
2233         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
2234         Avoid quadratic behaviour in handling the "stolen" list by
2235         separating the filter predicate out, and by prepending the stolen
2236         items rather than appending them.
2237         (steal_ginst_in_image): Likewise.
2238         (mono_metadata_clean_for_image): Update to changes.
2239
2240 2007-09-19  Martin Baulig  <martin@ximian.com>
2241
2242         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
2243
2244 2007-09-19  Martin Baulig  <martin@ximian.com>
2245
2246         * mono-debug.c (mono_debug_cleanup): Don't call
2247         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
2248
2249 2007-09-19  Raja R Harinath  <harinath@gmail.com>
2250
2251         Fix crash on 'make run-test' in mcs/errors
2252         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
2253         Avoid more potential allocations in mono_class_from_mono_type.
2254         (ginst_in_image): Update to changes.
2255         (gclass_in_image): Rearrange slightly.
2256
2257 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
2258
2259         * class.c (mono_class_init): Move the code that sets up class->methods to 
2260         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
2261
2262         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
2263         canonical instance of an inflated generic signature.
2264         (mono_type_create_from_typespec): Remove an invalid free.
2265
2266         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
2267
2268 2007-09-18  Marek Habersack  <mhabersack@novell.com>
2269
2270         * domain-internals.h: added a declaration of the
2271         mono_assembly_load_full_nosearch internal function.
2272
2273         * assembly.c (mono_assembly_load_with_partial_name): use
2274         mono_try_assembly_resolve return value properly.
2275         (mono_assembly_load_full_nosearch): copied the function body from
2276         mono_assembly_load_full, without the code to invoke assembly
2277         search hooks.
2278         (mono_assembly_load_full): calls the above new function and if the
2279         assembly is not resolved, invokes the search hooks.
2280
2281         * appdomain.c (mono_runtime_init): restore the global postload
2282         assembly search handlers.
2283
2284 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
2285
2286         * class.c (mono_class_init): Make sure class->methods and class->properties
2287         are never NULL in the generics case.
2288
2289         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
2290
2291 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
2292
2293         * metadata.c (free_generic_class): Disable some code to fix the build.
2294
2295         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
2296
2297         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
2298         from the image mempool.
2299
2300         * metadata.c (free_generic_class): Free more data from the inflated class.
2301
2302         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
2303
2304         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
2305         mempool.
2306         (mono_type_create_from_typespec): Ditto.
2307
2308         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
2309         MonoImage to the caller.
2310         (mono_init_internal): Save the opened image in a global variable.
2311         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
2312
2313         * reflection.c (resolve_object): Fix a leak.
2314
2315         * metadata.c: Fix the freeing of data in the generics caches.
2316         
2317         * metadata.c (free_generic_inst): Comment this out to fix the build.
2318         (free_generic_class): Ditto.
2319
2320         * metadata.c: Free cached generic methods, instantinations and classes when
2321         they are removed from the caches.
2322         (mono_metadata_free_type): Free the type itself.
2323
2324         * class.c: Free the result of mono_class_inflate_generic_type () in a few
2325         places.
2326
2327 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2328
2329         * boehm-gc.c: restrict managed allocs to __thread supporting
2330         architectures.
2331
2332 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
2333
2334         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
2335         (mono_generic_class_get_class): Fix a leak.
2336
2337         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
2338         mono_metadata_free_type ().
2339         (mono_metadata_inflate_generic_inst): Fix a leak.
2340
2341 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2342
2343         * mono-debug.c (free_header_data): Fix a leak missed earlier.
2344
2345         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
2346         mempool.
2347
2348         * mono-debug.c (mono_debug_close_image): Fix call to 
2349         g_hash_table_remove ().
2350
2351 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2352
2353         * icall-def.h: redirect all the string ctor to the managed
2354         CreateString () methods.
2355         * string-icalls.c, string-icalls.h: removed dead code for string
2356         ctors and icalls.
2357
2358 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2359
2360         * mono-debug.c: Fix memory leaks.
2361
2362 2007-09-14  Jonathan Chambers <joncham@gmail.com>
2363
2364         * threads-types.h: Implement mono_hazard_pointer_set and 
2365         mono_hazard_pointer_clear macros using do/while(0) to fix
2366         compilation with MSVC.
2367         
2368         Code is contributed under MIT/X11 license.
2369
2370 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2371
2372         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
2373         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
2374
2375 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2376
2377         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
2378         icalls.
2379
2380 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2381
2382         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
2383         managed-code allocated as well.
2384
2385 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
2386
2387         * class.c (mono_class_is_assignable_from): Add support for generic variance.
2388
2389 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
2390
2391         * boehm-gc.c: fixed the build after the AOT changes.
2392
2393 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
2394
2395         * wrapper-types.h: Add an ALLOC wrapper type.
2396
2397         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
2398         reference managed allocator methods.
2399
2400 2007-09-12  Marek Safar  <marek.safar@gmail.com>
2401
2402         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
2403         of Type array and not MonoType, a fix suggested by Hari.
2404         
2405 2007-09-12  Jonathan Chambers <joncham@gmail.com>
2406
2407         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
2408         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
2409         
2410         Code is contributed under MIT/X11 license.
2411
2412 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2413
2414         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
2415
2416 2007-09-12  Marek Habersack  <mhabersack@novell.com>
2417
2418         * image.c (do_mono_image_open): if assembly file fails to open and
2419         MONO_IOMAP is in effect, try to find the path in a
2420         case-insensitive way.
2421
2422         * appdomain.c (mono_runtime_init): do not install postload hooks -
2423         tests show that MS.NET doesn't use anything of that sort to
2424         trigger the AppDomain.AssemblyResolve event.
2425         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
2426         made non-static.
2427         (mono_runtime_init): init portability helpers here.
2428
2429         * assembly.c (mono_assembly_load_with_partial_name): if other   
2430         attempts fail, trigger the AppDomain.AssemblyResolve event handler
2431         to resolve the assembly.
2432
2433         * domain-internals.h: added mono_try_assembly_resolve and marked
2434         it as internal.
2435
2436 2007-09-11  Jb Evain  <jbevain@novell.com>
2437
2438         * object-internals.h (MonoReflectionDynamicMethod): add
2439         a `MonoReflectionType *owner` field. The owner is used
2440         * reflection.c:
2441         (mono_reflection_create_dynamic_method): use the owner of the dynamic
2442         method as the class declaring the dynamic method.
2443         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
2444         dynamic method to the declaring type of the methodbuilder.
2445
2446 2007-09-11  Mark Probst  <mark.probst@gmail.com>
2447
2448         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
2449         rules for calling methods via reflection.
2450
2451 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
2452
2453         * reflection.c (resolve_object): Add support for MonoGenericClass. 
2454         Inflate MonoType's.
2455
2456 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
2457
2458         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
2459         provide a managed method that does fast allocations without needing
2460         a managed->unmanaged transition. Boehm GC implementation currently
2461         enabled for ptrfree objects on sane architectures.
2462
2463 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2464
2465         * marshal.c, marshal.h: exported a couple of useful functions and
2466         added mono_mb_get_label () to easily handle backward branches.
2467
2468 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
2469
2470         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
2471
2472 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2473
2474         * loader.c (find_method): Fixed the regression introduced while
2475         fixing bug #81466.
2476
2477 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
2478
2479         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
2480         well.
2481         
2482         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
2483         icall.c reflection.c: Pass a MonoGenericContext argument to 
2484         mono_lookup_dynamic_token ().
2485
2486         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
2487         #82744.
2488         
2489 2007-09-09  Robert Jordan  <robertj@gmx.net>
2490
2491         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
2492         for generic methods.
2493
2494         * object.c (mono_object_get_virtual_method): Handle generic methods.
2495         Fixes bug #78882.
2496
2497         Code is contributed under MIT/X11 license.
2498
2499 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
2500
2501         * image.c: fix locking in mono_image_load_file_for_image ().
2502
2503 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
2504
2505         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
2506         used only as a cache: added an icall to fill it.
2507
2508 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
2509
2510         * reflection.h: exposed mono_reflection_free_type_info
2511         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
2512         since mono_reflection_bind_generic_parameters makes a copy of it.
2513         * reflection.c (free_type_info): subinfos should be freed.
2514         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
2515         made non static.
2516         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
2517         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
2518         this fixes #82695 and #81726.
2519    
2520
2521 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
2522
2523         * process.h, process.c:  added support for user profile/info in
2524           ProcessStartInfo. For now only Windows works.
2525
2526 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2527
2528         * metadata.c: consider the generic arguments when comparing
2529         signatures (bug #82614).
2530
2531 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2532
2533         * cil-coff.h, image.c: updated assembly loader to cope with the
2534         PE32+ 64 bit file format.
2535
2536 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2537
2538         * assembly.c, class.c, domain.c, loader.c: remove useless
2539         inclusion of cil-coff.h.
2540
2541 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
2542
2543         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
2544         if interface is marked with CoClassAttribute. 
2545    
2546         Code is contributed under MIT/X11 license.
2547
2548 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2549
2550         * sgen-gc.c: ensure no object from the to space is copied again or finalized
2551         if it's seen twice in major collections.
2552
2553 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2554
2555         * sgen-gc.c: big objects are not copied to the gray area, but they
2556         need to be considered for scanning, too, if they are brought alive
2557         by an object ready for finalizations or a survived one.
2558
2559 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2560
2561         * sgen-gc.c: properly account the number of disappearing links when
2562         they are nullified.
2563
2564 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2565
2566         * sgen-gc.c: share the code to scan the registered roots between the
2567         different types of collections.
2568
2569 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
2570
2571         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
2572
2573 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
2574
2575         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
2576         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
2577
2578 2007-08-28  Mark Probst  <mark.probst@gmail.com>
2579
2580         * security-manager.c (mono_security_manager_get_methods):
2581         LinkDemandSecurityException now has 2 arguments instead of 3.
2582
2583 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
2584
2585         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
2586         platforms which need it.
2587
2588 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2589
2590         * sgen-gc.c: unregister thread data structures with a pthread_key_t
2591         dtor.
2592
2593 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2594
2595         * threads.c: free the thread static data on thread exit.
2596
2597 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
2598
2599         * class.c: walk the hierarchy to find the generic definition for
2600         a class (fixes runtime part of bug #82498).
2601
2602 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
2603
2604         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
2605         ...
2606
2607         * image.c (mono_image_close): Here. Hopefully fixes #82510.
2608
2609 2007-08-24  Mark Probst  <mark.probst@gmail.com>
2610
2611         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
2612
2613 2007-08-24  Robert Jordan  <robertj@gmx.net>
2614
2615         * appdomain.c: don't perform the ':'->';' substitution on Win32.
2616
2617 2007-08-24  Jb Evain  <jbevain@novell.com>
2618
2619         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
2620         for byref types.
2621
2622 2007-08-24  Mark Probst  <mark.probst@gmail.com>
2623
2624         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
2625         #82286.
2626
2627 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
2628
2629         * assembly.c: Fix a warning.
2630         
2631 2007-08-23  Marek Habersack  <mhabersack@novell.com>
2632
2633         * appdomain.c: parse the <runtime> section looking for the probing
2634         element with the 'privatePath' attribute, which sets additional
2635         directories in which the runtime should look for assemblies.
2636
2637 2007-08-23  Robert Jordan  <robertj@gmx.net>
2638
2639         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
2640         Fixes #82499.
2641
2642 2007-08-23  Martin Baulig  <martin@ximian.com>
2643
2644         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
2645         _mono_debug_init_corlib() and remove it from the header file.
2646
2647 2007-08-23  Martin Baulig  <martin@ximian.com>
2648
2649         * mono-debug-debugger.c
2650         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
2651         don't notify the debugger about it.
2652
2653         * mono-debug-debugger.h
2654         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
2655
2656 2007-08-23  Robert Jordan  <robertj@gmx.net>
2657
2658         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
2659         Code is contributed under MIT/X11 license.
2660
2661 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2662
2663         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
2664
2665 2007-08-22  Martin Baulig  <martin@ximian.com>
2666
2667         * mono-debug.c: Store debugging info on a per-domain basis and
2668         free it on domain unload.  Add support for unloading symbol files.
2669
2670         * mono-debug.h
2671         (MonoDebugList): New typedef.
2672         (MonoSymbolTable):
2673         - add `data_tables and `type_table'.
2674         - replace 'symbol_files' and `num_symbol_files' with a
2675           `MonoDebugList *'.
2676         (mono_debug_data_table): Removed.
2677         (mono_debug_list_add): New public function.
2678         (mono_debug_list_remove): New public function.
2679         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
2680         (mono_debug_init_2_memory): Renamed into
2681         mono_debug_open_image_from_memory().
2682         (mono_debug_close_image): New public function.
2683         (mono_debug_domain_create): Likewise.
2684         (mono_debug_domain_unload): Likewise.
2685         (MONO_DEBUGGER_VERSION): Bump to 60.
2686
2687         * mono-debug-debugger.h
2688         (MonoDebuggerEvent):
2689         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
2690         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
2691         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
2692         - rename `THREAD_CREATED' and `THREAD_EXITED' into
2693           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
2694         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
2695           meaning.
2696         (mono_debugger_add_symbol_file): Removed.
2697         (mono_debugger_add_type): Removed.
2698         (mono_debugger_lookup_type): Removed.
2699         (mono_debugger_lookup_assembly): Removed.
2700
2701         * domain.c
2702         (mono_domain_create): Call mono_debug_domain_create().
2703         (mono_init_internal): Call mono_debug_init_corlib().
2704
2705         * assembly.c
2706         (mono_assembly_close): Call mono_debug_close_image().
2707
2708 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
2709
2710         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
2711         mmap call.
2712
2713 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
2714
2715         * sgen-gc.c: ensure section->pin_queue_end is initialized
2716         correctly when non pinning objects in the section have been found.
2717
2718 2007-08-22  Marek Habersack  <mhabersack@novell.com>
2719
2720         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
2721         containing a list of directories separated by ':'. MSDN docs say
2722         the directories should be separated with ';'. Part of a bugfix for
2723         bug #81446
2724
2725 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
2726
2727         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
2728         it should MonoType and not MonoClass.
2729
2730 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
2731
2732         * culture-info-table.h : regenerated.
2733
2734 2007-08-20  William Holmes  <billholmes54@gmail.com>
2735
2736         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
2737          to call ReplaceFile Kernel32 on windows or in io-layer.
2738         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
2739         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
2740          as an internal call.
2741
2742         Code is contributed under MIT/X11 license.
2743
2744 2007-08-20  Jb Evain  <jbevain@novell.com>
2745
2746         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
2747         and MONO_EXCEPTION_FIELD_ACCESS.
2748
2749         * debug-helpers.[c|h]: new mono_field_full_name function.
2750
2751 2007-08-20  Mark Probst  <mark.probst@gmail.com>
2752
2753         * class.c: Removed class_security_level() and moved it to
2754         security-core-clr.c.
2755
2756         * security-core-clr.c, security-core-clr.h: class_security_level()
2757         is now public and renamed to mono_security_core_clr_class_level().
2758         It also looks for security attributes in the classes a class is
2759         nested in.
2760
2761 2007-08-20  Mark Probst  <mark.probst@gmail.com>
2762
2763         * security-core-clr.c, security-core-clr.h: CoreCLR security
2764         utility functions.
2765
2766         * Makefile.am: Added security-core-clr.[ch].
2767
2768         * security-manager.c, security-manager.h: Functions and enum for
2769         setting and getting the security mode.
2770
2771         * class.c: CoreCLR security checks.
2772
2773 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
2774
2775         * icall-def.h, process.c, process.h: implemented icall to get
2776         user/system processor times.
2777
2778 2007-08-17  Mark Probst  <mark.probst@gmail.com>
2779
2780         * domain.c, threads.c, class-internals.h, domain-internals.h: New
2781         reader-lock-free jit_info_table.
2782
2783 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
2784
2785         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
2786
2787         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
2788
2789         * object-internals.h (MonoException): Add missing _data member.
2790
2791 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
2792
2793         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
2794         checking that only methods with matching qname or fqname are picked
2795         from implemented interfaces.
2796
2797 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2798
2799         * verify.c (do_newarr):added, do type verification of
2800         newarr ops, push the right value on the eval stack.
2801         * verify.c (mono_method_verify): use do_newarr
2802
2803
2804 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2805
2806         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
2807         factored the common code into get_boxable_mono_type, which
2808         is now using mono_type_get_full, this fixed byref related tests.
2809
2810 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
2811
2812         * class.c: added mono_type_get_full, this function has the same
2813         behavior of mono_class_get_full but the returned MonoType has
2814         all metadata of the associated token in case of a typespec token.
2815         * class.c: added mono_type_retrieve_from_typespec, used by 
2816         mono_type_get_full to retrieve the token type.
2817         * class.c (mono_class_create_from_typespec): changed to use
2818         mono_type_retrieve_from_typespec.
2819         * class.c (mono_ldtoken): changed to use mono_type_get_full
2820         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
2821         * class-internals.h: exported mono_type_get_full for internal use.
2822
2823 2007-08-16  Jb Evain  <jbevain@novell.com>
2824
2825         * domain.c (supported_runtimes): add entry for
2826         the 'moonlight' runtime version.
2827
2828 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2829
2830         * verify.c (mono_method_verify): small typo sliped in.  
2831
2832 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2833
2834         * verify.c (do_unbox_value): added, do type verification of
2835         unboxing ops
2836         * verify.c (mono_method_verify): use do_unbox_value
2837
2838
2839 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2840
2841         * verify.c (dump_stack_value): fixed typo, was printing string
2842         instead of object on stack.
2843         * verify.c (do_box_value): moved the byref check up as it leads
2844         to invalid code and should be done earlier.
2845         * verify.c: improved error messages for and ldobj
2846
2847 2007-08-15  William Holmes  <billholmes54@gmail.com>
2848
2849         * marshal.c (emit_marshal_custom): Omit the call to 
2850           marshal_native_to_managed when calling native to managed 
2851           and the argument is specified as an out argument.
2852
2853         Code is contributed under MIT/X11 license.
2854
2855 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2856
2857         * verify.c: fixed the type checks for generics, function pointers and vectors.
2858         Added type verification for ldobj and ldtoken. The verifier
2859         would segfault if header or signature of a method contained references
2860         to non-existant types.
2861
2862 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
2863
2864         * marshal.c (cominterop_get_ccw): Patch from
2865         Bill Holmes to no walk up interface hierarchy. 
2866         All parent methods should be present in the interface for COM.
2867    
2868         Code is contributed under MIT/X11 license.
2869
2870 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
2871
2872         * marshal.c (emit_marshal_com_interface): Patch from
2873         Bill Holmes to handle COM Interfaces as return values
2874         for native->managed calls.
2875    
2876         Code is contributed under MIT/X11 license.
2877
2878 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
2879
2880         * marshal.c (cominterop_get_idispatch_for_object): Implement
2881         for runtime callable wrappers.
2882    
2883         Code is contributed under MIT/X11 license.
2884
2885 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
2886
2887         * pedump.c (main): changed from mono_init to mono_init_from_assembly
2888         so 2.0 types are accessible
2889
2890
2891 2007-08-13  Miguel de Icaza  <miguel@novell.com>
2892
2893         * domain.c (mono_init_internal): Call mono_assembly_load_friends
2894         once we load mscorlib.   Due to the order in which we initialize,
2895         the mono_assembly_load_full routine that loads mscorlib did not
2896         load friends.   We now load it once we load the
2897         mono_defaults.internals_visible_class class. 
2898
2899         * assembly.c: Expose the mono_load_friend_assemblies method.
2900
2901 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
2902
2903         * verify.c: improved the handling of boxing, better
2904         type checking for unary ops and conversion. Fix bug
2905         regarding managed pointer compatibility checking
2906
2907 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
2908
2909         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
2910
2911         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
2912
2913 2007-08-09  Raja R Harinath  <rharinath@novell.com>
2914
2915         * reflection.c (dup_type): Remove.
2916         * class.c (dup_type): Remove.
2917         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
2918         instead of the dodgy 'dup_type'.
2919         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
2920         handle the case where 'dup_type' needed the second argument.
2921
2922 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
2923
2924         * domain.c: Fix a warning.
2925
2926 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
2927
2928         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
2929         checking that methods with the same fqname are not overridden
2930         with a method from an ancestor.
2931
2932 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
2933
2934         * threads.c (free_thread_static_data_helper): Avoid a crash if
2935         thread->static_data is not yet set.
2936
2937 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
2938
2939         * marshal.c: Use correct image when emitting
2940         native wrapper for COM calls.
2941    
2942         Code is contributed under MIT/X11 license.
2943
2944 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
2945
2946         * icall-def.h, security.c, security.h :
2947           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
2948
2949 2007-08-07  Martin Baulig  <martin@ximian.com>
2950
2951         * mono-debug-debugger.h
2952         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
2953
2954         * domain.c (mono_domain_free): Call
2955         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
2956
2957 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
2958
2959         * verify.c (check_underflow, check_overflow): error message now returns IL offset
2960         * verify.c (in_same_block): code should test if either offset is inside the clauses
2961         * verify.c (mono_method_verify): push the exception into the eval stack of exception
2962         and filter blocks
2963
2964 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
2965
2966         * image.c (mono_image_close): Fix a leak.
2967
2968         * object.c (mono_runtime_invoke_array): Avoid using alloca.
2969
2970         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
2971
2972 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
2973
2974         * domain.c, threads.c, threads-types.h: fix memory retention issue
2975         with thread static variables not being cleared on domain unload.
2976         Reuse thread static slots after domain unload.
2977
2978 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
2979
2980         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
2981         nullable type.
2982
2983         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
2984         now done in mono_runtime_invoke_array.
2985
2986         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
2987         receiver is a nullable type.
2988
2989         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
2990         generic parameter.
2991
2992 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
2993
2994         * marshal.c: Implement COM Objects as return type for 
2995         managed->unmanaged calls. Added Release calls for COM Object
2996         out/return values in managed->unmanaged calls.
2997
2998         Code is contributed under MIT/X11 license.
2999
3000 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
3001
3002         * threads.h, threads-type.h: move the hazard pointer declarations
3003         to the private header.
3004
3005 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
3006
3007         * file-io.c, appdomain.c: memory leak fixes.
3008
3009 2007-08-02  Dick Porter  <dick@ximian.com>
3010
3011         * socket-io.c
3012         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
3013         SO_REUSEADDR setting into io-layer/sockets.c.
3014
3015 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
3016
3017         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
3018         from Object when called on a generic parameter. Fixes #82211.
3019
3020 2007-08-01  Dick Porter  <dick@ximian.com>
3021
3022         * file-io.c (convert_share): Test FileShare values bit-by-bit.
3023         Fixes bug 79250 yet again.
3024
3025 2007-07-30  Martin Baulig  <martin@ximian.com>
3026
3027         Merged the `debugger-dublin' branch.
3028
3029         * mono-debug.h
3030         (MonoDebugDataTable): New typedef.
3031         (MonoDebugMethodAddressList): New typedef.
3032         (MonoDebugWrapperData): Removed.
3033         (MonoDebugSymbolTable): Removed `current_data_table',
3034         `current_data_table_size', `current_data_table_offset'.
3035         (MonoDebugDataItemType): Moved into mono-debug.c.
3036         (MonoDebugMethodJitInfo): Remove `address'.
3037         (mono_debug_data_table): New global variable.
3038         (mono_debug_lookup_method_addresses): New public function.
3039         (mono_debug_find_method): Take a `MonoMethod *', not a
3040         `MonoDebugMethodInfo *'.
3041
3042         * mono-debug.c: Drop support for the old symbol tables.
3043
3044 2007-06-28  Martin Baulig  <martin@ximian.com>
3045
3046         * mono-debug.c (mono_debug_debugger_version): New public variable.
3047
3048 2007-07-31  William Holmes  <billholmes54@gmail.com>
3049
3050         * metadata.c Changed mono_type_create_from_typespec to not insert
3051           the type into the hash map until after
3052           do_mono_metadata_parse_type has completed.
3053         Fixes Bug #82194
3054         Code is contributed under MIT/X11 license.
3055
3056 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
3057
3058         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
3059         generic parameter. Fixes #82211.
3060
3061 2007-07-27  Jb Evain  <jbevain@novell.com>
3062
3063         * pedump.c (dump_metadata, dump_metadata_header): dump
3064         versions contained in the metadata header.
3065
3066 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3067
3068         * threads.c: register small_id_table with the GC.
3069
3070 2007-07-27  Mark Probst  <mark.probst@gmail.com>
3071
3072         * threads.c, threads.h, class-internals.h, object-internals.h:
3073         Hazard pointers, to be used by lock-free parallel algorithms.
3074
3075 2007-07-26  Dick Porter  <dick@ximian.com>
3076
3077         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
3078         routine on non-windows platforms, as I've not managed to think of
3079         a non-kludgy way of doing this.  Finishes off bug 78739.
3080
3081 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
3082
3083         * object.c: properly setup interface_bitmap in proxy vtables.
3084
3085 2007-07-25  Marek Habersack  <mhabersack@novell.com>
3086
3087         * appdomain.c (get_shadow_assembly_location): do not use TickCount
3088         to create unique shadow copy target directories, use the domain's
3089         serial number instead. Each domain gets a unique target directory
3090         that way.
3091
3092         * domain.c (mono_domain_create): added code to increment domain
3093         shadow copy serial number and cache the value in the current
3094         domain structure.
3095
3096         * domain-internals.h (struct _MonoDomain): added a new field -
3097         shadow_serial to hold the serial number used in generation of
3098         shadow-copy directories. This is to make sure that the directory
3099         name is unique for each and every domain created. We avoid a race
3100         condition with overriding assemblies already in use by other app
3101         domains.
3102
3103 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
3104
3105         * class.c (mono_bounded_array_class_get): fixed memory leak when 
3106         binding generic parameters.
3107
3108 2007-07-24  Raja R Harinath  <rharinath@novell.com>
3109
3110         * metadata.c (do_mono_metadata_parse_generic_class): Use
3111         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
3112         error.
3113
3114 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
3115
3116         * loader.c, class-internals.h, reflection.c: removed the per-method
3117         generics hashtable: we use the global one through the call of
3118         mono_class_inflate_generic_method ().
3119
3120 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
3121
3122         * class.c, metadata.c, class-internals.h: introduce yet another
3123         generics global cache for inflated methods (fixes 98% of the perf
3124         issue in bug #81806).
3125
3126 2007-07-23  Raja R Harinath  <rharinath@novell.com>
3127
3128         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
3129         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
3130         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
3131         return a MonoGenericInst containing (a copy) of those types.
3132         (mono_metadata_inflate_generic_inst): Update to changes.
3133         (mono_metadata_parse_generic_inst): Likewise.
3134         (mono_get_shared_generic_inst): Likewise.
3135         * reflection.c (mono_class_bind_generic_parameters): Likewise.
3136         (mono_reflection_bind_generic_method_parameters): Likewise.
3137         * metadata-internals.h: Likewise.
3138         * icall.c (free_generic_context): Kill.
3139         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
3140
3141         * reflection.c (reflection_methodbuilder_to_mono_method): Use
3142         mono_metadata_type_dup.
3143         * marshal.c (mono_mb_create_method): Likewise.
3144
3145         * metadata.c (mono_metadata_type_dup): Rename from
3146         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
3147         MonoImage.  Handle a few more cases, esp. when no mempool is given.
3148         * marshal.c, metadata-internals.h: Update to changes.
3149
3150 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3151
3152         * class.c: fixed a small leak for array classes and removed warning.
3153
3154 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
3155
3156         * loader.c (mono_method_get_param_token): Make this work on generic methods.
3157         Return 0x8000000 for return parameters. Fixes #82161.
3158
3159 2007-07-21  Marek Habersack  <grendello@gmail.com>
3160
3161         * appdomain.c (get_shadow_assembly_location): append the current
3162         ticks value to the path. Avoids overwriting the same assemblies by
3163         several threads at the same time.
3164
3165 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3166         and Raja R Harinath  <rharinath@novell.com>
3167
3168         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3169         Simplify slightly.
3170         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
3171         property for testing if a method is a generic method definition.
3172
3173 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3174
3175         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
3176
3177 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3178
3179         * verify.c: used function from private branch, reverted to the one in class.h 
3180
3181 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3182
3183         * verify.c: a typo slipped in and the code wont compile
3184
3185 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3186
3187         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
3188         disabled box instruction as it is doing the wrong thing
3189         improved stack dump messages, now it is easier to debug type related issues
3190
3191
3192 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
3193
3194         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
3195
3196 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3197
3198         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
3199         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
3200         grouped with class and valuetype. This change will simply 
3201         the code as it should be handled just like unmanaged pointers.
3202
3203 2007-07-19  Mark Probst  <mark.probst@gmail.com>
3204
3205         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
3206
3207 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3208
3209         * verify.c: several stack merge issues fixed, reference comparisons now
3210         check the type size. strict type check now works correctly.
3211         added more uses of IS_MANAGED_POINTER macro.
3212         fixed issues pointed by running the test suite against .net.
3213         
3214
3215 2007-07-19  Mark Probst  <mark.probst@gmail.com>
3216
3217         * class.c, loader.c, class-internals.h: Removed the
3218         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
3219         defines.
3220
3221         * icall.c: Better error checking in some internal reflection
3222         methods.
3223
3224 2007-07-18  William Holmes  <billholmes54@gmail.com>
3225
3226         * filewatcher.c : removed unused variable 'filename' in 
3227           ves_icall_System_IO_FSW_SupportsFSW
3228
3229 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
3230
3231         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
3232         obsolete, removed.
3233
3234 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
3235
3236         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
3237         
3238         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
3239
3240 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
3241
3242         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
3243         Implement generics support.
3244         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3245
3246         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
3247         type_args and method_args arguments.
3248         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
3249         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3250         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
3251
3252 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
3253
3254         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
3255           It adds a rootimage parameter to mono_reflection_get_type_internal,
3256           adds new function mono_reflection_get_type_with_rootimage and use
3257           the rootimage to resolve the types instead of the current image
3258
3259 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3260
3261         * culture-info-table.h: Forgot to update after r78304.
3262
3263 2007-07-13  Raja R Harinath  <rharinath@novell.com>
3264
3265         * class.c (mono_class_is_open_constructed_type)
3266         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
3267
3268 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
3269
3270         * class.c (mono_bounded_array_class_get):  method fails if used with
3271         an incomplete TypeBuilder enum (no basetype field), fixed it by 
3272         avoiding calculating the size for such array as it cannot be instantiated.
3273         Fix bug #82015
3274
3275 2007-07-12  Raja R Harinath  <rharinath@novell.com>
3276
3277         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
3278         field.
3279         * metadata.c, reflection.c: Update to changes.
3280
3281 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
3282
3283         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
3284         mono_class_is_valid_enum, they are used to valide a enum when loading.
3285         * reflection.c: used new functions to throw TypeLoadException when and
3286         invalid enum is build with TypeBuilder. Fixes #82018
3287   
3288 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
3289
3290         * object.c: forgot commit of mono_class_setup_methods () to access
3291         iface->methods.
3292         * object-internals.h: added a few more handy fields to
3293         MonoIMTCheckItem.
3294
3295 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
3296
3297         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
3298         iface->methods.
3299
3300 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
3301
3302         * class-internals.h, object-internals.h, object.c: IMT-based
3303         interface invocation core from Massimiliano Mantione
3304         (massi@ximian.com) with a reworked arch-specific interface,
3305         bsearch implementation and a few bugfixes and memory savings by me.
3306
3307 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
3308
3309         * class.c (mono_class_create_from_typedef): mono would segfault if 
3310         an enum did not have a __value field. It now throws a TypeLoadException
3311         for such cases. Fix bug #82022
3312
3313 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
3314
3315         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
3316
3317 2007-07-09  Mark Probst  <mark.probst@gmail.com>
3318
3319         * class.c (mono_class_init): If a class is already inited but has
3320         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
3321
3322 2007-07-09  Mark Probst  <mark.probst@gmail.com>
3323
3324         * class.c: Properly handle the case of an unimplemented interface
3325         method.  Fixes: 81673.
3326
3327 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
3328
3329         * class-internals.h, object.c: cleanup patch from massi: use
3330         MonoVTable->interface_bitmap since the vtable interfaces offset array
3331         is going away.
3332
3333 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
3334
3335         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
3336         GetMDStreamVersion icall instead.
3337
3338 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
3339
3340         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
3341         not use mono_dl_build_path() with a full library name: makes
3342         fallbacks to libgaim and libfam work.
3343
3344 2007-07-06  William Holmes  <billholmes54@gmail.com>
3345
3346         * assembly.c: Added a continue statement in probe_for_partial_name when
3347          parse_assembly_directory_name fails.  Fixes : 82002
3348
3349 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
3350
3351         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
3352         and added a verification  for TYPEDBYREF.
3353         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
3354         make native int interchangeable with int32 and some small cleanup and formating.
3355         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
3356         handle byref of byref.
3357         * verify.c (push_local): handle byref of byref.
3358         * verify.c (do_binop): invalid mix of values is unverifiable
3359         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
3360         added visibility checks
3361         * verify.c (field related method): added visibility checks
3362         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
3363
3364 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
3365
3366         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
3367         string.
3368
3369 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
3370
3371         * profiler.c (mono_profiler_load): Fix an off-by-one error.
3372
3373         * marshal.c (emit_marshal_string): When returning a string from managed code,
3374         allways make a copy even for unicode strings. Fixes #81990.
3375
3376 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
3377
3378         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
3379         of byref generic inst types (bug #81997).
3380
3381 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
3382
3383         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
3384         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
3385
3386 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
3387
3388         * marshal.c (emit_marshal_string): Add support for unicode strings in
3389         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
3390
3391 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
3392
3393         * verify.c: field load/store are now verified, missing only access checks now
3394
3395 2007-06-28  Martin Baulig  <martin@ximian.com>
3396
3397         * mono-debug.c (mono_debug_debugger_version): New public variable.
3398
3399 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
3400
3401         * locales.c: When constructing DateTimeFormat or NumberFormat for
3402         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
3403         MonoCultureInfo contructed from the current locale is always
3404         read-only and has UseUserOverride set to true. All MonoCultureInfo
3405         instances returned for GetCultures have both IsReadOnly and
3406         UseUserOverride set to true. Fixes part of bug #81930.
3407
3408 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
3409
3410        * icall-def.h: Update System.__ComObject icalls
3411        * marshal.c: Avoid managed transition (and object creation)
3412        when looking up COM interface in RCW.
3413        * marshal.h: Ditto.
3414        
3415        Code is contributed under MIT/X11 license.
3416
3417 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
3418
3419         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
3420         to avoid crashes during assembly unloading.
3421
3422 2007-06-22  Raja R Harinath  <rharinath@novell.com>
3423
3424         Fix MethodInfo.IsGenericMethodDefinition
3425         * reflection.c (mono_reflection_bind_generic_method_parameters):
3426         Rearrange code to ensure we always uses a generic method definition.
3427         * class.c (mono_class_inflate_generic_method_full): Set
3428         'generic_container' field only for generic method definitions.
3429         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3430         Use presense of 'generic_container' field as indication of being a
3431         generic method definition.
3432
3433 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
3434
3435         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3436
3437         * object-internals.h: Reflect changes in the layout of the managed Delegate
3438         class.
3439         
3440         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
3441         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
3442         runtime memory used by the dynamic method. Fixes #77146.
3443
3444 2007-06-21  Dick Porter  <dick@ximian.com>
3445
3446         * file-io.h: 
3447         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
3448         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
3449         81767.
3450
3451 2007-06-21  Raja R Harinath  <rharinath@novell.com>
3452
3453         * reflection.c (method_encode_methodspec): Add a tripwire.
3454         * class.c (inflate_generic_type): The fully open generic type is
3455         not the same as the generic type definition.
3456
3457 2007-06-21  Martin Baulig  <martin@ximian.com>
3458
3459         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
3460
3461         * mono-debug-debugger.h
3462         (MonoDebuggerBreakpointInfo): Removed.
3463         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
3464         (mono_debugger_remove_breakpoint): Likewise.
3465         (mono_debugger_breakpoint_callback): Likewise.
3466         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
3467
3468 2007-06-21  Raja R Harinath  <rharinath@novell.com>
3469
3470         * metadata.c (mono_metadata_lookup_generic_class): The fully open
3471         generic type is not the same as the generic type definition.
3472         * class.c (mono_generic_class_get_class): Likewise.
3473
3474 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
3475
3476         * icall.c: The second argument to 
3477         System.Reflection.MethodBase.GetMethodFromHandleInternalType
3478         is a MonoType not a MonoClass.
3479
3480 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
3481
3482         * verify.c: support for function pointers in the verifier
3483
3484 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
3485
3486         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
3487
3488 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
3489
3490         * assembly.c: removed Mono.Data.SqliteClient from the list of
3491         forward-compatible assemblies as it breaks the ABI (bug #81899).
3492
3493 2007-06-19  Raja R Harinath  <rharinath@novell.com>
3494
3495         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
3496         lookup/update with the loader lock.
3497         * reflection.c (mono_class_bind_generic_parameters): No need to
3498         protect mono_metadata_lookup_* with the loader lock.
3499         * class.c (inflate_generic_type): Likewise.
3500         
3501         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
3502         on a generic instantiated type.
3503
3504 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
3505
3506         *verify.c: produce meanfull error messages on verification error
3507         *verify.c: fixed some cases of verification errors reported as validation errors
3508         *pedump.c: fixed the error name array, now it shows validation errors properly
3509         *verify.h: fixed the contant that should be used for verification errors
3510
3511 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
3512
3513         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
3514         for bug #77596, 81858 and 80743 (generics data structures on domain
3515         unload).
3516
3517 2007-06-15  Raja R Harinath  <rharinath@novell.com>
3518
3519         Avoid allocating 'MonoGenericContext' on the heap.
3520         * class-internals (_MonoMethodInflated::context): Make field
3521         inline, not a pointer.
3522         * loader.c (method_from_methodspec): Allocate 'new_context' on the
3523         stack.  Use the context embedded within the inflated method as the
3524         hash key, rather than 'new_context'.
3525         * class.c (inflate_generic_context): Simplify.  Return a struct
3526         rather than allocating on the heap.
3527         (mono_class_inflate_generic_method_full): Update to changes.  Now,
3528         doesn't salt away a copy of the context -- simplifying the
3529         lifetime rules of a 'MonoGenericContext *'.
3530         (mono_method_get_context): Return pointer to embedded context.
3531         (setup_generic_array_ifaces): Allocate temporary context on stack.
3532         * reflection.c (inflate_mono_method): Likewise.
3533         (mono_reflection_bind_generic_method_parameters): Likewise.
3534         Use the context embedded within the inflated method as the hash key.
3535
3536         Avoid a source of allocation of 'MonoGenericContext'.
3537         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
3538         and 'cached_context' fields into embedded 'MonoGenericContext' field.
3539         * class.c: Update to changes.
3540         (mono_generic_class_get_context): Simplify drastically.  Now just
3541         returns a pointer to the field.
3542         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
3543         argument as a const pointer.
3544         (mono_metadata_generic_context_equal): Likewise.
3545         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
3546         Update to changes.
3547
3548 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
3549
3550         * verify.c improved the handling of brtrue/brfalse, factored out common code
3551
3552 2007-06-14  Raja R Harinath  <rharinath@novell.com>
3553
3554         Kill MonoGenericMethod.
3555         * class-internals.h (MonoGenericContext::method_inst): Rename from
3556         'gmethod' and convert to a MonoGenericInst.
3557         (MonoGenericMethod): Remove.
3558         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
3559         * loader.c (method_from_methodspec): Update to changes.  Use a
3560         MonoGenericContext as the key to the hashtable.
3561         * metadata.c (mono_metadata_generic_context_equal): Rename from 
3562         'mono_metadata_generic_method_equal' and take MonoGenericContext.
3563         (mono_metadata_generic_context_hash): Likewise from
3564         'mono_metadata_generic_method_hash'.  Change hash function.
3565         (mono_metadata_load_generic_params): Update to changes.
3566         (mono_get_shared_generic_method): Remove.
3567         * metadata-internals.h (mono_get_shared_generic_method): Remove.
3568         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
3569         (inflate_generic_context): Likewise.
3570         (mono_class_inflate_generic_method_full): Likewise.
3571         (setup_generic_array_ifaces): Likewise.
3572         (mono_class_create_from_typespec): Likewise.
3573         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
3574         (method_encode_methodspec): Update callsite.
3575         (reflection_methodbuilder_to_mono_method): Update to changes.
3576         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
3577         MonoGenericContext as the key to the hashtable.
3578         (inflate_mono_method): Update to changes.
3579
3580         * class-internals.h (MonoGenericMethod::container): Remove.
3581         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
3582
3583 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
3584
3585         * profiler-private.h, profiler.c, profiler.h: added API to profile
3586         exception events.
3587
3588 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
3589
3590         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
3591
3592 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
3593
3594         * verify.c: method invocation is now validated, now we verify parameter types on stack.
3595         Fixed overflow and underflow not aborting the verification process.
3596
3597 2007-06-13  Mark Probst  <mark.probst@gmail.com>
3598
3599         * class-internals.h (MonoStats): Added stats entries for dynamic
3600         code allocations.
3601
3602 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
3603
3604         * loader.c (mono_free_method): Free header->locals and header->clauses.
3605
3606         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
3607         dynamic case.
3608
3609         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
3610
3611         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
3612
3613 2007-06-12  Raja R Harinath  <rharinath@novell.com>
3614
3615         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
3616         the tables.
3617
3618 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3619
3620         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
3621
3622 2007-06-11  Raja R Harinath  <harinath@gmail.com>
3623
3624         MonoGenericMethod on a diet
3625         * class-internals.h (_MonoMethodInflated::reflection_info): Move
3626         here ...
3627         (_MonoGenericMethod::reflection_info): ... from here.
3628         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
3629         Update to changes.
3630         * reflection.c (inflate_mono_method): Likewise.
3631         (mono_reflection_bind_generic_method_parameters): Likewise.
3632
3633 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3634
3635         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
3636         *verify.c: factored long ldarg forms to share code with short forms
3637
3638 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
3639
3640         *verify.c: fixed code formating factored some duplicate code
3641         into a new function
3642
3643         *verify.h: fixed binary incompatibility introduced earlier
3644
3645         *pedump.c: fixed formating
3646
3647 2007-06-11  Raja R Harinath  <harinath@gmail.com>
3648
3649         Fix assertion when disassembling Mono.C5.dll
3650         * loader.c (method_from_methodspec): Avoid inflating a method
3651         twice with the same context.  If the methodref is inflated, use
3652         the declaring method instead.
3653
3654         * class.c (mono_class_from_generic_parameter): Fix case similar to
3655         bug #81830 handled below, but for method containers.
3656
3657 2007-06-10  Raja R Harinath  <harinath@gmail.com>
3658
3659         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
3660         get_shared_generic_class.  Directly inflate the instance.
3661         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
3662         (inflate_generic_class): Delete.
3663         (get_shared_generic_class): Delete.  Move setting of
3664         'cached_class' and 'cached_context' ...
3665         * metadata.c (mono_metadata_lookup_generic_class): ... here.
3666
3667         * metadata.c (mono_metadata_lookup_generic_class): Change
3668         signature to take the components of a MonoGenericClass rather than
3669         an allocated MonoGenericClass.  Change semantics to be intern-like.
3670         * reflection.c (mono_class_bind_generic_parameters): Update to
3671         changes.  Make locking region tighter.
3672         * class.c (inflate_generic_class): Update to changes.
3673         (get_shared_generic_class): Likewise.
3674         * metadata-internals.h: Likewise.
3675
3676         * reflection.c (mono_class_bind_generic_parameters): Take and
3677         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
3678         (mono_reflection_bind_generic_parameters): Use
3679         'mono_class_bind_generic_parameters' rather than duplicate the code.
3680         * class.c (mono_bounded_array_class_get): Update to changes.
3681         * object-internals.h: Likewise.
3682
3683         * reflection.c (mono_class_bind_generic_parameters): Only support
3684         parameterizing generic type definitions.  Remove support for other
3685         open types.
3686
3687 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
3688
3689         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
3690
3691         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
3692         in the dynamic case.
3693
3694 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
3695
3696         * threads.c: When cleaning up thread, reset the Background bit.
3697         Fixes bug #81720.
3698
3699 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
3700
3701        * metadata.c: Move variable declarations to top of scope.
3702        * verify.c: Move variable declarations to top of scope.
3703
3704        Code is contributed under MIT/X11 license.
3705
3706 2007-06-08  Raja R Harinath  <rharinath@novell.com>
3707
3708         * reflection.c (mono_class_bind_generic_parameters): Replace
3709         open-coded loop with mono_metadata_inflate_generic_inst.
3710
3711         * class.c (get_shared_generic_class): Don't call
3712         mono_get_shared_generic_inst.  Use the container's own
3713         'class_inst'.
3714
3715         * metadata.c (mono_metadata_load_generic_params): Move
3716         initialization of 'context' field here from ...
3717         * class.c (mono_class_create_from_typedef): ... here, and ...
3718         * loader.c (mono_get_method_from_token): ... here.
3719
3720         * class.c (get_shared_generic_class): Rename from
3721         mono_get_shared_generic_class and make static.
3722         (mono_get_shared_generic_inst): Move to metadata.c.
3723         * loader.c (mono_get_shared_generic_method): Likewise.
3724         * class-internals.h, metadata-internals.h: Update to changes.
3725
3726         Fix #81830
3727         * class.c (mono_class_from_generic_parameter): Don't assume a
3728         generic container owner exists.  Generic containers from monodis
3729         don't have any.
3730
3731 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
3732
3733         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
3734         * verify.h: new typedefs to returns the non-verifiable status
3735         * verify.c: initial implementation of generics, stack merging and object compatibility check
3736
3737 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3738
3739         * class.c, image.c, class-internals.h (MonoImage): class_cache is
3740         a MonoInternalHashTable again (fixed bug in internal hash table
3741         code).
3742
3743 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3744
3745         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
3746         MonoInternalHashTable again (fixed bug in internal hash table
3747         code).
3748
3749 2007-06-06  Mark Probst  <mark.probst@gmail.com>
3750
3751         * class.c, image.c, class-internals.h, domain.c,
3752         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
3753         changes.  Have to figure out what makes them break the SWF
3754         regression.
3755
3756 2007-06-04  Mark Probst  <mark.probst@gmail.com>
3757
3758         * class.c, image.c, class-internals.h (MonoImage): class_cache is
3759         a MonoInternalHashTable now.
3760
3761 2007-06-04  Mark Probst  <mark.probst@gmail.com>
3762
3763         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
3764         MonoInternalHashTable now.
3765
3766 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
3767
3768         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
3769         invoke_impl code.
3770
3771         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
3772
3773         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
3774         dependent trampoline.
3775
3776         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3777
3778         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
3779
3780 2007-05-29  Robert Jordan  <robertj@gmx.net>
3781
3782         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
3783
3784 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
3785
3786         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
3787
3788 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
3789
3790        * marshal.c: Fix interface lookup loops for
3791        cominterop_get_com_slot_for_method and 
3792        cominterop_get_method_interface. Only need to lookup
3793        if type is a class, else use interface type method is on.
3794
3795        Code is contributed under MIT/X11 license.
3796
3797 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
3798
3799         * reflection.c: HasSecurity can be present even if no specially 
3800         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
3801         SecurityAttribute). Fix CAS regression tests on buildbot.
3802
3803 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
3804
3805        * appdomain.c: Add configure checks for header files.
3806        * image.c: Add configure checks for header files.
3807        * file-io.c: Add configure checks for header files.
3808        * debug-mono-symfile.c: Add configure checks for header files.
3809        * threadpool.c: Add configure checks for header files.
3810        * console-io.c: Add configure checks for header files.
3811        * profiler.c: Add configure checks for header files.
3812        * rawbuffer.c: Add configure checks for header files.
3813        * icall.c: Add configure checks for header files.
3814        * rand.c: Add configure checks for header files.
3815        * socket-io.c: Add configure checks for header files.
3816
3817        Code is contributed under MIT/X11 license.
3818
3819 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
3820
3821         * reflection.c (mono_custom_attrs_from_builders): Remove the 
3822         assertion as it breaks the build.
3823         
3824         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
3825
3826         * reflection.c (lookup_custom_attr): Make a copy here too.
3827
3828         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
3829         dynamic images.
3830
3831         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
3832         images.
3833
3834         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
3835         info.
3836
3837 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
3838
3839         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
3840         (load_cattr_value): Ditto.
3841
3842 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
3843
3844         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
3845
3846 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
3847
3848         * threads.c: In "start_wrapper", set apartment_state to MTA if
3849         apartment_state is Unknown and we're running on 2.0 profile or
3850         higher.
3851         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
3852         to main method, then set apartment_state to Unknown on 1.0 profile,
3853         and MTA on 2.0 profile.
3854
3855 2007-05-16  Jb Evain  <jb@nurv.fr>
3856
3857         * class-internals.h (MonoDefaults): Add an attribute_class and
3858           customattribute_data_class.
3859         * domain.c (mono_init_internal): Populate them.
3860         * reflection.c: Use them to remove duplicates. Make a vew
3861         MonoClass variables `static'.
3862
3863 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
3864
3865         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
3866         step in implementing IMT, so that all isinst checks now can go
3867         through the bitmap.
3868         This was needed because vtables for TransparentProxy need to look
3869         like the vtable of the "target" class, so they need to point to
3870         its interface bitmap directly.
3871
3872         * object.c: inside "mono_class_create_runtime_vtable" and
3873         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
3874
3875 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
3876
3877         * object-internals.h
3878           culture-info.h : added territory field in MonoCulture and
3879           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
3880         * locales.c : fill territory field above too.
3881         * culture-info-table.h : regenerated.
3882
3883 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
3884
3885         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
3886         Fixes #81599.
3887
3888 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
3889
3890         * object.c: Always initialize apartment, even if 
3891         there is no custom attributes on entry point.
3892         
3893         Code is contributed under MIT/X11 license.
3894
3895 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
3896
3897         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
3898         * metadata.c: If no encoding is set, check for unicode
3899         on class.
3900         
3901         Code is contributed under MIT/X11 license.
3902
3903 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
3904
3905         * threads.c: Handle if mono_thread_current returns NULL 
3906         
3907         Code is contributed under MIT/X11 license.
3908
3909 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
3910
3911         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
3912         in start_wrapper. Added mono_thread_init_apartment_state and
3913         mono_thread_cleanup_apartment_state.
3914         * object.c: Initialize thread apartment state on main thread
3915         by checking for STAThreadAttribute on entry point.
3916         * object-internals.h: Add apartment_state field to MonoThread.
3917         * threads-types.h: Add unmanaged definition of 
3918         System.Threading.ApartmentState, MonoThreadApartmentState.
3919         
3920         Code is contributed under MIT/X11 license.
3921         
3922 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
3923
3924         * class.c: Fix windows build.
3925         * class-internals.h: Fix windows build.
3926         
3927         Code is contributed under MIT/X11 license.
3928
3929 2007-05-08  Robert Jordan  <robertj@gmx.net>
3930
3931         * process.c (CreateProcess_internal):
3932         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
3933         .CreateNoWindow was specified. Fixes #81496.
3934
3935 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
3936
3937         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
3938         step in implementing IMT, replaced it with two compact arrays
3939         (interfaces_packed and interface_offsets_packed) and a bitmap that
3940         is used for isinst checks (interface_bitmap).
3941
3942         * class.c: (compare_interface_ids): compare function to pass to
3943         bsearch when looking for an interface with a given id.
3944         (mono_class_interface_offset): reimplemented using bsearch on
3945         interfaces_packed, getting the offset from interface_offsets_packed.
3946         (print_implemented_interfaces): utility debugging function.
3947         (setup_interface_offsets): reworked to initialize interfaces_packed,
3948         interface_offsets_packed and interface_bitmap.
3949
3950         * object.c: replaced all accesses to "MonoClass.interface_offsets"
3951         with uses of interfaces_packed and interface_offsets_packed.
3952
3953 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
3954
3955         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
3956         mono_class_interface_offset prototype to wrap all accesses to
3957         "MonoClass.interface_offsets".
3958
3959         * class.c: Implemented mono_class_interface_offset, and wrapped all
3960         accesses to "MonoClass.interface_offsets".
3961
3962         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
3963         "MonoClass.interface_offsets".
3964
3965 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
3966
3967         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
3968         GetMethodFromHandle overloads (bug #78637).
3969
3970 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
3971
3972         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
3973         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
3974
3975 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
3976
3977         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
3978         #81498.
3979
3980         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
3981         gracefully.
3982         (mono_custom_attrs_from_index): Ditto.
3983
3984         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
3985         Fixes #81501.
3986
3987 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
3988
3989         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
3990         is now allocated from a mempool.
3991
3992 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
3993
3994         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
3995         caller holds threads_lock, leading to deadlocks. Fixes #81476.
3996
3997 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
3998
3999         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
4000         mono_loader_clear_error () too late. Fixes #81463.
4001
4002 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
4003
4004         * culture-info-table.h : regenerated.
4005
4006 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
4007
4008         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
4009         is missing.
4010
4011 2007-04-25  Dick Porter  <dick@ximian.com>
4012
4013         * Makefile.am: Put the mingw enforced-optimisation back into the
4014         PLATFORM_WIN32 section.
4015
4016 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
4017
4018         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
4019         patch.
4020
4021         * image.c (mono_image_load_module): New API function to load a module reference.
4022
4023         * image.c (load_modules): Load modules lazily. Fixes #80812.
4024
4025         * class.c (mono_class_from_typeref): Use mono_image_load_module.
4026         
4027         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
4028
4029         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
4030         to mono_image_load_module_dynamic.
4031
4032 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
4033
4034         * marshal.c: Fix calling convention for CCW on non-windows
4035         platforms. STDCALL on windows, CDECL everywhere else to work 
4036         with XPCOM and MainWin COM.
4037         
4038         Code is contributed under MIT/X11 license.
4039
4040 2007-04-23  Martin Baulig  <martin@ximian.com>
4041
4042         Fix #80969.
4043
4044         * loader.c
4045         (method_from_memberref): Added `gboolean *used_context' argument.
4046         (mono_get_method_from_token): Likewise.
4047         (mono_get_method_full): Don't insert the method in the cache when
4048         `used_context' is true.
4049
4050 2007-04-23  Raja R Harinath  <rharinath@novell.com>
4051
4052         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
4053
4054         * reflection.c (mono_reflection_bind_generic_parameters): Don't
4055         create new MonoTypes for returned types.
4056         * class.c (mono_generic_class_get_class): Export mono-internal.
4057         * class-internals.h: Update to changes.
4058
4059 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
4060
4061         * threadpool.c, threadpool.h, icall-def.h: patch from
4062         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
4063
4064 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
4065
4066         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
4067         
4068         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
4069
4070         * threads.c (mono_thread_get_stack_bounds): New helper function.
4071
4072         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
4073         Correctly compute stack bounds when attaching. Fixes #81394.
4074
4075 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
4076
4077         * reflection.c: fix handling of doubles in custom attributes
4078         for the arm-fpa format (bug #81368).
4079
4080 2007-04-18  Raja R Harinath  <rharinath@novell.com>
4081
4082         * reflection.c (assembly_add_win32_resources): Mildly relax an
4083         bounds check to let the end pointer point just past the end of the
4084         allocated buffer.  (may fix #81384)
4085
4086 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
4087
4088         * culture-info-table.h : regenerated.
4089
4090 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
4091
4092         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
4093         the thread is aborted early.
4094
4095 2007-04-05  Dick Porter  <dick@ximian.com>
4096
4097         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
4098         FindFirstFile()/FindNextFile() to find entries.  This lets the
4099         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
4100         81038.
4101
4102         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
4103         the parameters of
4104         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
4105
4106 2007-04-04  Martin Baulig  <martin@ximian.com>
4107
4108         * debug-helpers.c
4109         (mono_method_desc_full_match): Add support for nested classes.
4110
4111 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
4112
4113         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
4114
4115 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
4116
4117         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
4118         waiting for too many threads.
4119
4120 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
4121
4122         * environment.c: Fix return value check on uname so we can get the 
4123         executing version on Solaris operating systems.
4124
4125 2007-03-28  Jb Evain  <jbevain@gmail.com>
4126
4127         * class.c (mono_type_get_name_recurse): Complete the
4128         fix for the creation of assembly qualified names for
4129         pointer types. Fixes #81208.
4130
4131 2007-03-27  Dick Porter  <dick@ximian.com>
4132
4133         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
4134         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
4135         changed.
4136
4137         * threads.c
4138         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
4139         the value of ReleaseMutex().
4140
4141 2007-03-27  Dick Porter  <dick@ximian.com>
4142
4143         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
4144         in little-endian order, not network endian, so must be converted
4145         to host endian here.  Fixes bug 80593.
4146
4147 2007-03-22  Jb Evain  <jbevain@gmail.com>
4148
4149         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
4150         qualified names for pointer types. Fixes #81208.
4151
4152 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
4153
4154         * marshal.c: Add support for PreserveSigAttribute. 
4155         
4156         Code is contributed under MIT/X11 license.
4157
4158 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
4159
4160         * process.c: Fix endianness issues. Fixes #81126.
4161
4162         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
4163         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
4164
4165         * image.c (mono_image_lookup_resource): Make this work on big-endian
4166         machines.Change API contract so the caller needs to free the return value.
4167         
4168         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
4169         API change.
4170         
4171 2007-03-14  Martin Baulig  <martin@ximian.com>
4172
4173         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
4174         mono_type_get_desc() as well.
4175
4176 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
4177
4178         * icall.c:  Fix environ access in VS.  
4179         
4180 2007-03-13  Alp Toker  <alp@atoker.com>
4181
4182         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
4183         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
4184         #63841.
4185
4186 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
4187
4188         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
4189         circular references among dynamic methods. Fixes #81091.
4190
4191         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
4192
4193 2007-03-09  Martin Baulig  <martin@ximian.com>
4194
4195         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
4196
4197 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
4198
4199         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
4200         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
4201         
4202         Code is contributed under MIT/X11 license.
4203         
4204 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
4205
4206         * loader.c: Reapply patch for bug #79424.
4207
4208 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
4209
4210         * metadata.c (mono_type_to_unmanaged): Only convert object to
4211         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
4212
4213 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
4214
4215         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
4216         (and incorrectly set) is_reference field from MonoGenericInst.
4217
4218 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
4219
4220         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
4221         a little earlier.
4222
4223         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
4224
4225         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
4226
4227 2007-03-05  Miguel de Icaza  <miguel@novell.com>
4228
4229         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
4230         FileOptions.1 value to mean "temporary", map that to
4231         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
4232
4233         Fixes 80688
4234
4235 2007-03-03  Marek Habersack  <mhabersack@novell.com>
4236
4237         * appdomain.c: implement MS .Net style shadow copying. Copies of
4238         the assemblies are made in a subdirectory of the dynamic base
4239         directory, the assembly names are preserved.
4240         Copy .mdb and .config files along with the assemblies being shadowed.
4241
4242 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
4243
4244         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
4245         (emit_marshal_handleref): Ditto.
4246
4247         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
4248         on Visual C++. Fixes #80671.
4249
4250 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
4251
4252         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
4253         for clone operations.
4254
4255 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
4256
4257         * marshal.c: Fix warnings.
4258
4259 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
4260
4261         * loader.c: allow case-insensitive matching of the dll name
4262         in dllmap handling when prefixed with "i:".
4263
4264 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
4265
4266         * threads.c: Fix #ifdef for dummy_apc function for VS.
4267
4268 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
4269
4270         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
4271
4272 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
4273         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
4274         giving precedence to the methods with a fully qualified name
4275         (InterfaceName.MethodName) when building the interface sections
4276         of the vtable.
4277
4278 2007-02-16  Dick Porter  <dick@ximian.com>
4279
4280         * threadpool.c (append_job): Fix fast-path array handling, so it's
4281         less likely the array will grow exponentially when the load is
4282         heavy.
4283
4284 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4285
4286         * metadata-internals.h, loader.c: fix dllmap lookup order
4287         for non-function maps, too, and prepare for fallback code.
4288
4289 2007-02-12  Robert Jordan  <robertj@gmx.net>
4290
4291         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
4292         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
4293         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
4294         GlobalFree. Fixes a part of bug #77075.
4295
4296 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
4297
4298         * loader.c: implemented typedef parent in field memberref.
4299
4300 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
4301
4302         * marshal.c: Fix warnings and remember to call Release on
4303         IUnknown of RCW.
4304         
4305         Code is contributed under MIT/X11 license.
4306
4307 2007-02-10  Miguel de Icaza  <miguel@novell.com>
4308
4309         * class-internals.h: Add MonoHandleRef definition, and
4310         handleref_class to mono_defaults. 
4311
4312         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
4313         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
4314
4315         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
4316         (do nothing on this stage)
4317         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
4318         (emit_marshal_handleref): New method, used for argument handling
4319         of HandleRefs. 
4320
4321 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
4322
4323         * class.c (mono_class_setup_parent): Lazily init com types.
4324         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
4325         init com types.
4326         * object.c (mono_remote_class_vtable): Lazily init com types.
4327         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
4328         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
4329         * domain-internals.h: Expose mono_init_com_types.
4330         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
4331         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
4332         Add support for COM Callable Wrapper marshalling.
4333         * marshal.h: Add icall definitions.
4334         * gc.c: Handle freeing of CCWs in finalizer code.
4335         
4336         Code is contributed under MIT/X11 license.
4337
4338 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
4339
4340         * reflection.c: changed all the signature encoding code to use
4341         a variable-sized buffer.
4342
4343 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4344
4345         * marshal.c: locking fixes: never take the loader lock
4346         or other runtime locks when holding the marshal lock
4347         (fixes bug#80664).
4348
4349 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
4350
4351         * marshal.c: make the delegate function pointer mapping
4352         work for the moving GC.
4353
4354 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
4355
4356         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
4357         for bug #80618.
4358
4359 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4360
4361         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
4362         gmodule.
4363
4364 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
4365
4366         * threadpool.c: made the code moving-GC safe.
4367
4368 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
4369
4370         * assembly.c, boehm-gc.c, class-internals.h, class.c,
4371         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
4372         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
4373         warning cleanup.
4374         * reflection.c: warning cleanup, some threading and moving GC fixes.
4375
4376 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
4377
4378         * class.c, loader.c: create the needed Set/Get/Address array methods
4379         as well as the .ctors in mono_class_init (), fixes bug #80567.
4380
4381 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
4382
4383         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
4384         we doesn't decrease its alignment. Should fix the sparc build.
4385
4386 2007-01-24  Dick Porter  <dick@ximian.com>
4387
4388         * socket-io.c
4389         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4390         Create the returned object if we need to ignore an unsupported
4391         socket option.  Fixes a segfault reported by Atsushi.
4392
4393 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
4394
4395         * class.c, object.c: restrict GC-tracked fields to
4396         UIntPtr fields used inside corlib, so we provide better
4397         type info to the GC and also allow broken packing as in
4398         bug #80580.
4399
4400 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
4401
4402         * sgen-gc.c: removed duplicated function.
4403
4404 2007-01-19  Miguel de Icaza  <miguel@novell.com>
4405
4406         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
4407         value that means that the value is not supported, but that we
4408         should not return a failure, but instead report this as a
4409         successful operation.
4410
4411 2007-01-19  Raja R Harinath  <rharinath@novell.com>
4412
4413         Fix tests/bug79956.2.il
4414         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
4415         (mono_generic_class_get_class): If the generic definition in an
4416         enum, copy over other fields related to it.
4417
4418 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
4419
4420         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
4421         genericinst enums (bug #79215).
4422
4423 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
4424         * class.c: Fix bug 80307.
4425
4426 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
4427
4428         * image.c: if the file table is not present, try to load
4429         all the modules, since we don't have info about them
4430         having or not metadata (bug #80517).
4431         * assembly.c: allow mono_assembly_load_references () to
4432         work for netmodules.
4433
4434 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4435
4436         * image.c, metadata-internals.h, object.c: execute module
4437         cctors when running on the 2 runtime if present (bug #80487).
4438
4439 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
4440
4441         * icall.c: optimized InitializeArray() on bigendian.
4442
4443 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
4444
4445         * icall.c: fix for the broken ARM FPA double format.
4446
4447 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
4448
4449         * icall.c: handle endian issues for r4 and r8 types, too, in
4450         the InitializeArray() icall.
4451
4452 2007-01-15  Miguel de Icaza  <miguel@novell.com>
4453
4454         * loader.c (mono_loader_error_prepare_exception): Clear the error
4455         once we have extracted the information from it, do this before we
4456         call into the JIT's class loading mechanisms.
4457
4458         * object.c (mono_class_create_runtime_vtable): Do not clear the
4459         loader error before calling mono_class_get_exception_for_failure
4460         as the loader error is needed inside
4461         mono_class_get_exception_for_failure to throw the error (thinko).
4462
4463         Fixes #80521
4464         
4465 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
4466
4467         * reflection.c: align fields rva data so it's faster to load at
4468         runtime.
4469
4470 2007-01-12  Raja R Harinath  <rharinath@novell.com>
4471
4472         Prepare to simplify GenericMethod handling.
4473         * class-internals.h (mono_method_get_context): New accessor function.
4474         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
4475         rather than directly accessing '->context' field.
4476
4477         * class-internals.h (_MonoGenericParam.method): Move ...
4478         (_MonoGenericContainer): ... here.  Add into union with klass field.
4479         * class.c, icall.c, loader.c, metadata.c, reflection.c:
4480         Update to changes.
4481
4482 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
4483
4484         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
4485         the wrapper type enum and reduce relocations.
4486
4487 2007-01-12  Raja R Harinath  <rharinath@novell.com>
4488
4489         * reflection.c (inflate_mono_method): Reuse method instantiation
4490         from the generic method, if available.
4491
4492 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4493
4494         * marshal.c (emit_marshal_variant): Fix conv_arg
4495         type in last commit, based on whether parameter is byref.
4496         
4497 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4498
4499         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
4500         marshalling.
4501         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
4502         MONO_TYPE_OBJECT back for VARIANT support.
4503
4504 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
4505
4506         * marshal.c, marshal.h, icall-def.h: Implement 
4507         Marshal.ReAllocCoTaskMem.
4508
4509 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
4510
4511         * marshal.c: memory retention fixes: use the proper
4512         image cache for runtime_invoke method lookups.
4513
4514 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
4515
4516         * mempool.c: added code to help debug mempool allocations.
4517
4518 2007-01-11  Dick Porter  <dick@ximian.com>
4519
4520         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
4521         support (experimenting with faking it with IP_MTU_DISCOVER for
4522         systems that don't have IP_DONTFRAGMENT.)
4523         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
4524         icall.
4525
4526         * icall-def.h: new System.Net.Sockets.Disconnect icall.
4527
4528         * socket-io.h: Add new fields to MonoSocketAsyncResult
4529         corresponding to the new ones in Socket.cs.
4530
4531 2007-01-11  Raja R Harinath  <rharinath@novell.com>
4532
4533         Fix IronPython regression mentioned in #80249
4534         * metadata.c (do_mono_metadata_parse_generic_class): Clear
4535         'cached_context' field, since it may have been initialized as a
4536         side-effect of metadata parsing.
4537
4538         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
4539         (_MonoGenericClass.cached_class): Move here and rename from lone
4540         remaining field of ...
4541         (_MonoInflatedGenericClass): ... this.  Remove.
4542         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
4543         to changes.
4544
4545         Fix mcs/tests/test-128.cs regression.
4546         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
4547         2007-01-10 change below.
4548         [MONO_TYPE_OBJECT]: Recurse into array case.
4549
4550 2007-01-11  Raja R Harinath  <harinath@gmail.com>
4551
4552         * class-internals.h (mono_get_inflated_generic_class): Remove.
4553         * class.c (mono_get_inflated_generic_class): Remove.
4554         (mono_generic_class_get_class): Rename from
4555         mono_class_create_generic.
4556         (mono_class_from_mono_type) [GENERICINST]: Use it.
4557         * reflection.c, metadata.c: Update to changes.  Use
4558         'mono_class_from_mono_type'.
4559
4560 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
4561
4562         * reflection.c: use passed type when encoding an array element
4563         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
4564
4565 2007-01-09  Robert Jordan  <robertj@gmx.net>
4566
4567         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
4568         result arguments (someDelegate.EndInvoke (unrelatedAres)).
4569         Fixes bug #80392.
4570
4571 2007-01-09  Raja R Harinath  <rharinath@novell.com>
4572
4573         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
4574
4575         * object.c (set_value): Avoid aliasing between type->data.klass
4576         and type->data.generic_class.
4577
4578         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
4579
4580 2007-01-08  Raja R Harinath  <rharinath@novell.com>
4581
4582         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
4583         between type->data.klass and type->data.generic_class.
4584
4585 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
4586
4587         * marshal.c: In MS.NET, StringBuilder objects are not copied by
4588         value in out parameters.
4589
4590 2007-01-08  Raja R Harinath  <rharinath@novell.com>
4591
4592         Simplify invariant for MonoGenericClass::klass field.
4593         * class.c (mono_class_create_generic): Verify 'klass' is null.
4594         * metadata.c (do_mono_metadata_parse_generic_class): Don't
4595         initialize 'klass' field.
4596
4597 2007-01-05  Raja R Harinath  <rharinath@novell.com>
4598
4599         Ongoing work to avoid redundant data and simplify invariants.
4600         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
4601         'generic_class', and change type to a GenericInst.
4602         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
4603         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
4604
4605 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
4606
4607         * class.c : skip io-layer under PLATFORM_WIN32.
4608
4609 2007-01-03  Tor Lillqvist  <tml@novell.com>
4610
4611         Fix #80305: In a bundled executable, look in the bundled exe
4612         assembly to determine the runtime version. Add the possibility to
4613         bundle also the machine.config file.
4614         
4615         * assembly.c (mono_assembly_open_from_bundle): Make
4616         non-static. Allow being called even if we have no bundled
4617         assemblies, and return NULL right away in that case.
4618
4619         * domain-internals.h: Declare mono_assembly_open_from_bundle()
4620         here.
4621
4622         * domain.c (app_config_parse): Take an assembly exe file name as
4623         parameter instead of a config file name. Check for a bundled
4624         config file for that assembly by calling
4625         mono_config_string_for_assembly_file() (see below) before looking
4626         for one in the file system.
4627         (get_runtimes_from_exe): Corrsponding change to call of
4628         app_config_parse().
4629         (get_runtimes_from_exe): Check for bundled assembly exe file first
4630         by calling mono_assembly_open_from_bundle(). If no bundled
4631         assembly exe file is found, call mono_image_open() as before to
4632         look it up in the file system.
4633
4634         * mono-config.c: Add variable bundled_machinec_onfig.
4635         (mono_config_string_for_assembly_file): New function.
4636         (mono_config_for_assembly): Move code snippet that looks for a
4637         bundled assembly .config file into the above new function. Call
4638         it.
4639         (mono_register_machine_config, mono_get_machine_config): New
4640         functions to set and retrieve
4641
4642         * assembly.h: Declare mono_register_machine_config().
4643
4644         * mono-config.h: Declare mono_get_machine_config() and
4645         mono_config_string_for_assembly_file().
4646
4647         * icall.c: No declaration of environ necessary on Win32. It is
4648         declared (as a macro expanding to a function call) in stdlib.h.
4649         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
4650         New internal mono function. Returns the value of
4651         mono_get_machine_config() as a Mono string.
4652
4653         * icall-def.h: Add get_bundled_machine_config().
4654
4655 2007-01-04  Raja R Harinath  <rharinath@novell.com>
4656
4657         Remove redundant field
4658         * class-internals.h (_MonoGenericContext.container): Remove field.
4659         * loader.c (mono_method_get_signature_full): Don't parse a
4660         "container" for a signature parse when the signature is inflated
4661         immediately.
4662         (method_from_methodspec): Likewise, for a generic_inst.
4663         * class.c, metadata.c, reflection.c: Update to changes.
4664
4665 2006-01-04  Raja R Harinath  <rharinath@novell.com>
4666
4667         * class-internals.h (_MonoGenericClass): Rename 'context' field to
4668         'cached_context', and change semantics -- it starts off NULL, and
4669         is initialized on demand.
4670         * class.c (mono_generic_class_get_context): New accessor to
4671         replace 'context' field accesses.
4672         (mono_class_get_context): New helper.
4673         (*): Update to changes.
4674         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
4675
4676 2007-01-03  Miguel de Icaza  <miguel@novell.com>
4677
4678         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
4679         before the memcpy.   Fixes Marshal2 regression.
4680
4681 2007-01-02  Jb Evain  <jbevain@gmail.com>
4682
4683         * blob.h: add a MONO_TYPE_ENUM definition
4684         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
4685         fix the encoding of arrays of enums in custom attributes.
4686
4687         Fixes #79666.
4688
4689 2007-01-01  Miguel de Icaza  <miguel@novell.com>
4690
4691         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
4692         string is null terminated, but only cut the string short if it
4693         overflows the buffer.   
4694         
4695         (mono_string_to_byvalstr): Also fix this routine.   The code here
4696         was not properly terminating a string (it was only terminated
4697         because of the previous catch-all memset). 
4698
4699         I left the memset, because I do not know if applications expect
4700         the runtime to clear this region. 
4701
4702         Fixes #79944.
4703
4704         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
4705         Clear the error before returning to unmanaged code to prevent the
4706         runtime from being confused later on (fixes  80420).
4707         (ves_icall_type_from_name): Always call mono_loader_clear_error
4708         after parsing a type that could have failed.
4709         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
4710
4711         * loader.c (mono_loader_clear_error): Fix indentation.
4712
4713 2006-12-28  Martin Baulig  <martin@ximian.com>
4714
4715         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
4716
4717 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
4718
4719         * reflection.c: patch from Rolf Bjarne Kvinge to fix
4720         getting a token for an EnumBuilder.
4721
4722 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4723
4724         * reflection.c: be more careful in case resource generation
4725         fails to create the data array.
4726
4727 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
4728
4729         * sgen-gc.c: write barrier for clone and fix unregister handles.
4730
4731 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
4732
4733         * reflection.c: some fixes needed in the generics code for the moving GC.
4734
4735 2006-12-22  Robert Jordan  <robertj@gmx.net>
4736
4737         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
4738         account. Fixes bug #80299.
4739
4740 2006-12-21  Raja R Harinath  <rharinath@novell.com>
4741
4742         Fix WaitHandle usage in delegates.
4743         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
4744         * object.c (mono_wait_handle_new): Use the property set method to
4745         initialize the handle.
4746         (mono_wait_handle_get_handle): New.
4747         * threadpool.c (mono_async_invoke): Use it.
4748         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
4749         Likewise.
4750         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
4751
4752 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
4753
4754         * marshal.c (emit_marshal): Call emit_marshal_variant and
4755         emit_marshal_com_interface when applicable.
4756         (emit_marshal_variant, emit_marshal_com_interface): Add
4757         methods for this case and remove if's from emit_marshal_object.
4758         
4759 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
4760
4761         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
4762
4763 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
4764
4765         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
4766         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
4767         and GlobalFree on Windows. Remove FIXME.
4768
4769 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
4770
4771         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
4772         implementation for managed objects.
4773
4774 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
4775
4776         * object.c: implemented code to be used for checking
4777         that no reference field overlaps with non-references.
4778
4779 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4780
4781         * threadpool.c: fix queue code to be compatible with the
4782         moving GC.
4783
4784 2006-12-18  Miguel de Icaza  <miguel@novell.com>
4785
4786         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
4787         in structures by throwing ArgumentNullException.
4788
4789         (emit_marshal_safehandle): Also when they are null parameters.
4790
4791         (emit_marshal_safehandle): Add support for ref
4792         SafeHandles parameters
4793
4794 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4795
4796         * profiler.c: updated to use the mono-dl API instead of
4797         gmodule.
4798
4799 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4800
4801         * profiler.c: updated to use the mono-dl dynamic loading
4802         API instead of gmodule.
4803
4804 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
4805
4806         * profiler.c: use readlink, older versions of glib don't have
4807         g_file_read_link ().
4808
4809 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4810
4811         * profiler.c: try to detect the path to mono if libc fails to provide
4812         a useful name (bug #80286).
4813
4814 2006-12-16  Raja R Harinath  <rharinath@novell.com>
4815
4816         Fix #80242
4817         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
4818         instance, use the generic type definition instead.
4819         (ves_icall_Type_GetNestedTypes): Likewise.
4820         * class.c (mono_class_create_generic): Always set the
4821         nested_classes of a generic instance to NULL, even if the generic
4822         type definition has nested types.
4823
4824 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
4825
4826         * marshal.c (mono_string_from_bstr): Revert previous Windows change
4827         and fix on Linux.
4828         
4829 2006-12-15  Miguel de Icaza  <miguel@novell.com>
4830
4831         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
4832         my arguments were in the wrong order.   I also fixed the Windows
4833         version which seems to have had the same issue.
4834
4835         (mono_free_bstr): On Unix, this is g_free.
4836         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
4837         conversions (for the tests in corlib to pass).
4838
4839 2006-12-14  Miguel de Icaza  <miguel@novell.com>
4840
4841         * marshal.c (emit_ptr_to_object_conv): For now, ignore
4842         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
4843         exception if a ref SafeHandle in a struct has changed).
4844         
4845         (emit_struct_conv): Do not perform layout checks for classes
4846         derived from SafeHandle, as those are specially handled. 
4847
4848         (emit_object_to_ptr_conv): Add support for
4849         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
4850
4851         (emit_marshal_safehandle): Implement conversion of return values
4852         of safehandles (MARSHAL_ACTION_CONV_RESULT).
4853         
4854         * threads.c: WaitHandle now is compiled with two different handles
4855         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
4856         for 2.0.
4857         
4858         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
4859         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
4860         these routines to cope with both kinds of fields.
4861
4862 2006-12-12  Miguel de Icaza  <miguel@novell.com>
4863
4864         * metadata.c (mono_type_to_unmanaged): Handle the case where
4865         type->data.klass is a SafeHandle, and in that case, return the
4866         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
4867         MONO_MARSHAL_CONV_SAFEHANDLE. 
4868
4869 2006-12-11  Miguel de Icaza  <miguel@novell.com>
4870
4871         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
4872         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
4873         calling emit_marshal_object.
4874
4875         (emit_marshal_safehandle): Implement marshalling of
4876         SafeHandle parameters (no ref support yet).
4877
4878         (MarshalAction): Document the defines as I implement
4879         them for SafeHandle.
4880
4881         (emit_marshal_object): indentation police.
4882
4883         * class-internals.h: Define MonoSafeHandle.
4884         Add safehandle_class to MonoDefaults type.
4885
4886         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
4887         list of classes to check for fields. 
4888
4889         * domain.c (mono_init_internal): Add SafeHandle to the list of
4890         mono_defaults loaded.
4891
4892 2006-12-15  Raja R Harinath  <rharinath@novell.com>
4893
4894         Fix #80253
4895         * reflection.c (mono_reflection_bind_generic_parameters): If the
4896         generic type definition is a type builder, ensure that it is fully
4897         initialized before instantiating it.  Kill some dead code.
4898
4899 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
4900
4901         * object.c: clear the loader_error () before loading
4902         more metadata stuff (bug #80258).
4903
4904 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
4905
4906         * icall.c, icall-defs.h: type modifiers icalls for
4907         parameters and properties.
4908
4909 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
4910
4911         * object.c, icall.c: fixed warnings.
4912
4913 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
4914
4915         * marshal.c: fixed a couple of leaks and coding style in a few places.
4916
4917 2006-12-08  Dick Porter  <dick@ximian.com>
4918
4919         * process.c: Cope with NULL ProcessStartInfo arguments on windows
4920         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
4921         80173.
4922
4923 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4924
4925         * process.c: ProcessStartInfo may have only filename set and
4926         arguments can be NULL.
4927
4928 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4929
4930         * icall.c: fix leak found by Robert Jordan.
4931
4932 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
4933
4934         * marshal.c, marshal.h: generate managed method to access an element
4935         of a multi-dimensional array.
4936
4937 2006-11-30  Paolo Molaro (lupus@ximian.com)
4938
4939         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
4940
4941 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4942
4943         * icall.c: back out GetFields () fix until the serialization code is
4944         fixed to not depend on the incorrect behaviour.
4945
4946 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
4947
4948         * profiler.c: provide defaults if none are set.
4949
4950 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
4951
4952         * Makefile.am, attrdefs.h: new public header file with
4953         constants for attributes for use by embedders.
4954
4955 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
4956
4957         * icall.c: GetFields () fix for bug #80064.
4958
4959 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
4960
4961         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
4962         removed long unused icalls.
4963
4964 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
4965   
4966         * marshal.c: 
4967                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
4968                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
4969                 can be generated without a delegate class.
4970                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
4971         
4972         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
4973
4974 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4975
4976         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
4977         #80069.
4978
4979 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4980
4981         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
4982         icall-def.h: added icalls needed by System.GC.
4983
4984 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
4985
4986         * loader.c: ensure the class in catch clauses is handled
4987         correctly for generics methods (fixes bug#79980).
4988
4989 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
4990
4991         * monitor.h, monitor.c: added mono_locks_dump () function
4992         to help debug deadlocks involving managed locks.
4993
4994 2006-11-13  Dick Porter  <dick@ximian.com>
4995
4996         * file-io.c (get_file_attributes): If the file is a symlink try
4997         and get the stat data for the target, but also add the
4998         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
4999         the specs for the windows symlink support, but will probably have
5000         to be reworked when I have test data from a vista machine.  Fixes
5001         bug 79887.
5002
5003 2006-11-13  Dick Porter  <dick@ximian.com>
5004
5005         * gc.c (mono_domain_finalize): 
5006         * marshal.c (mono_delegate_begin_invoke): 
5007         * threadpool.c (socket_io_init, mono_thread_pool_init)
5008         (mono_thread_pool_finish): 
5009         * monitor.c (mono_monitor_try_enter_internal): 
5010         * threads.c (mono_thread_resume, mono_thread_init)
5011         (mono_thread_suspend_all_other_threads)
5012         (mono_thread_execute_interruption): 
5013         * appdomain.c (mono_domain_unload): Check for NULL error returns
5014         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
5015         75733.
5016
5017 2006-11-11  Miguel de Icaza  <miguel@novell.com>
5018
5019         * process.c
5020         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
5021         Only close the handle if the value of the handle is not
5022         INVALID_HANDLE_VALUE.  This just makes the process a bit more
5023         robust.
5024
5025         Improvement for #75733, so that we do not run into this problem. 
5026
5027         
5028         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
5029         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
5030         internal variables.  Fixes #79462 
5031         
5032
5033 2006-11-09  Dick Porter  <dick@ximian.com>
5034
5035         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5036         Use poll() not select().  Fixes bug 79397.
5037
5038 2006-11-09  Raja R Harinath  <rharinath@novell.com>
5039
5040         Fix #79872
5041         * assembly.c (mono_assembly_load_from_full): Check that the given
5042         image has an assembly manifest.
5043
5044 2006-11-09  Ankit Jain  <jankit@novell.com>
5045
5046         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
5047         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
5048         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
5049
5050 2006-11-07  Dick Porter  <dick@ximian.com>
5051
5052         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5053         Put the old resolver behaviour back for pre-2.0 profiles.
5054
5055 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5056
5057         * threadpool.c: precise GC and locking fixes.
5058
5059 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
5060
5061         * class.c: don't load types that have an explicit unaligned
5062         managed reference. Provide better info in the TypeLoad exception.
5063         Part of the fix for bug #79744.
5064         * object.c: use the correct check for class type load issues.
5065
5066 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5067
5068         * class.c: enforce alignment of fields with managed references
5069         even when Pack=1 is forced by the user (bug #77788).
5070
5071 2006-11-03  Dick Porter  <dick@ximian.com>
5072
5073         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5074         If the address reverse lookup fails, return it as the hostname
5075         anyway.  Fixes bug 79721.
5076
5077 2006-11-03  Dick Porter  <dick@ximian.com>
5078
5079         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
5080         Fix build on Windows.
5081
5082 2006-11-02  Dick Porter  <dick@ximian.com>
5083
5084         * icall-def.h: 
5085         * object-internals.h: 
5086         * exception.c (mono_get_exception_thread_interrupted): 
5087         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
5088         Fixes bug 74525.
5089
5090         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
5091         Check for pending Thread.Interrupt.
5092
5093 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
5094         * loader.c: Fixed bug 79684.
5095
5096 2006-10-27  Dick Porter  <dick@ximian.com>
5097
5098         * file-io.c (get_file_attributes): Force symlinks to directories
5099         to be returned as a regular file.  Fixes bug 79733.
5100 2006-10-26  Dick Porter  <dick@ximian.com>
5101
5102         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
5103         CreateFile to open a directory then we need to set the
5104         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
5105
5106 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
5107
5108         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
5109         friends.
5110
5111 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5112
5113         * sgengc.c: small cleanup of timer code.
5114
5115 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
5116
5117         * sgen-gc.c: fix some warnings and start adding support for
5118         complete object removal on domain unload.
5119
5120 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
5121
5122         * assembly.c: build_assembly_name should not consider a version
5123         number without build or revision number invalid. Fixes bug #79715.
5124
5125 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
5126
5127         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
5128         call kernel32 function OutputDebugString directly.
5129         
5130         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5131         
5132 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
5133
5134         * reflection.c: small cleanup, using a function to insert a MonoString
5135         in the string heap.
5136
5137 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
5138
5139         * reflection.c: moving GC fixes.
5140
5141 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
5142
5143         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
5144         all the objects with finalizers belonging to an unloading appdomain.
5145
5146 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
5147
5148         * sgen-gc.c: added ability to allocate even when the nursery is fully
5149         pinned and fixed a couple of bugs.
5150
5151 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
5152
5153         * threads.h: Revert the last change for now.
5154
5155         * threads.h (mono_thread_get_pending_exception): Rename this to
5156         mono_thread_get_undeniable_exception ().
5157
5158 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
5159
5160         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
5161         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
5162         when fname does not refer to valid assembly. This result in a more
5163         meaningful error message.
5164         * exception.c: added mono_get_exception_bad_image_format2 which 
5165         constructs a BadImageFormatException using the ctor taking a custom
5166         message and the file name. Passing in a NULL msg results in a default
5167         message.
5168         * exception.h: define mono_get_exception_bad_image_format2 function.
5169         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
5170         when file name pointed to an invalid IL image. Use 
5171         mono_get_exception_file_not_found2 to construct FileNotFoundException,
5172         as this results in a more meaningful error message.
5173
5174 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
5175
5176         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
5177         #79465.
5178
5179 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
5180
5181         * metadata.c (mono_type_size): Change the align parameter to guint32 for
5182         consistency with the other _size functions.
5183         (mono_type_stack_size): Ditto.
5184
5185         * class.c object.c icall.c: Fix warnings caused by the above change.
5186
5187         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
5188
5189         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
5190
5191         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
5192
5193 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
5194
5195         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
5196         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
5197         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
5198         threadpool.h, threads-types.h: mark more internal functions.
5199
5200 2006-10-11  Dick Porter  <dick@ximian.com>
5201
5202         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5203         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
5204         reproduce the bug even before applying the fix.)
5205
5206 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
5207
5208         * reflection.c: allow retrieving attributes for arguments in generic
5209         methods (bug #79241).
5210
5211 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
5212
5213         * debug-mono-symfile.c: properly check fopen () result (found by
5214         coverity).
5215
5216 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
5217
5218         * reflection.c: make error message clearer and fixed two
5219         issuelets found by Coverity.
5220
5221 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
5222
5223         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
5224
5225 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
5226
5227         * object-internals.h, gc-internal.h, profiler-private.h:
5228         mark internal functions.
5229
5230 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
5231
5232         * reflection.c: put data in the text section.
5233         * icall.c: recognize more types in type_from_typename ().
5234         * process.c, marshal.c: added some GC FIXMEs.
5235
5236 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5237
5238         * loader.c: check for NULL before initializing.
5239
5240 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
5241
5242         * gc.c (finalizer_thread): Use a non-alertable wait here.
5243
5244         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
5245         until the correct solution is found.
5246
5247 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
5248
5249         * reflection.c (mono_module_get_object): Avoid an assert when operating on
5250         modules with no metadata. Fixes #79596.
5251
5252         * image.c (load_metadata_ptrs): Put back the error message when
5253         the #- heap is encountered since the support is not complete yet.
5254
5255 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5256
5257         * gc.c: do not allow the user to SuppressFinalize () a
5258         delegate because it would leak the trampoline if present.
5259
5260 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
5261
5262         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
5263         PropertyPtr table.
5264
5265 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
5266
5267         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
5268
5269         * metadata.c (mono_metadata_get_param_attrs): Ditto.
5270
5271         * row-indexes.h: Add definitions for *Ptr tables.
5272
5273         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
5274
5275         * metadata.c (mono_metadata_translate_token_index): New helper function to
5276         translate table indexes used in uncompressed metadata.
5277         (mono_metadata_decode_table_row): Ditto.
5278         (mono_metadata_decode_table_row_col): Ditto.
5279
5280         * metadata.c: Add table schema for *Ptr tables.
5281
5282         * class.c loader.c: Use the new helper function to access the affected metadata
5283         tables.
5284         
5285         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
5286         #38532.
5287         
5288 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
5289
5290         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
5291         sequences which can be unbounded in size. Fixes #79583.
5292
5293 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
5294
5295         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
5296         static initialization.
5297
5298         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
5299
5300         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
5301
5302         * domain.c (mono_domain_free): Free up type_init_exception_hash.
5303
5304         * object.c (mono_runtime_class_init): Implement correct semantics when a static
5305         ctor fails, i.e. throw the same exception on subsequent accesses.
5306         
5307 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
5308
5309         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
5310         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
5311         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
5312         Handle marshalling of interfaces and VARIANTs contained in structs.
5313         
5314         Code is contributed under MIT/X11 license.
5315         
5316 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
5317
5318         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
5319         
5320         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
5321         mempool.
5322
5323 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5324
5325         * console-io.c: ignore previous SIGINT handler.
5326
5327 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
5328
5329         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
5330         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
5331         #79460, #79461, #79485.
5332
5333         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
5334
5335         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
5336         #79217.
5337
5338 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
5339
5340         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
5341         could be generated from it.
5342
5343 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
5344
5345         * rand.c: fix read loop to correctly handle EINTR.
5346
5347 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5348
5349         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
5350         internal calls are defined to keep methods closer to the declaring
5351         type and allow a significant reduction in runtime relocations and
5352         memory usage.
5353
5354 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
5355
5356         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
5357         exception message to have FileNotFoundException use the default
5358         assembly load error message. Fixes bug #79426.
5359         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
5360
5361 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5362
5363         * threadpool.c: (start_thread_or_queue) use the root domain when
5364         creating the thread instead of the async object one.
5365
5366 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
5367
5368         * class.c, object.c, class-internals.h, reflection.c:
5369         for arrays, store element_size inside MonoClass (speedup
5370         for array object creation).
5371
5372 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
5373
5374         * icall.c: fixed CodeBase to use the file name and not the module
5375         name (bug #79365).
5376
5377 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5378
5379         * mono-debug.c, mono-debug.h: export find_method as
5380         mono_debug_find_method ().
5381
5382 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5383
5384         * debug-helpers.c, class-internals.h: added a few functions useful
5385         when debugging under gdb.
5386
5387 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5388
5389         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
5390         characters that need special handling.
5391
5392 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
5393
5394         * mono-config.c: make the os/cpu specification more flexible,
5395         allowing lists and negation.
5396
5397 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
5398
5399         * marshal.c: COM Interop fixes. Handle case where method->klass.
5400         is interface. Handle BSTR/MonoString when null. Use CDECL as 
5401         calling convention on non-windows platforms. This is for
5402         compatibility with XPCOM and MainWin COM.
5403         
5404         Code is contributed under MIT/X11 license.
5405         
5406
5407 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
5408
5409         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
5410         correctly. Fixes #79217.
5411
5412         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
5413
5414 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
5415
5416         * mono-config.c: allow both an os and cpu attribute for dllmap
5417         and dllentry elemnets to enable a single config file to be used
5418         for multiple architectures.
5419
5420 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
5421
5422         * loader.c: MonoLoaderError was cleared too soon on load failure.
5423         Fixes bug #79424.
5424
5425 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
5426
5427         * icall.c: use the defining class vtable when accessing a
5428         static field, not a pobblibly derived class.
5429
5430 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
5431
5432         * icall.c string-icalls.c: Remove references to unicode.h.
5433
5434         * unicode.h unicode.c Makefile.am: Remove these unused source files.
5435
5436         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
5437
5438         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
5439         indicating the image where custom marshaller types should be looked up.
5440         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
5441         custom marshallers, instead of corlib. Fixes #79425.
5442
5443 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
5444
5445         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
5446
5447 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
5448
5449         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
5450         Implement Environment.ProcessorCount.
5451         
5452         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
5453         Implement Environment.ProcessorCount.
5454         
5455         * icall.c: 
5456         Add Environment.ProcessorCount icall.
5457         
5458         Patch by Jason McFall.
5459
5460 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5461
5462         * assembly.c: don't append .exe/.dll when the filename already contains
5463         one of those extensions.
5464
5465 2006-09-12  Martin Baulig  <martin@ximian.com>
5466
5467         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
5468         to array interfaces.
5469
5470 2006-09-11  Martin Baulig  <martin@ximian.com>
5471
5472         * reflection.c (mono_image_build_metadata): Create the
5473         MethodImpl's after emitting all types and methods, so we don't
5474         need another fixup pass for them.
5475
5476 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
5477
5478         * class.c (mono_class_from_name_case): Fix regression introduced by the last
5479         change.
5480
5481 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
5482
5483         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
5484         unload.
5485
5486 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
5487
5488         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
5489         args is not set. Fixes #78926.
5490
5491 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
5492
5493         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
5494
5495         * image.c (load_class_names): Move this to class.c, and rename it to 
5496         'mono_image_init_name_cache'.
5497         (load_modules): Fix a warning.
5498
5499         * class.c icall.c image.c: Initialize image->name_cache lazily.
5500
5501         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
5502         on its name using information in the AOT file.
5503
5504         * class.c (mono_class_from_name): Use the new hook function.
5505
5506 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
5507
5508         * reflection.c (mono_param_get_objects): Handle enum default parameter values
5509         correctly.
5510
5511         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
5512         Fixes #79289.
5513         
5514 2006-09-06  Martin Baulig  <martin@ximian.com>
5515
5516         * icall.c (mono_lookup_internal_call): Small fix.
5517
5518 2006-09-05  Raja R Harinath  <rharinath@novell.com>
5519
5520         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
5521         double g_free.
5522
5523 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
5524
5525         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
5526         when --debug is specified.
5527
5528 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
5529
5530         * class.c (setup_generic_array_ifaces): Fix a warning.
5531
5532 2006-09-04  Miguel de Icaza  <miguel@novell.com>
5533
5534         * Temporarily remove the patch to assemly.c that checks the
5535         assembly versions as it breaks our gacutil.
5536
5537 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
5538
5539         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
5540
5541         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
5542         a net 1.0 runtime.
5543
5544         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
5545         created using the default ctor. Fixes #79152.
5546         (mono_string_builder_to_utf16): Ditto.
5547
5548 2006-09-01  Martin Baulig  <martin@ximian.com>
5549
5550         Fix handling of the generic array interfaces.
5551
5552         * class-internals.h
5553         (MonoDefaults): Removed `generic_array_class' and added
5554         `generic_ilist' class.
5555
5556         * class.c
5557         (mono_bounded_array_class_get): Add the new generic array interfaces.
5558         (setup_generic_array_ifaces): New static method; create vtable
5559         entries for each method in the generic array interfaces.
5560
5561         * metadata.c
5562         (select_container): Allow "parent-less" generic methods.
5563
5564         * marshal.c
5565         (mono_marshal_get_generic_array_helper): New public method.
5566
5567         * icall.c
5568         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
5569         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
5570         moved the interncall into System.Array.
5571
5572 2006-09-01  Raja R Harinath  <rharinath@novell.com>
5573
5574         A few more cases of avoiding work on types with ->byref set.
5575         Has the real fix for #79238
5576         * icall.c (is_generic_parameter): New helper.
5577         (ves_icall_Type_GetGenericParameterPosition): Use it.
5578         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
5579         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
5580         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5581         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
5582         reference types.
5583         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
5584         reference types.
5585         (ves_icall_Type_get_IsGenericInstance): Likewise.
5586         (ves_icall_Type_get_IsGenericType): Likewise.
5587
5588 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
5589
5590         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
5591         class if possible.
5592
5593         * mempool.h (mono_mempool_get_allocated): New helper function.
5594
5595         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
5596         change.
5597
5598         * mempool.c: Fix warnings and the calculation of stats.
5599
5600         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
5601
5602         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
5603
5604         * loader.c (mono_get_method_from_token): Update method_count stat.
5605
5606         * class-internals.h (MonoStats): Add some stats.
5607
5608 2006-08-31 Robert Jordan  <robertj@gmx.net>
5609
5610         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
5611         with managed variants.
5612         All code is contributed under the MIT/X11 license.
5613         
5614 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
5615
5616         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
5617         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
5618
5619         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
5620
5621         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
5622         with cycles in classes.
5623
5624         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
5625
5626         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
5627         missing a [MarshalAs] directive. Fixes #79203.
5628
5629         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
5630         klass->marshal_info. Fixes #79217.
5631
5632 2006-08-30  Martin Baulig  <martin@ximian.com>
5633
5634         Committing a patch from Joachim Ante <joe@otee.dk>:
5635         Add support for binary data symbol stores.
5636
5637         * debug-mono-symfile.c
5638         (mono_debug_open_mono_symbol_file): Renamed into
5639         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
5640         arguments.
5641
5642         * mono-debug.c
5643         (mono_debug_open_image): Added `raw_contents' and `size' args.
5644         (mono_debug_init_2_memory): New public function.
5645
5646 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
5647
5648         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
5649
5650 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5651
5652         * appdomain.c: implement support for ShadowCopyFiles.
5653
5654 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
5655
5656         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
5657         when value is NULL (and should remove CID #51).
5658
5659 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5660
5661         * image.c: moved 2 functions to ../utils.
5662
5663 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
5664
5665         * gc.c: cope with the target object of a GC handle being NULL
5666         (bug #78877).
5667
5668 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
5669
5670         * class.c: recursively check parent's explicit implementations
5671         of interface methods (fixes bug #79125).
5672
5673 2006-08-19  Miguel de Icaza  <miguel@novell.com>
5674
5675         * filewatcher.c: Avoid warnings when building, do not redefine
5676         constants that are defined.
5677
5678         Remove warnings.
5679
5680 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5681
5682         * image.c: don't fail when the link points to an absolute path.
5683
5684 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
5685
5686         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
5687         Fix CID #3.
5688
5689 2006-08-17  Miguel de Icaza  <miguel@novell.com>
5690
5691         * image.c (full_path): A new method used to obtain the actual path
5692         of an assembly even in the presence of symbolic links.  
5693
5694         This is necessary for the case where we are running a binary that
5695         has been GACed, but we are using the "published" path name
5696         ($prefix/mono/1.0/blah.exe) which happens to point to the real
5697         file in the GAC.
5698
5699         This was the source of the failure for the `xsp' command with the
5700         recent AppDomain changes, as far as the runtime was concerned,
5701         there were two different assemblies: $prefix/mono/1.0/blah.exe and
5702         $prefix/mono/gac/blah/version/blah.exe.
5703
5704         (do_mono_image_open): use full path
5705
5706 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5707
5708         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
5709
5710 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
5711
5712         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
5713         domain_id is supplied. Fix CID #241 and corlib's unit tests.
5714
5715 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5716
5717         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
5718         small structures. Fixes #78990.
5719
5720 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
5721
5722         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
5723
5724         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
5725
5726 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5727
5728         * appdomain.c:
5729         * marshal.c: don't load all the assemblies from a domain into newly
5730         created ones. The new domains might have different rules and load
5731         assemblies from different locations. Fixes bug #76757.
5732
5733         Patch by Lluis. Conflicts resolved by Brian Crowell.
5734
5735 2006-08-16  Alp Toker  <alp@atoker.com>
5736
5737         * socket-io.c: First half of the fix for #79084.
5738         Set sa_size to the length of the content, not that of the struct.
5739         Don't add NULL suffix to the content, this should be done in
5740         managed code if needed.
5741
5742 2006-08-14  Raja R Harinath  <rharinath@novell.com>
5743
5744         Fix part of #79012
5745         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
5746         mono_metadata_parse_type returns NULL.
5747
5748 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
5749
5750         * normalization-tables.h : new file for string normalization data.
5751         * locales.c, locales.h, icall.c :
5752           added load_normalization_resource() for string normalization,
5753           and icall as well.
5754         * Makefile.am : added normalization-tables.h to the sources.
5755
5756 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
5757
5758         * marshal.c: Add more helper functions to reduce code duplication and use them
5759         everywhere.
5760
5761 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
5762
5763         * marshal.c: Fix non-x86 stdcall warnings.
5764         
5765         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
5766         them everywhere.
5767
5768 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
5769
5770         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
5771         type check on multi-dimensional arrays. Fixes #79000.
5772
5773 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
5774
5775         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
5776         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
5777         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
5778         * class-internals.h: add is_com_object to class structure.
5779         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
5780         null checks to COM object marshalling. Fix .ctor call on RCW.
5781         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
5782         
5783         All code is contributed under the MIT/X11 license.
5784
5785 2006-08-09  Dick Porter  <dick@ximian.com>
5786
5787         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
5788         racing mono_monitor_allocator_lock() somewhere, so don't delete
5789         the critical section for now.  Found by running and exiting
5790         monodevelop.
5791
5792 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
5793
5794         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
5795         (ves_icall_System_ComObject_FindInterface): Ditto.
5796         (ves_icall_System_ComObject_CacheInterface): Ditto.
5797
5798         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
5799         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
5800
5801 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5802
5803         * threadpool.c: treat pipes from process asynchronous reads as sockets
5804         when reading from them, so we get select/poll or epoll to wait for
5805         data.
5806
5807 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
5808
5809         * loader.c: Fix a typo (CID #233) in the null check.
5810
5811 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
5812
5813         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
5814         Hopefully fixes #78949.
5815         
5816         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
5817         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
5818         bytes. Fixes #78972.
5819
5820 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5821
5822         * filewatcher.c: we need to set errno here.
5823
5824 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5825
5826         * filewatcher.c: let Win32Exception get the error value.
5827
5828 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5829
5830         * filewatcher.c: translate errno into win32 errors for Win32Exception
5831         to know what happened.
5832
5833 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
5834
5835         * threadpool.c: Fix more warnings.
5836
5837         * assembly.c (search_loaded): Fix warnings.
5838
5839         * threadpool.c (mono_thread_pool_finish): Fix warnings.
5840         (mono_async_invoke): Ditto.
5841
5842 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
5843
5844         * object.c (mono_remote_class_vtable): Need to create proxy vtable
5845         entries for __ComObject type in addition to ComImport types.
5846         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
5847         about hash table.
5848         
5849         All code is contributed under the MIT/X11 license.
5850
5851 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5852
5853         * image.c: avoid tentative loading of modulerefs that contain
5854         no metadata (P/Invoke library names).
5855
5856 2006-07-28  Dick Porter  <dick@ximian.com>
5857
5858         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
5859         mono_loader_lock() somewhere, so don't delete the critical section
5860         for now.  Found by running and exiting monodevelop.
5861
5862 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5863
5864         * filewatcher.c: define the inotify syscalls when we're building on
5865         linux and have sys/syscall.h. The build system might not have support
5866         for inotify but the target system might have it.
5867
5868 2006-07-26  Miguel de Icaza  <miguel@novell.com>
5869
5870         * domain.c: Documentation updates.
5871
5872         * loader.c (mono_free_method): Do not release the method
5873         information if we are being profiled, as profilers will use this
5874         information at shut down to present some data to the user.
5875
5876         This is needed so that the profiler does not crash, as the
5877         profiler tends to keep MonoMethods around, and they might become
5878         invalid if we free these.
5879
5880         (mono_get_method_constrained): Return the original CIL stream
5881         method as well, so verification can be performed against it.
5882
5883 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5884
5885         * filewatcher.[ch]: support for inotify file system watcher.
5886         * icall.c: add new internal calls for the inotify file system watcher.
5887
5888 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5889
5890         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
5891         #78888.
5892
5893 2006-07-20  Dick Porter  <dick@ximian.com>
5894
5895         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
5896         warning.
5897
5898 2006-07-20  Dick Porter  <dick@ximian.com>
5899
5900         * threads.c (start_wrapper): Do the thread cleanup while we still
5901         hold a reference to its object.  Fixes bug 78123.
5902
5903 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
5904
5905         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
5906         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
5907           "managed-to-managed".
5908         * icall.c: Redirect string constructors that take sbyte* to
5909           ves_icall_System_String_ctor_RedirectToCreateString.
5910         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
5911           to CreateString () methods with matching signature.
5912         * reflection.c: Use original security informations for
5913           MONO_WRAPPER_MANAGED_TO_MANAGED.
5914         * security-manager.c: Use original security informations for
5915           MONO_WRAPPER_MANAGED_TO_MANAGED.
5916         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
5917           that is a placeholder and only its address should be used.
5918         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
5919           that is a placeholder and only its address should be used.
5920
5921 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
5922
5923         Begin implementing COM Interop.
5924         * appdomain.c: Increment corlib version.
5925         * class.c: Set ComImport classes' parent to __ComObject.
5926         * loader.c: Mark cominterop methods as such.
5927         * domain.c: Add __ComObject class to MonoDefaults structure.
5928         * image.c: Add 2 hashtables to the image for COM Interop related methods
5929         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
5930         using the mempool allocator
5931         
5932         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
5933         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
5934         declaration for mono_metadata_type_dup_mp.
5935         
5936         * debug-helpers.c: Added strings for two additional wrapper types
5937         * object.c: Create proxy objects for ComImport classes
5938         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
5939         and added __ComObject class to MonoDefaults structure.
5940         
5941         * object-internals.h: Finish MonoRealProxy definition, and add definition of
5942         MonoComInteropProxy and MonoComObject.
5943         
5944         * marshal.c: Added support for COM Interop
5945         (signature_cominterop): Converts managed signature to corresponding
5946         unmanaged COM signature.
5947         (cominterop_get_function_pointer): gets unmanaged function pointer via
5948         COM object vtable
5949         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
5950         (cominterop_get_method_interface): returns interface type that method is defined on
5951         (mono_mb_emit_cominterop_call): emits native call to function pointer
5952         gotten from vtable
5953         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
5954         that matches signature of unmanaged function.
5955         (cominterop_get_native_wrapper): wrapper around adjusted method call.
5956         (cominterop_get_invoke): forwards call from proxy to __ComObject
5957         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
5958         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
5959         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
5960         
5961         * marshal.h: Added Marshal icall declarations.
5962         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
5963         so we can access them in finalizer
5964         
5965 2006-07-14  Dick Porter  <dick@ximian.com>
5966
5967         * object.c (mono_type_initialization_cleanup): Fix a race
5968         condition by temporarily commenting out the critical section
5969         deletion.
5970
5971 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
5972
5973         * reflection.c (create_custom_attr): Fix some warnings.
5974         (create_custom_attr_data): Ditto.
5975         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
5976         types. Fixes #78855.
5977
5978 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
5979
5980         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
5981
5982         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
5983
5984 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
5985
5986         * reflection.c (resolve_object): Add support for DynamicMethod.
5987
5988         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
5989         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
5990
5991 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
5992
5993         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
5994         don't leak GPtrArray's pdata has we have no use (nor free) for it.
5995
5996 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
5997
5998         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
5999         Fixes #77888.
6000
6001 2006-06-30  Raja R Harinath  <rharinath@novell.com>
6002
6003         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
6004         slightly: remove a shadow local variable.
6005
6006 2006-06-29  Raja R Harinath  <rharinath@novell.com>
6007
6008         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
6009         definition that introduces the virtual function slot.
6010         Also fix Coverity #105.
6011
6012 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
6013
6014         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
6015         for dynamic assemblies. Fixes #78724.
6016
6017 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
6018
6019         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
6020         Fixes #78722.
6021
6022 2006-06-21  Martin Baulig  <martin@ximian.com>
6023
6024         * reflection.c
6025         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
6026         fixes #76484.
6027
6028 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
6029
6030         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
6031
6032 2006-06-20  Raja R Harinath  <rharinath@novell.com>
6033
6034         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
6035         nor TYPEREFs.
6036         * class.c (mono_class_create_from_typespec): Add 'context' argument.
6037         Inflate result if necessary.
6038         (mono_class_get_full): Remove old version.  Rename from
6039         'mono_class_get' and add 'context' argument.  Pass it to
6040         ..._create_from_typespec.
6041         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
6042         (mono_ldtoken): Revert change below.
6043
6044 2006-06-20  Martin Baulig  <martin@ximian.com>
6045
6046         * class.c (mono_ldtoken): Don't pass the generic context to
6047         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
6048
6049 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
6050
6051         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
6052         and later freeing it. Fixes #78638.
6053
6054 2006-06-15  Miguel de Icaza  <miguel@novell.com>
6055
6056         * icall.c (mono_class_get_throw): Revert over-zealous error
6057         throwing, the caller for mono_class_get_throw will cope with
6058         errors when classes are not properly initialized already.
6059
6060         The code still copes with loader exceptions though.
6061
6062         Fixes the regression in reftype1 and reftype3 from the CAS tests.
6063         
6064 2006-06-14  Miguel de Icaza  <miguel@novell.com>
6065
6066         Fixes the `make run1' version of RuntimeAbort (to be commited,
6067         source is in Bugzilla).
6068         
6069         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
6070         FALSE on class loading failure instead of returning true.
6071
6072         * class.c (mono_class_create_from_typedef): It is possible for
6073         mono_metadata_interfaces_from_typedef_full to fail if a class is
6074         not found, cope with this.
6075         
6076
6077 2006-06-14  Dick Porter  <dick@ximian.com>
6078
6079         * socket-io.c: 
6080         * process.c: Fix a bunch of signed/unsigned warnings from gcc
6081         4.1.1
6082
6083 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
6084
6085         * culture-info-table.h : oops, forgot to make it nsync with r61548.
6086
6087 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
6088
6089         * icall.c: Another fix for building mono in Visual Studio.
6090
6091 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
6092
6093         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
6094         
6095 2006-06-09  Martin Baulig  <martin@ximian.com>
6096
6097         * debug-mono-symfile.c: Put this back and really fix it this
6098         time. Sorry for all the trouble.
6099
6100 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
6101
6102         * icall.c (mono_class_get_throw): Fix a warning.
6103         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
6104         ReflectionTypeLoadException if needed. Fixes #78606.
6105
6106         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
6107         (mono_class_init): Ditto.
6108
6109         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
6110         ref_only exceptions.
6111         (mono_loader_clear_error): Make this work even if there is no error.
6112
6113 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
6114
6115         * object-internals.h marshal.c marshal.h icall.c: Implement method 
6116         Marshal.GetComSlotForMethodInfo using internal call.
6117
6118 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
6119
6120         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
6121         a function for signalling it.
6122
6123         * class.c (mono_class_from_typeref): Use the new kind of loader error when
6124         a referenced assembly is not found.
6125
6126         * loader.c (mono_loader_error_prepare_exception): Add support for 
6127         LOADER_ERROR_ASSEMBLY. Fix formatting.
6128
6129 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
6130
6131         * domain.c appdomain.c class-internals.h marshal.c: Add support 
6132         for VARIANT marshalling on windows and increment corlib version
6133         since Variant struct was added.
6134
6135 2006-06-03  Miguel de Icaza  <miguel@novell.com>
6136
6137         * debug-mono-symfile.c: Revert Martin's previous patch which broke
6138         stack trace line information:
6139
6140         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
6141         (Martin) when looking up B which is between A and C, return A not C.
6142
6143         Bug is #78573.
6144
6145         Thanks to Alexander Olk for tracking this down.
6146
6147 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
6148
6149         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
6150         
6151         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
6152         avoid clobbering its value.
6153         (mono_string_to_lpstr): Fix a warning on windows.
6154
6155 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
6156
6157         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
6158
6159         * reflection.c loader.c: Removed references to 'dummy' flag.
6160
6161         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
6162
6163         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
6164         it gets GC tracking.
6165
6166         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
6167         GC tracking.
6168         
6169         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
6170
6171         * marshal.c threadpool.c: Update callers of mono_async_result_new.
6172
6173         * appdomain.c: Bump corlib version.
6174
6175 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
6176
6177         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6178         CEE_STIND_REF when working with object references.
6179
6180 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
6181
6182         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
6183         Fixes #78539.
6184
6185 2006-05-30  Miguel de Icaza  <miguel@novell.com>
6186
6187         * loader.c (method_from_memberref): Fix argument value for
6188         mono_loader_set_error_method_load (I was passing the MonoClass
6189         instead of the class name char *).
6190
6191 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
6192
6193         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6194         CEE_STIND_REF when working with object references.
6195
6196 2006-05-30  Martin Baulig  <martin@ximian.com>
6197
6198         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
6199         mono_method_full_name() change and replace the ':' with a '.'
6200         here.
6201
6202 2006-05-30  Martin Baulig  <martin@ximian.com>
6203
6204         * debug-mono-symfile.c
6205         (mono_debug_symfile_lookup_location): Fix the algorithm:
6206         when looking up B which is between A and C, return A not C.
6207
6208 2006-05-29  Martin Baulig  <martin@ximian.com>
6209
6210         * mono-debug.h
6211         (MonoDebugMethodInfo): Make the typedef public.
6212         (MonoDebugSourceLocation): New public struct.
6213
6214         * mono-debug.c
6215         (mono_debug_source_location_from_address): Removed.
6216         (mono_debug_source_location_from_il_offset): Removed.
6217         (mono_debug_il_offset_from_address): Removed.
6218         (mono_debug_address_from_il_offset): Removed.
6219         (mono_debug_lookup_method): New public function.
6220         (mono_debug_lookup_source_location): New public function; replaces
6221         the old mono_debug_source_location_from_*() functions; see the
6222         inline documentation.
6223         (mono_debug_free_source_location): New public function.
6224         (mono_debug_print_stack_frame): New public function; see the
6225         inline documentation.
6226
6227         * debug-mono-symfile.c
6228         (mono_debug_find_source_location): Renamed into
6229         mono_debug_symfile_lookup_location(); only take a
6230         `MonoDebugMethodInfo *' and an `offset' argument; added inline
6231         documentation.
6232         (mono_debug_find_method): Renamed into
6233         mono_debug_symfile_lookup_method().
6234
6235 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
6236
6237         * assembly.c (mono_assembly_open_full): Dont overwrite the status
6238         returned by mono_image_open_full ().
6239
6240         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
6241         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
6242         #78517.
6243
6244         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
6245         #78518.
6246
6247 2006-05-27  Miguel de Icaza  <miguel@novell.com>
6248
6249         * class.c (mono_class_from_typeref): handle missing images
6250         earlier, deals with bug #78418.   Refactor code; 
6251
6252         Fix a warning introduced in my previous commit (some stale code
6253         from before I revisited my patch).
6254
6255         * class.c (mono_class_create_from_typedef): On failure, remove the
6256         class from the MonoImage->class_cache as the class is not
6257         initialized;   Fixes the leak pointed out by Paolo.
6258
6259 2006-05-25  Dick Porter  <dick@ximian.com>
6260
6261         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
6262         DeleteCriticalSections until I figure out which one may still be
6263         sometimes locked when mono_thread_cleanup is called.
6264
6265 2006-05-24  Dick Porter  <dick@ximian.com>
6266
6267         * threads.c (mono_thread_cleanup): Move the threading cleanup out
6268         of mono_thread_manage and back into its own function, so it can be
6269         called after the finalizer thread has finished.
6270
6271         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
6272
6273 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
6274
6275         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
6276         Fixes #78495.
6277
6278         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
6279         with non-blittable elements.
6280         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
6281
6282 2006-05-24  Martin Baulig  <martin@ximian.com>
6283
6284         * mono-debug-debugger.h (MonoDebuggerEvent): Added
6285         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
6286
6287         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
6288         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
6289         `mono_debugger_event_handler' to NULL.
6290
6291 2006-05-24  Martin Baulig  <martin@ximian.com>
6292
6293         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
6294
6295 2006-05-24  Martin Baulig  <martin@ximian.com>
6296
6297         * mono-debug-debugger.h
6298         (mono_debugger_create_notification_function): Added
6299         `MonoCodeManager *' argument.
6300
6301 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
6302
6303         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
6304
6305 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
6306
6307         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
6308         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
6309         implementation.
6310
6311 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
6312
6313         * icall.c: precise GC support: objects can't be stored in unmanaged
6314         memory anymore, even if they are kept alive by other references: since
6315         they can move the GC needs to be able to always find them.
6316
6317 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
6318
6319         * object.c: precise GC support for static fields. Support
6320         for moving GCs: write barriers and pinned allocation for interned
6321         strings.
6322
6323 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
6324
6325         * domain.c, domain-internals.h: precise GC support for the MonoDomain
6326         structure.
6327
6328 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
6329
6330         * class.c, gc.c: sgen and precise GC updates.
6331
6332 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
6333
6334         * marshal.h, marshal.c: added write barrier wrapper and precise type
6335         fixes.
6336
6337 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
6338
6339         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
6340         support.
6341
6342 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
6343
6344         * reflection.c: precise and sgen GC updates.
6345
6346 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
6347
6348         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
6349
6350 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
6351
6352         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
6353
6354 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
6355
6356         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
6357         MONO_TYPE_OBJECT. Fixes #78462.
6358
6359 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
6360
6361         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
6362         and blittable types.
6363
6364 2006-05-17  Miguel de Icaza  <miguel@novell.com>
6365
6366         * class.c (mono_class_get_exception_for_failure): Implement parts
6367         of a TODO: if the loader error is set (instead of the class
6368         error), we return a Loader exception that can be properly thrown
6369         elsewhere.
6370
6371         This was exposed by some Winforms 2.0 code that I tried to run
6372         (Atsushi pointed me to it).
6373
6374 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
6375
6376         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
6377         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
6378         
6379         * marshal.c (emit_marshal_vtype): Add limited support for 
6380         UnmanagedType.LPStruct. Fixes #78427.
6381
6382         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
6383         Applied a patch from kangaroo to fix #77523.
6384
6385 2006-05-17  Martin Baulig  <martin@ximian.com>
6386
6387         * threads.c
6388         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
6389         (debugger_thread_created): Removed.
6390         (debugger_thread_exited): Removed.
6391
6392 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
6393
6394         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6395
6396         * object-internals.h (MonoReflectionResource): Sync with managed version.
6397
6398 2006-05-12  Wade Berrier <wberrier@novell.com>
6399
6400         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
6401
6402 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
6403
6404         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
6405         functions try to allocate from the image mempool.
6406
6407 2006-05-12  Dick Porter  <dick@ximian.com>
6408
6409         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
6410
6411 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
6412
6413         * object.c: The FieldGetter and FieldSetter methods require the full
6414         name of the class, not only the name. Fixes bug #78277.
6415
6416 2006-05-11  Miguel de Icaza  <miguel@novell.com>
6417
6418         * loader.c (method_from_memberref): Do not pass the NULL klass to
6419         mono_loader_set_error_() methods.  Pass the non-NULL value
6420         (class). 
6421
6422 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
6423
6424         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
6425         (mono_assembly_close): Null out assembly->image->references after freeing it.
6426
6427         * image.c (mono_image_close): Free image->references.
6428         
6429         * reflection.c (mono_image_basic_init): Fix a small memory leak.
6430
6431 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
6432
6433         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
6434         before checking if it's NULL (g_assert).
6435
6436 2006-05-10  Martin Baulig  <martin@ximian.com>
6437
6438         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
6439         I thought I already killed that two months ago, but now it somehow reappeared.
6440
6441 2006-05-10  Martin Baulig  <martin@ximian.com>
6442
6443         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
6444
6445 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
6446
6447         * reflection.c: Allocate memory for dynamically created methods in the image
6448         mempools.
6449
6450 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
6451
6452         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
6453         don't use the ad pointer before checking if it's NULL (g_assert).
6454
6455 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
6456
6457         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
6458         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
6459
6460         * marshal.c: Allocate all signatures from mempools.
6461
6462         * marshal.c: Allocate some more signatures from mempools.
6463
6464 2006-05-09  Miguel de Icaza  <miguel@novell.com>
6465
6466         * object.c (mono_load_remote_field): The code used to provide a
6467         temporary variable for returning results if the user did not
6468         provide a result pointer.  But our temporary variable was allocted
6469         on the satck.
6470
6471         Fix calling code to always pass a result area.   Coverity ID 103.
6472
6473 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
6474
6475         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
6476         value, not the old. Fixes #78312.
6477         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
6478
6479         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
6480         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
6481         per-image cache.
6482
6483         * assembly.c (mono_assembly_close): Free image->references.
6484
6485         * assembly.c (mono_assembly_names_equal): Fix a warning.
6486         (mono_assemblies_cleanup): Cleanup more global data.
6487
6488         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
6489
6490         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
6491         ptr_cache and image->modules.
6492
6493         * image.c (mono_image_init): Allocate array_cache lazily.
6494         
6495 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6496
6497         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
6498         behavior was changed recently and has bad side effects.
6499
6500 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
6501
6502         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
6503         
6504         * assembly.c (mono_assembly_close): Remove a debug printf.
6505
6506         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
6507
6508         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
6509         to also allow for temporary references between mono_image_open ()/close ().
6510
6511         * domain.c (get_runtimes_from_exe): Add a FIXME.        
6512
6513 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
6514
6515         * marshal.c: Fix support for dynamic methods.
6516
6517         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
6518
6519         * marshal.c (mono_marshal_cleanup): New cleanup function.
6520
6521         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
6522         image mempools.
6523
6524         * class.c (mono_class_init): Fix leaking class->nested_classes.
6525
6526         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
6527
6528         * image.c (mono_image_init): Initialize the new cashes.
6529
6530         * image.c (mono_image_close): Destroy the new cashes.
6531
6532         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
6533
6534         * mempool.c (mono_mempool_strdup): New helper function.
6535
6536         * class-internals.h: Add prototype for mono_loader_unlock ().
6537
6538         * domain.c (mono_jit_info_table_find): Fix a warning.
6539         (mono_debugger_check_runtime_version): Ditto.
6540
6541         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
6542         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
6543         functions to these modules.
6544
6545         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
6546         metadata modules.
6547         
6548         * marshal.c (mono_free_bstr): Fix a warning.
6549
6550         * assembly.c (mono_assembly_open_full): Fix another small leak.
6551
6552         * object.c: Fix some unload leaks in the remoting code.
6553
6554         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
6555         function.
6556
6557         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
6558
6559         * reflection.c: Fix some unload leaks in dynamic assemblies.
6560
6561 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
6562
6563         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
6564         * marshal.h: Add BSTR support on Win32
6565         * icall.c: Add BSTR icalls
6566         * metadata.h: Add BSTR enums
6567
6568 2006-04-28  Miguel de Icaza  <miguel@novell.com>
6569
6570         Work to catch the crash from #76795 and turn it into an
6571         exception.   As I stubbed out pieces of the VisualBasic support,
6572         I found a number of places where the code was failing and I added
6573         checks to those places. 
6574         
6575         * metadata.c (do_mono_metadata_parse_generic_class): Make this
6576         function return a status code.  If we fail to parse the signature
6577         from mono_metadata_parse_generic_inst, return FALSE.
6578
6579         * loader.c (mono_get_method_from_token): If we fail to load the
6580         method (mono_class_get) return NULL.   
6581
6582         * (method_from_memberref): Return NULL if we are unable to parse
6583         the method signature
6584
6585         (mono_loader_error_prepare_exception): Since we now use the
6586         loader_error flag internally to stop processing, and obtaining
6587         exceptions that might be thrown will walk this code path the
6588         proper way of going from a MonoLoaderError into a
6589         MonoException was convoluted.   This new routine encapsulates the
6590         process of turning the error into an exception and *clearing* the
6591         error afterwards.
6592         
6593 2006-04-27  Miguel de Icaza  <miguel@novell.com>
6594
6595         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
6596         with missing assemblies), and to cope with:
6597
6598                 * Missing fieldref from a non-existing assembly.
6599                 * Missing methodref from a non-existing assembly.
6600
6601         The first batch of work to address *some* of the issues from 76661.
6602         
6603         * object.c (mono_class_create_runtime_vtable): If we fail to
6604         initialize the class raise the exception here. 
6605
6606         * metadata.c (mono_class_get_overrides_full): If any methods fail
6607         to load return the failure to the caller.
6608
6609         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
6610         flagging assemblies that failed to load.   
6611
6612         Do not crash if we are unable to load the assembly.
6613
6614         (mono_assembly_close): Do nothing with REFERENCE_MISSING
6615         assemblies. 
6616
6617         * loader.c (mono_loader_set_error_type_load): Change the
6618         convention to always pass unallocated strings, so we make our own
6619         copies (I know our own code had duplicated strings before, but
6620         this keeps the normal conventions).
6621         (method_from_memberref): Call mono_loader_set_error_method_load
6622         for all possible failures of loading the class. 
6623         Remove assert, turn into a loader error.
6624
6625         (mono_loader_error_to_exception): Move this routine from mini
6626         (mini_loader_error_to_exception) there was no need to have that in
6627         mini. 
6628
6629         * class.c (mono_class_from_typeref): If we were not able to load
6630         the assembly with mono_assembly_load_reference, call the
6631         mono_loader_set_error_type_load to register the problem.
6632
6633         (mono_class_setup_fields): If we fail to load the type from
6634         mono_metadata_parse_type_full, call mono_class_set_failure and
6635         break from the loop.
6636
6637         If class->exception_type is set, we do not layout the fields as
6638         that might crash the runtime, and instead return (from breaking
6639         from the previous loop).
6640
6641         (mono_class_setup_vtable): This now returns a boolean indicating
6642         whether the table was properly setup.   The decision is driven by
6643         mono_class_get_overrides_full which might run into non-existing
6644         methods. 
6645         
6646         (mono_class_init): Returns TRUE on success or FALSE if there was a
6647         problem in loading the type (incorrect assemblies, missing
6648         assemblies, methods, etc).
6649
6650         When we call mono_class_setup_fields we also check for a potential
6651         error inside this call (either a class exception or a general
6652         loader exception).
6653
6654         (mono_class_create_from_typedef): If the parent fails to load
6655         (calling mono_class_get_full) return NULL.
6656         
6657         ** Important **
6658
6659         calls to mono_metadata_parse_type_full should be checked
6660         everywhere and set the mono_class_set_failure
6661         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
6662
6663         The current patch checks the places where my manually constructed
6664         tests show the errors are showing up, but we should do it
6665         everywhere. 
6666
6667         ** Important2 **
6668
6669         mono_class_init return values should be tested everywhere, like
6670         the previous case this is something that we should audit
6671         everywhere and not only on the cases exposed by the tests I
6672         created. 
6673
6674 2006-04-26  Miguel de Icaza  <miguel@novell.com>
6675
6676         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
6677         boolean parameter and instead pass the information on `options'
6678         parameter (FileOptions).
6679
6680         * icall.c: Register the new signature for MonoIO.Open.
6681
6682         * debug-helpers.c (dis_one): Trying to understand how coverity
6683         works.  Fix Run 5, item 78.
6684
6685 2006-04-26  Dick Porter  <dick@ximian.com>
6686
6687         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
6688         dereference.
6689
6690 2006-04-25  Martin Baulig  <martin@ximian.com>
6691
6692         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
6693
6694         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
6695         debugger_thread_created().
6696         (debugger_gc_push_all_stacks): Don't handle the main thread in any
6697         special way.
6698         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
6699         (mono_debugger_finalize_threads): New function; undo the effects
6700         of mono_debugger_init_threads().
6701         (mono_debugger_create_all_threads): Removed.
6702
6703 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
6704
6705         * image.c (mono_image_close): Tidy up trace messages.
6706
6707         * assembly.c (mono_assembly_close): Ditto.
6708
6709         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
6710         no longer references an already freed assembly. Fixes #78168.
6711
6712 2006-04-21  Dick Porter  <dick@ximian.com>
6713
6714         * threads.c (mono_thread_detach): Fix reference counting when
6715         detaching threads.
6716
6717 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
6718
6719         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
6720         #78155.
6721
6722 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
6723
6724         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
6725         (mono_type_to_stind): Ditto.
6726
6727         * marshal.c: Use the new helper functions to simplify code.
6728
6729         * image.c (mono_image_close): Add some code for help debug assembly unloading
6730         problems.
6731
6732         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
6733         image mempool.
6734
6735         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
6736         assembly was already loaded in another appdomain. Fixes #78083.
6737
6738 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
6739
6740         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
6741         referenced assemblies.
6742         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
6743
6744         * domain.c (mono_domain_free): Add a trace message.
6745
6746         * appdomain.c (add_assemblies_to_domain): Ditto.        
6747
6748         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
6749         field.  
6750
6751 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
6752
6753         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
6754
6755 2006-04-12  Martin Baulig  <martin@ximian.com>
6756
6757         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
6758         `USE_INCLUDED_LIBGC'.   
6759
6760 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
6761
6762         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
6763         the patch contains ../ and a small directory name later. Hopefully fixes
6764         #78035.
6765
6766 2006-04-10  Martin Baulig  <martin@ximian.com>
6767
6768         Clean up the debugger's thread-handling code.
6769
6770         The debugger's thread-handling code has been moved from
6771         ../mini/debug-debugger.c to threads.c.  We now iterate directly
6772         over the `threads' hash, keep track of exiting threads and also
6773         use proper locking.
6774
6775         We can now debug XSP and XSP based applications with the debugger.
6776
6777         * object-internals.h (MonoThread): Added `gpointer end_stack'.
6778
6779         * threads.h
6780         (MonoThreadCallbacks): Removed; this was only used by the debugger.
6781         (mono_install_thread_callbacks): Likewise.      
6782
6783         * threads.c (mono_thread_callbacks): Removed.
6784         (debugger_thread_created, debugger_thread_exited): New static functions.
6785         (start_wrapper): Call debugger_thread_created().
6786         (thread_cleanup): Call debugger_thread_exited().
6787         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
6788         (mono_debugger_init_threads): New public function.
6789         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
6790         iterate directly over the `threads' hash and also use proper locking.
6791
6792         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
6793
6794         * mono-debug-debugger.h
6795         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
6796
6797 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
6798
6799         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
6800         argument type=array. Fixes #78057.
6801
6802 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
6803
6804         * culture-info-table.h : regenerated. Fixed bug #69652.
6805
6806 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
6807
6808         * loader.c metadata.c: Reapply a variant r59116.
6809         
6810         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
6811
6812         * class.c (mono_class_setup_interface_offsets): New internal function.
6813
6814         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
6815         interfaces too. Fixes #77398.
6816
6817         * reflection.c (encode_cattr_value): Add support for 
6818         parameter type=object, argument type=array.
6819         (load_cattr_value): Ditto. Fixes #77916.
6820
6821         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
6822         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
6823
6824         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
6825         a byval char array and CharSet is Ansi.
6826
6827         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
6828
6829 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
6830
6831         * metadata.c: Add some locking comments.
6832         
6833         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
6834         mempool.
6835         (mono_metadata_free_method_signature): Don't free the signature itself.
6836
6837         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
6838
6839         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
6840         reference the same MonoImage.
6841         (mono_assembly_load_from_full): Add an assert.
6842
6843 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
6844
6845         * image.c (mono_image_close): Don't put the image we are about to free into the
6846         loaded_images_guid_hash.
6847
6848         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
6849         to reduce code duplication.
6850
6851         * marshal.c: Register the native functions called by this module as icalls, to
6852         somewhat centralize the creation of MonoMethodSignature's.
6853
6854         * loader.c (mono_method_signature): Add a cache for method signatures.
6855
6856         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
6857         the parameter attributes of a method.
6858         (mono_metadata_parse_method_signature_full): Refactored the computation of
6859         parameter attributes into a separate function. Also avoid one allocation in
6860         most cases.
6861
6862         * assembly.c (mono_assembly_close): Ditto.
6863
6864         * image.c (mono_image_close): Log trace messages with INFO level.
6865
6866         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
6867
6868         * image.c reflection.c: Correct reference counting of image modules.
6869         
6870         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
6871         of this function from the image mempool.
6872         
6873         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
6874         to allow more cached types to be used.
6875
6876         * mono-debug.c (mono_debug_add_method): Appled patch from
6877         David S. Miller  <davem@sunset.davemloft.net>: Access 
6878         minfo->lexical_blocks[] entry elements using read32().
6879
6880 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
6881
6882         * loader.c (mono_free_method): No longer free the method header for non-dynamic
6883         methods as it is allocated from the mempool.
6884
6885         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
6886         image mempool.
6887
6888         * metadata-internals.h: Add comments describing the reference counting scheme
6889         used for MonoImage and MonoAssembly.
6890
6891         * image.c assembly.c reflection.c: Rework reference counting of images and 
6892         assemblies so they are freed when the runtime is shut down. Free some 
6893         additional memory structures when an image is unloaded.
6894         
6895 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
6896
6897         * class.c loader.c reflection.c: Allocate more data structures in
6898         the image mempool.
6899
6900 2006-03-31  Miguel de Icaza  <miguel@novell.com>
6901
6902         * icall.c
6903         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
6904         build on pre glib 2.4 systems.
6905
6906 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
6907
6908         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
6909
6910         * icall.c: Fix some warnings.
6911
6912 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
6913
6914         * culture-info-table.h : regenerated.
6915
6916 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
6917
6918         * threads.c, object-internals.h, verify.c: changed the culture caching
6919         code to use a normal MonoArray for storage so the GC can keep track of
6920         them easily. Fixed bits of the cache logic, too and simplified the
6921         code.
6922
6923 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
6924
6925         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
6926         thread for non-Boehm GCs.
6927
6928 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
6929
6930         * domain.c, object.c, domain-internals.h: reduce the amount of memory
6931         needed to keep track of the data for static fields.
6932
6933 2006-03-29  Raja R Harinath  <rharinath@novell.com>
6934
6935         Fix #75172
6936         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
6937         for interface classes.  Use 'num_methods' instead.
6938         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
6939         before using '->vtable_size' field.
6940
6941 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
6942
6943         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
6944         doesn't contain managed pointers, so use a normal hashtable.
6945
6946 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
6947
6948         * reflection.c, class-internals.h, domain.c: fixed handling of types
6949         used as values for objects in custom attributes (bug #77915):
6950
6951 2006-03-24  Martin Baulig  <martin@ximian.com>
6952
6953         * class.c (mono_class_setup_fields): Added support for generic
6954         instances; fixes #77580.
6955
6956 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6957
6958         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
6959
6960 2006-03-24  Dick Porter  <dick@ximian.com>
6961
6962         * file-io.c (get_file_attributes): More stat macro breakage.
6963         Fixes bug 77759.
6964
6965 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
6966
6967         * profiler.c: added the file=filename option in the default profiler
6968         to output the profile data to filename.
6969
6970 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6971
6972         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
6973         bug #77877.
6974
6975 2006-03-22  Martin Baulig  <martin@ximian.com>
6976
6977         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
6978         allocated `MonoClassField *' in `fb->handle'.
6979
6980 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6981
6982         * class.c, image.c, metadata-internals.h: implemented new mechanism to
6983         allocate interface ID to save memory and allow better ID reuse on
6984         appdomain unload. setup_generic_vtable () removal from Martin.
6985
6986 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
6987
6988         * object.h, appdomain.c, domain.c, exception.c, icall.c,
6989         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
6990         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
6991         write barriers for reference stores with managed objects accessed with
6992         C structures in the runtime and in embedding programs.
6993
6994 2006-03-20  Raja R Harinath  <rharinath@novell.com>
6995
6996         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
6997         'interface_id' and 'max_interface_id' fields of MonoClasses
6998         representing open generic types.
6999
7000 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
7001
7002         * object.h, object.c, icall.c: added functions to deal with
7003         storing valuetypes that contain references in managed objects.
7004         * reflection.c, string-icalls.c, threads.c, marshal.c: small
7005         fixes and comments around uses of mono_array_addr ().
7006
7007 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
7008
7009         * object.h, icall.c, monitor.c: object.GetHashCode ()
7010         implementation that supports the moving garbage collector.
7011
7012 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
7013
7014         * icall.c, threads-types.h, threads.c: implemented finalizer for
7015         LocalDataStoreSlot.
7016
7017 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
7018
7019         * metadata.c (mono_type_size): Add a fixme.
7020         (mono_type_stack_size): Ditto.
7021
7022         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
7023         'type_forwarders' field.
7024
7025         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
7026         attribute from net 2.0.
7027
7028         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
7029         from class.c.
7030
7031         * class.c (mono_class_setup_fields): Fix a warning.
7032         
7033         * class.c (mono_class_from_name): Add support for assemblyref entries
7034         in the EXPORTEDTYPE table.
7035
7036         * reflection.c: Add support for handling type forwarders under net 2.0.
7037
7038         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
7039         
7040 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
7041
7042         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
7043         overwriting entries in ModuleBuild->types, also clean up the code
7044         a little. Fixes #77774.
7045
7046 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
7047
7048         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
7049         load friend assembly info when present.
7050
7051 2006-03-14  Raja R Harinath  <rharinath@novell.com>
7052
7053         Fix crasher on gtest-158.cs.
7054         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
7055         the return value if the MonoClass we want is yet in an
7056         inconsistent state.
7057         * class.c (mono_class_create_from_typedef): Add an comment
7058         explaining an order dependency between mono_class_setup_parent and
7059         mono_class_setup_mono_type.
7060
7061 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
7062
7063         * class.c: documentation updates and events bug fix.
7064
7065 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
7066
7067         * class.c: some cleanup, locking fixes.
7068
7069 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
7070
7071         * class.c: fix the generics code to setup nested
7072         type info to the instantiated type (bug #77770).
7073
7074 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
7075
7076         * marshal.c: fixed a few type correctness issues.
7077
7078 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7079
7080         * loader.c: the Set/Get/Addrtess array methods should be public.
7081
7082 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
7083
7084         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
7085         
7086         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
7087         info->wrapper.
7088
7089 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
7090
7091         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
7092
7093         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
7094
7095         * mempool.c (mono_mempool_alloc): Speed this up a bit.
7096         (mono_mempool_alloc0): Ditto.
7097
7098 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7099
7100         * socket-io.c:
7101         (create_object_from_sockaddr): it was allocating 4 extra bytes
7102         for the AF_UNIX data. Fixes bug #77747.
7103
7104 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
7105
7106         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
7107
7108 2006-03-09  Dick Porter  <dick@ximian.com>
7109
7110         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
7111         Fixes bug 76966 again.
7112
7113 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
7114
7115         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
7116         names from r57532
7117         * appdomain.c: Bumped corlib version to 48 (due to r57532)
7118
7119 2006-03-07  Martin Baulig  <martin@ximian.com>
7120
7121         * object.c
7122         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
7123
7124 2006-03-07  Martin Baulig  <martin@ximian.com>
7125
7126         * class.c
7127         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
7128         regression introduced in r56970; see gtest-252.cs.
7129
7130         * loader.c (mono_get_method_constrained): Correctly handle generic
7131         methods; see gtest-253.cs.
7132
7133 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
7134
7135         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
7136
7137 2006-03-04  Martin Baulig  <martin@ximian.com>
7138
7139         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
7140         compute the parent type at runtime, just like we're already doing
7141         it for interfaces.
7142
7143         * reflection.c
7144         (mono_reflection_bind_generic_parameters): Don't compute the
7145         parent type anymore.
7146
7147         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
7148
7149 2006-03-04  Martin Baulig  <martin@ximian.com>
7150
7151         * mono-debug-debugger.h
7152         (mono_debugger_create_notification_function): Allocate memory at
7153         runtime and return a pointer to it.
7154
7155 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
7156
7157         * assembly.c: Fix windows build.
7158         
7159         * assembly.c: Fix build.
7160
7161         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
7162
7163         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
7164         
7165 2006-03-03  Dick Porter  <dick@ximian.com>
7166
7167         * process.c
7168         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
7169         Check parameters before dereferencing them.  Fixes Aaron's part of
7170         bug 77393.
7171
7172 2006-03-03  Raja R Harinath  <rharinath@novell.com>
7173
7174         Fix performance regression.
7175         * loader.c (find_method_in_class): Add 'from_class' argument.
7176         Rename 'klass' argument to 'in_class'.  The signature is compared
7177         against the method in 'in_class', and the corresponding method is
7178         returned from 'from_class'.
7179         (find_method): Walk both 'in_class' and 'from_class' in parallel.
7180         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
7181         type definition and generic instantiation in parallel.
7182         (mono_get_method_constrained): Update to changes.
7183
7184 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
7185
7186         * threads.c: make sure the domain is correct, too when doing
7187         mono_thread_attach ().
7188
7189 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
7190
7191         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
7192         windows. Fixes #77683.
7193
7194 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
7195
7196         * object.h, *: introduced specific way to set elements of an array
7197         of references to be used as write barrier. Still need to audit the
7198         uses of mono_array_addr.
7199
7200 2006-03-01  Miguel de Icaza  <miguel@novell.com>
7201
7202         * object-internals.h: New field to cache the assmebly name, patch
7203         from Tambet Ingo (tambet@ximian.com)
7204
7205 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7206
7207         * decimal.h, class-internals.h, metadata-internals.h,
7208         file-io.h: mark a few function declarations as internal, to
7209         reduce the number of PLT entries.
7210
7211 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7212
7213         * file-io.c: fix typo in warning message.
7214
7215 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
7216
7217         * loader.c: on unix, lookup the "*A" version of a function
7218         if charset is auto as a second option before failing.
7219
7220 2006-02-28  Raja R Harinath  <rharinath@novell.com>
7221
7222         * class.h (mono_class_inflate_generic_method): Revert to two
7223         argument version.
7224         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
7225         (mono_class_inflate_generic_method_full): Add.
7226         * class.c (mono_class_inflate_generic_method_full): Rename from
7227         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
7228         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
7229         * loader.c, reflection.c: Update to changes.
7230
7231 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
7232
7233         * icall.c: const fixes and small improvements.
7234
7235 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7236
7237         * threadpool.c: for asynchronous connect(), enable the same workaround
7238         for BSD 6 as for the Mac. Fixes bug #77637.
7239
7240 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
7241
7242         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
7243         formatted classes. Fixes #77524.
7244
7245 2006-02-24  Raja R Harinath  <rharinath@novell.com>
7246
7247         * class.c (inflate_generic_type): Add a couple more
7248         micro-optimizations.
7249         (inflate_generic_context): Don't use the 'gmethod' from
7250         'inflate_with'.
7251         (mono_class_inflate_generic_method): If the method has generic
7252         parameters, but the passed-in context doesn't have a 'gmethod',
7253         create one.  Use the possibly simplified generic instantiation
7254         from the declaring class instead of the one passed in.
7255
7256 2006-02-24  Raja R Harinath  <harinath@gmail.com>
7257
7258         Make generic method signature and method header handling lazy.
7259         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
7260         (inflate_generic_header): Likewise.
7261         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
7262         parameter to avoid inflating types.
7263         (mono_get_inflated_method): Empty out.
7264         * class.h (mono_class_inflate_generic_method): Update to changes.
7265         * loader.c (mono_get_method_from_token): Don't parse signature for
7266         generic methods, nor methods of generic classes.
7267         (mono_method_signature): Rename from 'mono_method_signature'.
7268         Inflate signature on demand.
7269         (mono_method_get_header): Inflate method header on demand.
7270         * reflection.c: Update to changes.
7271
7272 2006-02-23  Raja R Harinath  <rharinath@novell.com>
7273
7274         * metadata.c (mono_metadata_inflate_generic_inst): If the
7275         instantiation is closed, don't bother expanding it in the new
7276         context.
7277         * class.c (inflate_generic_class): If the generic instantiation
7278         doesn't change after inflation, return the argument itself.
7279         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
7280         Add bounds checks.
7281         (inflate_generic_context): If neither the generic class nor the
7282         generic method instantiations change, return the original context.
7283         * reflection.c (mono_method_get_object): Do
7284         'mono_get_inflated_method' before accessing the ->klass field.
7285         (inflate_mono_method): Don't create a MonoGenericMethod unless
7286         necessary.
7287         (inflate_method): Don't pass a constructed type as the declaring
7288         type of a methodbuilder.
7289
7290 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
7291
7292         * object.c: fix memory overwrite.
7293
7294 2006-02-22  Dick Porter  <dick@ximian.com>
7295
7296         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
7297         it doesn't work any more.
7298         (mono_threads_request_thread_dump): Fix unused variable warnings.
7299
7300 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7301
7302         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
7303         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
7304         the public header file.
7305
7306 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
7307
7308         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
7309
7310 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
7311
7312         * class-internals.h, object.c: reduce the size of MonoVTable
7313         and store the interface_offsets array at negative offsets.
7314
7315 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
7316
7317         * metadata.c: tweak table descriptors data structures to reduce
7318         size and runtime relocations.
7319
7320 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7321
7322         * marshal.c: fix some types and opcodes to be type-safe
7323         in marshaling wrappers.
7324
7325 2006-02-21  Ankit Jain  <jankit@novell.com>
7326
7327         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
7328
7329 2006-02-21  Raja R Harinath  <rharinath@novell.com>
7330
7331         * metadata.c (get_constraints): Relax debugging checks for monodis.
7332
7333 2006-02-21  Ankit Jain  <jankit@novell.com>
7334
7335         * metadata.c (mono_metadata_load_generic_params): Move the code
7336         checking for ambiguous generic params from here to mono/dis/get.c
7337         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
7338
7339 2006-02-21  Raja R Harinath  <harinath@gmail.com>
7340
7341         Fix assertion triggered when compiling nemerle.
7342         * class.c (mono_get_shared_generic_inst): Rename from
7343         get_shared_inst and make non-static.
7344         * loader.c (mono_get_shared_generic_method): New.  Used to create
7345         the MonoGenericContext-equivalent of a MonoGenericContainer.
7346         (mono_get_method_from_token): Initialize the 'context' field of
7347         the created MonoGenericContainer.
7348         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
7349         * metadata.c (get_constraints): Add sanity check.
7350         * class-internals.h: Add new internal methods.
7351
7352         * reflection.c (verify_safe_for_managed_space): New sanity check.
7353         Currently checks that owner-less generic parameters aren't allowed
7354         in managed space.
7355         (mono_type_get_object): Use it.
7356         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
7357         that are now in mono_type_get_object.
7358         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
7359
7360 2006-02-19  Raja R Harinath  <harinath@gmail.com>
7361
7362         * metadata.c (mono_type_create_from_typespec): Rename from
7363         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
7364         argument and caching of types in the generic container.
7365         (unwrap_arrays, find_generic_param): Remove.
7366         * metadata-internals.h: Update.
7367         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
7368
7369 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
7370
7371         * class.c (mono_class_get_exception_for_failure): Fix a warning.
7372
7373         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
7374         return values. Fixes #77581.
7375
7376         * class.c (mono_fnptr_class_get): Switch name and name_space.
7377
7378         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
7379         classes and add support for [In, Out] attributes.
7380         (mono_marshal_free_asany): Ditto. Fixes #77524.
7381
7382 2006-02-18  Raja R Harinath  <harinath@gmail.com>
7383
7384         * class.c (mono_class_from_generic_parameter): Make more robust to
7385         incomplete MonoGenericContainers from monodis.
7386
7387 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7388
7389         * class-internals.h: added some more exception types.
7390         * class.c, metadata.c: added a few checks to handle missing
7391         types.
7392
7393 2006-02-17  Raja R Harinath  <rharinath@novell.com>
7394
7395         Use owner-less generic-params some more.
7396         * class.c (my_mono_class_from_generic_parameter): Remove.
7397         (mono_class_from_generic_parameter): Handle null image,
7398         param->name and param->owner.
7399         (mono_class_from_mono_type): Update.
7400         (mono_class_create_from_typespec): Remove 'container' parameter.
7401         If that parameter is non-null, the result is always inflated by
7402         'mono_class_get_full' anyway.
7403         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
7404         parameter.
7405         (mono_class_get_full): Update.
7406
7407         * class.c (inflate_generic_type) [GENERICINST]: If the generic
7408         instance is not open, don't bother inflating.
7409         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
7410         parse metadata for inflated classes.
7411         (_mono_class_get): Change GenericContext* parameter to
7412         GenericContainer*.
7413         (mono_class_create_from_typespec): Likewise.  Simplify, and
7414         implement trivially.  All the cases are handled in
7415         mono_class_from_mono_type.  Don't inflate returned class.
7416         (mono_class_get_full): Delegate GENERICINST optimization to
7417         inflate_generic_type.
7418         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
7419
7420 2006-02-16  Dick Porter  <dick@ximian.com>
7421
7422         * socket-io.c (create_object_from_sockaddr): Fix typo.
7423         (create_sockaddr_from_object): Check array lengths before
7424         potentially accessing items off the end.
7425         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
7426         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
7427         (ves_icall_System_Net_Sockets_Socket_Send_internal)
7428         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
7429         length checks to avoid wraparound overflows.
7430         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
7431         contents of the array of sockets
7432         (hostent_to_IPHostEntry2)
7433         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
7434         Check return value of inet_ntop ().
7435         (addrinfo_to_IPHostEntry): Fix typo
7436
7437 2006-02-16  Raja R Harinath  <rharinath@novell.com>
7438
7439         Type metadata parsing doesn't use generic-instantiation information.
7440         * metadata.c (mono_metadata_parse_array_full): Change
7441         MonoGenericContext* parameter to MonoGenericContainer*.
7442         (mono_metadata_parse_type_full): Likewise.
7443         (mono_type_create_from_typespec_full): Likewise.
7444         (mono_metadata_parse_mh_full): Likewise.
7445         (mono_metadata_parse_generic_inst): Likewise.
7446         (do_mono_metadata_parse_generic_class): Likewise.
7447         (do_mono_metadata_parse_type): Likewise.
7448         * metadata-internals.h: Update to changes.
7449         * class.c (mono_class_find_enum_basetype): Likewise.
7450         (mono_class_setup_fields): Likewise.
7451         (mono_class_create_from_typespec): Likewise.
7452         * loader.c (method_from_methodspec): Likewise.
7453         (mono_get_method_from_token): Likewise.
7454         (mono_method_get_header): Likewise.
7455
7456 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7457
7458         * marshal.c: handle additional GENERICINST case (patch from
7459         Thong Nguyen <tum@veridicus.com>).
7460         Fix a few cases where LDIND_I/STIND_I was used for references.
7461
7462 2006-02-16  Raja R Harinath  <rharinath@novell.com>
7463
7464         * reflection.c (mono_reflection_get_token): Remove unused variable.
7465
7466 2006-02-16  Martin Baulig  <martin@ximian.com>
7467
7468         * reflection.c (mono_reflection_get_token): Add support for fields
7469         in instantiated generic types.
7470
7471         * icall.c
7472         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
7473
7474 2006-02-15  Martin Baulig  <martin@ximian.com>
7475
7476         * icall.c
7477         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
7478         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
7479         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
7480         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
7481
7482 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
7483
7484         * class.c, metadata.c, metadata.h, object.c, icall.c,
7485         marshal.c: changed mono_type_get_underlying_type () to do
7486         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
7487         Fixed handling of instantiated generic valuetypes (bug #75479).
7488
7489 2006-02-15  Raja R Harinath  <rharinath@novell.com>
7490
7491         * metadata.c (mono_metadata_decode_signed_value): Simplify.
7492         Delegate to mono_metadata_decode_value, and work on the returned value.
7493
7494         * icall.c (ves_icall_MonoType_GetGenericArguments):
7495         Add consistency check here too.
7496         
7497 2006-02-15  Ankit Jain  <jankit@novell.com>
7498
7499         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
7500         char/short etc.
7501
7502 2006-02-15  Ankit Jain  <jankit@novell.com>
7503
7504         * metadata.c (mono_metadata_decode_signed_value): New function to decode
7505         signed values, used only for representing lower bounds of arrays.
7506         (mono_metadata_parse_array_full): Use new
7507         mono_metadata_decode_signed_value to decode lower bounds.
7508
7509 2006-02-14  Martin Baulig  <martin@ximian.com>
7510
7511         * reflection.c
7512         (mono_reflection_get_token): Support "MonoGenericMethod" and
7513         "MonoGenericCMethod" and allow generic instances / methods.
7514
7515 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
7516
7517         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
7518         to obtain the terminal size using an ioctl.
7519
7520         * object.c (mono_nullable_init): Revert this as nullable reference
7521         types are not valid.
7522         (mono_nullable_box): Ditto.
7523
7524 2006-02-09  Dick Porter  <dick@ximian.com>
7525
7526         * threads.c (mono_thread_detach): Drop a reference to the thread
7527         we're detaching.
7528
7529 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
7530
7531         * object.c (mono_nullable_init): Handle nullable reference types.
7532         (mono_nullable_box): Ditto. Fixes #77446.
7533
7534 2006-02-07  Martin Baulig  <martin@ximian.com>
7535
7536         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
7537
7538 2006-02-07  Ankit Jain  <jankit@novell.com>
7539
7540         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
7541         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
7542         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
7543         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
7544         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
7545         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
7546
7547 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
7548
7549         * class.c (mono_class_create_generic): Set type_token as well.
7550
7551         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
7552         compatible with MS.
7553
7554 2006-02-02  Martin Baulig  <martin@ximian.com>
7555
7556         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
7557         has never been used so far.
7558
7559 2006-02-02  Martin Baulig  <martin@ximian.com>
7560
7561         * mono-debug-debugger.h: Changed comment at the top of this file;
7562         the header is not installed, but it's safe to #include it from
7563         within the JIT.
7564
7565         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
7566         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
7567
7568 2006-02-02  Martin Baulig  <martin@ximian.com>
7569
7570         * mono-debug.h
7571         (MonoSymbolTable): Removed the `metadata_info' field.
7572
7573         * mono-debug.c
7574         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
7575
7576         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7577         (mono_debugger_add_builtin_types): Removed.
7578         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
7579         (mono_debugger_create_notification_function): We now operate on a
7580         pre-allocated area; take a `gpointer' and return `void'.
7581
7582         * mono-debug-debugger.c
7583         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
7584         (mono_debugger_add_builtin_types): Removed.
7585
7586 2006-02-02  Martin Baulig  <martin@ximian.com>
7587
7588         * threads.c (mono_debugger_create_all_threads): New public method.
7589
7590 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7591
7592         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
7593         breaks on several platforms.
7594
7595 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
7596
7597         * assembly.c: the VS.NET build doesn't supply default values for
7598         MONO_ASSEMBLIES and MONO_CFG_DIR.
7599
7600 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
7601
7602         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
7603         helper function.
7604
7605         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
7606
7607         * loader.c (method_from_memberref): Fix a warning.
7608
7609         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
7610
7611         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
7612         with explicit layout. Fixes #77433.
7613
7614 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
7615
7616         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
7617         max_interface_id is initialized before using it. Fixes #77398.
7618         (ves_icall_Type_GetInterfaces): Ditto.
7619
7620 2006-01-30  Raja R Harinath  <rharinath@novell.com>
7621
7622         * metadata.c (mono_metadata_parse_method_signature_full): Don't
7623         allocate memory for parameter attributes when parsing memberref
7624         signatures.
7625         * loader.c (mono_loader_set_error_method_load): Don't warn.
7626         (method_from_memberref): Ensure MissingMethodException gets thrown
7627         if method is not found.  Make warning more informative.
7628
7629 2006-01-29  Raja R Harinath  <harinath@gmail.com>
7630
7631         Fix #77397
7632         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
7633         return true if is byref.
7634         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
7635         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
7636         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
7637
7638 2006-01-27  Raja R Harinath  <rharinath@novell.com>
7639
7640         Fix tests/find-method.2.il
7641         * loader.c (find_method, find_method_in_class): Remove is_inflated
7642         argument.  Revert 2006-01-18 change.
7643         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
7644         is generic, search for method in its generic definition.
7645         * class.c (mono_class_setup_vtable_general): Print generic
7646         arguments of generic types in debugging printf.
7647
7648 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
7649
7650         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
7651
7652         * threads.c (mono_threads_request_thread_dump): New helper function.
7653
7654 2006-01-25  Raja R Harinath  <rharinath@novell.com>
7655
7656         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
7657
7658 2006-01-25  Ankit Jain  <jankit@novell.com>
7659
7660         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
7661         move definition to ..
7662         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
7663         
7664 2006-01-25  Ankit Jain  <jankit@novell.com>
7665             Raja R Harinath  <rharinath@novell.com>
7666
7667         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
7668         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
7669         as necessary.
7670
7671 2006-01-25  Martin Baulig  <martin@ximian.com>
7672
7673         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
7674         `MonoDebuggerThread' into debug-debugger.c.
7675
7676 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
7677
7678         * profiler.c: fix printing of data.
7679
7680 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
7681
7682         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
7683           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
7684
7685 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
7686
7687         * object.c: fix deadlock related to string interning.
7688
7689 2006-01-23  Martin Baulig  <martin@ximian.com>
7690
7691         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7692
7693         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
7694
7695 2006-01-23  Martin Baulig  <martin@ximian.com>
7696
7697         * mono-debug.h: Moved the prototypes of some functions which are
7698         used by the JIT here from mono-debug-debugger.h.
7699
7700 2006-01-21  Martin Baulig  <martin@ximian.com>
7701
7702         * Makefile.am: Don't install mono-debug-debugger.h.
7703
7704 2006-01-21  Martin Baulig  <martin@ximian.com>
7705
7706         * mono-debug-debugger.h: Enforce the private status of this header
7707         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
7708         Moved some stuff from mono-debugger-jit-wrapper.h here.
7709
7710 2006-01-20  Raja R Harinath  <rharinath@novell.com>
7711
7712         * class.c (mono_class_from_typeref): Add a sanity test to help
7713         catch lack of assembly load/search hooks.
7714
7715 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
7716
7717         * marshal.c (emit_struct_conv): Relax the fields with same offset
7718         check even more. Fixes #77230.
7719
7720 2006-01-18  Martin Baulig  <martin@ximian.com>
7721
7722         * loader.c (find_method_in_class): Added `gboolean is_inflated'
7723         argument; if false, we compare the uninstantiated signatures.
7724         (method_from_memberref): Compare the uninstantiated signatures;
7725         fixes #76417.
7726
7727 2006-01-18  Robert Jordan  <robertj@gmx.net>
7728
7729         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
7730         Clear the weak link. Fixes bug #77170.
7731
7732         * gc.c (mono_gchandle_free):
7733         Reflect *-gc.c changes (tiny optimization).
7734
7735 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
7736
7737         * metadata.c (mono_metadata_signature_dup): Applied patch from
7738         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
7739         Fixes #77288.
7740
7741 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
7742
7743         * marshal.c (emit_struct_conv): Allow fields with the same offset when
7744         marshalling from native to managed code. Fixes #77230.
7745
7746 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7747
7748         * threadpool.c: fix problem (Mac only) when more than one asynchronous
7749         connect. Fixes bug #77020.
7750
7751 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
7752
7753         * class.c: fixed id assignement for nested interfaces (bug #77275).
7754         Added also better info for --print-vtable debugging.
7755
7756 2006-01-12  Martin Baulig  <martin@ximian.com>
7757
7758         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
7759         interfaces on-the-fly; fixes #76625.
7760
7761         * class-internals.h
7762         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
7763         don't need that anymore.
7764
7765 2006-01-12  Miguel de Icaza  <miguel@novell.com>
7766
7767         * socket-io.c
7768         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
7769         To avoid initing the nested_classes when not needed I turned the
7770         PeerCredData as a toplevel internal class, as it has to be shared
7771         anyways. 
7772
7773         Fixes the CASA issue.
7774
7775 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
7776
7777         * domain.c: Accessors for MonoJitInfo
7778
7779         * profiler-private.h: Add jitinfo to the end jit hook
7780
7781         * profiler.[ch]: Define new hooks, called after jitting which give
7782         the MonoJitInfo that was compiled
7783
7784 2006-01-10  Martin Baulig  <martin@ximian.com>
7785
7786         * class.c (mono_class_setup_events): Add support for generic
7787         classes; fixes #76440.
7788
7789 2006-01-06  Raja R Harinath  <rharinath@novell.com>
7790
7791         Fix #77160.
7792         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
7793         on passed-in method.
7794
7795 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
7796
7797         * object.c (mono_runtime_invoke_array): Add Nullable support.
7798
7799         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
7800
7801 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
7802
7803         * file-io.c: Don't consider sockets as directory and avoid an endless
7804         loop. Fix bug #76966.
7805
7806 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
7807
7808         * object.c (mono_nullable_init): New helper function.
7809         (mono_nullable_box): Ditto.
7810
7811         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
7812
7813         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
7814
7815         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
7816         
7817 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
7818
7819         * class.c (mono_class_is_assignable_from): Make T assignable to 
7820         Nullable<T>.
7821
7822 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
7823
7824         * appdomain.c: Bump corlib version to 46.
7825         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
7826         serialization purpose) and changed ves_icall_System_Reflection_
7827         Assembly_get_code_base signature to accept a boolean (to escape, or 
7828         not, the assembly code base).
7829
7830 2005-12-23  Dick Porter  <dick@ximian.com>
7831
7832         * icall.c: 
7833         * threads-types.h: 
7834         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
7835         CreateEvent icall now returns "created" boolean parameter.
7836
7837 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
7838
7839         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
7840         #76967.
7841
7842         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
7843         when attr_klass is an interface. Fixes #77045.
7844
7845 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
7846
7847         * marshal.c (emit_struct_conv): Fix previous patch.
7848         
7849         * marshal.c (emit_struct_conv): Add a check for fields with the same
7850         offset.
7851
7852 2005-12-20  Raja R Harinath  <rharinath@novell.com>
7853
7854         Fix regression in Mono.C5.
7855         * class.c (mono_class_create_generic): If 'klass' is an interface
7856         set up the interface offsets.
7857         (mono_class_is_assignable_from): Don't throw away generic arguments.
7858
7859 2005-12-19  Raja R Harinath  <rharinath@novell.com>
7860
7861         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
7862         type parameters.
7863
7864 2005-12-15  Raja R Harinath  <rharinath@novell.com>
7865
7866         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
7867         dead store.
7868         (do_mono_metadata_parse_generic_class): Don't pass the current
7869         generic context when parsing the type being instantiated: it
7870         cannot use it, anyway.
7871
7872         * loader.c (method_from_memberref): Don't inflate a signature if
7873         it doesn't contain any type parameters.
7874
7875 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
7876
7877         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
7878
7879 2005-12-14  Martin Baulig  <martin@ximian.com>
7880
7881         * class.c
7882         (mono_type_get_name_recurse): Don't return null for type
7883         parameters and open generic classes.
7884         (mono_class_setup_methods): Don't exclude generic instances.
7885         (mono_get_unique_iid): Use different IDs for different
7886         instantiations of the same generic type.
7887         (mono_class_setup_vtable): Only use setup_generic_vtable() for
7888         open generic instances; create a normal vtable for closed generic
7889         instances.
7890         (mono_class_setup_vtable_general): We're now also called for
7891         closed generic instances.
7892
7893         * reflection.c
7894         (mono_reflection_bind_generic_parameters): Correctly use
7895         mono_metadata_lookup_generic_inst() everywhere.
7896
7897 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
7898
7899         * object.c (mono_class_create_runtime_vtable): Call 
7900         mono_class_setup_vtable ().
7901
7902         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
7903         function.
7904         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
7905         #76959.
7906
7907         * loader.c (mono_loader_set_error_type_load): Print the type load
7908         warnings to the console so they are more visible to the user.
7909         (mono_loader_set_error_method_load): Ditto.
7910
7911         * reflection.c (ensure_runtime_vtable): Revert the last change as it
7912         is still broken.
7913         
7914         * reflection.c (ensure_runtime_vtable): Fix build.
7915
7916         * reflection.c (ensure_runtime_vtable): Disable an optimization which
7917         doesn't work in all cases.
7918
7919 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
7920
7921         * object.c (mono_array_new_full): Treat a single dimensional array
7922         with 0 lower bounds as an szarray. Fixes #76973.
7923
7924         * reflection.c (custom_attr_visible): Really fix this.
7925
7926 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
7927
7928         * reflection.c (custom_attr_visible): Allow nested public attributes
7929         as well.
7930
7931         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
7932         interface check.
7933
7934 2005-12-12  Raja R Harinath  <harinath@gmail.com>
7935
7936         * class.c (set_generic_param_owner): Delete.
7937         (mono_class_create_from_typedef): Don't set ->owner field of
7938         generic parameters to "param containers" of enclosing classes.
7939         * reflection.c (mono_reflection_initialize_generic_parameter):
7940         Likewise.
7941
7942 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
7943
7944         * reflection.c (custom_attr_visible): Fix build.
7945
7946 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
7947
7948         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
7949         private attributes.
7950         
7951         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
7952         handling of null parameter defaults.
7953
7954 2005-12-09  Raja R Harinath  <rharinath@novell.com>
7955
7956         * class.c (mono_class_from_generic_parameter): Don't set
7957         klass->generic_container.
7958         (my_mono_class_from_generic_parameter): Likewise.
7959
7960 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
7961
7962         * reflection.c (load_public_key): Fix a warning.
7963         (method_encode_code): Fix unaligned accesses.
7964
7965 2005-12-07  Martin Baulig  <martin@ximian.com>
7966
7967         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
7968
7969         * reflection.c
7970         (write_generic_param_entry): Encode our custom attrs.
7971
7972         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
7973
7974 2005-12-07  Martin Baulig  <martin@ximian.com>
7975
7976         * reflection.c (encode_new_constraint): Removed; we don't use the
7977         `NewConstraintAttribute' anymore.
7978
7979 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
7980
7981         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
7982         not fire a TypeResolve event when Assembly.GetType () is called.
7983
7984 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
7985
7986         Beginning of support for nullable types in the runtime. Parts of
7987         this patch are from Martin.
7988
7989         * appdomain.c (MONO_CORLIB_VERSION): Bump
7990
7991         * domain.c (mono_init_internal): get the nullable type
7992
7993         * class.c (mono_class_is_nullable): New method
7994         (mono_class_get_nullable_param): New mehod
7995         (mono_class_create_generic): In types T? set cast_class to T
7996
7997         * class-internals.h (MonoDefaults): new nullable default class
7998         (mono_class_get_nullable_param, mono_class_get_nullable_param):
7999         new methods.
8000
8001 2005-12-05  Raja R Harinath  <rharinath@novell.com>
8002
8003         * metadata.c (select_container): New.  Refactor code to select the
8004         appropriate GenericContainer given the type of generic parameter
8005         we are looking for.
8006         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
8007         not a MonoGenericContext.  Use select_container.  Update parameters.
8008         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
8009         and MONO_TYPE_MVAR.
8010         (unwrap_arrays): Remove duplicate tests.
8011         (find_generic_param): Rename from 'has_same_context'.  Now walks a
8012         generic instantiated class to find any arguments that are generic
8013         parameters.
8014         (mono_type_create_from_typespec_full): Use find_generic_param to
8015         avoid evicting some generic instantiations from the typespec
8016         cache.
8017
8018 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
8019
8020         * reflection.c: fixed writing of doubles on ARM FPA.
8021
8022 2005-12-02  Robert Jordan  <robertj@gmx.net>
8023
8024         * icall.c: Fixed EventInfo.ReflectedType (#76829).
8025
8026 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8027
8028         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
8029         least on SUSE 10 they are not the same (on debian, they are just the
8030         same thing).
8031
8032 2005-12-01  Raja R Harinath  <rharinath@novell.com>
8033
8034         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
8035         DeclaringType for VARs and MVARs.
8036         * class.c (set_generic_param_owner): Fix initialization of owner
8037         fields.
8038
8039 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8040
8041         * icall.c: fixed Enum.ToObject() to correctly convert the values.
8042
8043 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8044
8045         * threadpool.c: workaround for a bug that shows up on the Mac:
8046         select()+connect() on a blocking socket is not like it should
8047         be, so we proceed to connect() in that case, wasting the I/O
8048         threadpool thread until connect succeedes. Fixes bug #75436.
8049
8050 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8051
8052         * threadpool.c: fix typo when setting file descriptor states.
8053
8054 2005-11-28  Raja R Harinath  <rharinath@novell.com>
8055
8056         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
8057         * metadata.c (mono_metadata_parse_method_signature_full): Don't
8058         create a temporary signature container.
8059         (mono_metadata_parse_generic_param): Update to changes.
8060         (mono_type_create_from_typespec_full): Update to changes.
8061         * loader.c (method_from_memberref): Don't use a
8062         MonoGenericContainer while parsing a memberref signature.
8063         (method_from_methodspec): Remove dead-store of the 'container'
8064         variable.  It's overwritten before use.
8065
8066         * metadata.c (mono_type_create_from_typespec_full): Make debugging
8067         checks tighter.
8068         (mono_metadata_parse_generic_param): Likewise.
8069         * loader.c (find_method_in_class): Does not need a
8070         MonoGenericContainer.  Use 'mono_method_signature' rather than
8071         'mono_method_signature_full'.
8072         (find_method, mono_get_method_constrained, method_from_memberref):
8073         Update to changes.
8074
8075         * metadata.c (mono_type_create_from_typespec_full): Ensure that
8076         owner-less generic-parameters are never evicted from the typespec
8077         cache.
8078
8079         * loader.c (method_from_memberref): Don't use the current context
8080         when parsing signatures.
8081         (method_from_methodspec, mono_get_method_from_token): Update to changes.
8082
8083         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
8084         side-effects in g_assert.
8085         * loader.c (mono_get_method_from_token): Resolve klass earlier so
8086         that we don't potentially lose information.
8087
8088 2005-11-26  Dick Porter  <dick@ximian.com>
8089
8090         * icall.c:
8091         * threads.c: icalls to implement basic (ie, not named)
8092         System.Threading.Semaphore.
8093
8094 2005-11-24  Dick Porter  <dick@ximian.com>
8095
8096         * process.c
8097         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
8098         Use GetProcessId() if it's available.
8099
8100 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
8101
8102         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
8103
8104 2005-11-23  Raja R Harinath  <rharinath@novell.com>
8105             Ankit Jain  <jankit@novell.com>
8106
8107         * loader.c (mono_get_method_from_token): Initialize 'method' field
8108         of all generic parameters before parsing the signature.  Remove
8109         code that "fixed"-up MVAR references.
8110
8111 2005-11-23  Ankit Jain  <jankit@novell.com>
8112
8113         * metadata.c (mono_metadata_has_generic_params):
8114         (mono_metadata_load_generic_param_constraints):
8115         (mono_metadata_load_generic_params): Move duplicate code ...
8116         (mono_metadata_get_generic_param_row): ... here. Returns the
8117         first row-id in GenericParam table for a given owner (token).
8118         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
8119         prototype.
8120
8121 2005-11-23  Raja R Harinath  <rharinath@novell.com>
8122             Ankit Jain  <jankit@novell.com>
8123
8124         * metadata.c (mono_metadata_class_equal): Pass signature_only when
8125         comparing VARs too.
8126         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
8127         type->data.generic_param only if the type is an MVAR.
8128         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
8129         leak owner-less VARs and MVARs into managed space.
8130
8131 2005-11-21  Martin Baulig  <martin@ximian.com>
8132
8133         * class-internals.h
8134         (MonoMethod): Moved the `generic_container' here from
8135         `MonoMethodNormal' since we now also need it for
8136         `MonoMethodPInvoke';
8137         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
8138         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
8139         an union containing both `MonoMethodNormal' and
8140         `MonoMethodPInvoke'.
8141
8142         * loader.c
8143         (mono_get_method_from_token): Allow implementing generic methods
8144         as interncalls.
8145
8146         * threads.c
8147         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
8148         icall.
8149
8150 2005-11-17  Dick Porter  <dick@ximian.com>
8151
8152         * icall.c: 
8153         * process.h: 
8154         * process.c: Split the Process Start_internal icall into
8155         ShellExecuteEx_internal and CreateProcess_internal, which are
8156         called depending on whether UseShellExecute is true.  Fixes bug
8157         76670.
8158
8159         * appdomain.c (MONO_CORLIB_VERSION): Incremented
8160
8161 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
8162
8163         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
8164         'msize' parameters, use the information in 'mspec' instead.
8165         (emit_object_to_ptr_conv): Ditto.
8166
8167         * marshal.c (emit_struct_conv): Handle explicit layout structs with
8168         fields out of order. Fixes #76733.
8169
8170 2005-11-17  Ankit Jain  <jankit@novell.com>
8171
8172         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
8173
8174 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
8175
8176         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
8177           bug #76575.
8178
8179 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
8180
8181         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
8182         for types with non-auto layout. Fixes #76717.
8183
8184 2005-11-16  Ankit Jain  <jankit@novell.com>
8185
8186         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
8187         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
8188         if generic_context is null.
8189           (mono_metadata_generic_param_equal): param->owner can be null.
8190           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
8191         null.
8192
8193 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
8194
8195         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
8196         the correct value.
8197
8198 2005-11-15  Martin Baulig  <martin@ximian.com>
8199
8200         * object.c (set_value): Use mono_class_from_mono_type() instead of
8201         the hack for generic instances; fixes #76136.
8202
8203 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
8204
8205         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
8206         fields.
8207
8208         * image.c (load_metadata_ptrs): Initialize the new fields.
8209
8210         * reflection.c (create_dynamic_mono_image): Ditto.
8211
8212         * reflection.c (build_compressed_metadata): Use the new fields.
8213
8214         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
8215         icall.
8216
8217         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
8218         icall.
8219         
8220 2005-11-15  Ankit Jain  <jankit@novell.com>
8221             Raja R Harinath  <harinath@gmail.com>
8222
8223         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
8224         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
8225         new per-generic_container cache if the cached MonoType's context matches
8226         the current context.
8227           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
8228         to the expected context.
8229           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
8230
8231 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8232
8233         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
8234         we changed the signature of an icall.
8235         * icall.c: Modify to mono_double_ParseImpl return true/false 
8236         depending on the success, instead of throwing the exception. This will
8237         help us in Double.TryParse methods.
8238         
8239 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
8240
8241         * marshal.c (emit_marshal_object): Throw an exception when
8242         marshalling 'object' instead of crashing. Fixes #76696.
8243
8244 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
8245
8246         * class-internals.h: Add prototype for mono_type_get_full_name ().
8247
8248 2005-11-11  Dick Porter  <dick@ximian.com>
8249
8250         * threads.c (mono_thread_manage): Make sure the main thread has
8251         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
8252
8253 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
8254
8255         * loader.c (mono_loader_set_error_type_load): Log a warning to the
8256         console about the missing type.
8257         (mono_loader_set_error_method_load): Ditto.
8258
8259 2005-11-09  Miguel de Icaza  <miguel@novell.com>
8260
8261         * mono-config.c (mono_get_config_dir): Set the system defaults if
8262         none is specified.
8263
8264         * assembly.c (mono_set_dirs): New API entry point to set the
8265         assembly and the config directory in one call
8266
8267 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
8268
8269         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
8270         the ftnptr was created from a delegate in a domain other than the
8271         current domain. Fixes #75377.
8272
8273         * exception.h exception.c: Add mono_get_exception_not_supported ().
8274
8275 2005-11-08  Martin Baulig  <martin@ximian.com>
8276
8277         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
8278
8279 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
8280
8281         * security-manager.h: Added definitions to deal with strongname key 
8282         pairs bigger (and smaller) than 1024 bits.
8283         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
8284         adjust wrt the public key length being used.
8285
8286 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
8287
8288         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
8289           Windows build (r51396-51397).
8290
8291 2005-11-03  Martin Baulig  <martin@ximian.com>
8292
8293         * class.c (mono_class_setup_vtable_general): Also add generic
8294         methods to the vtable; fixes #76581.
8295
8296 2005-11-01  Miguel de Icaza  <miguel@novell.com>
8297
8298         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
8299         sure that we lookup GetString method from the System.Text.Encoding
8300         class, not the derived class or we get an empty method.
8301
8302         Fixed class #76612.
8303
8304 2005-10-25  Miguel de Icaza  <miguel@novell.com>
8305
8306         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
8307         if it has been previously set (embedders). 
8308
8309         Make mono_set_rootdir available also on Unix.
8310
8311 005-10-24  Robert Jordan  <robertj@gmx.net>
8312
8313         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
8314
8315 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
8316
8317         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
8318         only calls which are made to native code use this flag.
8319
8320         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
8321
8322 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
8323
8324         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
8325         Add support for FieldBuilders.
8326
8327 2005-10-29  Martin Baulig  <martin@ximian.com>
8328
8329         * mono-debug.c
8330         (mono_debug_using_mono_debugger): New public method; returns
8331         whether we're running inside the debugger.
8332
8333 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
8334
8335         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
8336         for Method/Constructor/FieldBuilders.
8337
8338 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
8339
8340         * reflection.c (module_add_cattrs): Save custom attributes for global methods
8341         and fields as well.
8342
8343 2005-10-26  Martin Baulig  <martin@ximian.com>
8344
8345         * mono-debug-debugger.c
8346         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
8347
8348 2005-10-24  Raja R Harinath  <harinath@gmail.com>
8349
8350         * icall.c (base64_to_byte_array): Don't pass an out-of-range
8351         integer to isspace.
8352
8353 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
8354
8355         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
8356         when passing valuetypes byref. Fixes #76502.
8357
8358 2005-10-19  Jackson Harper  <jackson@ximian.com>
8359
8360         * profiler.c: Don't put a . in front of types that are not in a
8361         namespace.
8362
8363 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
8364
8365         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
8366
8367 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
8368
8369         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
8370         #76436.
8371         (mono_marshal_get_ldflda_wrapper): Fix a warning.
8372
8373 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8374
8375         * assembly.c metadata-internals.h icall.c: Define an additional
8376         parameter for mono_assembly_name_parse_full, so we can avoid creating
8377         S.R.AssemblyName.Version when no version info wasn't passed.
8378         
8379 2005-10-09  Miguel de Icaza  <miguel@novell.com>
8380
8381         * class.c (mono_type_get_full_name): Reimplement method that was
8382         removed. 
8383
8384         * image.c: Some docs
8385
8386 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
8387
8388         * profiler.c (output_newobj_profile): Fix printing of Total memory
8389         on x86.
8390
8391 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
8392
8393         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
8394
8395 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
8396
8397         * threads.c: remove debug output.
8398
8399 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
8400
8401         * threads.c (mono_thread_manage): Fix crashes if more than 64
8402         threads need to be aborted. Hopefully fixes #75899.
8403
8404         * assembly.c (mono_stringify_assembly_name): New helper function.
8405
8406         * class.c: Use mono_stringify_assembly_name instead of the similar
8407         static function.
8408
8409         * assembly.h assembly.c: Add support for calling a postload search 
8410         hook if an assembly cannot be loaded.
8411
8412         * appdomain.c: Register new search hooks which call the AssemblyResolve
8413         events in AppDomain. Fixes #75231
8414
8415 2005-10-07  Martin Baulig  <martin@ximian.com>
8416
8417         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
8418         methods without debug info.
8419
8420 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
8421
8422         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
8423         wrappers.
8424
8425 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8426
8427         * file-io.c: now that we return symlinks, use lstat and, when the file
8428         is a symbolic link, stat, to get the file attributes. Also avoid the
8429         conversion to/from utf16/external.
8430
8431 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
8432
8433         * class.c (mono_class_layout_fields): Compute klass->has_references
8434         correctly if an embedded valuetype is not yet initialized. Fixes
8435         #76331.
8436
8437 2005-10-04  Martin Baulig  <martin@ximian.com>
8438
8439         * metadata.c
8440         (mono_metadata_load_generic_param_constraints): New public
8441         function; splitted the constraints loading out from
8442         mono_metadata_load_generic_params().
8443
8444         * class.c (mono_class_create_from_typedef): Call
8445         mono_metadata_load_generic_param_constraints() after setting up
8446         the type and creating our parent; fixes #75329.
8447
8448 2005-10-04  Martin Baulig  <martin@ximian.com>
8449
8450         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
8451         non-dynamic parent classes.
8452
8453 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
8454
8455         * file-io.c : win32 build fix (ETXTBSY seems not found).
8456
8457 2005-10-04  Martin Baulig  <martin@ximian.com>
8458
8459         * reflection.c
8460         (mono_image_get_methodspec_token): Make the cache actually work;
8461         fixes #75974.
8462
8463 2005-10-04  Martin Baulig  <martin@ximian.com>
8464
8465         * class.c (mono_class_name_from_token): Removed the unneccessary
8466         `MonoGenericContext *' argument.
8467
8468 2005-10-04  Martin Baulig  <martin@ximian.com>
8469
8470         * loader.c
8471         (method_from_methodspec): Make the caching work again; fixes the
8472         performance regression from #76262.
8473
8474 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8475
8476         * file-io.c:
8477         * file-io.h:
8478         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
8479         GetFileSystemEntries that performs the same work but without going
8480         into io-layer, locking, etc.
8481
8482 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
8483
8484         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
8485         ThreadState_Stopped as well. Fixes #76047.
8486
8487 2005-09-29  Martin Baulig  <martin@ximian.com>
8488
8489         * class.c
8490         (inflate_generic_context): If the new context has a `gmethod', set
8491         its `container' that that gmethod's `container'.
8492
8493         * metadata.c
8494         (mono_metadata_parse_generic_param): Simplify things;
8495         `generic_container = generic_context->container;' is just fine.
8496
8497         * loader.c (method_from_methodspec): Code cleanups.
8498
8499 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
8500
8501         * decimal.c: fix warning (and let gcc generate correct
8502         code on ARM with optimizations).
8503
8504 2005-09-28  Martin Baulig  <martin@ximian.com>
8505
8506         * loader.c
8507         (method_from_memberref): Added `MonoGenericContext *class_context'
8508         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
8509         (method_from_methodspec): If we're a memberref, use the enclosing
8510         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
8511
8512 2005-09-28  Martin Baulig  <martin@ximian.com>
8513
8514         * object.c (mono_runtime_invoke_array): Added support for
8515         MONO_TYPE_GENERICINST; fixes #75917.
8516
8517 2005-09-27  Martin Baulig  <martin@ximian.com>
8518
8519         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
8520         `k->byval_arg.type' to determine the actual type.
8521
8522         * loader.c (method_from_methodspec): Removed some hacks.
8523
8524 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
8525
8526         * class-internals.h (mono_field_is_deleted): Do the test for
8527         rtspecialname before we check the actual name of the field. This
8528         prevents us from dereferencing a pointer into the string table,
8529         saving us from accessing a few pages
8530
8531         * *.c: Replace the use of {Enter,Leave}CriticalSection with
8532         macros. This will allow a deadlock debugger to easily be plugged
8533         in.
8534
8535 2005-09-27  Martin Baulig  <martin@ximian.com>
8536
8537         * loader.c (method_from_methodspec): Create a "signature"
8538         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
8539
8540 2005-09-27  Martin Baulig  <martin@ximian.com>
8541
8542         * class.c
8543         (inflate_generic_class): Correctly set the new context's
8544         container.
8545
8546         * loader.c
8547         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
8548         instead of a `MonoGenericContext *'.
8549         (mono_method_signature_full): Take a `MonoGenericContainer *'
8550         instead of a `MonoGenericContext *'.
8551
8552         * metadata.c
8553         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
8554         instead of a `MonoGenericContext *'.
8555         (mono_metadata_parse_method_signature_full): Likewise.
8556
8557 2005-09-26  Martin Baulig  <martin@ximian.com>
8558
8559         * class.c
8560         (mono_class_from_generic_parameter): Set `klass->generic_container'
8561         (mono_class_from_generic_parameter): Likewise.
8562         (mono_bounded_array_class_get): We inherit the generic container
8563         from the element class.
8564
8565         * loader.c
8566         (find_method, find_method_in_class): Take a `MonoGenericContext *'
8567         argument rather than computing it here.
8568         (method_from_memberref): Correctly set the generic context before
8569         parsing the signature.  Fixes #75681.
8570
8571 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
8572
8573         * object.c (mono_class_has_special_static_fields): Fix warnings.
8574
8575 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8576
8577         * assembly.c: Add parse_public_key function, to
8578         par the public keys. Also added mono_assembly_name_parse_full,
8579         to define it the parsed key should be freed or not.
8580         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
8581         to parse a long format assembly name.
8582         * metadata-internals.h: Keep mono_assembly_name_parse_full as
8583         private, since calling it to preserve the key requires
8584         freeing it manually.
8585         
8586 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
8587
8588         * locales.c : removed HAVE_ICU part.
8589
8590 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
8591
8592         * object.c (mono_class_create_runtime_vtable): Avoid calling 
8593         field_is_special_static if the klass has no special static fields.
8594
8595         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
8596         (MonoCachedClassInfo): Likewise.
8597
8598         * object.c (mono_class_has_special_static_fields): New helper function.
8599
8600 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8601
8602         * class.c (mono_class_create_from_typedef): Don't call 
8603         interfaces_from_typedef_full for enums.
8604         (mono_class_create_from_typedef): Compute the base types of enums directly
8605         without calling mono_class_setup_fields ().
8606         (mono_class_find_enum_basetype): New helper function.
8607
8608         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
8609         one place inside the string heap.
8610         
8611 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
8612
8613         * class.c: locking fixes, code cleanups, some docs added.
8614         Allocate some data structures in the image mempool.
8615
8616 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8617
8618         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8619         the example code.
8620         
8621 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
8622
8623         * class-internals.h, class.c, reflection.c: reduce memory taken by
8624         MonoClass.
8625
8626 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
8627
8628         * metadata.c, metadata.h, loader.h: documentation updates, code and
8629         API cleanups.
8630
8631 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
8632
8633         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8634         the example code.
8635
8636         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
8637         page faults caused by the runtime while reading metadata.
8638
8639 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8640
8641         * socket-io.c: the field names were changed 3 months ago and no one
8642         realized until bug #76077 got filed!
8643
8644 2005-09-20  Martin Baulig  <martin@ximian.com>
8645
8646         * icall.c (assembly_icalls): Removed some unused debugger icalls.
8647
8648 2005-09-20  Martin Baulig  <martin@ximian.com>
8649
8650         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
8651         write the rank into the class entry.
8652
8653 2005-09-20  Martin Baulig  <martin@ximian.com>
8654
8655         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
8656
8657 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
8658
8659         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8660
8661         * icall.c (custom_attrs_defined_internal): New icall.
8662
8663         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
8664         function.
8665         (mono_custom_attrs_construct_by_type): New helper function.
8666
8667 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
8668
8669         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
8670         terminate the resulting string. Fixes #76123.
8671
8672 2005-09-16  Martin Baulig  <martin@ximian.com>
8673
8674         * mono-debug.c
8675         (mono_debug_add_method): Ignore inflated methods for the moment.
8676
8677 2005-09-14  Martin Baulig  <martin@ximian.com>
8678
8679         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
8680
8681 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
8682
8683         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
8684         return a success/failure indication.
8685         (mono_metadata_interfaces_from_typedef_full): Ditto.
8686         (get_constraints): Ditto.
8687
8688 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
8689
8690         * marshal.c (emit_marshal_array): Fix handling of null arrays.
8691         
8692         * marshal.c (emit_marshal_array): Add support for returning string
8693         arrays from delegates. Fixes #76063.
8694
8695         * marshal.c: Use the emit_ldloc/stloc macros where possible.
8696
8697 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
8698
8699         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
8700         icall.
8701
8702 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
8703
8704         * reflection.c icall.c: Fix after mono_get_exception_type_load
8705         signature change.
8706
8707         * assembly.c (mono_assembly_get_assemblyref): New helper function.
8708         (mono_assembly_load_reference): Use the new helper.
8709
8710         * class-internals.h (MonoLoaderError): New structure containing 
8711         information about type loading errors.
8712
8713         * class-internals.h loader.c: Add APIs to store per-thread loader
8714         error information.
8715
8716         * loader.c class.c: Set the loader error if needed.
8717
8718         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
8719
8720 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
8721
8722         * decimal.c: fixed to handle the broken ARM fp format.
8723
8724 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
8725
8726         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
8727         broken.
8728
8729 2005-09-06  Martin Baulig  <martin@ximian.com>
8730
8731         * domain.c (supported_runtimes): Added v2.0.50727.
8732
8733 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
8734
8735         * culture-info.h: reduce the size of some structures.
8736
8737 2005-09-05  Martin Baulig  <martin@ximian.com>
8738
8739         Reflect latest API changes in the August CTP.
8740
8741         * icall.c
8742         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
8743         ("MonoType.HasGenericArguments"): Removed.
8744         ("MonoMethod.BindGenericParameters"): Renamed to
8745         "MakeGenericMethod".
8746         ("MethodBuilder.BindGenericParameters"): Renamed to
8747         "MakeGenericMethod".    
8748
8749 2005-09-05  Martin Baulig  <martin@ximian.com>
8750
8751         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
8752
8753 2005-09-05  Martin Baulig  <martin@ximian.com>
8754
8755         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8756
8757         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
8758         generic_container is non-NULL.
8759
8760 2005-09-05  Martin Baulig  <martin@ximian.com>
8761
8762         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8763
8764         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
8765
8766 2005-08-29  Michal Moskal  <malekith@nemerle.org>
8767
8768         * reflection.c (encode_locals,
8769         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
8770         for large generic types.
8771
8772 2005-09-05  Martin Baulig  <martin@ximian.com>
8773
8774         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8775
8776         * class.c (mono_dup_array_type): New public method.
8777         (mono_metadata_signature_deep_dup): New public method.
8778         (dup_type): Correctly duplicate array and function types.
8779
8780 2005-09-05  Martin Baulig  <martin@ximian.com>
8781
8782         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8783
8784         * reflection.c (get_default_param_value_blobs): Handle generic types
8785         and generic methods.
8786
8787 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
8788
8789         * class.c: Fixed error reporting (method/class were inversed) for 
8790         inheritance demands.
8791         * security-manager.c|h: Added the AppDomain when calling the managed
8792         System.Security.SecurityManager.InheritanceDemand method.
8793
8794 2005-09-01  Raja R Harinath  <rharinath@novell.com>
8795
8796         * reflection.c (encode_marshal_blob): 'marshaltype' and
8797         'marshaltyperef' are alternate sources for the custom marshaler
8798         name.
8799
8800 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
8801
8802         * class.c: fix creation of array classes with rank == 1
8803         (patch by Ankit Jain <jankit@novell.com>).
8804
8805 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
8806
8807         * object.c: fix check for creating the bound data for arrays vs
8808         szarrays.
8809
8810 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8811
8812         * object.c: configuration file name is now based on the executable name,
8813         not the image name. Fixes bug #75931.
8814
8815 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
8816
8817         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
8818         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
8819
8820 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
8821
8822         * rand.c: Use wincrypt.h instead of WinCrypt.h.
8823
8824 2005-08-24  Ankit Jain  <jankit@novell.com>
8825             Raja R Harinath  <rharinath@novell.com>
8826
8827         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
8828           called by it recursively.
8829           (mono_class_init): Remove special case in pending_init handling, since it's
8830           superseded by the fix to mono_class_from_typeref.
8831
8832 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
8833
8834         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
8835         BROKEN_THREAD_START stuff.
8836
8837 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
8838
8839         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
8840         trampoline.
8841
8842         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
8843         
8844         * object.c (mono_delegate_ctor): Replace the original function address with
8845         a delegate trampoline.
8846
8847 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
8848
8849         * icall.c: add boolean argument to base64_to_byte_array and 
8850         InternalFromBase64String to control whether a whitespace-only string
8851         is allowed (or should casue a FormatException to be thrown). We need
8852         this as the behavior has changed between MS.NET 1.x and 2.0, and we
8853         to match the MS behaviour in both profiles.
8854         * appdomain.c: Bump corlib version.
8855
8856 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8857
8858         This patch implements a big portion of publisher policy
8859         support, used to bind assembly versions and redirect
8860         one assembly from version A to version B.
8861
8862         * assembly.c:
8863         New GSList loaded_assembly_bindings, for storing the cached
8864         assembly bindings.
8865         (assembly_binding_maps_name): New static function for checking if a 
8866         assembly binding information maps an assembly name.
8867         (mono_assembly_binding_info_free): New function for freeing
8868         assembly binding information resources.
8869         (get_publisher_policy_info): New static function for retrieving 
8870         assembly binding information from a MonoImage.
8871         (compare_versions): New static function for comparing an assembly
8872         binding information data and the version of an assembly name.
8873         (check_policy_versions): New static function for checking if an
8874         assembly binding info mapping an assembly name is valid for it.
8875         (mono_assembly_load_publisher_policy): New static function for
8876         loading the 'policy.major.minor.MyAssembly' image for an assembly
8877         with an assembly name 'aname'.
8878         (mono_assembly_bind_version): New static function for updating
8879         assembly redirection.
8880         (mono_assembly_apply_binding): New static function for applying
8881         assembly binding.
8882         (search_binding_loaded): New static function for searching 
8883         loaded assembly binding infos in the cache domain.
8884         (mono_assembly_load_full): Don't apply assembly binding for
8885         reflection only assemblies.
8886
8887         * metadata-internals.h: Add MonoAssemblyBindingInfo,
8888         which contains information about assembly binding. Also
8889         declare signature for mono_config_parse_publisher_policy ()
8890         function, used to retrieve pub policy info.
8891         
8892         * mono-config.c:
8893         (publisher_policy_start): New static function used to parse publisher 
8894         policy config files.
8895         (publisher_policy_parser): New static MonoParseHandler containing 
8896         the functions used when parsing config files.
8897         (mono_config_parse_publisher_policy): New function for parsing
8898         publisher policy files.
8899         
8900 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
8901
8902         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
8903
8904         * marshal.c (mono_delegate_free_ftnptr): Ditto.
8905
8906         * object.c (mono_get_addr_from_ftnptr): New helper function.
8907
8908         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
8909
8910         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8911
8912 2005-08-19  Dick Porter  <dick@ximian.com>
8913
8914         * threads.c, threads.h, appdomain.c, appdomain.h,
8915         profiler-private.h, monitor.c, object.c, object-internals.h,
8916         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
8917         store the thread ID, so it can hold a 64 bit value if needed.
8918
8919 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
8920
8921         * reflection.c (mono_reflection_create_dynamic_method): Store the
8922         handle class into the method references as well so ldtoken works in
8923         dynamic methods.
8924
8925         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
8926         types.
8927
8928 2005-08-19  Ankit Jain <jankit@novell.com>
8929
8930         Fix #75847.
8931         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
8932           here rather than using the method signature of a arbitrary function
8933           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
8934           two arguments.
8935           Hack done with Harinath.
8936
8937 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8938
8939         * threadpool.c: disable printing stack traces when we get a exception
8940         in a threadpool thread. I need to do more testing to figure out which
8941         cases actually print this. Fixes bug #75828.
8942
8943 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8944
8945         * icall.c: there might be ignored whitespace after the last '='. This
8946         fixes length computation and bug #75840.
8947
8948 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
8949
8950         * assembly.c (mono_assembly_load_full): Consider .exe extension as
8951         well. Fixes #75809.
8952
8953         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
8954         #75784.
8955         
8956         * reflection.c (create_custom_attr_data): Ditto.
8957
8958 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
8959
8960         * locales.c, culture-info.h : removed RegionLCIDMap.
8961         * culture-info-tables.h : regenerated.
8962
8963 2005-08-16  Martin Baulig  <martin@ximian.com>
8964
8965         * class.c (mono_type_get_name_recurse): Small fix.
8966
8967 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
8968
8969         * locales.c : indentation fixie.
8970
8971 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
8972
8973         * object-internals.h,
8974           locales.h,
8975           locales.c,
8976           culture-info.h,
8977           icall.c : added RegionInfo table support.
8978         * culture-info-table.h : regenerated for region support.
8979
8980 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
8981
8982         * reflection.c (resolve_object): handle all kinds of MonoMethod
8983         including generic ones
8984
8985 2005-08-12  Ankit Jain <jankit@novell.com>
8986
8987         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
8988           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
8989
8990 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
8991
8992         * process.c: Don't close a thread handle when it's NULL. This is a
8993         workaround for bug #75733.
8994
8995 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
8996
8997         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
8998
8999 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
9000
9001         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
9002
9003 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9004
9005         * threadpool.c: if a work item in the thread pool has a callback that
9006         catches a exception, don't propagate it after invoking the callback.
9007         Fixes bug #75336.
9008
9009 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
9010
9011         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
9012
9013         * class-internals.h (MonoCachedClassInfo): Add some new fields.
9014
9015         * class.c (mono_class_init): Load field info lazily in the AOT case.    
9016
9017         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
9018
9019 2005-08-03  Ankit Jain  <jankit@novell.com>
9020
9021         Fix #75683.
9022         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
9023           PInvoke calling convention is 0.
9024
9025 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
9026
9027         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
9028         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
9029
9030 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
9031
9032         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
9033         to handle threads not started by the GC (patch by Michael Meeks
9034         <michael.meeks@novell.com>).
9035
9036 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
9037
9038         * reflection.c: Make buffer used in emitting types larger for some
9039         big generic types (patch by Michal Moskal).
9040
9041 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
9042
9043         * mono-debug.c: Fix some (not all) alignment problems.
9044
9045 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9046
9047         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
9048         Invoke mono_image_load_from_data_full passing the refonly
9049         parameter.
9050
9051         * assembly.c
9052         (mono_assembly_open_from_bundle): Add the refonly argument, 
9053         in order to pass it to other methods it calls to.
9054         (do_mono_assembly_open): Add the refonly argument, in order 
9055         to pass it to other methods it calls to.
9056         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
9057         the refonly parameter to it.
9058
9059         * image.c: Add loaded_images_refonly_hash and
9060         loaded_images_refonly_guid_hash to cache the reflection
9061         only loaded images.
9062         (mono_images_init): Initialize the hash tables used for
9063         caching the reflection only images.
9064         (load_modules): Invoke mono_image_open_full passing the refonly
9065         parameter to load the modules the correct way.
9066         (build_guid_table): Add the refonly argument, to re-build the 
9067         correct hash table.
9068         (do_mono_image_open): Added the refonly argument, in order to
9069         define it for the loaded image.
9070         (mono_image_loaded_full): New function, which receives an
9071         additional parameter to look for the image in the refonly or
9072         non-refonly section.
9073         (mono_image_loaded): Updated, using mono_image_loaded_full.
9074         (mono_image_loaded_by_guid_full): The same case that happens
9075         with mono_image_loaded_full.
9076         (mono_image_loaded_by_guid): Likewise.
9077         (register_image): Use the ref_only variable inside MonoImage
9078         to decide in which hash table store the current image.
9079         (mono_image_open_from_data_full): Rename
9080         mono_image_open_from_data to mono_image_open_from_data_full,
9081         adding the refonly argument, to define the ref_only variable 
9082         inside MonoImage.
9083         (mono_image_open_from_data): Return 
9084         mono_image_open_from_data_full.
9085         (mono_image_open_full): Rename mono_image_open to
9086         mono_image_open_full, receiving the new refonly argument,
9087         to pass it to inner methods.
9088         (mono_pe_file_open): Update this function, to open
9089         a MonoImage as a non-refonly image.
9090         (mono_image_close): Use the refonly variable inside
9091         MonoImage to remove the image from the correct caches.
9092
9093         * image.h: Add the signatures of mono_image_open_full,
9094         mono_image_open_from_data_full, mono_image_loaded_full,
9095         mono_image_loaded_by_guid_full.
9096
9097         * metadata-internals.h: Add the ref_only field to 
9098         MonoImage.
9099         
9100 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9101
9102         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
9103         Fix the last behavior, which used to load the assemblies and
9104         extract MonoReflectionAssemblyName information, instead of
9105         extract it from the metadata tables. Needed for Reflection
9106         Only assemblies.
9107         
9108 2005-07-29  Martin Baulig  <martin@ximian.com>
9109
9110         * mono-debug-debugger.c
9111         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
9112         not initialized.
9113
9114         * mono-debug.c
9115         (mono_debug_address_from_il_offset): Check whether we have
9116         debugging support before attempting to take the lock.
9117         (mono_debug_source_location_from_address): Likewise.
9118         (mono_debug_source_location_from_il_offset): Likewise.
9119         (mono_debug_il_offset_from_address): Likewise.
9120         (mono_debug_address_from_il_offset): Likewise.
9121
9122 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
9123
9124         * class.c (mono_class_from_name_case): Add support for dynamic images.
9125         Fixes #75650.
9126
9127         * object.c (mono_class_compute_gc_descriptor): Add a workaround
9128         for #75479.
9129
9130 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
9131         
9132         * reflection.c (mono_method_get_object): Fix warning.
9133
9134 2005-07-28  Martin Baulig  <martin@ximian.com>
9135
9136         * mono-debug.c
9137         (mono_debug_add_wrapper): Also write the wrapper type.
9138
9139 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
9140
9141         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
9142         
9143         * class.c (mono_class_init): Avoid reading nested classes if the AOT
9144         data indicates the class has none.
9145
9146 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
9147
9148         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
9149         loader lock with the debugger lock. Prevents deadlocks for beagle.
9150
9151         Beagle can now run on an smp box for a weekend without any
9152         issues. Woohoo!
9153
9154 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
9155
9156         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
9157         in a module. Fixes #75629.
9158
9159 2005-07-26  Martin Baulig  <martin@ximian.com>
9160
9161         * mono-debug.c (mono_debug_add_wrapper): New static method.
9162         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
9163         interncall or a wrapper.
9164
9165         * mono-debug.h (MonoDebugWrapperData): New public typedef.
9166         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
9167         (MONO_DEBUGGER_VERSION): Bump to 51.
9168
9169         * mono-debug-debugger.c
9170         (mono_debugger_add_type): Removed this empty function.
9171         (mono_debugger_add_method): Likewise.
9172
9173 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
9174
9175         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
9176         before accessing method->slot.
9177
9178 2005-07-21  Jb Evain  <jbevain@gmail.com>
9179
9180         * reflection.c (method_encode_clauses/class): Handle filters clauses.
9181         Fixes #75010.
9182
9183 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
9184
9185         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
9186         #75587.
9187
9188 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
9189
9190         * image.h image.c: Add mono_image_get_guid () API function.
9191
9192 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
9193
9194         There were issues when multiple threads tried to load
9195         assemblies. A deadlock was created between assemblies_mutex and
9196         mono_domain_assemblies_lock. This fixes the issue by making the
9197         assembly ref counting be lock free. See bug 75586.
9198         
9199         * image.c (mono_image_close): The add ref function here was using
9200         Interlocked operations while the unref was using a mutex and a
9201         --. I don't think this was ever a bug that would be exposed in a
9202         non-pendantic way (ie, by an embedder doing a ref on one thread
9203         and an unref on another), but for the sake of correctness, this is
9204         now Interlocked.
9205
9206         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
9207         (mono_assembly_load_reference): Call mono_assembly_addref rather
9208         than touching the refcount ourselves.
9209         (mono_assembly_close): Use InterlockedDecrement to unref the
9210         assembly. Don't acquire the lock unless it is actually needed.
9211
9212 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
9213
9214         * class.c (mono_class_layout_fields): Fix calculation of has_references
9215         for generic types.
9216
9217 2005-07-12  Martin Baulig  <martin@ximian.com>
9218
9219         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9220
9221         * metadata.c
9222         (mono_type_hash): Provide better hashing for generic instances.
9223         (mono_generic_inst_hash): Improve hashing.
9224         (mono_generic_class_hash): Likewise.
9225
9226         * reflection.c (mymono_metadata_type_hash): Improve hashing for
9227         generic instances.
9228
9229 2005-07-12  Martin Baulig  <martin@ximian.com>
9230
9231         * reflection.c (mono_reflection_create_runtime_class): Remove the
9232         hack for generic type definitions and non-`Run' assemblies.
9233         (mono_reflection_bind_generic_parameters): Also use
9234         `klass->wastypebuilder' to check for TypeBuilders.
9235
9236 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
9237
9238         * class.c (mono_class_layout_fields): Fix calculation of has_references
9239         for generic types.
9240
9241         * class.c (inflate_generic_class): Fix a leak.
9242         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
9243         for generic types.
9244
9245 2005-07-11  Martin Baulig  <martin@ximian.com>
9246
9247         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
9248         on error.
9249
9250 2005-07-11  Martin Baulig  <martin@ximian.com>
9251
9252         * loader.c (find_method): Also lookup in
9253         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
9254
9255 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9256
9257         * appdomain.c (mono_domain_unload): Don't free the error message
9258         before passing it to mono_get_exception_...
9259
9260         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
9261         
9262 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
9263
9264         * threads.c: try to better guess an available RT signal (bug #75387).
9265
9266 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9267
9268         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
9269         and CACHE_OBJECT.
9270
9271 2005-07-07  Martin Baulig  <martin@ximian.com>
9272
9273         * class.c (mono_type_get_name_full): Return NULL for
9274         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
9275         fixes #75408.
9276
9277 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9278
9279         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
9280         exit the appdomain as well being aborted.
9281
9282         * threadpool.c: Create all threadpool threads inside the root appdomain, and
9283         change back to the root domain after calling managed code. This enables
9284         appdomains using threadpools to be unloaded.
9285
9286 2005-07-07  Martin Baulig  <martin@ximian.com>
9287
9288         * class-internals.h
9289         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
9290         into `MonoDynamicGenericClass' since we only need it for dynamic
9291         types.
9292
9293         * reflection.c (mono_class_bind_generic_parameters): We don't need
9294         to compute the `parent' here.
9295
9296 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
9297
9298         * culture-info-table.h : regenerated.
9299
9300 2005-07-06  Martin Baulig  <martin@ximian.com>
9301
9302         * icall.c
9303         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
9304
9305         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
9306
9307 2005-07-06  Martin Baulig  <martin@ximian.com>
9308
9309         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
9310         we're doing a signature-only comparision; fixes #74945.
9311
9312 2005-07-06  Martin Baulig  <martin@ximian.com>
9313
9314         * class-internals.h (MonoGenericClass): Moved some things out into
9315         a new `MonoInflatedGenericClass' type.  
9316         (MonoInflatedGenericClass): New type; the `klass' of a
9317         `MonoGenericClass' is now computed lazyly in
9318         mono_get_inflated_generic_class().      
9319
9320         * class.c (mono_get_inflated_generic_class): New public function.
9321         (mono_class_inflate_generic_method): Removed the unused
9322         `MonoClass *' argument.
9323         (setup_generic_vtable): Don't call mono_get_inflated_method() on
9324         all the methods.
9325         (mono_class_create_generic): Make this static and merge it with
9326         mono_class_create_generic_2(); we're now called automatically from
9327         mono_get_inflated_generic_class().
9328
9329         * loader.c (mono_method_signature): Call
9330         mono_get_inflated_method() here.
9331
9332 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
9333
9334         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
9335         type of fields with RVA.
9336
9337         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
9338         for this pseudo class.
9339         (my_mono_class_from_generic_parameter): Likewise.
9340         (mono_class_init): Allow interfaces to have cctors.
9341
9342 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
9343
9344         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
9345         lazily for AOT methods.
9346
9347 2005-07-05  Martin Baulig  <martin@ximian.com>
9348
9349         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
9350         returns FALSE for a successful match, not TRUE.
9351
9352 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
9353
9354         * loader.c (mono_method_get_index): Optimize this a bit.
9355
9356 2005-07-04  Martin Baulig  <martin@ximian.com>
9357
9358         * class.c
9359         (class_compute_field_layout): Move the check for generic type
9360         definitions into mono_class_layout_fields().  Fixes #74684.
9361         (mono_class_from_generic_parameter): Correctly compute
9362         `klass->parent'; fixes #75457.
9363
9364         * reflection.c (register_assembly, register_module): Make sure
9365         `domain->rejobject_hash' is already created.
9366
9367 2005-07-02  Martin Baulig  <martin@ximian.com>
9368
9369         * class-internals.h
9370         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
9371         `MonoDynamicGenericClass'.      
9372
9373 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
9374
9375         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
9376         returned by a field getter is null, since null is a valid value.
9377
9378 2005-07-01  Martin Baulig  <martin@ximian.com>
9379
9380         * reflection.c (mono_reflection_generic_class_initialize): Update
9381         the `dgclass->fields [i].parent' to the correct class.
9382         (mono_image_get_fieldref_token): Use the declaring type, not the
9383         reflected type.
9384
9385 2005-07-01  Martin Baulig  <martin@ximian.com>
9386
9387         * loader.c (find_method): Also look in the interfaces; fixes #75429.
9388
9389 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
9390
9391         * threads.c (thread_cleanup): assert that thread != NULL
9392         (wait_for_tids_or_state_change): We were using the wrong variable
9393         when accessing wait->threads. `i' was always out of the bounds of
9394         the array.
9395
9396 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9397
9398         * loader.c: map user32 and kernel32 to libMonoSupportW
9399
9400 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
9401
9402         * appdomain.c (unload_thread_main): Mark this as WINAPI.
9403
9404 2005-06-28  Martin Baulig  <martin@ximian.com>
9405
9406         * loader.c (method_from_methodspec): Fix #75334.
9407
9408 2005-06-28  Martin Baulig  <martin@ximian.com>
9409
9410         Fix #74953 - Arrays now implement the generic IList<T> interface
9411         on the 2.0 platform.
9412
9413         * class-internals.h (MonoDefaults): Added `generic_array_class'.
9414
9415         * reflection.c (mono_class_bind_generic_parameters): New public
9416         function; similar to mono_reflection_bind_generic_parameters(),
9417         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
9418
9419         * domain.c (mono_init_internal): Try to initialize.
9420         `mono_defaults.generic_array_class' here; this'll only succeed if
9421         we're using the 2.0 corlib.
9422
9423         * icall.c
9424         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
9425         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
9426         (mono_lookup_internal_call): Added support for nested classes.
9427
9428         * loader.c
9429         (mono_get_method_from_token): Set `result->signature->pinvoke' if
9430         we're an interncall and have generic arguments.
9431
9432         * class.c
9433         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
9434         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
9435         instance of System.Array.InternalArray<T> for arrays, so they
9436         implement the generic IList<T> interface.
9437
9438 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
9439
9440         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
9441         (chastamar@yahoo.com). Fixes #75374.    
9442
9443 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
9444
9445         * culture-info-table.h: regenerated.
9446
9447 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9448
9449         * icall.c: handle spaces correctly for base64 strings.
9450
9451 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
9452
9453         * *.c: Kill some warnings.
9454
9455 2005-06-23  Duncan Mak  <duncan@novell.com>
9456
9457         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
9458         that this builds on Solaris 10 (x86).
9459
9460 2005-06-23  Martin Baulig  <martin@ximian.com>
9461
9462         * class.c
9463         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
9464         generic type definitions.
9465
9466 2005-06-23  Martin Baulig  <martin@ximian.com>
9467
9468         Fix #75331.
9469
9470         * metadata.c (mono_class_get_overrides): Renamed to
9471         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
9472         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
9473         pass it to mono_get_method_full().
9474
9475 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
9476
9477         * reflection.c (mono_reflection_create_runtime_class): take the
9478         mono_domain_lock in this method. Prevents deadlocks
9479
9480 2005-06-22  Martin Baulig  <martin@ximian.com>
9481
9482         * loader.c (method_from_methodspec): Fix #75330.
9483
9484 2005-06-22  Martin Baulig  <martin@ximian.com>
9485
9486         * reflection.c (type_get_qualified_name): Use
9487         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
9488         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
9489         argument; use it if we don't have an assembly name.
9490
9491 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
9492
9493         * object.c: In mono_message_init, set "copy out" flag for in
9494         parameters with the [Out] flag.
9495
9496 2005-06-21  Martin Baulig  <martin@ximian.com>
9497
9498         * class.c
9499         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
9500         and MONO_TYPE_PTR.
9501
9502 2005-06-21  Martin Baulig  <martin@ximian.com>
9503
9504         * class.c (mono_class_init): Don't initialize `class->fields' for
9505         generic instances since they're initialized again in
9506         compute_field_layout(). 
9507         (compute_field_layout): Set the field's `generic_info' here; fix
9508         #75320. 
9509
9510 2005-06-21  Martin Baulig  <martin@ximian.com>
9511
9512         * class-internals.h
9513         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
9514
9515         * metadata.c (mono_metadata_generic_method_equal): Also
9516         distinguish the `generic_class'; fixes #75334.
9517
9518 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9519
9520         * domain.c:
9521         * appdomain.c:
9522         * domain-internals.h:
9523         * reflection.c: 'domain_assemblies' field is now protected by its own
9524         lock. Don't call into managed code to run the AssemblyLoad event if we
9525         now there are no registered delegates for it.
9526
9527 2005-06-20  Martin Baulig  <martin@ximian.com>
9528
9529         * class.c (mono_class_is_assignable_from): Use a custom version of
9530         mono_class_has_parent() to make things work for generic instances;
9531         fix #75300.
9532
9533 2005-06-20  Martin Baulig  <martin@ximian.com>
9534
9535         * loader.c (method_from_methodspec): Apply a patch from
9536         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
9537
9538 2005-06-20  Martin Baulig  <martin@ximian.com>
9539
9540         * class.c (mono_class_init): Reverted Zoltan's last change; it
9541         breaks generics.
9542
9543 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
9544
9545         * threads.c (wait_for_tids_or_state_change): Add missing locking.
9546
9547 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9548
9549         * socket-io.c: fix the index in the socket array for writable/error
9550         sockets. Fixes bug #75306.
9551
9552 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
9553
9554         * class.c (mono_class_init): Allow interfaces to have static ctors.
9555
9556 2005-06-17  Martin Baulig  <martin@ximian.com>
9557
9558         * loader.c (method_from_methodspec): Use `context->container' when
9559         parsing the `gmethod->inst'.
9560
9561 2005-06-17  Martin Baulig  <martin@ximian.com>
9562
9563         * class.c (mono_type_get_name_recurse): Don't add the assembly
9564         name for type arguments.
9565
9566 2005-06-15  Martin Baulig  <martin@ximian.com>
9567
9568         * reflection.c (mono_image_get_inflated_method_token): Encode
9569         correct klass; fixes #75260.
9570
9571 2005-06-13 Michal Moskal <malekith@nemerle.org>
9572
9573         * icall.c: Make GetCorrespondingMethod/Constructor take
9574         MonoReflectionMethod method not MonoMethod. Removed
9575         MonoType.GetCorrespondingField, and make
9576         MonoGenericType.GetCorrespondingField take name not
9577         MonoClassField.
9578
9579 2005-06-13  Michal Moskal <malekith@nemerle.org>
9580
9581         * reflection.c (field_encode_signature, encode_locals):
9582          Make sizes of buffers for types larger (for big generic types).
9583          (create_generic_typespec,
9584          mono_reflection_sighelper_get_signature_local,
9585          mono_reflection_sighelper_get_signature_field):
9586          Add asserts for too small buffers.
9587
9588 2005-06-15  Martin Baulig  <martin@ximian.com>
9589
9590         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
9591         if our parent is not a dynamic type.
9592
9593 2005-06-15  Martin Baulig  <martin@ximian.com>
9594
9595         * class-internals.h (MonoTypeNameFormat): New enum.
9596
9597         * class.c
9598         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
9599         (mono_type_get_full_name): Removed.
9600         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
9601         argument instead of the boolean's.
9602
9603         * icall.c (ves_icall_System_MonoType_getFullName):
9604         Added `gboolean assembly_qualified'.    
9605
9606         * reflection.h
9607         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
9608
9609         * reflection.c (mono_reflection_parse_type): Parse the new type
9610         name format.
9611
9612 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9613
9614         * icall.c: no need to convert from utf16 to utf8 and then back again
9615         after the call to GetLogicalDrives.
9616
9617 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9618
9619         * icall.c: frombase64. Fix problems exposed by new tests.
9620
9621 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9622
9623         * icall.c: added internal calls for converting char [] and strings in
9624         base64 into byte [].
9625
9626 2005-06-10  Martin Baulig  <martin@ximian.com>
9627
9628         * class.c (mono_class_create_generic_2): Read the nested classes
9629         from the metadata rather than from `gklass->nested_classes' since
9630         `gklass' might not be initialized yet.
9631
9632 2005-06-09  Duncan Mak  <duncan@novell.com>
9633
9634         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
9635         all public headers. Fixes #74919.
9636
9637 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
9638
9639         * domain.c: The key for proxy_vtable_hash is now a pointer
9640         array. Added new GHashFunc and GCompareFunc functions for this.
9641
9642         * class.h: The list of interfaces in MonoRemoteClass is known in
9643         advance and can't grow (we create a new MonoRemoteClass if needed),
9644         so now the interface array can be allocated together with
9645         MonoRemoteClass.
9646         
9647         * object.c: Added a new method create_remote_class_key.
9648         Fixed mono_remote_class so it does not depend on
9649         mono_upgrade_remote_class.
9650         Removed extend_interface_array.
9651         Added new method clone_remote_class(), which makes a copy of a remote
9652         class and adds a new interface or class to it.
9653         mono_upgrade_remote_class() now creates a new remote class (or gets
9654         it from the cache) if an vtable upgrade is needed. In this way
9655         we make sure that other objects sharing the same remote class
9656         don't get the new vtable with unwanted interfaces.
9657         
9658         * object-internals.h:
9659         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
9660         
9661         * marshal.c: Track changes in mono_upgrade_remote_class().
9662
9663 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
9664         * icall.c: Add runtime methods for obtaining members of inflated
9665         class, which were created from supplied non-inflated members. It
9666         is used in internal Get{Method,Constructor,Field} methods in
9667         System.Type
9668
9669 2005-06-09  Martin Baulig  <martin@ximian.com>
9670
9671         * reflection.c
9672         (mono_reflection_bind_generic_method_parameters): Fix #75169.
9673
9674 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9675         * reflection.c (mono_image_basic_init): Define
9676         Version in MonoDynamicAssembly. 
9677         
9678 2005-06-08  Martin Baulig  <martin@ximian.com>
9679
9680         Fix #75136.
9681
9682         * loader.c
9683         (mono_method_signature_full): New public method; takes a
9684         `MonoGenericContext *'.
9685         (find_method): Use mono_method_signature_full() and pass the
9686         klass'es context to it.
9687
9688         * class.c (mono_class_is_inflated_method): Use
9689         mono_method_signature_full() and pass the context to it.
9690
9691 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
9692
9693         * object.c: add proper locking in mono_remote_class_vtable(),
9694         fixes possible memory corruption.
9695
9696 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
9697
9698         * marshal.c (mono_remoting_marshal_init): set
9699         initialized after initialization.
9700
9701 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9702
9703         * locales.c : hush.
9704
9705 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
9706
9707         * object.c (extend_interface_array): fix really silly
9708         memory corrupting / comparison bug.
9709
9710 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9711
9712         * reflection.c: Functions added to support the creation
9713         of CustomAttributeData, which includes Attribute data
9714         used by ReflectionOnly methods.
9715
9716         * reflection.h:  mono_reflection_get_custom_attrs_data and
9717          mono_custom_attrs_data_construct added (functions exposed).
9718
9719          * icall.c: Added mono_reflection_get_custom_attrs_data
9720          as icall.
9721         
9722 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
9723
9724         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
9725         lupus's request.
9726
9727 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
9728
9729         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
9730
9731         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
9732         dynamic DllImportAttribute.
9733
9734         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
9735         dynamic DllImportAttribute.
9736
9737         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
9738         Fixes #75162.
9739
9740 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9741
9742         * threads.c: avoid segfault when an unstarted thread is aborted.
9743
9744 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
9745
9746         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
9747         Returns the name and version of the runtime for reporting.
9748
9749 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9750
9751         * appdomain.c: bump corlib version.
9752         * object-internals.h: new field in MonoReflectionAssembly.
9753
9754 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9755
9756         * object-internals.h: Carlos forgot to add this field.
9757
9758 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9759
9760         * icall.c: Added create_version to create instances
9761         of Version of MonoReflectionAssemblyName. This change helps
9762         the AssemblyName tests to keep running fine.
9763         
9764 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
9765   
9766         * object.c (mono_method_return_message_restore): A somehow less
9767         intrusive fix for #75138.
9768
9769 2005-06-03  Raja R Harinath  <rharinath@novell.com>
9770
9771         * object.c (mono_method_return_message_restore): Fix computation
9772         of expected number of out args.
9773
9774 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
9775
9776         * reflection.c (mono_image_get_method_info): Fix the case when the
9777         charset is empty.
9778
9779 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
9780
9781         * object.c: Added missing null check in
9782           mono_method_return_message_restore.
9783
9784 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
9785
9786         * reflection.c (mono_image_get_method_info): Handle the case when
9787         dllentry is empty.
9788
9789 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
9790
9791         * object.c: When creating the vtable for a proxy, take into account
9792         all inherited interfaces, not only the ones registered in
9793         iclass->interfaces. This fixs bug #74996.
9794         Also, in mono_method_return_message_restore, verify that the array
9795         of out args has the expected lengh.
9796
9797 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9798
9799         * socket-io.c: update the timeout in Poll when the call is interrupte.
9800
9801 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9802
9803         * socket-io.c: support abort/suspend in Select_internal after last
9804         change.
9805
9806 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9807
9808         * threadpool.c: remove warning.
9809
9810 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9811
9812         * icall.c:
9813         * socket-io.[ch]: Select_internal uses poll() now when available, thus
9814         removing the 1024 limit from select(). Runtime part of the fix for
9815         bug #71203.
9816
9817 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9818
9819         * socket-io.c: when resolving the addresses for the same
9820         host returned by gethostname(), get the local IPs from the interface
9821         list. Loopback addresses are discarded if the are interfaces up with
9822         non-loopback ones. Fixes bug #63265.
9823
9824 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
9825
9826         * appdomain.c, verify.c, object-internals.h, reflection.c:
9827         bumped corlib number to 36, and added new extra_flags field
9828         to ReflectionMethodBuilder and friends.  Fixes #75060.
9829
9830 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
9831
9832         * gc.c: register a new weak link only if the object is non-null
9833         (fixes bug#75047).
9834
9835 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9836
9837         * culture-info.h : short time pattern too.
9838
9839 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9840
9841         * culture-info.h : expand long time pattern string length.
9842
9843 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9844
9845         * culture-info-table.h : update (more French date format; #72788).
9846
9847 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
9848
9849         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
9850         the method is static. Fixes #75029.
9851
9852 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
9853
9854         * reflection.c: Update the table_idx field of method builders after
9855         saving the module, since it can change. This is a workaround for
9856         bug #74914. 
9857
9858 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9859
9860         * culture-info-table.h : update (additional French date format).
9861
9862 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
9863
9864         * icall.c (ves_icall_type_Equals): Revert last change.
9865         
9866         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
9867
9868         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
9869
9870 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
9871
9872         * class-internals.h: Added executioncontext_class field to 
9873         MonoDefaults structure.
9874         * domain.c: Cache System.Threading.ExecutionContext class in 
9875         mono_defaults.
9876         * object.c: Capture the ExecutionContext for asynchroneous calls in
9877          mono_async_result_new.
9878         * object-internals.h: Added execution_context and original_context 
9879         fields to MonoAsyncResult. Added execution_context to MonoThread.
9880         * security-manager.c|.h: Added mono_get_context_capture_method to 
9881         return the capture method (if required by the security manager or by
9882         the framework version used).
9883         * threadpool.c: Apply capture (if present) ExecutionContext in 
9884         mono_async_invoke and revert to original context after it completes.
9885
9886 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
9887
9888         * culture-info-table.h : updated (real hacky solution for zh-CHT).
9889
9890 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
9891
9892         * culture-info-table.h : zh-CHT related workaround.
9893
9894 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
9895
9896         * marshal.c (emit_marshal_custom): Add some error checking and call the
9897         methods in the ICustomMarshaler interface. Fixes #74875.
9898         
9899         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
9900         native->managed wrappers.
9901
9902 2005-05-12  Martin Baulig  <martin@ximian.com>
9903
9904         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
9905         here and use the loader lock.
9906
9907         * mono-debug.c: Properly lock when the debugger is not attached.
9908         (mono_debug_init): Release the initial lock if we're not running
9909         in the debugger.
9910
9911 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
9912
9913         * marshal.c (emit_marshal_custom): Pass through NULL values without
9914         calling the custom marshalling routines.
9915
9916         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
9917         conversion in structures. Fixes #74882.
9918
9919 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
9920
9921         * culture-info-table.h : zh-* cultures were missing.
9922
9923 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
9924
9925         * threads.c: Added a new event background_change_event which is signaled
9926         when a thread changes its background mode.
9927         Moved here several checks previously done in managed code. The checks
9928         require the thread lock, and using the thread lock in managed code
9929         can result in deadlocks.
9930         Merged Start_internal and Thread_internal into a single method. Now 
9931         Thread_internal does all work of creating and starting a thread.
9932         Added icalls for setting and getting the state of the object. Moved from
9933         managed code to avoid locking there.
9934         Added wait_for_tids_or_state_change() which is called instad of
9935         wait_for_tids when waiting for non-backround threads to end. This method
9936         will return if one of the threads ends or the background_change_event
9937         is signaled.
9938         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
9939         the background mode. This method signals the background_change_event
9940         event.
9941         * icall.c:
9942         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
9943         removed Start_internal.
9944         
9945 2005-05-11  Martin Baulig  <martin@ximian.com>
9946
9947         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
9948         to order of some fields to get proper alignment on 64-bit machines.
9949
9950 2005-05-11  Martin Baulig  <martin@ximian.com>
9951
9952         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
9953         changes as they're broken and completely fuck up the debugger.
9954
9955         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
9956
9957 2005-05-10  Martin Baulig  <martin@ximian.com>
9958
9959         * reflection.c (mono_reflection_generic_class_initialize): Don't
9960         call mono_class_setup_parent() here.
9961
9962 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9963
9964         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
9965         send/receive timeout use an integer in milliseconds. We were using a
9966         struct timeval.
9967
9968 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9969
9970         * locales.c:
9971         (internal_get_cultures): reserve the first slot of the array for the
9972         InvariantCulture, which will be filled in managed code.
9973
9974 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
9975
9976         * reflection.c (mono_image_fill_module_table): Initialize the
9977         GENERATION field as well.
9978
9979 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9980
9981         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
9982         Monitor.Enter on the object.
9983
9984 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
9985
9986         * threads.c: Enable the wait for running threads when exiting.
9987         * icall.c: Suspend all threads before exiting.
9988
9989 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
9990
9991         * assembly.c (mono_assembly_load_reference): Fix warning.
9992
9993 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9994
9995         * threadpool.c: changed the default number of threads per cpu. From now
9996         on, the default will be 20 + (5 * number of cpus) instead of 50.
9997
9998 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
9999
10000         * loader.c (mono_method_get_signature_full): Add locking here.
10001
10002 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
10003
10004         * appdomain.c: Moved methods for parsing and freeing assembly
10005         names to assembly.c.
10006         * assembly.c, domain-internals.h: Created public methods for parsing
10007         assembly names. Fixed mono_assembly_load_with_partial_name:
10008         it now finds the best match, taking into account the version,
10009         token and culture specified in the partial name. Also return
10010         the latest version if no version information is specified.
10011
10012 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
10013
10014         * threadpool.c: replace check for SocketAsyncCall class.
10015
10016 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10017
10018         * threadpool-internals.h:
10019         * Makefile.am: added threadpool-internals.h
10020
10021         * threadpool.c: call mono_unhandled_exception on exceptions not handled
10022         that happen in threadpool threads (tested on MS).
10023         (mono_thread_pool_remove_socket): new function that dispatch any pending
10024         AIO call on a socket that is closing. By now only epoll really needs it,
10025         as select/poll wake up when the socket closes.
10026
10027
10028         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
10029
10030 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
10031
10032         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
10033
10034 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
10035
10036         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
10037
10038 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
10039
10040         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
10041         has an abort request, convert it into a suspend request.
10042
10043 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
10044
10045         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
10046         warning for the usage of `UnmanagedFunctionPointerAttribute' which
10047         is not supported yet.
10048
10049 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10050
10051         * image.c: register assemblies loaded from data (bundles) in the loaded
10052         assemblies hash. Fixes bug #74772.
10053
10054 2005-04-29  Martin Baulig  <martin@ximian.com>
10055
10056         * class.c (mono_type_get_name_recurse): Update to the new naming
10057         schema from the latest .NET 2.x beta2.
10058         (mono_class_setup_vtable_general): If we're a generic instance,
10059         copy the vtable from our generic type definition and inflate all
10060         the methods in it.
10061
10062         * loader.c (find_method): Update to the new naming schema from the
10063         latest .NET 2.x beta2.
10064
10065 2005-04-29  Raja R Harinath  <harinath@gmail.com>
10066
10067         * class.c (mono_class_init): Add a mono_loader_unlock to the
10068         #74734 fix.
10069
10070 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
10071
10072         * icall.c (ves_icall_System_Environment_Exit): Remove the 
10073         suspend_all_other_threads () call for the time being, since it can hang.
10074
10075         * threads.c (mono_thread_manage): Similarly, disable the waiting for
10076         the background threads to exit, since it can also hang.
10077
10078         * class.c (mono_class_init): Applied patch from Ankit Jain 
10079         (radical@gmail.com). Avoid pending init errors when a field refers
10080         to a nested class using a typeref. Fixes #74734.
10081
10082         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
10083         this for dynamic modules.
10084
10085 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10086
10087         * threads.c: don't wait for threads that are in the process of aborting
10088         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
10089         and waiting for background threads to finish. This makes xsp and
10090         mod-mono-server exit without random length delays and/or hangs.
10091
10092 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10093
10094         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
10095
10096 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
10097
10098         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
10099         dynamic types to prevent infinite loops. Fixes #74727.
10100
10101         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
10102         ..._is_assignable_to.
10103
10104 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
10105
10106         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
10107
10108 2005-04-25  Martin Baulig  <martin@ximian.com>
10109
10110         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
10111
10112         * domain.c
10113         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
10114
10115         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
10116
10117         * reflection.c (build_compressed_metadata): Set metadata header
10118         version to 2.0.
10119
10120 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
10121
10122         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
10123         number into an integral and a decimal part. Fixes #70473.
10124
10125         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
10126
10127 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
10128
10129         * culture-info-table.h : reflected the latest locale-builder output.
10130
10131 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10132
10133         * threadpool.c: check for SuspendRequested too when deciding if
10134         mono_thread_interruption_checkpoint should be called.
10135
10136 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10137
10138         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
10139         * threads.c: remove interruption_mutex and use Interlocked instead. When
10140         suspending all the threads, wait for all the suspended events at once.
10141         If we're shutting down and get an APC that is going to be queued,
10142         call mono_thread_execute_interruption immediately, as the thread might
10143         be sleeping on a pthread condition or mutex.
10144
10145         * icall.c: call mono_runtime_set_shutting_down before suspending the
10146         threads.
10147
10148         Fixes bug #74693. And now xsp is happier when exiting.
10149
10150 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
10151
10152         * loader.c (mono_stack_walk): Fix #74690.
10153
10154 2005-04-22  Martin Baulig  <martin@ximian.com>
10155
10156         * mono-debug.h (MonoDebugMethodJitInfo): Added
10157         `MonoDebugMethodJitInfo *jit'.
10158
10159         * mono-debug.c (mono_debug_read_method): Cache the
10160         MonoDebugMethodJitInfo in `address->jit'.
10161         (mono_debug_free_method_jit_info): New public method.
10162
10163 2005-04-22  Martin Baulig  <martin@ximian.com>
10164
10165         * class.c (mono_class_is_assignable_from): Disallow
10166         type parameter -> interface.
10167
10168 2005-04-21  Dick Porter  <dick@ximian.com>
10169
10170         * threads.c (mono_thread_create): Turn an assertion into an error.
10171
10172 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
10173
10174         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
10175         
10176         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
10177         Fix some gcc 4.0 warnings.
10178
10179 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
10180
10181         * file-io.c: fix alt dir separator char on unix systems
10182         and cleanup (fixes bug #71214).
10183
10184 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
10185
10186         * marshal.c: Use CALLVIRT instead of CALL when dispatching
10187         a call to a remote domain, since the method may be an
10188         interface method in the client domain. This fixes bug #74192.
10189
10190 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10191
10192         * threadpool.c: recv/send are now performed before going back to managed
10193         code to save one transition.
10194
10195 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10196
10197         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
10198
10199         * metadata/threadpool.c: removed hack to workaround the bug above.
10200
10201         Fixes bug #74618.
10202
10203 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
10204
10205         * reflection.c reflection.h: Fix handling of parameter defaults in
10206         dynamic methods. Also fixes handling of parameter attributes.
10207         Fixes #74609.
10208
10209         * mono-debug.c (mono_debug_close_image): Fix warning.
10210
10211 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10212
10213         * socket-io.h: replaced old unused field with new 'blocking'.
10214         * threadpool.c: restore socket blocking state on windows(tm).
10215
10216 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
10217
10218         * icall.c: don't return the codebase in the AssemblyName[] returned by
10219         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
10220         * object-internals.h: Removed FIXME (fields were presents) and fixed
10221         versioncompat declaration.
10222
10223 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10224
10225         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
10226         not closed, so don't cleanup when it happens.
10227
10228 2005-04-13  Chris Toshok  <toshok@ximian.com>
10229
10230         * mono-debug-debugger.h: change prototype for
10231         mono_debugger_lookup_type.
10232
10233         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
10234         this function, although it should probably be named
10235         mono_debugger_init_type.
10236
10237 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10238
10239         * threadpool.c: fix non-AIO case.
10240
10241 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
10242
10243         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
10244         the built-in profiler to measure just JIT compilation times.
10245
10246 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10247
10248         * threadpool.c: the epollfd might be closed by another thread at
10249         any time, so ignore EBADF at treat it as a "we're closing" sign.
10250
10251 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10252
10253         * threadpool.c: release the semaphores with a count equals to the number
10254         of working threads in both IO and regular pools. Fixed typo that messed
10255         up the count of IO pool threads. Don't initialize the pipe handles if
10256         we're using epoll.
10257
10258 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10259
10260         * threadpool.c: some systems don't like a NULL when deleting the socket
10261         from epoll.
10262
10263 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10264
10265         * threadpool.c: fix semaphore allocation.
10266
10267 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10268
10269         * threadpool.c: added epoll() based implementation for asynchronous IO
10270         that is used instead of the default poll() when available.
10271         It can be disabled by setting MONO_DISABLE_AIO.
10272
10273 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10274
10275         * threadpool.c: windows needs 'closesocket' and instead of returning
10276         0 when the stream is closed while in select, it returns -1. Fixes bug
10277         #74573.
10278
10279 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
10280
10281         * class.c (class_compute_field_layout): Fix the regression caused by
10282         the previous try.
10283
10284 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10285
10286         * threadpool.c: separate pool for socket async. IO.
10287         * threadpool.h: mono_max_worker_threads is not a global any more.
10288
10289 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
10290
10291         * class.c (class_compute_field_layout): Fix #74549.
10292
10293 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10294
10295         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
10296         use 2 connected sockets instead.
10297
10298 2005-04-08  Miguel de Icaza  <miguel@novell.com>
10299
10300         * mono-config.c: Add new entry point for mkbundle
10301         mono_config_parse_memory. 
10302
10303 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10304
10305         * threadpool.c: removed another unused function.
10306
10307 2005-04-08  Ankit Jain  <radical@corewars.org>
10308
10309         * reflection.c (get_default_param_value_blobs): Add 'types'
10310         parameter to get the types encoded in the constant table.
10311         (mono_param_get_objects): Use the type from the constant table,
10312         not the type of the parameter, when creating default values.
10313         Handle null default values correctly.
10314
10315 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10316
10317         * file-io.c:
10318         * file-io.h:
10319         * threadpool.c:
10320         * threadpool.h:
10321         * icall.c:
10322         * socket-io.c: removed dead code for async IO.
10323
10324 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10325
10326         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
10327
10328         * threadpool.c: intercept socket async. calls and pass them to a thread
10329         that is polling and dispatching the job items to the threadpool as
10330         socket become ready. Fixes bugs #71217, #71933.
10331
10332         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
10333         between char and short/ushort arrays.
10334
10335         * socket-io.c: remove dead code.
10336
10337 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
10338
10339         * locales.c,
10340           icall.c : removed InternalToUpper_Comp() and
10341           InternalToLower_Comp().
10342
10343 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
10344
10345         * char-conversions.h : The tables were incorrectly generated. Should
10346           be generated against invariant culture.
10347
10348 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
10349
10350         * object.c (mono_runtime_invoke_array): Fix return value when 
10351         passing pre-created valuetype objects to ctors.
10352
10353         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
10354         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
10355         Fixes #74338.
10356
10357 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
10358
10359         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
10360         only used with --security and hides the wrong corlib version error.
10361
10362 2005-03-30  Joshua Tauberer  <tauberer@for.net>
10363
10364         * class.c: Changed mono_class_name_from_token so that types
10365         outside of a namespace don't have an initial period.  Improved
10366         the g_warning message used in _mono_class_get when loading
10367         fails.
10368         * assembly.c: In mono_assembly_load_reference, when an assembly
10369         can't be found, "No such file or directory" is misleading and
10370         unhelpful because a few paths were checked for the presence of
10371         the assembly.  When that happens (ENOENT), display a nicer
10372         message indicating the directories that were searched.  In all
10373         cases, the warning is made easier to read for non-hackers.
10374
10375 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
10376
10377         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
10378         project/solution.
10379         * appdomain.h|domain.c: Removed inline from functions.
10380         * appdomain.c: Reduced warnings when compiling on windows.
10381         * icall.c: Fixed output_debug declaration to gunichar2*.
10382         * mono-config.c: Reduced warnings when compiling on windows.
10383         * rand.c: Added missing "windows.h". Added missing return value.
10384         * rawbuffer.c: Added missing winsock2.h for windows.
10385         * sysmath.h: Added mono-compiler.h header to allow/ease 
10386         compilation with non-GCC compilers.
10387         * threads.c: Fixed declarations to compile with VS.NET C compiler.
10388         Removed cast warnings.
10389
10390         Adapted from the work of J Lothian (for VC6).
10391
10392 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
10393
10394         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
10395         from default_path.
10396
10397 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
10398
10399         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
10400         the 2.0 profile.
10401
10402 2005-03-27  Raja R Harinath  <harinath@gmail.com>
10403
10404         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
10405         has to be in $(exec_prefix).  $(prefix) is for arch-independent
10406         stuff, and it would probably use $(prefix)/share rather than
10407         $(prefix)/lib.
10408
10409 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10410
10411         * console-io.c: added 2 includes that might be missing.
10412
10413 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
10414
10415         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
10416         profile.
10417
10418         * reflection.c (create_custom_attr): Allocate the params array using
10419         alloca so it gets GC tracking.
10420
10421 2005-03-23  Chris Toshok  <toshok@ximian.com>
10422
10423         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
10424         out some spew.
10425
10426 2005-03-24  Raja R Harinath  <rharinath@novell.com>
10427
10428         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
10429         changes to pick up any changes in prefix, etc.
10430
10431 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
10432
10433         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
10434         
10435         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
10436         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
10437
10438 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
10439
10440         * class-internals.h object-internals.h class.c reflection.c: Extend the
10441         mono_lookup_dynamic_token () function to return the class of the
10442         token as well. 
10443
10444         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
10445         well. Fixes #73848.
10446
10447 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
10448
10449         * security-manager.c: Skip inheritance checks for intra-corlib
10450         class inheritance and method overrides. This skips a lot of checks
10451         and (anyway) permissions cannot work until corlib is loaded.
10452
10453 2005-03-23  Martin Baulig  <martin@ximian.com>
10454
10455         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
10456         MONO_TYPE_GENERICINST.  
10457
10458 2005-03-23  Martin Baulig  <martin@ximian.com>
10459
10460         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
10461
10462 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10463
10464         * class.c: added locking comments to some functions.
10465         Cache the interface offsets arrays (saves about 20 KB
10466         of runtime memory in a typical app).
10467         Reduce the time overhead in mono_class_setup_supertypes ().
10468
10469 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
10470
10471         * icall.c: speedup and fix leaks in GetMethodsByName and
10472         GetPropertiesByName.
10473
10474 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10475
10476         * reflection.c: some locking fixes.
10477
10478 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10479
10480         * metadata.c: added missing break in case statement.
10481
10482 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
10483
10484         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10485         typedbyref return values. Fixes #73941.
10486
10487 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
10488
10489         * security-manager.c|h: Added demandunmanaged method and 
10490         suppressunmanagedcodesecurity class to MonoSecurityManager.
10491         Renamed aptc class to allowpartiallytrustedcallers.
10492
10493 2005-03-17  Martin Baulig  <martin@ximian.com>
10494
10495         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
10496
10497 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10498
10499         * file-io.c: disabled file async. IO using aio_*. It uses the
10500         threadpool now. Workaround for bug #73718.
10501
10502 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10503
10504         * assembly.h, mono-config.c: added code to deal with bundled configs
10505         for bundled assemblies.
10506
10507 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
10508
10509         * *.c, private.h: cleanup, removing old private.h header file.
10510
10511 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
10512
10513         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
10514         and throw_on_unmappable_char attributes.
10515
10516 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
10517
10518         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
10519         _ProcessName_internal.
10520
10521 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
10522
10523         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
10524         #73631.
10525
10526         * icall.c threads.c threads-types.h: Remove slothash icalls as they
10527         are no longer used.
10528
10529 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
10530
10531         * object.c (compute_class_bitmap): Add support for generics. Fixes
10532         #73527.
10533
10534 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
10535
10536         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
10537
10538 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10539
10540         * filewatcher.c: commented out the code for windows watcher, as we don't
10541         use it (we use the managed implementation instead).
10542
10543 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
10544
10545         * object-internals.h (MonoThread): Remove 'unused1' field.
10546
10547         * appdomain.c: Bump corlib version.
10548
10549         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
10550
10551         * reflection.c (mono_reflection_create_runtime_class): Remove the
10552         AssemblyBuilder.Save optimization since it causes too many problems.
10553
10554 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
10555
10556         * exception.c|h: Added mono_get_exception_reflection_type_load to
10557         create a ReflectionTypeLoadException object.
10558         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
10559         to return NULL is a InheritanceDemand fails during reflection. Updated
10560         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
10561         ReflectionTypeLoadException if an InheritanceDemand fails during 
10562         reflection. Added icall mapping for GetLinkDemandSecurity.
10563         * security-manager.c|h: Added ves_icall_System_Security_
10564         SecurityManager_GetLinkDemandSecurity internal call to return the
10565         class and methods permissions set for a LinkDemand. Removed unused
10566         fields in MonoSecurityManager.
10567
10568 2005-03-10  Martin Baulig  <martin@ximian.com>
10569
10570         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
10571         it's a generic instance.
10572
10573 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
10574
10575         * reflection.c (mono_get_object_from_blob): Applied patch from
10576         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
10577
10578         * class.c (mono_class_is_assignable_from): Another try at fixing 
10579         #73469 without breaking anything.
10580
10581 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
10582
10583         * class.c: (mono_class_is_assignable_from): Revert the last changes
10584         since they don't work with generics.
10585         
10586         * class.c (mono_class_is_assignable_from): Fix build bustage.
10587
10588         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
10589         the managed IsAssignableFrom method. Fixes #73469.
10590
10591         * reflection.c (mono_reflection_call_is_assignable_from): New helper
10592         function.
10593
10594 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
10595
10596         * object.c (mono_load_remote_field_new): Fix returning uninitialized
10597         memory when the remoting callback does not sets the out arguments.
10598         Fixes #73007.
10599
10600         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
10601         by mistake.
10602
10603         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
10604
10605         * object-internals.h (MonoStackFrame): Sync with managed object layout.
10606
10607         * appdomain.c: Bump corlib version.
10608
10609 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
10610
10611         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
10612         function.
10613
10614         * threads.c (mono_thread_attach): Detect threads which are not started
10615         by the GC pthread wrappers.
10616
10617 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
10618
10619         * icall.c: Added new icall for RNG.
10620         * rand.c|h: Added new icall to open the RNG. This allows to share a 
10621         single handle on Linux to access /dev/urandom and fix #73183.
10622
10623 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
10624
10625         * object.c: setting the new vtable in a transparent proxy object must
10626         not change the GC descriptor.
10627
10628 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10629
10630         * object.c: fixed compilation without GCJ support.
10631         * reflection.c: for runtime-created types ensure klass->has_references
10632         is correct (bug #73215).
10633
10634 2005-03-02  Martin Baulig  <martin@ximian.com>
10635
10636         * class.c (mono_class_is_assignable_from): Make this work if
10637         `oklass' is a generic instance; fixes #72831.
10638
10639 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
10640
10641         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
10642         with hasthis set.
10643         
10644         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
10645
10646         * marshal.c: Reorganize native->managed marshalling code to also use
10647         the emit_marshal_... functions.
10648
10649 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10650
10651         * object.c: typed allocs have issues with bitmap sizes > 30,
10652         so check for max_set >= 30.
10653
10654 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
10655
10656         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
10657         managed code. Fixes #73012.
10658
10659         * metadata.h (MonoMarshalSpec): Add elem_mult field.
10660
10661         * metadata.c reflection.c: Load/Emit elem_mult as well.
10662         
10663         * metadata.h (MonoMarshalSpec): Add comment.
10664
10665         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
10666
10667         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
10668         num_elem to -1 if not given.
10669
10670         * object-internals.h (MonoReflectionMarshal): Add has_size field.
10671
10672         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
10673         given values.
10674
10675 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
10676
10677         * null-gc.c (mono_gc_free_fixed): Was not compilable.
10678
10679 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
10680
10681         * reflection.c (encode_marshal_blob): Encode param_num field as well.
10682
10683         * object-internals.h (MonoReflectionMarshal): Add param_num field.
10684
10685 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10686
10687         * object.c: generalized the reference bitmap creation
10688         and added hooks for the new GC.
10689         * class-internals.c: removed the gc_bitmap field from MonoClass.
10690
10691 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10692
10693         * domain.c: help the compiler to produce better code
10694         in mono_jit_info_table_find ().
10695
10696 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10697
10698         * object.c: make all allocations look typed.
10699
10700 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10701
10702         * socket-io.c: load Mono.Posix if it's not loaded already
10703         (fixes bug#73033).
10704
10705 2005-02-24  Martin Baulig  <martin@ximian.com>
10706
10707         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
10708         * reflection.c (dup_type): Likewise.
10709
10710 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
10711
10712         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
10713         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
10714
10715 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10716
10717         * domain.c, threads.c, object-internals.h: make the critical thread
10718         local vars use the fast access mode (even when we're compiled in
10719         a lib). Provide accessors to be used by the jit during codegen.
10720
10721 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10722
10723         * appdomain.c: Changed hook functios behavior to include
10724         support for the reflection only assemblies. Some icalls were changed
10725         to support the mentioned assemblies too. Signatures of static methods
10726         try_assembly_resolve and real_load now have an additional parameter:
10727         refonly.
10728
10729         * assembly.c: General changes to mono_assembly_ methods to support
10730         reflection only api. Functions mono_assembly_open, mono_assembly_load,
10731         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
10732         suffix, to support an additional gbool parameter to specify whether
10733         the assembli is reflection only or not. Created some new hook functions 
10734         to add support for reflection only assemblies. Signatures of static 
10735         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
10736         have now an additional parameter: refonly.
10737
10738         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
10739         indicating whether the assembly is reflection only or not.
10740
10741         * exception.c: Add mono_get_exception_invalid_operation.
10742
10743         * icall.c: Throw an InvalidOperationException when trying to invoke
10744         a property/method/event, or trying to set/get the value of a field.
10745         Also add an icall to retrieve the ref_only flag to the
10746         MonoReflectionAssembly.
10747
10748 2005-02-23  Chris Toshok  <toshok@ximian.com>
10749
10750         Part of fix for #72827.
10751         * mono-debug.c (mono_debug_add_method): add lexical block data to
10752         the info we write.  Kind of a hack at the moment - we copy the
10753         lexical block info from the MonoDebugMethodInfo to the
10754         MonoDebugMethodJitInfo here, before writing it.
10755         (mono_debug_read_method): read the lexical block info.
10756
10757         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
10758
10759         * debug-mono-symfile.h: add lexical block support.
10760
10761         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
10762         support.
10763
10764 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
10765
10766         * loader.c (mono_lookup_pinvoke_call): Fix warning.
10767
10768         * object.c (mono_runtime_free_method): Call mono_free_method () and
10769         put the TODOs there.
10770
10771         * loader.c (mono_free_method): Free up most memory allocated for 
10772         dynamic methods.
10773
10774 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
10775
10776         * reflection.c: properly flag a Type argument to a
10777         named custom attr value (bug #72248).
10778
10779 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10780
10781         * reflection.c: reduce code duplication in named custom
10782         attribute encoding.
10783
10784 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
10785
10786         * reflection.c: properly encode custom attrs of type object
10787         (bug #72649).
10788
10789 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
10790
10791         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
10792
10793 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
10794
10795         * socket-io.c: load System.dll if it's not loaded already
10796         (bug #72850 and #70477).
10797
10798 2005-02-21  Martin Baulig  <martin@ximian.com>
10799
10800         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10801         generic instances.
10802
10803 2005-02-21  Martin Baulig  <martin@ximian.com>
10804
10805         * reflection.c (mono_image_build_metadata): We also need to
10806         "fixup" the MethodImpl table after we computed the final method
10807         indices.  Call fixup_methodimpl() to do that.
10808         (fixup_methodimpl): New private method.
10809
10810 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10811
10812         * assembly.c: special case mscorlib.dll (bug#72536),
10813         patch from Carlos Alberto Cortez.
10814
10815 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
10816
10817         * threads-types.h threads.c: Fix build bustage.
10818
10819         * threads.c: Use a union for long<->double conversions.
10820
10821         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
10822         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
10823
10824         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
10825         containing the checkpoint call with NOT_TAKEN.
10826         
10827         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
10828         checkpoint before pushing the arguments, so they won't have to be
10829         spilled to stack.
10830
10831 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10832
10833         * domain.c, assembly.c, domain-internals.h: make some data
10834         const and relocation-free.
10835
10836 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
10837
10838         * object.c, appdomain.c, class-internals.h: introduce the
10839         MonoClassRuntimeInfo structure to hold the info needed to
10840         use a class at runtime. Made mono_class_vtable() lock-free
10841         for all the appdomains.
10842
10843 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
10844
10845         * metadata-internals.h, image.c: introduce a per-image mempool to
10846         be used for memory that has the same lifetime as the image.
10847
10848 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
10849
10850         * domain.c: In mono_init_internal(), instead of selecting the first
10851         runtime version supported by an executable, get a list of all
10852         supported versions and select the one for which an mscorlib exists
10853         (since even if the runtime supports a given version, it doesn't mean
10854         that the framework for that version is installed).
10855         Modified get_runtimes_from_exe to support this behavior.
10856         In supported_runtimes, added information about additional system
10857         assembly versions.
10858         
10859         * assembly.c: Added support for more than one system assembly version
10860         per runtime version. Updated the assembly list.
10861         In mono_assembly_remap_version, removed the initial version check,
10862         since we don't know to which version we need to compare until we
10863         get the version set on which the assembly is based.
10864         Moved the code for loading corlib into the new method
10865         mono_assembly_load_corlib(), so it can be used by the initialization
10866         code.
10867         
10868         * domain-internals.h: Updated data structures and added declaration
10869         for mono_assembly_load_corlib.
10870
10871 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
10872
10873         * reflection.c (resolve_object): Fix the creation of the signature in 
10874         the SignatureHelper case.
10875
10876         * assembly.c (mono_assembly_remap_version): Fix binary search.
10877         
10878 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
10879  
10880         * class.c: Added inheritance check when a method is overloaded (from a
10881         virtual method or when implementing an interface) and when a class is
10882         inherited. Added functions to set a failure for a class and to 
10883         retreive the exception from a failure.
10884         * class-internals.h: Added fields to MonoClass to keep the exception
10885         information status for inheritance (or other exceptions) to be thrown
10886         later (i.e. not at load time).
10887         * object.c: Throw the inheritance SecurityException when a type is to 
10888         be created with either class or method inheritance violations.
10889         * reflection.c|h: Fix when getting declsec from a class. Removed 
10890         unrequired code for class. Improved sanity in parameter naming.
10891         * security-manager.c|h: Added functions to check for class and method
10892         inheritance.
10893
10894 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
10895
10896         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
10897         and has_finalize in dynamic types as well.
10898
10899 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
10900
10901         * culture-info-table.h : fixed currency format for en-GB (and so on).
10902
10903 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
10904
10905         * gc.c: ensure the GC handles never have 0 as a value.
10906
10907 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
10908
10909         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
10910         a pointer to a struct to unmanaged code. Fixes #72625.
10911
10912 2005-02-16  Martin Baulig  <martin@ximian.com>
10913
10914         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
10915
10916 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
10917
10918         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
10919
10920 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
10921
10922         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
10923
10924         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
10925         UnmanagedFunctionPointerAttribute, use it for determining calling convention
10926         etc. Fixes #71471.
10927
10928         * reflection.c (mono_custom_attrs_get_attr): New helper function.
10929
10930         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
10931
10932 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
10933
10934         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
10935         changes to make the current context a field in MonoThread.
10936
10937 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
10938
10939         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
10940         the last change.
10941         
10942         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
10943         extracted from mono_marshal_get_native_wrapper.
10944
10945         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
10946         to create wrappers around native functions.
10947
10948         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
10949         delegates for arbitrary function pointers. Fixes #71472.
10950
10951 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
10952
10953         * threads.c: cleaned up the code a little.
10954
10955 2005-02-15  Martin Baulig  <martin@ximian.com>
10956
10957         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
10958         the data table.
10959
10960         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
10961         allocate larger chunks if needed.
10962
10963 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
10964
10965         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
10966         in by mistake.
10967
10968 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
10969
10970         * domain.c: keep the domains in an array and ensure the domain ids
10971         are kept small, so they can be used as indexes to domain-specific data
10972         with a small memory overhead.
10973
10974 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
10975
10976         * icall.c: Handle byref types in Type icalls. Fixes #72544.
10977
10978 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
10979
10980         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
10981
10982 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
10983
10984         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
10985
10986         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
10987         values.
10988
10989         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
10990         
10991 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
10992
10993         * domain-internals.h: add the hashtable here.
10994
10995         * class-internals.h: Remove `info' from MonoMethod
10996
10997         * domain.c: Add a new hashtable, jit_trampoline_hash
10998
10999 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11000
11001         * object.c: don't set the value of static fields
11002         (fixes bug#72494).
11003
11004 2005-02-11  Martin Baulig  <martin@ximian.com>
11005
11006         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
11007         (mono_debug_add_method): Silently ignore the method if it's too big.
11008         (mono_debug_add_type): Likewise.
11009
11010 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
11011
11012         * threads.c, appdomain.c: remove #ifdefs from the code.
11013
11014 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
11015
11016         * metadata-internals.h: Added flags to MonoAssembly to cache the most
11017         common security informations. This allows us to stay in unmanaged code
11018         when doing LinkDemand and it's special cases (except for the first 
11019         time for initialization). The flags a very much used with --security.
11020         * reflection.c|h: Added code to get declarative security attributes 
11021         for LinkDemand and InheritanceDemand. This required to refactor the
11022         existing code for Demand.
11023         * security-manager.c|h: Added new method fields for the special cases
11024         of LinkDemand.
11025
11026 2005-02-10  Martin Baulig  <martin@ximian.com>
11027
11028         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
11029         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
11030
11031 2005-02-10  Martin Baulig  <martin@ximian.com>
11032
11033         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
11034         debugging code; this is almost a complete rewrite.
11035
11036         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
11037
11038 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11039
11040         * domain.c, object.h: expose mono_string_equal () and 
11041         mono_string_hash ().
11042         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
11043         it's implemented in managed code.
11044
11045 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11046
11047         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
11048         lo leak objects between appdomains.
11049
11050 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11051
11052         * assembly.c: old compilers compilation fix from 
11053         robertj@gmx.net (Robert Jordan).
11054
11055 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
11056
11057         * class-internals.h: Little reminder for the future.
11058
11059         * debug-helpers.c: Fix up wrapper_type_names
11060
11061 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11062
11063         * image.c, metadata-internals.h: when loading an image from a file,
11064         mmap all of it and use the same codepaths as when using a
11065         in-memory image: the code is simpler and we use less memory
11066         (both writable and readonly).
11067
11068 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11069
11070         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
11071         API to alloc runtime data structures that need to be tracked by the
11072         GC and contain pointers.
11073         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
11074         make the code more readable and eventually use a different GC.
11075
11076 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
11077
11078         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
11079         for out arguments.
11080         
11081 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
11082
11083         * object.c: In release_type_locks(), don't release the cctor lock
11084         if it has already been released. This fixes a crash in the
11085         thread5 test.
11086
11087 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11088
11089         * gc.c, marshal.c, icall.c: register a delegate for finalization
11090         only when the native function pointer has been allocated for it.
11091
11092 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11093
11094         * object.c: cleaned up some code, allocate objects that are
11095         pointer free with the atomic malloc variant. Allocate memory
11096         for static data from the mempool if it's pointer-free.
11097         Allocate the bounds array at the end of the array data, when needed.
11098         * object-internals.h, object.h: move a private function in a private
11099         header.
11100         * class.c: handle missing case in tracking references in fields.
11101
11102 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11103
11104         * class.c, class-internals.h: keep track if a type has
11105         reference fields in either the instance or static fields.
11106
11107 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
11108
11109         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
11110         and renamed to MonoRuntimeInfo. Added fields to store the expected
11111         framework assembly version. Changed mono_get_framework_version and
11112         mono_get_runtime_version for a single mono_get_runtime_info method.
11113         
11114         * assembly.c: Added method to remap system assembly versions to the
11115         current executing runtime version. Removed old mapping code.
11116         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
11117         
11118         * icall.c, reflection.c: Track api changes.
11119
11120 2005-02-06  Miguel de Icaza  <miguel@novell.com>
11121
11122         * loader.c (method_from_memberref): Improve error reporting,
11123         produce the class name instead of the typeref/typedef index. 
11124
11125 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
11126
11127         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
11128
11129 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11130
11131         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
11132         stdcall and charset name mangling.  Reorganize the code and add
11133         some tracing stuff.
11134
11135 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
11136
11137         * monodiet.c: More iters!
11138
11139         * marshal.c: Iter usage.
11140
11141         * icall.c: Iter usage.
11142
11143         * object.c: Use iters.
11144
11145         * debug-helpers.c: More iters
11146
11147 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11148
11149         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
11150         under win32.
11151
11152 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
11153
11154         * mono-debug-debugger.c: use iters
11155
11156         * class.c, class-internals.h: mono_class_setup_events is static
11157         now
11158
11159         * All callers: use iters
11160
11161 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11162
11163         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
11164         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
11165
11166 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
11167
11168         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
11169
11170         * marshal.h: Add prototypes for ldfld/stfld_remote.
11171
11172         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
11173         this is called during startup.
11174         
11175 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
11176
11177         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
11178         MonoThreadsSync struct private in monitor.c. Changed the way
11179         MonoThreadsSync is allocated so it's faster and there is no
11180         need to keep track of it with a finalizer and it uses less memory.
11181         This also finally allows us to allocate mono objects as ptrfree when
11182         there are no reference fields.
11183
11184 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
11185
11186         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
11187         disappearing link to the GC interface and use them to simplify
11188         the gchandles code.
11189
11190 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
11191
11192         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
11193         stfld_remote which call mono_load/store_field_new. This allows methods
11194         calling ldfld/stfld wrappers to be AOTed.
11195
11196         * console-io.c: Include sys/filio.h under solaris.
11197         
11198         * console-io.c: Include curses.h if needed correctly.
11199
11200 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
11201         
11202         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
11203         method->klass as well.
11204
11205         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
11206
11207         * class.c (mono_class_init): Switch on lazy initialization of 
11208         methods.
11209
11210         * class.c (mono_class_get_finalizer): Handle the case when the 
11211         finalizer is inherited.
11212
11213 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11214
11215         * console-io.c: <curses.h> is needed by term.h on solaris.
11216
11217 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
11218
11219         * icall.c, class-internals.h, monodiet.c, class.c: Remove
11220         mono_class_setup_properties where possible. Remove this ftn from
11221         the header file, and make it static.
11222
11223 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
11224
11225         * loader.c: Add missing setup_... call.
11226
11227         * class.c: Add missing setup_... calls.
11228
11229         * class.c (mono_class_init): Switch on lazy initialization of 
11230         the generic vtable.
11231         
11232         * class.c (mono_class_init): Fix generics broken by the recent changes.
11233
11234         * monodiet.c (handle_type): Add missing setup_... calls.
11235
11236         * class.c: Back out garbage in previous patch.
11237         
11238         * class.c: Add missing setup_... calls.
11239
11240         * class.c (mono_class_get_method_from_name_flags): Avoid calling
11241         mono_class_setup_methods () if possible.
11242
11243         * class-internals.h (MonoClass): Add 'has_cctor' flag.
11244
11245         * class-internals.h (MonoCachedClassInfo): New structure.
11246
11247         * class.c: Initialize properties and events fields of MonoClass lazily.
11248
11249         * class.c: Add infrastructure for lazily initializing the methods and
11250         vtable fields of MonoClass. Not yet used.
11251
11252         * class.c (mono_class_get_finalizer): New helper function.
11253
11254         * class.c: Add infrastructure for loading some class related data from
11255         an AOT file.
11256
11257         * object.c: Add infrastructure for initializing the vtable from data
11258         in the AOT file.
11259
11260         * gc.c (run_finalize): Use mono_class_get_finalizer ().
11261
11262         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
11263         appropriate initialization function before accessing parts of the
11264         MonoClass structure.
11265
11266         * marshal.c: Fix warnings.
11267         
11268         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
11269
11270         * mono-debug-debugger.c (get_exception_message): Use 
11271         mono_class_get_method_from_name_flags ().
11272
11273 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
11274
11275         * reflection.c, appdomain.c: Replace a few manual searches that
11276         Zoltan missed. (Paolo approved this part of my initial patch).
11277
11278 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
11279
11280         * profiler.c: disable recording statistical events at report time.
11281
11282 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11283
11284         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
11285         to byteswap arrays of enum values, too (bug #72080).
11286
11287 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
11288
11289         * appdomain.c (set_domain_search_path): Allow this to be called if
11290         domain->setup is not yet set.
11291
11292         * loader.c (mono_method_get_index): New helper function.
11293
11294         * loader.c reflection.c: Use mono_method_get_index ().
11295
11296         * class.c (mono_class_get_method_from_name_flags): New helper method.
11297
11298         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
11299         this.
11300
11301         * class.c (mono_class_get_cctor): New helper method.
11302
11303         * string-icalls.c object.c class.c marshal.c reflection.c: Use
11304         mono_class_get_method () to look up methods.
11305
11306 2005-02-01  Miguel de Icaza  <miguel@novell.com>
11307
11308         * console-io.c: Fix the build, this should work on Windows.
11309
11310 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
11311
11312         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
11313         be set to null to keep things valid
11314
11315 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11316
11317         * icall.c: added Console 2.0 icalls.
11318         * Makefile.am: added console-io.[ch]
11319         * console-io.[ch]: internal calls for Console 2.0 API.
11320
11321 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11322
11323         * class.c: make sure we consider all the interfaces
11324         when calculating max_interface_id (bug found by
11325         Jeroen Frijters running ikvm).
11326
11327 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
11328
11329         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
11330         valuetype fields to null.
11331
11332         * object.c (set_value): Ditto. Fixes #71669.    
11333
11334 2005-01-31  Martin Baulig  <martin@ximian.com>
11335
11336         * metadata.c (mono_metadata_has_generic_params): New public
11337         function; checks whether something is a generic method.
11338
11339 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
11340
11341         * appdomain.c: fix infinite recursion when adding assemblies.
11342
11343 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
11344
11345         * object.c: Fix small typo to return all items for Environment.
11346         GetCommandLineArgs.
11347
11348 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11349
11350         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
11351         reflection.c: more domain and assembly-unload related fixes
11352         and memory leaks plugs.
11353
11354 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
11355
11356         * 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.
11357
11358 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
11359
11360         * loader.c (mono_method_signature): Make this method lazy
11361         (mono_get_method_from_token): Don't computate the signature here.
11362
11363         Doing this saves quite a bit of memory. I got 90 kb on starting up
11364         monodoc. It should also save some disk reads on startup.
11365
11366         * *: MonoMethod->signature might be NULL now. You *MUST* use
11367         mono_method_signature.
11368
11369 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
11370
11371         * object.c (mono_runtime_get_main_args): Return an array from the
11372         current domain here. Fixes #71938.
11373
11374 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
11375
11376         * monitor.c: formatting changes to comply with the
11377         mono coding style and remove #ifdefs from the code.
11378
11379 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11380
11381         * metadata.c, private.h: remove some unneeded data
11382         and use a more compact representation for table schemas.
11383
11384 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
11385
11386         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
11387         to get a better distribution in hash tables.
11388         * *.c: use mono_aligned_addr_hash() where appropriate.
11389         * assembly.c: make var static.
11390
11391 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
11392
11393         * domain-internals.h: Put MonoJitInfo on a diet.
11394
11395         * domain.c: Fix a warning.
11396
11397 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11398
11399         * gc.c: rework the gc handles code to reuse handles
11400         when freed.
11401
11402 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
11403
11404         * domain.c: fixed long standing bug in mono_string_equal() which
11405         was brought to light with the ldstr changes.
11406
11407 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
11408
11409         * reflection.c: Remove warning by adding missing include for marshal.h
11410
11411 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11412
11413         * domain.c, object.c: change the ldstr_table to hold
11414         MonoString* as keys: makes the runtime isinterned lookup
11415         faster and simplifies memory management.
11416
11417 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
11418  
11419         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
11420         possible to add imperative security checks before calling the icall.
11421         * reflection.c: Return security attributes on the original MonoMethod
11422         (and not the wrapped one). This fix permissions on icalls.
11423
11424 2005-01-25  Dick Porter  <dick@ximian.com>
11425
11426         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
11427         the check for mktime() support actually test the mktime() return
11428         value.  "Fixes" bug 71682, though the output is still different to
11429         MS.
11430
11431 2005-01-25  Martin Baulig  <martin@ximian.com>
11432
11433         * class.c (mono_class_is_assignable_from): Make this work for
11434         generic instances.
11435
11436 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
11437
11438         * marshal.c (mono_string_utf8_to_builder)
11439         (mono_string_builder_to_utf16): We might not have ownership of the
11440         string. In thise case, we need to create a new buffer.
11441
11442         * object-internals.h (mono_stringbuilder_capacity): sb->str might
11443         be null, in which case, use the default capacity.
11444
11445 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11446
11447         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
11448         GC events to the profiler.
11449
11450 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11451
11452         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
11453         if you don't want the GC to run.
11454
11455 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
11456
11457         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
11458         start providing a GC API and keeping different implementations in
11459         their own file.
11460         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
11461
11462 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
11463
11464         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
11465         mmap rather than allocating a huge buffer.
11466         (mono_debug_close_mono_symbol_file): Free the buffer allocated
11467         above.
11468
11469 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
11470
11471         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
11472         and CheckExecutionRights.
11473         * reflection.c|h: Keep the index of the declarative security to be 
11474         used, instead of the pointer, when AOT compiler is used. Also add 
11475         class initialization when requesting demands.
11476         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
11477         CheckExecutionRights. Both properties are now FALSE by default, and
11478         unmodifiable, unless the --security option is used.
11479
11480 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11481
11482         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
11483         reflection.c: properly refcount images and assemblies, many leaks fixed.
11484
11485 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11486
11487         * threadpool.c: increase the timeout for threads in the thread pool to
11488         10s.  Fixes bug #67159.
11489
11490 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
11491
11492         * class-internals.h: Sun's compiler insists on explicit
11493         signed on bit fields to handle then correctly.
11494
11495 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
11496
11497         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
11498         Make the size of the array fit only the number of invalid path
11499         chars that we have.
11500
11501         * class.c (_mono_class_get): Improve the error reporting when a
11502         class referenced is not found, to assist debugging. 
11503
11504 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
11505
11506         * threads.c: fix off-by-one error.
11507         * domain.c: free data allocated in the domain.
11508
11509 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
11510
11511         * reflection.c (mono_method_body_get_object): Fill out exception info
11512         as well.
11513
11514         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
11515         structure.
11516         
11517 2005-01-19  Martin Baulig  <martin@ximian.com>
11518
11519         * loader.c (mono_get_method_constrained): Make this work again.
11520
11521 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
11522
11523         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
11524         guint16 to match the managed side.
11525
11526         * reflection.c (mono_reflection_body_get_object): Fill out local
11527         variables array.
11528
11529         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
11530         as well.
11531
11532         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
11533         'local_var_sig_token'.
11534
11535 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
11536
11537         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
11538         System.Drawing.
11539
11540         * reflection.c (mono_method_body_get_object): Handle abstract and
11541         runtime methods.
11542
11543 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
11544
11545         * marshal.c, loader.c, class-internals.h, reflection.c:
11546         store the emthod data for a wrapper in an array instead of a list.
11547
11548 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
11549
11550         * marshal.c: change the code to allocate memory more
11551         conservatively for method wrappers.
11552
11553 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
11554
11555         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
11556         fields from MonoClass to the marshal info structure where they belong.
11557
11558 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11559
11560         * class.c, object.c, class-internals.h, marshal.c: rearrange
11561         some fields and tweak some types to lower memory usage.
11562
11563 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
11564
11565         * threads.c (signal_thread_state_change): Handle the case when the
11566         target thread is the current thread.
11567
11568         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
11569
11570         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
11571         emit_ptr_to_object_conv. 
11572
11573         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
11574         marshalling. Fixes #71352.
11575
11576 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11577
11578         * metadata.h, blob.h: move table enum to blob.h so it can be included
11579         in any header.
11580         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
11581         cut the size of MonoImage/MonoDynamicImage.
11582
11583 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
11584
11585         * profiler.c (mono_profiler_install_simple): Fix default arguments.
11586
11587 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
11588
11589         * reflection.c, reflection.h, icall.c: add a function to check
11590         if an attribute type is defined for a metadata object.
11591
11592 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
11593
11594         * object-internals.h: Added some needed fields from StringBuilder class.
11595         * marshal.c: Set the maxCapacity when creating a StringBuilder.
11596
11597 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
11598
11599         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
11600         threads before shutting down the runtime.
11601
11602         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
11603
11604 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11605
11606         * object-internal.h, threads.c: implement stacksize and 
11607         parameterized thread start functionality (requires
11608         matching corlib). Marked broken code for later removal.
11609
11610 2005-01-12  Martin Baulig  <martin@ximian.com>
11611
11612         * class-internals.h (MonoGenericClass): Moved the `initialized'
11613         flag to MonoDynamicGenericClass, removed `init_pending'.
11614         (MonoGenericInst): Added `is_reference' flag.
11615
11616 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
11617
11618         * reflection.c (mono_image_create_pefile): Only set the pe_offset
11619         inside the MSDOS header. Fixes #71201.
11620
11621         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
11622         gc thread.
11623         (mono_domain_finalize): Ditto.
11624
11625 2005-01-12  Martin Baulig  <martin@ximian.com>
11626
11627         * class.c (mono_get_shared_generic_class): Use the cache for
11628         non-dynamic generic classes.
11629
11630         * class-internals.h (mono_class_create_generic_2): Removed
11631         function prototype, this function is now static inside class.c.
11632
11633         * class.c (mono_class_create_generic_2): Made this static, only
11634         call it from mono_class_init() and mono_class_setup_parent().
11635         (collect_implemented_interfaces_aux): Call mono_class_init() on
11636         the interfaces we collect.
11637         (mono_class_setup_vtable): Call mono_class_init (class->parent).
11638
11639 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
11640
11641         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
11642         it a real thread handle.
11643
11644         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
11645         MonoJitExceptionInfo, since each catch clause needs its own variable.
11646         
11647 2005-01-11  Dick Porter  <dick@ximian.com>
11648
11649         * image.c (mono_pe_file_open): New variant on mono_image_open()
11650         that does not set up the CLI metadata; used for FileVersionInfo so
11651         it can get the data for windows binaries too.
11652         
11653         * process.c (process_read_string_block): Don't read off the end of
11654         the StringTable block.
11655
11656         These both fix bug 70766.
11657
11658 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
11659
11660         * gc.c: set some fields to NULL at GC cleanup time.
11661         * threads.c: if we quit the main thread, call exit ().
11662
11663 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
11664
11665         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
11666
11667 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
11668
11669         * threads.h, threads.c, object.c: added accessor and settor for
11670         main_thread. Handle it specially when exiting from it: wait
11671         for other foreground threads to exit.
11672
11673 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
11674
11675         * process.c, verify.c: remove some bloat.
11676
11677 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
11678
11679         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
11680         the calling convention to cdecl under win32.
11681
11682 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
11683
11684         * object.c (mono_object_get_size): New function to get the size of
11685         an object instance.
11686
11687         * profiler.c (simple_allocation): Use above.
11688
11689 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
11690
11691         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
11692         ves_icall_System_AppDomain_getRootDomain (as it's not required to
11693         get an appdomain by it's id and we can't assume the root's id is 0).
11694         * domain-internals.h: Change the function prototype to match.
11695         * icall.c: Change the icall table for AppDomain.
11696
11697 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
11698
11699         * locales.c (string_invariant_compare_char): Only compute
11700         GUnicodeTypes in the case where we need them.  Test for ordinality
11701         first and return if so.
11702
11703         From the commit:
11704
11705                 /*
11706                  * FIXME: here we must use the information from c1type and c2type
11707                  * to find out the proper collation, even on the InvariantCulture, the
11708                  * sorting is not done by computing the unicode values, but their
11709                  * actual sort order.
11710                  */
11711
11712 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
11713
11714         * loader.c: for P/Invoke methods, allow the "Internal" shared
11715         library name to refer to the calling process symbol namespace.
11716
11717 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
11718
11719         * Makefile.am: Add the security manager to the build.
11720         * security-manager.c|h: New. Initialization of the security manager.
11721
11722 2005-01-07  Dick Porter  <dick@ximian.com>
11723
11724         * threads.c: 
11725         * monitor.c: Update thread state during Monitor and WaitHandle
11726         waits.  Fixes bug 71031.
11727
11728 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
11729
11730         * reflection.c (property_encode_signature): Correctly handle when the
11731         property has no methods.
11732
11733 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
11734
11735         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
11736         
11737         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
11738         fields from mb, not rmb. Fixes #71017.
11739
11740         * marshal.c (emit_ptr_to_str_conv): Add support for 
11741         ByValTStr -> string conversion. Fixes #71015.
11742
11743         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
11744
11745         * mempool.c (mono_mempool_contains_addr): New helper function.
11746
11747 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
11748
11749         * metadata.c (mono_metadata_compute_size): Fix size calculation of
11750         HasSematics encoded fields.
11751         
11752         * metadata.c (mono_type_to_unmanaged): Improve error message for 
11753         invalid string marshalling.
11754
11755         * metadata.c: Fix warnings.
11756         
11757 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11758
11759         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
11760         profiler support.
11761
11762 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
11763
11764         * domain.c object.c domain-internals.h: Revert part of r38077 since the
11765         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
11766         tests.
11767
11768 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
11769
11770         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
11771         so methods containing these can be AOTed.
11772
11773 2005-01-03  Martin Baulig  <martin@ximian.com>
11774
11775         * loader.c (find_method): Removed the hack for generic instances.
11776         (method_from_memberref): If our parent is a generic instance, pass
11777         its generic type definition to find_method() and then inflate the
11778         method.
11779         (mono_get_method_constrained): Pass the generic type definition to
11780         find_method() and inflate the method later.
11781
11782         * class-internals.h (MonoStats): Added `generic_class_count'.
11783
11784         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
11785         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
11786
11787         * reflection.c (mono_custom_attrs_from_params): Don't ignore
11788         generic type definitions.
11789
11790 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
11791
11792         * loader.c icall.c: Fix warnings.
11793
11794 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
11795
11796         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
11797         blittable types. Fixes #70864.
11798
11799 2004-12-29  Martin Baulig  <martin@ximian.com>
11800
11801         * icall.c
11802         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
11803
11804         * reflection.c (mono_method_get_object): Create a
11805         "System.Reflection.MonoGenericMethod" for inflated methods; don't
11806         call mono_get_inflated_method().
11807
11808         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
11809
11810 2004-12-27  Martin Baulig  <martin@ximian.com>
11811
11812         * class-internals.h (MonoMethod): Added `is_inflated' flag.
11813         (MonoMethodInflated): Added `inflated' field.
11814
11815         * class.c (mono_class_inflate_generic_method): Don't really
11816         inflate the method here; just set the `is_inflated' flag in the
11817         MonoMethod.
11818         (mono_class_get_inflated_method): Actually inflate the method here
11819         if it's not already inflated; we use the MonoMethodInflated's new
11820         `inflated' field as a cache.
11821
11822 2004-12-26  Martin Baulig  <martin@ximian.com>
11823
11824         * class.c
11825         (inflate_generic_class): Moved some code out of inflate_generic_type().
11826         (mono_class_inflate_generic_method): If we're already inflated,
11827         inflate the context and use the declaring method; ie. make sure
11828         the declaring method of an inflated method is always the generic
11829         method definition.
11830         (mono_class_create_from_typedef): Create
11831         `class->generic_container->context->gclass'.
11832
11833 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
11834
11835         * metadata-internals.h, marshal.c, reflection.c: More
11836         MonoGHashTable->GHashTable.
11837
11838         * domain-internals.h, class.c: Change MonoGHashTable's into
11839         GHashTables for some cases where no gc stuff is used
11840
11841         All users: update apis
11842
11843 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
11844
11845         * metadata.c (builtin_types): Make this `const'. Makes this get
11846         put into the shareable section.
11847         (mono_metadata_init): Casts to make gcc happy.
11848
11849 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
11850
11851         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
11852
11853 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
11854
11855         * icall.c: Added an internal call to retrieve the position and length
11856         of assembly-level declarative security attributes (RequestMinimum, 
11857         RequestOptional and RequestRefuse). This is used by the Assembly class
11858         to re-create the corresponding permission sets.
11859
11860 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
11861
11862         * marshal.c: fix the stelemref wrapper to be type correct
11863         (and faster).
11864
11865 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
11866
11867         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
11868         to do key & 0x7fffffff. Hashtable already does this. It just
11869         results in longer code.
11870
11871 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
11872
11873         * appdomain.c: Bump corlib version.
11874         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
11875         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
11876         * reflection.c|h: Add functions to get declarative security infos
11877         (blob position and length) for assemblies, classes and methods.
11878
11879 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
11880
11881         * reflection.c: sort the constant table (bug #70693).
11882
11883 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
11884
11885         * object-internals.h, threads.c, domain.c: add accessors for
11886         the MonoThread and MonoDomain tls keys.
11887
11888 2004-12-18  Martin Baulig  <martin@ximian.com>
11889
11890         * class.c (inflate_generic_type): If we're inflating a generic
11891         instance, set `ngclass->context->container = context->container';
11892         ie. the container we inflated into.
11893
11894         * metadata.c (mono_metadata_parse_generic_param): Reflect above
11895         inflate_generic_type() changes.
11896
11897 2004-12-17  Martin Baulig  <martin@ximian.com>
11898
11899         * class-internals.h
11900         (MonoGenericClass): Replaced `MonoType *generic_type' with
11901         `MonoClass *generic_class'.  Removed `dynamic_info'; if
11902         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
11903         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
11904
11905 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
11906
11907         * exception.c (mono_exception_from_token): New helper function.
11908
11909 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
11910
11911         * assembly.c (mono_assembly_load_with_partial_name): Call 
11912         mono_assembly_loaded before invoking the preload hooks. Fixes
11913         #70564.
11914
11915         * object-internals.h (MonoThread): Change culture_info and 
11916         ui_culture_info into an array.
11917
11918         * threads.c: Cache culture info objects from more than one appdomain.
11919
11920         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
11921         current UI culture.
11922
11923 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
11924
11925         * threads.h threads.c appdomain.c: Clear the culture_info field of
11926         all threads during unloading if they point to an object in the dying
11927         appdomain.
11928
11929 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
11930
11931         * culture-info.h (TextInfoEntry): New struct
11932         * object-internals.h: sync with managed
11933         * locales.c: fill the `text_info_data' field
11934         * culture-info-tables.h: update
11935
11936 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
11937
11938         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
11939         collector.
11940
11941 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
11942
11943         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
11944         (ves_icall_ModuleBuilder_getMethodToken): Ditto
11945
11946 2004-12-12  Martin Baulig  <martin@ximian.com>
11947
11948         * mono-debug-debugger.c (write_type): If we're an enum and the
11949         builtin types have already been initialized, call mono_class_init().
11950
11951 2004-12-11  Martin Baulig  <martin@ximian.com>
11952
11953         * metadata.c (mono_metadata_load_generic_params): Added
11954         `MonoGenericContainer *parent_container' argument; automatically
11955         compute `container->is_method'; pass the correct owner to
11956         get_constraints().      
11957
11958         * reflection.c (compare_genericparam): Sort the GenericParam table
11959         according to increasing owners. 
11960
11961 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
11962
11963         * profiler.c: allow disabling the default profiler.
11964
11965 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
11966
11967         * decimal.c, icall.c: allow disabling System.Decimal support.
11968
11969 2004-12-09  Marek Safar <marek.safar@seznam.cz>
11970
11971         * reflection.c: Add support for null attribute arguments.
11972
11973 2004-12-09  Martin Baulig  <martin@ximian.com>
11974
11975         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
11976         names to get rid of compiler warnings.
11977
11978 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
11979
11980         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
11981         mono_marshal_load_type_info (). Fixes #69625.
11982         (mono_marshal_get_ptr_to_struct): Likewise.
11983
11984 2004-12-08  Martin Baulig  <martin@ximian.com>
11985
11986         * mono-debug.h: Bumped version number to 47.
11987
11988         * mono-debug-debugger.c
11989         (mono_debugger_event_handler, mono_debugger_event): Take two
11990         guint64 arguments insteed of a gpointer and a guint32.  
11991
11992 2004-12-08  Martin Baulig  <martin@ximian.com>
11993
11994         * debug-mono-symfile.h
11995         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
11996         `address' to `native_offset'.
11997
11998 2004-12-08  Martin Baulig  <martin@ximian.com>
11999
12000         * class.c (mono_class_create_from_typespec): Only inflate if we
12001         either have `context->gclass' or `context->gmethod'.
12002
12003 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
12004
12005         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
12006
12007         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
12008
12009         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
12010
12011         * reflection.c (mono_assembly_get_object): Remove the workaround put
12012         in for the release.
12013         
12014         * appdomain.c: Use the corlib_internal field from MonoAssembly.
12015
12016         * appdomain.c: Bump corlib version.
12017
12018         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
12019         be visible in other appdomains.
12020
12021 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
12022
12023         * threads.c: Interlocked inc and dec for longs were messed up,
12024         use a KISS based impl for this. Fixes 70234
12025
12026 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
12027
12028         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
12029
12030 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12031
12032         * icall.c: fix to follow policy not to allow struct
12033         arguments in icalls.
12034
12035 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12036
12037         * process.c: make the patch that handles spaces in file paths work
12038         on mono/windows too.
12039
12040 2004-12-06  Martin Baulig  <martin@ximian.com>
12041
12042         * class.c (mono_class_create_generic): Call
12043         mono_class_setup_supertypes() if we're dynamic.
12044         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
12045
12046 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
12047
12048         * object-internals.h: Add new fields to MonoThread.
12049
12050         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12051
12052         * icall.c threads-types.h threads.c: Add new icalls.
12053
12054         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
12055
12056         * object-internals.h (MonoReflectionAssembly): Sync object layout with
12057         managed side.
12058
12059         * appdomain.c: Bump corlib version.
12060
12061         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
12062         internal assemblies. Fixes #69181.
12063
12064 2004-12-05  Martin Baulig  <martin@ximian.com>
12065
12066         * class.c (mono_class_inflate_generic_signature): Make this a
12067         no-op if `context' is NULL or we don't have any type parameters;
12068         also copy `sentinelpos'.        
12069
12070 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
12071
12072         * image.c: Add unbox_wrapper_cache.
12073
12074         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
12075
12076         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
12077         function generator.
12078         
12079         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
12080         Fixes #70173.
12081
12082         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
12083         
12084 2004-12-04  Martin Baulig  <martin@ximian.com>
12085
12086         * loader.c (mono_method_get_signature_full): New public function;
12087         like mono_method_get_signature(), but with an additional
12088         `MonoGenericContext *' argument.
12089
12090         * class.c (mono_class_inflate_generic_signature): Formerly known
12091         as inflate_generic_signature(); make this public.
12092
12093 2004-12-04  Martin Baulig  <martin@ximian.com>
12094
12095         * metadata.c
12096         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
12097         instead of a `MonoGenericContainer *'.  
12098         (mono_metadata_parse_array_full): Likewise.
12099         (mono_metadata_parse_signature_full): Likewise.
12100         (mono_metadata_parse_method_signature_full): Likewise.
12101         (mono_metadata_parse_generic_inst): Likewise.
12102         (mono_metadata_parse_generic_param): Likewise.
12103         (mono_metadata_parse_mh_full): Likewise.
12104         (mono_type_create_from_typespec_full): Likewise.
12105
12106 2004-12-03  Martin Baulig  <martin@ximian.com>
12107
12108         * class-internals.h (MonoGenericContainer): Replaced the
12109         `MonoGenericContext * pointer with a `MonoGenericContext'
12110         structure and made it the first element.
12111
12112 2004-12-03  Martin Baulig  <martin@ximian.com>
12113
12114         * class.c
12115         (inflate_generic_type): Set the `context->container' when creating
12116         a new MonoGenericContext.
12117         (mono_class_inflate_generic_method): Likewise.
12118         (mono_class_create_from_typespec): Just use `context->container'
12119         to get the container.
12120
12121         * loader.c (method_from_methodspec): Set `context->parent' from
12122         `context->container' - and if that's a method container, use its
12123         parent.  Also set the `context->container' when creating a new
12124         MonoGenericContext.
12125         (mono_get_method_from_token): Use just `context->container' to get
12126         the container.
12127
12128         * metadata.c (do_mono_metadata_parse_generic_class): Also set
12129         `gclass->context->container'.
12130
12131         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
12132         the `context->container' when creating a new MonoGenericContext.
12133
12134 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
12135
12136         * reflection.c (compare_genericparam): Sort params with identical
12137         owner by their number. Fixes gen-111 on sparc.
12138
12139 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
12140
12141         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
12142         around the domain changes.
12143
12144         * appdomain.c (mono_domain_unload): Handle the case when the thread
12145         calling Unload is itself being aborted during unloading. Fixes #70022.
12146
12147         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
12148
12149         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
12150         checkpoint_func as an icall so it gets a wrapper.
12151         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
12152         in the cross-appdomain wrappers too.
12153
12154         * threads.c (mono_thread_has_appdomain_ref): Make this public.
12155
12156         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
12157
12158         * reflection.c: Fix some memory leaks.
12159         
12160 2004-12-02  Martin Baulig  <martin@ximian.com>
12161
12162         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
12163
12164         * metadata.c (generic_class_cache): New static hashtable.
12165         (mono_metadata_lookup_generic_class): New public method.
12166
12167 2004-12-02  Martin Baulig  <martin@ximian.com>
12168
12169         * class.c (mono_class_create_from_typedef): Call
12170         mono_class_setup_parent() and mono_class_create_mono_type() before
12171         parsing the interfaces.
12172
12173 2004-12-02  Martin Baulig  <martin@ximian.com>
12174
12175         * metadata.c (generic_inst_cache): New static hashtable.
12176         (mono_metadata_lookup_generic_inst): New public function.
12177         (mono_metadata_inflate_generic_inst): New public function.
12178         (mono_metadata_parse_generic_inst): New public function.
12179         (do_mono_metadata_parse_generic_class): Use the new
12180         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
12181         since this'll also use the cache.
12182
12183         * reflection.c (mono_reflection_bind_generic_method_parameters):
12184         Use mono_metadata_lookup_generic_inst() to use the new cache.
12185
12186         * class.c (inflate_mono_type): Use
12187         mono_metadata_inflate_generic_inst() to inflate a generic
12188         instance; this'll also use the new cache.
12189
12190         * loader.c (method_from_methodspec): Use
12191         mono_metadata_parse_generic_inst() and
12192         mono_metadata_inflate_generic_inst() rather than parsing it
12193         manually, so we can use the new cache.
12194
12195 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
12196
12197         * threads.c (wait_for_tids): Do not incorrectly free threads when 
12198         the wait times out.
12199
12200 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
12201
12202         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
12203         iter->args based on whether parameters are passed in registers (i.e.
12204         MONO_ARCH_REGPARMS is defined)
12205
12206 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
12207
12208         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
12209         the exception message. Fixes #70070.
12210         (method_from_methodspec): Fix warnings.
12211
12212 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12213
12214         * process.c: (complete_path) return the path quoted
12215
12216 2004-12-01  Martin Baulig  <martin@ximian.com>
12217
12218         * class-internals.h (MonoGenericInst): New structure.
12219         (MonoGenericClass): Replaced `type_argc', `type_argv' and
12220         `is_open' with `MonoGenericInst *inst'.
12221         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
12222         `is_open' with `MonoGenericInst *inst'.
12223
12224 2004-11-30  Martin Baulig  <martin@ximian.com>
12225
12226         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
12227
12228         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
12229         to `generic_class_cache'.
12230
12231         * metadata.c
12232         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
12233         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
12234         (mono_generic_inst_is_valuetype): Renamed to
12235         mono_generic_class_is_valuetype().
12236
12237         * class-internals.h
12238         (MonoGenericInst): Renamed to MonoGenericClass.
12239         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
12240         (MonoClass): Renamed `generic_inst' to `generic_class'.
12241         (MonoGenericContext): Renamed `ginst' to `gclass'.
12242
12243         * object-internals.h
12244         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
12245
12246         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
12247         mono_reflection_generic_class_initialize().
12248
12249         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
12250         now known as "System.Reflection.MonoGenericClass".
12251         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
12252
12253 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
12254
12255         * class-internals.h: Added a flag field to MonoClass to cache the
12256         declarative security attributes actions associated with the class.
12257         * domain-internals.h: Added booleans to MonoJitInfo to cache the
12258         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
12259         applicable to the JITted method.
12260         * reflection.c|h: Added functions to extract (as flags) which security
12261         actions are available (declaratively) for a method, class or assembly.
12262         * metadata.c|h: Added functions to search the declarative security
12263         table in the metadata.
12264         
12265 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
12266
12267         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
12268         EXPORTEDTYPES are already in the class name cache, so there is no
12269         need to add extra code here to look at them. Just removes a bit of
12270         cruft.
12271
12272         (ves_icall_System_Environment_get_TickCount): No need for #if
12273         WINDOWS. We already have the code in io-layer.
12274
12275 2004-11-28  Martin Baulig  <martin@ximian.com>
12276
12277         * loader.c
12278         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
12279         Fixes gen-112.cs.
12280
12281 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
12282
12283         * assembly.c (do_mono_assembly_open): Instead of having a
12284         conditional WITH_BUNDLE, incorporate support for bundles here, by
12285         having a global `bundles' variable holding a pointer to the actual
12286         bundles. 
12287
12288         (mono_register_bundled_assemblies): New API call used by the
12289         bundle code. 
12290
12291         See mkbundle.1 for details.
12292         
12293 2004-11-27  Martin Baulig  <martin@ximian.com>
12294
12295         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
12296         the vtable for generic methods.
12297
12298 2004-11-26  Martin Baulig  <martin@ximian.com>
12299
12300         * metadata.c
12301         (mono_metadata_generic_method_hash): New public function.
12302         (mono_metadata_generic_method_equal): Likewise.
12303
12304         * class-internals.h
12305         (MonoGenericContainer): Added `GHashTable *method_hash'.
12306
12307         * reflection.c (ReflectionMethodBuilder): Added
12308         `MonoGenericContainer *generic_container'.
12309         (reflection_methodbuilder_to_mono_method): Don't create a new
12310         MonoGenericContainer each time we're called.
12311         (mono_reflection_bind_generic_method_parameters): Use
12312         `container->method_hash' to cache the results so we don't create a
12313         different method if we're called several times with the same
12314         arguments.
12315
12316         * loader.c (method_from_methodspec): Use the new
12317         `container->method_hash' here, too.
12318
12319 2004-11-26  Martin Baulig  <martin@ximian.com>
12320
12321         * class.c (inflate_generic_signature): Correctly compute
12322         `res->has_type_parameters'.
12323         (mono_class_vtable): Use the `has_type_parameters' flag to
12324         determine whether we're a generic method.
12325
12326         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
12327
12328 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
12329
12330         * object.c (mono_runtime_run_main): Fix a small memory leak.
12331
12332 2004-11-25  Martin Baulig  <martin@ximian.com>
12333
12334         * class.c (set_generic_param_owner): Fixed the loop.
12335
12336 2004-11-25  Martin Baulig  <martin@ximian.com>
12337
12338         * object.c (mono_class_vtable): Don't create any JIT wrappers for
12339         generic methods.
12340
12341 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
12342
12343         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
12344         names. Fixes #69787.
12345
12346 2004-11-24  Martin Baulig  <martin@ximian.com>
12347
12348         * class.c (mono_class_create_generic_2): If we don't have a
12349         `ginst->parent', inflate `gklass->parent' to get our parent.
12350
12351 2004-11-24  Martin Baulig  <martin@ximian.com>
12352
12353         * reflection.c (compare_genericparam): Correctly sort the
12354         GenericParam table; fixes #69779.
12355
12356 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
12357
12358         * reflection.c: When writing a PE file, don't create a huge
12359         buffer in memory. Just write the arrays we have to the file.
12360         This reduces memory usage.
12361
12362         * metadata-internals.h: MonoDynamicStream pefile is no longer used
12363         globally.
12364
12365 2004-11-17  Martin Baulig  <martin@ximian.com>
12366
12367         * class.c (mono_class_init): Don't setup `class->parent' for
12368         dynamic instances; moved this to mono_class_generic_2().
12369         (mono_class_create_generic): Also set `klass->inited' for dynamic
12370         generic instances.
12371         (mono_class_create_generic_2): Don't do anything for dynamic
12372         generic instances.  Set `klass->parent' here and also call
12373         mono_class_setup_parent() here. 
12374
12375         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
12376         `MonoType *parent' argument; set `ginst->parent' before calling
12377         mono_class_create_generic_2(), so we set the correct parent.
12378
12379 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
12380
12381         * reflection.c: allow getting attributes from ModuleBuilder
12382         (used by ikvm).
12383
12384 2004-11-17  Martin Baulig  <martin@ximian.com>
12385
12386         * class.c (mono_class_create_from_typedef): If a type parameter is
12387         inherited from an outer class, set its owner to that class.
12388
12389 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
12390
12391         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
12392           for (int*) written size. This fixes bug #69592.
12393
12394 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
12395
12396         * icall.c: Added IsAuthenticodePresnet internal call.
12397         * image.c|h: New function that check a MonoImage for an Authenticode
12398         signature in the certificate PE data directory.
12399         * security.c|h: New internal call to ask the runtime if an 
12400         Authenticode signature seems referenced in the PE header.
12401
12402 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
12403
12404         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
12405
12406         * reflection.c (mono_image_create_pefile): Free the assembly streams
12407         after writing out the assembly file.
12408
12409         * object.c (mono_runtime_run_main): Fix small memory leak.
12410
12411         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
12412         property access modifiers. Fixes #69389.
12413
12414 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
12415
12416         * domain.c, object.c, object-internals.h, domain-internals.h,
12417         object.h, marshal.c: keep dynamic code info per domain.
12418
12419 2004-11-15  Martin Baulig  <martin@ximian.com>
12420
12421         * class.c (mono_type_get_name_recurse): Put type arguments in
12422         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
12423         see bug #68387.
12424
12425 2004-11-15  Martin Baulig  <martin@ximian.com>
12426
12427         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
12428         (mono_class_setup_vtable): When computing `the_cname' for a
12429         generic instance, don't include the namespace since we'd otherwise
12430         add it twice.
12431
12432 2004-11-15  Martin Baulig  <martin@ximian.com>
12433
12434         * class.c (mono_class_create_generic): Changed return type to void.
12435         (mono_class_create_generic_2): New public function; setup
12436         `class->method', `class->field' and `class->interfaces' here
12437         instead of in mono_class_init().
12438
12439         * class.h (mono_class_create_generic): Moved to class-internals.h.
12440
12441 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
12442
12443         * reflection.c (mono_image_create_pefile): take a file HANDLE.
12444         rather than writing to memory, write to this file. Right now,
12445         we are just writting into a buffer, and copying that. However
12446         we can avoid the buffer later.
12447
12448         (mono_dynamic_stream_reset): new function
12449
12450         * icall.c, object-internals.h: update for the above.
12451
12452 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
12453
12454         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
12455         have been using gc'd memory. First it is slower, unlikely
12456         the comment in the source code said, secondly, it increases
12457         our footprint to do it in the gc.
12458
12459         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
12460         the method so that it does not have to copy to managed code.
12461
12462 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
12463
12464         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
12465
12466 2004-11-12  Martin Baulig  <martin@localhost>
12467
12468         * reflection.c (mono_image_create_token): Allow generic method
12469         definitions here, since they may appear in an `.override'; see
12470         gen-98/gen-99 for an example.
12471
12472 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
12473
12474         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
12475         #69365.
12476
12477         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
12478         descriptive.
12479
12480 2004-11-11  Martin Baulig  <martin@ximian.com>
12481
12482         * class.c (mono_class_setup_vtable): In an explicit interface
12483         implementation, the method name now includes the arity.
12484
12485 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
12486
12487         * object.c (mono_array_full_copy): Fix warning.
12488
12489 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
12490
12491         * appdomain.c: Removed look_for_method_by_name(). Use the new method
12492         mono_class_get_method_from_name() instead.
12493         
12494         * class-internals.h: Added two new types of wrappers. 
12495         Added MonoRemotingTarget enum. Added new trampoline function type, which
12496         takes an additional MonoRemotingTarget value as parameter, so it is
12497         possible to request a trampoline for a specific target.
12498         
12499         * class.c: Added new mono_class_get_method_from_name() method.
12500         
12501         * class.h: In MonoRemoteClass, we can have now to vtables, one for
12502         general remoting sinks and one specific for cross domain calls.
12503         
12504         * debug-helpers.c: Added new wrapper names.
12505         
12506         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
12507         of a remote class.
12508         
12509         * image.c: Porperly delete value objects form the remoting invoke hashtable.
12510         
12511         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
12512         with several other methods (mono_marshal_get_xappdomain_dispatch,
12513         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
12514         and others) can generate a fast remoting wrapper for cross domain calls.
12515         More information can be found in docs/remoting.
12516         Other changes: Removed mono_find_method_by_name, and used
12517         mono_class_get_method_from_name instead.
12518         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
12519         is stored in the remoting invoke hashtable.
12520         
12521         * marshal.h: published the new method for getting the xdomain wrapper,
12522         and also added a method for getting the adequate wrapper for a given
12523         method and target.
12524         
12525         * object-internals.h, object.c: Added a couple of methods for capying and
12526         cloning arrays.
12527         Modified mono_install_remoting_trampoline, which takes the new remoting
12528         trampoline that has a remoting target as parameter.
12529         mono_class_proxy_vtable now also takes a remoting target as parameter, and
12530         will return the most suitable vtable for the target.
12531         Added mono_remote_class_vtable, which returns the vtable of a remote class
12532         (which can be the normal remoting vtable or the xdomain vtable).
12533         
12534         * threads.c: the xdomain invoke and dispatch wrappers must also be
12535         protected against interruptions.
12536
12537 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12538
12539         * icall.c: use memmove in BlockCopyInternal when the source and
12540         destination arrays are the same.
12541
12542 2004-11-09  Martin Baulig  <martin@ximian.com>
12543
12544         * class-internals.h (MonoGenericContainer): Removed `method' and
12545         `signature', replaced them with `is_method' and `is_signature'
12546         flags.  Added `context'.
12547
12548         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
12549         instead of a `MonoGenericContainer *'.
12550
12551         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
12552         for dynamic type parameters.
12553         (mono_metadata_load_generic_params): Setup `container->context'.
12554
12555         * reflection.c (mono_reflection_setup_generic_class): Setup
12556         `tb->generic_container->context'.
12557         (do_mono_reflection_bind_generic_parameters): Use
12558         mono_class_inflate_generic_type() to correctly inflate types,
12559         rather than using our own hack just for MONO_TYPE_VAR.
12560
12561 2004-11-09  Martin Baulig  <martin@ximian.com>
12562
12563         * class.c (mono_class_inflate_generic_method): Small fix; don't
12564         crash here.
12565
12566         * icall.c
12567         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
12568         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
12569         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
12570         (ves_icall_Type_BindGenericParameters): Likewise.
12571         (ves_icall_Type_get_IsGenericInstance): Likewise.
12572         (ves_icall_Type_GetGenericParameterPosition): Likewise.
12573         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
12574         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
12575         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
12576
12577 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
12578
12579         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
12580         assembly versions and public key tokens. Fixes #69113.
12581
12582 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
12583
12584         * metadata.c: fix bug introduced with the type cache changes
12585         on 2004-11-06.
12586
12587 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
12588
12589         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
12590         the MonoClass pointer instead of the token in exception clauses.
12591         * reflection.c: updates for the above and make the code not depend
12592         on the structure of MonoExceptionClause.
12593
12594 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
12595
12596         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
12597         Add support for dynamic assemblies. Fixes #69114.
12598
12599         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
12600
12601 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
12602
12603         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
12604         since most only those methods use it. the code member of
12605         MonoMethodPInvoke was dead, so that can be removed too. Also,
12606         remove inline_count (again, not used), and move slot so that it
12607         can share bits with some other flags. This saves 8 bytes in the
12608         structure and gives us about 50 kb back for mcs helloworld.cs
12609
12610         * *.[ch]: Do naming changes for the above.
12611
12612         * loader.c (mono_method_get_header): Lazily init the header
12613         on first access.
12614         (mono_get_method_from_token): don't init the header here
12615         (mono_free_method): the header may never be allocated
12616
12617         Overall, this saves 150 kb of unmanaged allocations
12618         for mcs helloworld.cs. That accounts for 10% of the unmanaged
12619         memory at runtime.
12620         
12621         * loader.c, loader.h (mono_method_get_header): new accessor.
12622
12623         * *.[ch]: use the above method. Prepares us to lazily load
12624         the header.
12625
12626         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
12627         three warnings, which are actual bugs (see 69206).
12628
12629         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
12630         unused. Saves a cool 4 bytes / method.
12631
12632 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
12633
12634         * metadata.c (builtin_types): Add types for System.Object here.
12635         (mono_metadata_parse_type_full): Cache MonoType*'s that are
12636         for a class or valuetype from klass->this_arg or klass->byval_arg.
12637
12638         On mcs for a hello world, this gets us down from 21836 MonoType's
12639         to 14560.
12640
12641         (mono_metadata_free_type): Account for the above change.
12642
12643 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
12644
12645         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
12646         exception instead of asserting if name is null.
12647         (ves_icall_System_AppDomain_GetData): Ditto.
12648
12649 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
12650
12651         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
12652         EnumBuilder.
12653
12654         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
12655         Return NULL when the domain does not have entry_assembly set.
12656
12657         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
12658         Add a 'resource_modules' argument.
12659         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
12660
12661         * reflection.c (mono_reflection_create_runtime_class): Move setting
12662         of wastypebuilder here, so mono_get_type_object () returns a MonoType
12663         for enums too.
12664
12665         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
12666         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
12667         Throw an ArgumentNullException if 'ptr' is null.
12668
12669         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
12670         assemblies here. Fixes #69020.
12671
12672 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
12673
12674         * reflection.c (build_compressed_metadata): Fix the previous patch for
12675         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
12676         the stack.
12677
12678 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
12679
12680         * assembly.c (mono_assembly_names_equal): Allow a match if one of
12681         the cultures is false. Fixes #69090.
12682
12683         * reflection.c (build_compressed_metadata): Fix invalid memory read 
12684         detected by valgrind.
12685         
12686         * reflection.c (mono_reflection_get_type): Avoid triggering a 
12687         TypeResolve multiple times for the same type. Fixes #65577.
12688
12689 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
12690
12691         * marshal.c: Avoid using ldftn to call managed functions. It is
12692         much slower than just a call.
12693
12694         * reflection.c (mono_module_get_object): free the basename we
12695         allocate here from glib.
12696         
12697         * reflection.c (ensure_runtime_vtable): make sure to free
12698         overrides.  Also, we were allocating an array of MonoMethod not an
12699         array of MonoMethod*.
12700
12701         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
12702
12703         * image.c (mono_image_close): free image->guid here.
12704
12705 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
12706
12707         * reflection.c: Fix some spec conformance issues with the PE file
12708         structures so mcs compiled apps run on the Net 2.0 beta.
12709
12710 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
12711
12712         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
12713         Implement this. Fixes #67264.
12714
12715         * debug-helpers.h debug-helpers.c marshal.c: Move 
12716         mono_find_method_by_name to debug-helpers.c.
12717
12718 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
12719
12720         * object.c (mono_release_type_locks): type_initialization_hash is
12721         a GHashTable.
12722
12723         * reflection.c object.c object-internals.h: Fix warnings.
12724
12725         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
12726         without accessors. Fixes #61561.
12727
12728         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
12729         application base from the root domain if not set. Fixes #65641.
12730         (mono_runtime_init): Fix warning.
12731
12732 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12733
12734         * appdomain.c: call mono_thread_pool_init.
12735         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
12736         of worker threads based on the number of CPUs and the environment
12737         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
12738         for non-windows (windows) systems.
12739
12740 2004-10-27  Chris Toshok  <toshok@ximian.com>
12741
12742         * mono-debug-debugger.c (write_class): don't call mono_class_init
12743         here, as even with the check for (!klass->init_pending), we get
12744         into a situation where we're hitting cycles in class
12745         initialization.  Fixes #68816.
12746
12747 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
12748
12749         * image.c: Avoid overwriting values in the loaded_images_hash when an
12750         assembly is loaded multiple times. Fixes #61152.
12751
12752         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
12753         so multiple satellite assemblies for the same name can be loaded.
12754         Fixes #68259.
12755
12756         * mono_domain_assembly_preload: Actually return the loaded assembly, 
12757         not NULL.
12758
12759         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
12760         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
12761
12762         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
12763         pending finalizers are not invoked after the appdomain has been 
12764         unloaded. Fixes #67862.
12765
12766 2004-10-22  Martin Baulig  <martin@ximian.com>
12767
12768         * mono-debug-debugger.c
12769         (mono_debugger_runtime_invoke): Don't box valuetypes.
12770
12771 2004-10-22  Chris Toshok  <toshok@ximian.com>
12772
12773         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
12774         don't hide private methods.
12775
12776 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
12777
12778         * icall.c: Allows the runtime to "share" (when known) the public key
12779         token of an assembly. This avoid the need to recalculate the token 
12780         (from the public key) in managed code.
12781
12782 2004-10-21  Chris Toshok  <toshok@ximian.com>
12783
12784         * debug-helpers.c (append_class_name): argh, revert last patch.
12785         
12786 2004-10-21  Chris Toshok  <toshok@ximian.com>
12787
12788         * debug-helpers.c (append_class_name): use '+' as the delimiter,
12789         not '/', so that it matches what the debugger uses to look up
12790         methods.
12791
12792 2004-10-21  Martin Baulig  <martin@ximian.com>
12793
12794         * mono-debug-debugger.c (mono_debugger_throw_exception): New
12795         public method; this is called each time an exception is thrown and
12796         allows the debugger to use exception catch points.
12797
12798 2004-10-21  Martin Baulig  <martin@ximian.com>
12799
12800         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
12801         the stack pointer and the exception object in some struct and pass
12802         that to the debugger.
12803
12804 2004-10-21  Chris Toshok  <toshok@ximian.com>
12805
12806         * mono-debug-debugger.c (do_write_class): add instance/static
12807         event support.  We don't expose "raise" or "other" yet.
12808         (event_is_static): new method.
12809
12810 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
12811
12812         * mono-debug-debugger.c
12813         (mono_debugger_handle_exception): Remove
12814         bogus return value for fussy compilers.
12815
12816 2004-10-20  Martin Baulig  <martin@ximian.com>
12817
12818         * mono-debug-debugger.c
12819         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
12820         (mono_debugger_handled_exception): Likewise.
12821
12822 2004-10-20  Martin Baulig  <martin@ximian.com>
12823
12824         * mono-debug-debugger.h (MonoDebuggerEvent): Added
12825         MONO_DEBUGGER_EVENT_EXCEPTION.
12826
12827         * mono-debug-debugger.c (mono_debugger_handle_exception): New
12828         public function to send the debugger a notification for an
12829         exception and inform it about a catch/finally clause.
12830
12831 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
12832
12833         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
12834         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
12835         fix 2.95 build. 
12836
12837         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
12838
12839 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
12840
12841         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
12842         marshalled as [In,Out]. Fixes #58325.
12843
12844 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
12845
12846         * reflection.c (mono_method_body_get_object): Implement some fields.
12847
12848 2004-10-12  Martin Baulig  <martin@ximian.com>
12849
12850         * reflection.c (mono_reflection_bind_generic_parameters): Small
12851         fix, correctly retrieve our parent from a generic instance.
12852
12853 2004-10-12  Martin Baulig  <martin@ximian.com>
12854
12855         * metadata.c (mono_metadata_generic_param_equal): We always have
12856         an owner.
12857
12858         * class.c
12859         (mono_class_from_generic_parameter): We need to have an owner.
12860         (my_mono_class_from_generic_parameter): Likewise.
12861
12862         * reflection.c (mono_reflection_setup_generic_class): Renamed to
12863         mono_reflection_create_generic_class() and added a new
12864         mono_reflection_setup_generic_class().  
12865         (mono_reflection_initialize_generic_param): If we're a nested
12866         generic type and inherited from the containing class, set our
12867         owner to the outer class.
12868
12869 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
12870
12871         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
12872
12873         * reflection.c (mono_method_body_get_object): New function to create
12874         a MethodBody object.
12875
12876         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
12877
12878 2004-10-11  Martin Baulig  <martin@ximian.com>
12879
12880         * metadata.c (_mono_metadata_type_equal): Renamed to
12881         do_mono_metadata_type_equal() and made static.
12882
12883 2004-10-11  Martin Baulig  <martin@ximian.com>
12884
12885         * appdomain.c: Bump corlib version number to 28.
12886
12887 2004-10-10  Martin Baulig  <martin@ximian.com>
12888
12889         * class-internals.h
12890         (MonoGenericInst): Added `MonoGenericContainer *container'.
12891         (MonoGenericMethod): Likewise.
12892         (MonoGenericContext): Likewise.
12893         (MonoGenericParam): Added `MonoGenericContainer *owner'.
12894
12895         * metadata.c
12896         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
12897         (do_mono_metadata_parse_generic_inst): Likewise.
12898         (mono_metadata_parse_type_full): New public method.  This is the actual
12899         mono_metadata_parse_type() implementation - with an additional
12900         `MonoGenericContainer *' argument.
12901         (mono_metadata_parse_array_full): Likewise.
12902         (mono_metadata_parse_signature_full): Likewise.
12903         (mono_metadata_parse_method_signature_full): Likewise.
12904         (mono_metadata_parse_mh_full): Likewise.
12905         (mono_type_create_from_typespec): Likewise.
12906         (mono_metadata_interfaces_from_typedef_full): New public method;
12907         this is similar to the other _full() methods, but we take a
12908         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
12909         (mono_metadata_parse_generic_param): Take an additional
12910         `MonoGenericContainer *' argument and lookup the MonoGenericParam
12911         from that container.
12912         (mono_metadata_generic_param_equal): New static method to compare
12913         two type parameters.
12914         (_mono_metadata_type_equal): New static method; takes an
12915         additional `gboolean signature_only' argument - if true, we don't
12916         compare the owners of generic parameters.
12917         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
12918         with a TRUE argument - do a signature-only comparision.
12919
12920         * loader.c: Use the new _full() methods and pass the
12921         MonoGenericContainer to them.
12922
12923         * object-internals.h (MonoReflectionTypeBuilder): Added
12924         `MonoGenericContainer *generic_container' field.
12925         (MonoReflectionMethodBuilder): Likewise.
12926
12927 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
12928
12929         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
12930         case initial images of dynamic assemblies.
12931
12932         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
12933
12934         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
12935
12936         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
12937         length of event->other array.
12938         (typebuilder_setup_events): Ditto.
12939
12940         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
12941         'assembly_by_name' and add an 'assemblies' list.
12942
12943         * assembly.h assembly.c: Add a new search hook for determining whenever
12944         an assembly is already loaded. Use this instead of searching in the
12945         loaded_assemblies list.
12946
12947         * domain.c appdomain.c: Implement the new search hook so loaded 
12948         assemblies are now scoped by appdomain. Fixes #67727.
12949
12950 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
12951
12952         * threads.c (mono_thread_attach): Initialize synch_lock field so
12953         mono_thread_detach works again.
12954
12955         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
12956         'lib' too. Fixes #63130.
12957
12958 2004-10-06  Jackson Harper  <jackson@ximian.com>
12959
12960         * culture-info-tables.h: regenerated.
12961
12962 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
12963
12964         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
12965         implemented by other interfaces in the result. Fixes #65764.
12966         
12967         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
12968         Handle unloadable modules without crashing.
12969
12970         * image.c (load_modules): Revert the previous patch since modules must
12971         have a fixed index inside the array.
12972         
12973         * image.c (load_modules): Don't include native modules in the modules
12974         array.
12975
12976 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
12977
12978         * reflection.h: Add param_defaults field.
12979
12980         * reflection.c: Add support for parameter defaults in dynamic methods.
12981         Fixes #64595.
12982
12983         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
12984         an empty string when a type has no namespace. Fixes #64230.
12985
12986 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
12987
12988         * tabledefs.h: Added "internal" security actions to support non-CAS
12989         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
12990         Note: they do not seems to be used anymore in 2.0 (new metadata format)
12991
12992 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
12993
12994         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
12995         constructor of abstract class. Fixes #61689.
12996
12997 2004-10-04  Martin Baulig  <martin@ximian.com>
12998
12999         * class-internals.h (MonoGenericContainer): New type.
13000         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
13001         `MonoGenericContainer *generic_container'.
13002         (MonoClass): Replaced `gen_params' and `num_gen_params' with
13003         `MonoGenericContainer *generic_container'.
13004
13005         * metadata.c (mono_metadata_load_generic_params): Return a
13006         `MonoGenericContainer *' instead of a `MonoGenericParam *';
13007         removed the `num' argument.
13008
13009 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
13010
13011         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
13012         for dynamic images.
13013
13014         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
13015         machine fields.
13016
13017         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
13018
13019         * reflection.c: Save pe_kind and machine values into the generated
13020         image file.
13021
13022         * appdomain.c: Bump corlib version number.
13023
13024         * object-internals.h: Reorganize layout of LocalBuilder.
13025
13026         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
13027         New helper function.
13028
13029         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
13030         created MonoType for dynamic types. Fixes #66180.
13031
13032 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
13033
13034         * threadpool.c: the ares hashtable needs a critical section around it.
13035         this prevents some nasty segfaults
13036
13037 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
13038
13039         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
13040         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
13041         bug 67324).
13042         
13043 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
13044
13045         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
13046         
13047 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
13048
13049         * image.c: Always canonicalize image file names, to avoid loading
13050         the same assembly twice when referenced using a relative path.
13051
13052 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
13053
13054         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
13055
13056         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
13057
13058         * marshal.c: Fix warnings.
13059
13060 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
13061
13062         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
13063         attempting to marshal the delegate_trampoline as the method_addr.
13064         This patch has a static hashtable of marshalled delegates so that 
13065         we can map delegate_trampoline addresses back to delegates.  This
13066         allows a delegate passed to managed code to be passed back into native
13067         code.  Fixes #67039
13068
13069 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
13070
13071         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
13072
13073         * reflection.c (method_encode_code): Align method headers properly.
13074         Fixes #66025.
13075
13076 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
13077
13078         * marshal.c: In the runtime invoke wrapper, reset the abort
13079         exception if it is cached. This avoids the automatic rethrowal of 
13080         the exception after the catch of the wrapper. Also check for pending
13081         interruptions before calling the managed method. This is done using
13082         the new method emit_thread_force_interrupt_checkpoint, since the
13083         normal checkpoint method is ignored when running the invoke wrapper.
13084         * object.c: If the abort exception is rethrown, set the abort_exc
13085         field of the thread, so it will be rethrown aftere every catch.
13086         * threadpool.c: Only run an interruption checkpoint if what has been
13087         requested is a stop of the thread (aborts will be ignored).
13088         * threads.c: By default, a thread will now never be interrumped while
13089         running the runtime invoke wrapper (this ensures that runtime_invoke
13090         will always return to the caller if an exception pointer is provided).
13091         There is a new special method mono_thread_force_interruption_checkpoint()
13092         to force an interruption checkpoint even if running a protected
13093         wrapper, which is used by the same runtime invoke wrapper to do a check
13094         at a safe point.
13095
13096 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
13097
13098         * object.c, object-internals.h: Implemented mono_release_type_locks,
13099         which releases the cctor locks held by a thread.
13100         * threads.c, threads.h: In thread_cleanup, release cctor locks held
13101         by a thread. Added mono_thread_exit() method to be used to safely stop
13102         a thread.
13103
13104 2004-09-28  Raja R Harinath  <rharinath@novell.com>
13105
13106         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13107         Move null check before dereference.  Avoid indexing beyond the end
13108         of the 'modules' array.
13109
13110 2004-09-28  Raja R Harinath  <rharinath@novell.com>
13111
13112         * metadata-internals.h (MonoImage): Add module_count field.
13113         * image.c (load_modules): Set image->module_count.
13114         (mono_image_load_file_for_image): Use image->module_count.
13115         * reflection.c (mono_image_load_module): Append to image->modules array 
13116         of dynamic assembly.
13117         (mono_module_get_object): Fix loop to actually increment index.
13118         Use image->module_count.
13119         * assembly.c (mono_assembly_load_references): Use image->module_count.
13120         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13121         Likewise.
13122
13123 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
13124
13125         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
13126         Avoid assert on generic types.
13127
13128 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
13129
13130         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
13131
13132         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
13133
13134         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
13135         function to convert a MarshalSpec structure to its managed counterpart.
13136
13137         * reflection.c: Fix warnings.
13138         
13139         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
13140         field.
13141
13142         * icall.c (mono_create_icall_signature): Fix build.
13143
13144 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
13145
13146         * icall.c: Add MakePointType icall.
13147
13148         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
13149         warnings.
13150
13151 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13152
13153         * threadpool.c: reuse allocated slots in the queue.
13154
13155 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
13156
13157         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
13158
13159         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
13160
13161         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
13162         previous change.
13163
13164         * tabledefs.h: Add constants for pinvoke attributes BestFit and
13165         ThrowOnUnmappableChar.
13166
13167         * icall.c (ves_icall_Type_GetPacking): New icall.
13168
13169 2004-09-24  Martin Baulig  <martin@ximian.com>
13170
13171         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
13172
13173 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13174
13175         * appdomain.c:
13176         (mono_domain_set): allow setting a domain that is being unloaded.
13177         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
13178         being unloaded.
13179
13180 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
13181
13182         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
13183         the GetCustomAttributes icall.
13184
13185 2004-09-23  Martin Baulig  <martin@ximian.com>
13186
13187         * object-internals.h (MonoReflectionGenericParam): Replaced
13188         'has_ctor_constraint', `has_reference_type' and `has_value_type'
13189         with `guint32 attrs'.
13190
13191 2004-09-23  Martin Baulig  <martin@ximian.com>
13192
13193         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
13194
13195 2004-09-23  Martin Baulig  <martin@ximian.com>
13196
13197         * object-internals.h (GenericParameterAttributes): New enum.
13198
13199 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
13200
13201         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
13202         
13203         * class.c (init_events): Fill out event->other field.
13204
13205         * class.c: Fix warnings.
13206
13207         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
13208
13209 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
13210
13211         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
13212         walk which doesn't supply the IL offset.
13213
13214 2004-09-22  Martin Baulig  <martin@ximian.com>
13215
13216         * reflection.c (mono_reflection_setup_internal_class): If we're
13217         System.ValueType, System.Object or System.Enum, set
13218         `klass->instance_size' and create the vtable.
13219         (mono_reflection_create_internal_class): If we're an enum type,
13220         get the base class from our current corlib.
13221
13222 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
13223
13224         * reflection.h (MonoResolveTokenError): New type.
13225
13226         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
13227         icall.
13228
13229         * icall.c: Add an 'error' argument to the ResolveToken icalls.
13230
13231 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
13232
13233         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
13234         Support also calling constructors, but only for already allocated objects.
13235
13236 2004-09-17  Geoff Norton <gnorton@customerdna.com>
13237
13238         * reflection.c (type_get_qualified_name): If the klass is null
13239         return the typename to avoid a NullRefEx.
13240         (encode_cattr_value): Get the qualified name of the boxed type,
13241         not the underlying enumtype.  Fixes #62984.
13242
13243 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
13244
13245         * marshal.c: Fix problems with previous checkin.
13246
13247 2004-09-21    <vargaz@freemail.hu>
13248
13249         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
13250         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
13251
13252         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
13253
13254 2004-09-21  Geoff Norton <gnorton@customerdna.com>
13255
13256         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
13257         should only return a type for pointers, arrays, and passbyref types.
13258         Fixes bug #63841.
13259
13260 2004-09-21  Martin Baulig  <martin@ximian.com>
13261
13262         * domain.c (mono_debugger_check_runtime_version): New public
13263         function.
13264
13265         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
13266
13267 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
13268
13269         * reflection.c: Added missing sort to the declarative security 
13270         attributes table. MS implementation stops seeing the attributes if the
13271         token number regress in the table (as shown by ildasm and permview).
13272
13273 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
13274
13275         * object-internals.h (MonoReflectionModule): Add 'token' field.
13276         
13277         * reflection.c (mono_reflection_get_token): Add support for Module
13278         and Assembly.
13279         (mono_module_get_object): Set 'token' field.
13280         (mono_module_file_get_object): Set 'token' field.
13281
13282         * icall.c: Add new Assembly and Module icalls.
13283
13284         * appdomain.c: Bump corlib version.
13285
13286 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
13287
13288         * loader.h loader.c class.h class.c: Add helper functions for obtaining
13289         tokens of metadata objects.
13290
13291         * reflection.h reflection.c (mono_reflection_get_token): New function
13292         to obtain the token of a metadata object.
13293
13294         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
13295
13296 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
13297
13298         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
13299         
13300         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
13301
13302 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
13303
13304         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
13305         * object-internals.h: Added 3 MonoArray* members to MonoReflection
13306         AssemblyBuilder to access the permissions set in the class lib.
13307         * reflection.c: Added security attributes encoding step in 
13308         mono_image_build_metadata.
13309         * tabledefs.h: Added new security actions defined in 2.0:
13310         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
13311
13312 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
13313
13314         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
13315         macro parameter.
13316
13317 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
13318  
13319         * locales.c: nullify the ICU_collator member of CompareInfo when it is
13320           finalized. There where random SIGSEVs at program termination, when
13321           an object being finalized was trying to do a string comparison and
13322           the current culture was already finalized.
13323  
13324 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13325
13326         * threads.c: call thread_cleanup before finishing the thread if we get
13327         there.
13328
13329 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
13330
13331         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
13332         assemblies from the parent. Fixes #65665.
13333
13334 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
13335
13336         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
13337         modifiers.
13338
13339 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
13340
13341         * reflection.h: add prototype for mono_get_dbnull_object
13342         * reflection.c: add prototypes for get_default_param_value_blobs 
13343         and mono_get_object_from_blob for fussier compilers
13344
13345 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
13346  
13347         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
13348         false deadlock checks in class initialization.
13349  
13350 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
13351
13352         * image.c (mono_image_addref): Fix comment.
13353
13354         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
13355         possible.
13356
13357 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
13358
13359         * reflection.c (mono_param_get_objects): Modified to return
13360         ParameterInfo.DefaultValue object.
13361
13362         (get_default_param_value_blobs):
13363         (mono_get_object_from_blob):
13364         (mono_get_dbnull_object): New helper routines. 
13365
13366         * object.c (mono_get_constant_value_from_blob): New helper routine
13367         carved out from get_default_field_value ()
13368
13369         * object-internals.h (mono_get_constant_value_from_blob): Added
13370         function declaration.
13371
13372 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
13373
13374         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
13375         referenced assemblies. Fixes #62135.
13376
13377         * exception.h exception.c (mono_get_exception_file_not_found2): New
13378         helper function.
13379
13380 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
13381
13382         * class.h class.c: Add mono_type_get_underlying_type ().
13383
13384 2004-09-09  Geoff Norton <gnorton@customerndna.com>
13385
13386         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
13387         Fix GetTypes() to support dynamically created assemblies.
13388
13389 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
13390
13391         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
13392         
13393         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
13394         previous patch.
13395
13396         * reflection.h reflection.c loader.c: Allow dynamic construction of
13397         pinvoke methods. Fixes #65571.
13398         
13399         * reflection.c (mono_reflection_get_type): Revert previous change since
13400         it causes regressions.
13401
13402 2004-09-08  Martin Baulig  <martin@ximian.com>
13403
13404         * class.c (class_compute_field_layout): Don't call
13405         mono_class_layout_fields() for open generic instances.
13406
13407 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
13408         * threads.c appdomain.c: fix typo in GC macro
13409
13410 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13411
13412         * threads.c: don't call mono_thread_detach() in start_wrapper(),
13413         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
13414
13415 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
13416
13417         * image.c (mono_image_close): Applied patch from 
13418         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
13419         assembly is loaded multiple times from data.
13420         
13421         * image.c (mono_image_open): Fix warning.
13422
13423 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13424
13425         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
13426         once. Fixes #58334.
13427         
13428         * reflection.c (mono_reflection_create_runtime_class): Initialize
13429         klass->nested_classes. Fixes #61224.
13430
13431 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
13432
13433         * threads.c: sched_yield() on exit, to allow threads to quit.
13434
13435 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13436
13437         * object.c (mono_unhandled_exception): Remove leftover debug code.
13438
13439 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
13440
13441         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
13442
13443 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13444
13445         * marshal.c (emit_marshal_array): Really null terminate string arrays.
13446         
13447         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
13448
13449 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13450
13451         * marshal.c (emit_marshal_array): Null terminate string arrays.
13452         
13453         * marshal.c (raise_auto_layout_exception): Fix warning.
13454
13455         * reflection.c (mono_param_get_objects): Initialize the default value
13456         with DBNull.Value, not null. Fixes #62123.
13457
13458 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
13459
13460         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
13461         throw an exception with a cute explanation.
13462
13463 2004-09-06  Dick Porter  <dick@ximian.com>
13464
13465         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
13466         Close the new process's thread handle, as we don't use it.  The
13467         handle stays around forever otherwise.
13468
13469 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13470
13471         * object.c (arith_overflow): Fix warning.
13472
13473         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
13474         calling conventions in method refs. Fixes #65352.
13475
13476         * reflection.c: Fix warnings.
13477
13478 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
13479
13480         * icall.c: Add a new icall for Array.Clear
13481
13482 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
13483
13484         * object.c: When allocating an array, we have to throw
13485         an overflow exception if any of the lengths are < 0.
13486
13487 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13488
13489         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
13490         properly. Also move implementation of string array marshalling to 
13491         managed code. Fixes #42316.
13492
13493 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13494
13495         * assembly.c: provide more information when loading an assembly fails.
13496
13497 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13498
13499         * filewatcher.c: don't expect the development fam package to be
13500         installed.
13501
13502 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
13503
13504         * marshal.c: Make a copy of the signature cookie since it will be
13505         freed by the caller.
13506         
13507         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
13508
13509         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
13510
13511         * metadata.c (mono_metadata_free_marshal_spec): New function to free
13512         marshal specs.
13513
13514         * marshal.c: More refactoring.
13515         
13516         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
13517         smaller functions.
13518
13519 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
13520
13521         * object.c: In mono_message_invoke, fill the output parameter array after
13522           calling the managed method (it was done before the call). This fixes
13523           bug #59299.
13524
13525 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
13526
13527         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
13528         as well.
13529
13530 2004-09-02  Martin Baulig  <martin@ximian.com>
13531
13532         * class.c (mono_class_instance_size): Don't allow generic type
13533         definitions or open generic instances.
13534         (mono_class_array_element_size): If we're a value type, call
13535         mono_class_instance_size() on the original class.
13536
13537         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
13538         handle generic instances.
13539
13540         * mono-debug-debugger.c (write_type): Handle generic instances
13541         like classes.
13542
13543 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
13544
13545         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
13546         the allocation request fails. Fixes #65089.
13547
13548         * object.c (mono_runtime_free_method): Do not call mono_free_method.
13549         
13550         * object.c (mono_runtime_free_method): New function to free a dynamic
13551         method.
13552
13553         * marshal.c (mono_delegate_free_ftnptr): New function to free the
13554         delegate trampoline.
13555
13556         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
13557         with hasthis as dynamic,
13558
13559         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
13560
13561         * domain.c (mono_jit_info_table_remove): New function to remove an
13562         entry from the jit info table.
13563
13564         * class-internals.h (MonoMethod): Add 'dynamic' field.
13565
13566         * loader.c: Fix warnings.
13567
13568 2004-09-01  Martin Baulig  <martin@ximian.com>
13569
13570         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
13571         instead of mono_debugger_lock() because the latter one is a no-op
13572         unless running in the debugger.
13573
13574 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
13575
13576         * class.c (class_compute_field_layout): Classes with auto-layout or
13577         reference fields are not blittable.
13578         
13579 2004-09-01  Dick Porter  <dick@ximian.com>
13580
13581         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
13582         mono_image_get_filename() to get the assembly location.
13583
13584         * icall.c:
13585         * metadata.h: Fix compile warnings
13586
13587 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
13588
13589         * class.c (class_compute_field_layout): System.Object is blittable.
13590
13591         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
13592         as in/out. Fixes #59909.
13593
13594 2004-09-01  Martin Baulig  <martin@ximian.com>
13595
13596         * metadata.h (MONO_TYPE_ISREFERENCE): Call
13597         mono_metadata_generic_inst_is_valuetype() if we're a generic
13598         instance to check whether our underlying type is a reference type.
13599
13600 2004-09-01  Martin Baulig  <martin@ximian.com>
13601
13602         * metadata.c (mono_type_size): If we're a generic instance, call
13603         mono_class_value_size() for value types.
13604
13605 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
13606
13607         * marshal.c: Implement more custom marshalling functionality. Fixes
13608         #64915.
13609
13610 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
13611
13612         * mono-debug.c, debug-mono-symfile.c: add some locking love.
13613
13614 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
13615
13616         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
13617
13618         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
13619
13620         * icall.c: Fix some warnings.
13621
13622         * threads.c (abort_appdomain_thread): Fix unref errors.
13623         (mono_thread_current): Fix THREAD_DEBUG define.
13624
13625 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
13626
13627         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
13628
13629         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
13630
13631 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
13632
13633         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
13634         string arrays.
13635
13636 2004-08-28  Martin Baulig  <martin@ximian.com>
13637
13638         * metadata.c
13639         (mono_metadata_generic_inst_is_valuetype): New public function.
13640
13641         * metadata.h (MONO_TYPE_ISSTRUCT): Call
13642         mono_metadata_generic_inst_is_valuetype() if we're a generic
13643         instance to check whether our underlying type is a valuetype.
13644
13645 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
13646
13647         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
13648         #63768.
13649
13650 2004-08-25  Martin Baulig  <martin@ximian.com>
13651
13652         * loader.c (mono_get_method_from_token): Abstract methods can also
13653         be generic and thus have type parameters.
13654
13655         * metadata-internals.h
13656         (MonoDynamicImage): Added `GPtrArray *gen_params'.
13657
13658         * reflection.c (mono_image_get_generic_param_info): Don't create a
13659         metadata row, just add an entry to the `gen_params' array.
13660         (build_compressed_metadata): Sort the `gen_params' array and then
13661         actually create the metadata.
13662
13663 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13664
13665         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
13666
13667 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
13668
13669         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
13670
13671 2004-08-24  Martin Baulig  <martin@ximian.com>
13672
13673         * class.cs (mono_class_is_subclass_of): Like an interface, a
13674         generic instance also derives from System.Object.
13675
13676 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
13677
13678         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
13679         custom modifiers to be in any order. Fixes #61990.
13680
13681 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
13682
13683         * object.c: Register mono_object_new_fast icall.
13684         
13685         * object.c (mono_class_get_allocation_ftn): Return to calling
13686         mono_object_new_fast, since it seems faster to compute the object 
13687         size in unmanaged code than passing it as a parameter.
13688
13689         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
13690
13691         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
13692         this function with Boehm as the oom handler, so we don't have to check
13693         the result of GC_malloc.
13694
13695         * object.c: Remove checks for oom.
13696
13697         * object.h object.c (mono_class_get_allocation_ftn): New function to
13698         return the icall which can be used to allocate an instance of a given
13699         class. 
13700
13701         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
13702
13703         * class-internals.h: Add 'enabled' field.
13704
13705 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
13706
13707         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
13708
13709 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
13710         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
13711         value 0x0010.
13712
13713 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
13714
13715         * appdomain.c: use the Tls function for appdomain too,
13716         at Zoltan's request. Actually return in mono_context_get
13717
13718         * appdomain.c, profiler.c, threads.c: use __thread
13719
13720 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
13721
13722         * appdomain.c threads.c: Call GC_CreateThread on windows.
13723
13724         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
13725         multiple libraries since this don't work on windows.
13726
13727 2004-08-18  Martin Baulig  <martin@ximian.com>
13728
13729         * class-internals.h
13730         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
13731         MonoMethodHeader.
13732
13733         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
13734         MonoMethodNormal since we also need it for abstract and interface
13735         methods.
13736
13737         * reflection.c
13738         (build_compressed_metadata): Sort the GenericParam table.
13739         (mono_image_create_token): Added `gboolean create_methodspec'
13740         argument; this is false when generating a MethodImpl token.
13741         (reflection_methodbuilder_to_mono_method): Abstract and interface
13742         methods may also have generic parameters.
13743
13744 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
13745
13746         * appdomain.c: thread local alloc
13747
13748 2004-08-17  Martin Baulig  <martin@ximian.com>
13749
13750         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
13751
13752         * icall.c
13753         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
13754         argument.
13755
13756         * class.c (mono_type_get_full_name): New public function.
13757         (mono_type_get_name): Don't include the type arguments.
13758
13759 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
13760
13761         * Makefile.am: Build static versions of libmetadata and libmonoruntime
13762         for inclusion into the mono executable.
13763
13764 2004-08-16  Martin Baulig  <martin@ximian.com>
13765
13766         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
13767         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
13768
13769 2004-08-14  Martin Baulig  <martin@ximian.com>
13770
13771         * class.c (dup_type): Also copy the `byref' field.
13772
13773 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
13774
13775         * reflection.c (create_dynamic_mono_image): Revert the last change 
13776         since it breaks bootstrap.
13777
13778 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
13779
13780         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
13781
13782         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
13783         not free them with g_free.
13784
13785 2004-08-11  Martin Baulig  <martin@ximian.com>
13786
13787         * reflection.c (mono_reflection_setup_internal_class): Also call
13788         mono_class_setup_mono_type() if we already have a `tb->type.type'.
13789
13790 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
13791
13792         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
13793         called during default (first) AppDomain creation. Keep track of
13794         Evidence when loading assemblies.
13795
13796 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
13797
13798         * opcodes.c, opcodes.h: reduce runtime relocations.
13799
13800 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
13801
13802         * culture-info.h, locales.c: fixes and chages to sue the new
13803         optimized format of the locale data.
13804         * culture-info-tables.h: regenerated.
13805
13806 2004-08-06  Geoff Norton <gnorton@customerdna.com>
13807         
13808         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
13809
13810 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
13811
13812         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
13813         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
13814         * domain-internals.h: icall declaration.
13815         * icall.c: icall registration.
13816         * object-internals.h: New fields in MonoAssembly for CAS.
13817
13818 2004-08-05  Duncan Mak  <duncan@ximian.com>
13819
13820         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
13821         CEE_LDELEM_ANY.
13822
13823 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
13824
13825         * reflection.c: fix to deal with object[] arrays in custom ctors
13826         (bug #62550).
13827
13828 2004-08-05  Martin Baulig  <martin@ximian.com>
13829
13830         * class.c (mono_class_array_element_size): Added support for
13831         generic instances and correctly handle "recursive" types.
13832
13833 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
13834
13835         * assembly.c: Fix warnings.
13836
13837 2004-08-04  Martin Baulig  <martin@ximian.com>
13838
13839         * class.c
13840         (mono_type_get_name_recurse): Added `gboolean include_arity'
13841         argument specifying whether or not we should include the generic
13842         arity in the type name.
13843         (_mono_type_get_name): New static function.
13844         (mono_class_setup_vtable): If we're a generic instance, don't
13845         include the generic arity in the names of explicit method
13846         implementations.        
13847
13848 2004-08-03  Martin Baulig  <martin@ximian.com>
13849
13850         * class.c (mono_type_get_name_recurse): Enclose the generic type
13851         arguments in `<', '>'.
13852
13853 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13854
13855         * gc.c: make GC warning messages use the trace API, they are just
13856         noise to most of the users.
13857
13858 2004-08-03  Martin Baulig  <martin@ximian.com>
13859
13860         * debug-mono-symfile.c (read_string): Correctly read the string.
13861
13862 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
13863
13864         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
13865         
13866         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
13867         icalls.
13868         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
13869
13870 2004-07-30  Martin Baulig  <martin@ximian.com>
13871
13872         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
13873         Reflect latest symbol writer changes.   
13874
13875 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
13876
13877         * object.c: always create an object if null is passed
13878         to Invoke() where a valuetype is expected.
13879
13880 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
13881
13882         * marshal.c (mono_marshal_init): make managed
13883         signatures match native ones better for 64bits.
13884
13885 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13886
13887         * appdomain.c: hack to build correctly the private bin path on windows.
13888         Fixes bug #61991.
13889
13890 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
13891
13892         * assembly.c: Load mscorlib from the correct framework directory
13893           (mono/<version>/mscorlib.dll).
13894         * appdomain.h: Added prototypes for new functions.
13895         * internals.h: Added some prototypes.
13896         * domain.c: When initializing the runtime, get from the executable and
13897           the configuration files the runtime version that the app supports.
13898           Added support methods for reading app.exe.config. Added list of versions
13899           supported by the JIT. Added two new methods: mono_init_from_assembly,
13900           which initializes the runtime and determines the required version from
13901           the provided exe file, and mono_init_version, which initializes
13902           the runtime using the provided version.
13903         * icall.c: Get machine.config from version-specific directory.
13904         * reflection.c: When generating an image, embed the version number
13905           of the current runtime.
13906
13907 2004-07-28  Dick Porter  <dick@ximian.com>
13908
13909         * socket-io.c
13910         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
13911         returned sockaddr size before creating the remote address object.
13912         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
13913         61608.
13914
13915 2004-07-28  Dick Porter  <dick@ximian.com>
13916
13917         * locales.c (string_invariant_compare_char): Fix invariant char
13918         compares between upper and lower cases.  Fixes bug 61458.
13919
13920 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
13921         
13922         * marshal.c: actually cache stelem.ref wrappers.
13923         
13924 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
13925
13926         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
13927         sections and remove the mono_cli_rva_map () function.
13928
13929 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
13930
13931         * debug-mono-symfile.c: fix one more endianess issue, from a patch
13932         by Geoff Norton (<gnorton@customerdna.com>).
13933
13934 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13935
13936         * class.c: fix class loads for pointer types (typeof(int) !=
13937         typeof(int*)).
13938
13939 2004-07-27  Martin Baulig  <martin@ximian.com>
13940
13941         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
13942         reading the debugging information from an external ".mdb" file.
13943
13944 2004-07-24  Martin Baulig  <martin@ximian.com>
13945
13946         * reflection.c (mono_image_get_type_info): Only write a class
13947         layout entry if we actually have a size or a packing size.
13948
13949 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
13950
13951         * reflection.c (type_get_fully_qualified_name): 
13952         insert cast to get type checking of ?: with non-gcc compilers
13953
13954 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
13955
13956         * rand.c: use g_getenv for both lookups of
13957         MONO_EGD_SOCKET
13958
13959 2004-07-17  Martin Baulig  <martin@ximian.com>
13960
13961         * reflection.c (mono_reflection_bind_generic_method_parameters):
13962         Set `gmethod->reflection_info'.
13963
13964 2004-07-17  Martin Baulig  <martin@ximian.com>
13965
13966         * class.c (mono_class_create_from_typedef): Insert the newly
13967         created class into the hash table before computing the interfaces
13968         since we could be called recursively.
13969
13970 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
13971
13972         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
13973         function to implement stelem.ref in managed code
13974         * class-internals.h, debug-helpers.c: a new wrapper type
13975         for the above.
13976
13977 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
13978
13979         * gc.c: allow GC handles to work even when no GC is compiled in.
13980         Fix part of bug #61134 (GetAddrOfPinnedObject).
13981
13982 2004-07-13  Peter Williams  <peter@newton.cx>
13983  
13984         * process.c (complete_path): Make sure we don't attempt to execute
13985         directories.
13986  
13987 2004-07-12  Geoff Norton <gnorton@customerdna.com>
13988
13989         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
13990           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
13991           and will add/subtract the hour if needed
13992
13993 2004-07-12  Martin Baulig  <martin@ximian.com>
13994
13995         * reflection.c (mono_field_get_object): If we have
13996         `field->generic_info', take the attributes from
13997         `field->generic_info->generic_type'.    
13998
13999 2004-07-12  Martin Baulig  <martin@ximian.com>
14000
14001         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
14002         This function must be called before initializing the runtime.
14003         (mono_debug_init_1): New function; call this after initializing
14004         the runtime, but before loading the assembly.  It tells the
14005         debugger to load corlib and the builtin types.
14006
14007         * mono-debug-debugger.c: Did some larger changes in the debugging
14008         code; support recursive class declarations, make sure we actually
14009         add all classes.
14010
14011 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14012
14013         * debug-helpers.c: undo my previous patch and fixed the real issue in
14014         ../mini/exceptions-x86.c
14015
14016 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14017
14018         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
14019         when no HOME env. variable was set and a NullRef was thrown in a .cctor
14020         called from other .cctors.
14021
14022 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
14023
14024         * loader.c: Removed the mono_loader_wine_init hack now that we are
14025         doing a managed version of Windows.Forms.
14026
14027 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
14028
14029         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
14030         threadpool.c, threads.c: remove static data from rootset.
14031
14032 2004-07-09  Dick Porter  <dick@ximian.com>
14033
14034         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
14035         Don't do any more processing if the matched length was 0.  It was
14036         increasing the size of the string before.  Fixes bug 61167.
14037
14038 2004-07-09  Dick Porter  <dick@ximian.com>
14039
14040         * socket-io.h:
14041         * socket-io.c
14042         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
14043         Add support for SO_PEERCRED if its available.
14044
14045 2004-07-09  Peter Bartok <pbartok@novell.com>
14046         * loader.c: winelib.exe.so error message is now only displayed if
14047         MONO_DEBUG is set. To help us avoid questions when people are trying
14048         out the new Managed.Windows.Forms.
14049
14050 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
14051
14052         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
14053         for isinst and castclass wrappers.
14054
14055         * class-internals.h icall.c: Move registration and lookup of JIT icalls
14056         to libmetadata from the JIT, so they could be used by the marshalling
14057         code and the interpreter.
14058
14059         * marshal.c: Register marshalling related JIT icalls here instead of
14060         in mini.c. Use CEE_MONO_ICALL instead of the family of 
14061         CEE_MONO_PROC<x> opcodes to call marshalling functions.
14062
14063         * metadata.h: Remove unneeded marshalling conversions.
14064
14065         * opcodes.c: Update for new opcodes.
14066         
14067 2004-07-08  Martin Baulig  <martin@ximian.com>
14068
14069         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
14070         (mono_debug_get_domain_data): Make this function static.
14071
14072 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14073
14074         * gc.c, object.h: add nice GC handle API for embedders.
14075
14076 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
14077
14078         * reflection.c: more changes for the new api
14079
14080         * object.c: When we reflect on a field w/ a constant value, it
14081         will not have a memory location, so we must access metadata. Also,
14082         allow easier reading of strings so that we can read them from
14083         the constant data.
14084
14085         * class.c (mono_class_layout_fields): no need for literal fields here.
14086
14087         * class-internals.h: api changes for const fields
14088
14089         * icall.c (ves_icall_get_enum_info): use new apis for const fields
14090
14091 2004-07-06  Martin Baulig  <martin@ximian.com>
14092
14093         * mono-debug.h: Increment version number to 44.
14094
14095         * mono-debug.c (mono_debug_add_wrapper): The second argument is
14096         now a gpointer, rewrote this whole method.
14097
14098         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
14099         function.  Add information about the wrapper in a new "misc table".
14100
14101         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
14102         for the new misc table.
14103
14104 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
14105
14106         * metadata-internals.h image.c: Add a cache for helper signatures.
14107
14108         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
14109
14110 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
14111
14112         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
14113         delegates from a delegate. Fixes #61033.
14114         
14115         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
14116         marshalling of stringbuilder arrays. Fixes #59900.
14117
14118 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
14119
14120         * icall.c: Add EnumBuilder:setup_enum_type icall.
14121
14122 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
14123
14124         * icall.c: Added a new icall for the property version of
14125         OffsetOfStringData.
14126
14127 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
14128
14129         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
14130         it has a constant size across platforms.
14131
14132         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
14133         stack trace.
14134
14135 2004-06-29  Martin Baulig  <martin@ximian.com>
14136
14137         * mono-debug.c (mono_debug_add_method): Protect the whole function
14138         in mono_debugger_lock(), not just parts of it.
14139
14140 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
14141
14142         * reflection.c: make sure padding bytes in heaps are zeroed.
14143
14144 2004-06-24  David Waite  <mass@akuma.org>
14145
14146         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
14147         image.c, loader.c, locales.c, marshal.c, metadata.c,
14148         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
14149         string-icalls.c, threads.c: change to C90-style comments from C99 /
14150         C++ -style
14151
14152 2004-06-24  Dick Porter  <dick@ximian.com>
14153
14154         * threads.c
14155         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
14156         return createdNew.  Fixes bug 60412.
14157
14158         * threads-types.h: 
14159         * icall.c: Add createdNew parameter to CreateMutex icall
14160
14161 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14162
14163         * reflection.c, object-internals.h: save default value in params.
14164
14165 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14166
14167         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
14168         no need to build a new path combining that with the application base.
14169         Fixes bug #60442.
14170
14171 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
14172
14173         * reflection.c: fixed minor standard compliance issues.
14174
14175 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14176
14177         * reflection.c: fixed issue with encoding some custom attributes
14178         (arrays in properties and fields, bug #60411).
14179
14180 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14181
14182         * reflection.c: fix start address when copying the public key token.
14183
14184 2004-06-23  Martin Baulig  <martin@ximian.com>
14185
14186         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
14187         the `exc' object in a static object to put it into the GC's root set.
14188
14189 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
14190
14191         * reflection.c: make mono_reflection_setup_internal_class ()
14192         callable a second time to setup a new parent class.
14193
14194 2004-06-23  Dick Porter  <dick@ximian.com>
14195
14196         * threads.c: Check for WAIT_IO_COMPLETION return values.
14197
14198 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
14199
14200         * appdomain.c: Removed the g_free on the public key token. Now copy 
14201         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
14202         * assembly.c: Added public key token string value when loading 
14203         assemblies. Fix bug #60439.
14204         * icall.c: Added missing informations (like public key) in 
14205         GetReferencedAssemblies. Fix #60519.
14206         * image.h: Changed definition for public key token from const char*
14207         public_tok_value to guchar public_key_token [17];
14208         * reflection.c: Updated for changes to public key token.
14209
14210 2004-06-22  Lluis Sanchez Gual
14211
14212         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
14213         for the field in base classes.
14214
14215 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14216
14217         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
14218         mark headers as not supported, they are installed only for use by the
14219         debugger.
14220
14221 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
14222
14223         * *.c, *.h: avoid namespace pollution in public headers.
14224
14225 2004-06-21  Martin Baulig  <martin@ximian.com>
14226
14227         * exception.c (mono_get_exception_security): It's in
14228         "System.Security", not in "System".
14229
14230         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
14231         the exception classes.
14232
14233 2004-06-21  Martin Baulig  <martin@ximian.com>
14234
14235         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
14236         Protect the exception object from being finalized.
14237
14238 2004-06-21  Martin Baulig  <martin@ximian.com>
14239
14240         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
14241         public function.
14242
14243 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
14244
14245         * reflection.c: Load the assembly in mono_reflection_type_from_name,
14246         if it was not loaded before. Fix parts of #60439.
14247
14248 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
14249
14250         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
14251         code that was broken since Ben's change: wrappers are now
14252         dependent on the method signature only again.
14253
14254 2004-06-21  Martin Baulig  <martin@ximian.com>
14255
14256         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
14257         added interface support.
14258
14259 2004-06-21  Martin Baulig  <martin@ximian.com>
14260
14261         * class.c (mono_vtable_get_static_field_data): New public method.
14262
14263 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
14264
14265         * filewatcher.c : Windows build fix to be compliant with API changes.
14266
14267 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
14268
14269         * class.h, class.c: more accessors.
14270         * metadata.h, metadata.c: prepare for hiding MonoType and
14271         MonoMethodSignature: people should use the accessors from now on
14272         outside of the tree.
14273
14274 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
14275
14276         * *.c, *.h: more API cleanups.
14277
14278 2004-06-18  Jackson Harper  <jackson@ximian.com>
14279
14280         * assembly.c: Trace loading assemblies.
14281         * loader.c: Trace loading native libraries.
14282         * mono-config.c: Trace loading config files.
14283         
14284 2004-06-18  Dick Porter  <dick@ximian.com>
14285
14286         * locales.c: Tell ICU the lengths of strings, it can cope with
14287         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
14288
14289 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
14290
14291         * image.c: swapped name/filename;
14292
14293 2004-06-18  Martin Baulig  <martin@ximian.com>
14294
14295         * mono-debug-debugger.c (write_class): Write the parent class at
14296         the end of the header.
14297
14298 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
14299
14300         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
14301
14302 2004-06-17  Raja R Harinath  <rharinath@novell.com>
14303
14304         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
14305         (bundle_obj): New conditional define.
14306         (BUILT_SOURCES): Remove.
14307         ($(bundle_srcs)): Make parallel-make safe.
14308         (libmonoruntime_la_LIBADD): Make unconditional.
14309         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
14310         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
14311
14312 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
14313
14314         * culture-info-tables.h: It was inconsistent with the latest
14315           supp info files.
14316
14317 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
14318
14319         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
14320         be loaded.
14321
14322         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
14323         with gcc 2.95.
14324
14325 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
14326
14327         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
14328         cleaned up public header threads.h.
14329
14330 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14331
14332         * Makefile.am, *.c, *.h: more API cleanups.
14333
14334 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
14335
14336         * Makefile.am: removed monosn from compilation.
14337         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
14338         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
14339         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
14340         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
14341         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
14342         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
14343
14344 2004-06-15  Jackson Harper  <jackson@ximian.com>
14345
14346         * assembly.c: Make locales lower case when searching the GAC for
14347         assemblies. gacutil will always make locales lowercase when
14348         installing so this effectively makes them case insensitive.
14349         
14350 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
14351
14352         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
14353         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
14354           parameter which allows to choose whether the wait can be interrupted or 
14355           not. Also added the method mono_monitor_enter(), which locks the monitor
14356           using an infinite wait and without allowing interruption.
14357           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
14358           interrupted.
14359         * object.h: Added new fields in MonoThread. suspend_event holds the event
14360           used to susped/resume the thread. synch_lock is the lock object to use for
14361           modifying the thread state.
14362         * threads.c: Use the new synch_lock object for locking, instead of "this",
14363           which can generate deadlocks.
14364           Moved thread state change in Thread.Sleep and Thread.Join from managed
14365           to unmanaged code. This avoids a deadlock when the thread was suspended
14366           just after acquiring the thread lock.
14367           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
14368           Implemented Thread.Suspend using an event instead of ThreadSuspend,
14369           which is not fully implemented in the io-layer.
14370         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
14371
14372 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
14373
14374         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
14375         threads-types.h: more API cleanups.
14376
14377 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
14378
14379         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
14380         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
14381         threadpool.c, threads.c: first pass at the exported API cleanup.
14382
14383 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
14384
14385         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
14386
14387 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14388
14389         * icall.c: added internalGetHome.
14390
14391 2004-06-14  Dick Porter  <dick@ximian.com>
14392
14393         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
14394         possible to return successfully when '.' or '..' were the only
14395         entries in a directory, but were skipped.  The MonoIOStat was not
14396         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
14397         Fixes bug 59574.
14398
14399 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
14400
14401         * reflection.c: make binaries run on .Net 1.1 by default.
14402
14403 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
14404
14405         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
14406
14407 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
14408
14409         * marshal.c: keep track of struct size with explicit layout
14410         (bug #59979).
14411
14412 2004-06-12  Martin Baulig  <martin@ximian.com>
14413
14414         * mono-debug-debugger.c: Comment out a debugging g_message().
14415
14416 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14417
14418         * reflection.c, reflection.h: do not free custom attrs that are cached.
14419         * icall.c: use braces to make code clearer.
14420
14421 2004-06-11  Martin Baulig  <martin@ximian.com>
14422
14423         * class.h (MonoInflatedField): New type.
14424         (MonoClassField): Replaced `MonoType *generic_type' with
14425         `MonoInflatedField *generic_info'.
14426
14427         * icall.c
14428         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
14429
14430 2004-06-11  Martin Baulig  <martin@ximian.com>
14431
14432         * reflection.c (mono_image_create_method_token): Correctly encode
14433         varargs methods.
14434
14435 2004-06-11  Martin Baulig  <martin@ximian.com>
14436
14437         * metadata.c (mono_metadata_parse_method_signature): When parsing
14438         a MethodDef which has VarArgs, also set sentinelpos if we don't
14439         have any parameters.
14440
14441 2004-06-11  Martin Baulig  <martin@ximian.com>
14442
14443         * verify.c (mono_method_verify): In CEE_CALL, use
14444         mono_method_get_signature() to get the method's signature, unless
14445         we're a PInvoke method.
14446
14447 2004-06-10  Jackson Harper  <jackson@ximian.com>
14448
14449         * assembly.c: Use <path>/lib/mono/gac for the extra paths
14450         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
14451         logical name as the supplied path is just a prefix to the gac not
14452         the direct path to it.
14453         
14454 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
14455
14456         * reflection.c: make the token for a created method match
14457         the token of the MethodBuilder it was created from
14458         (IKVM requires this behaviour now).
14459
14460 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
14461
14462         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
14463         reflection.c, socket-io.c: leak fixes.
14464
14465 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
14466
14467         * icall.c: handle sentinel pos in vararg methods in position different
14468         from 0.
14469
14470 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14471
14472         * culture-info-tables.h: freshly generated.
14473
14474 2004-06-09  Martin Baulig  <martin@ximian.com>
14475
14476         * loader.c (mono_get_method_constrained): Call `mono_class_init
14477         (constrained_class)'.   
14478
14479 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
14480
14481         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
14482         any methods. Fixes #59629.
14483
14484 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14485
14486         * culture-info-tables.h: reflecting locale-builder updates.
14487
14488 2004-06-08  Dick Porter  <dick@ximian.com>
14489
14490         * object.h:
14491         * locales.c: Fixed compile warnings, including a real bug in
14492         CompareInfo_internal_compare.
14493         
14494 2004-06-08  Dick Porter  <dick@ximian.com>
14495
14496         * locales.c
14497         (ves_icall_System_Globalization_CompareInfo_internal_index):
14498         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14499         Double-check the resuls of usearches, because ICU currently
14500         ignores most of the collator settings here.  Fixes bug 59720.
14501         
14502 2004-06-08  Dick Porter  <dick@ximian.com>
14503
14504         * locales.c
14505         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14506         Fix memory leak and segfault-causing typo.  No idea how this one
14507         lasted so long without being noticed.
14508
14509 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
14510
14511         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
14512         any methods. Fixes #59629.
14513
14514 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14515
14516         * assembly.c:
14517         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
14518         own the critical section before). Removed dead code (that's done
14519         in the preload hook).
14520
14521         (mono_assembly_load_with_partial_name): call the preload hook.
14522
14523 2004-06-08  Martin Baulig  <martin@ximian.com>
14524
14525         * metadata.c (mono_metadata_signature_alloc): Default
14526         `sentinelpos' to -1.
14527
14528         * reflection.c (mono_image_get_array_token): Likewise.
14529
14530 2004-06-08  Martin Baulig  <martin@ximian.com>
14531
14532         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
14533
14534         * metadata.c (mono_metadata_parse_method_signature): When parsing
14535         a MethodDef which has VarArgs, set sentinelpos.
14536
14537         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
14538         `gint16' since we're using -1 for non-varargs methods.
14539
14540         * reflection.c
14541         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
14542         (method_encode_signature): Added varargs support.
14543         (method_builder_encode_signature): Likewise.
14544         (mono_image_get_varargs_method_token): New static method.
14545         (mono_image_create_method_token): New public method; this is
14546         called via an icall instead of mono_image_create_token() when
14547         calling a varargs method.       
14548
14549 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
14550
14551         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
14552
14553 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14554
14555         * culture-info-tables.h : Reflecting the latest locale-builder that
14556           fixed empty array representation ({} to {0}).
14557
14558 2004-06-07  Jackson Harper  <jackson@ximian.com>
14559
14560         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
14561         looking up extra gac paths. This allows MONO_GAC_PATH to act
14562         exactly like a prefix.
14563         
14564 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
14565
14566         * reflection.c (mono_reflection_type_from_name): Make a copy of the
14567         type name before modifying it. Fixes #59405.
14568
14569 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14570
14571         * culture-info.h: added fields for "all datetime patterns".
14572         * locales.c: (  ves_icall_System_Globalization_CultureInfo
14573           _construct_datetime_format ()): fill xxx_patterns fields.
14574         * object.h: added fields for "all datetime patterns" to
14575           MonoDateTimeFormatInfo.
14576         * culture-info-tables.h: reflecting locale-builder updates.
14577
14578 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
14579
14580         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
14581         the event has no add and remove methods. Fixes #59629.
14582
14583 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
14584
14585         * object.c: Fixed possible integer overflow when allocating large
14586         strings.
14587
14588 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
14589
14590         * culture-info-tables.h: reflecting locale-builder updates.
14591
14592 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
14593
14594         * culture-info-tables.h: reflecting locale-builder updates.
14595
14596 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
14597
14598         * culture-info-tables.h: reflecting locale-builder updates.
14599
14600 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
14601
14602         * threads.c: Made Thread.Sleep abortable.
14603
14604 2004-06-02  Martin Baulig  <martin@ximian.com>
14605
14606         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
14607
14608         * debug-mono-symfile.h: Bumped symbol file version number to 37.
14609
14610 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
14611
14612         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
14613
14614 2004-05-30  Jackson Harper  <jackson@ximian.com>
14615
14616         * reflection.c: Do not hardcode assembly versions or public key
14617         tokens anymore. All of this except the corlib section was dead
14618         code anyways.
14619         
14620 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
14621
14622         * object.c (mono_runtime_invoke_array): Automatically create boxed
14623         objects for byref valuetypes if needed. Fixes #59300.
14624         
14625         * object.c (mono_method_return_message_restore): Handle 
14626         MONO_TYPE_OBJECT as well.
14627
14628 2004-05-28  Jackson Harper  <jackson@ximian.com>
14629
14630         * reflection.c: The modified type encoding was causing build
14631         problems. Reverted for now.
14632         
14633 2004-05-28  Jackson Harper  <jackson@ximian.com>
14634
14635         * reflection.c/h: Take an assembly ref so that we dont create
14636         fully qualified names when encoding types in the same assembly as
14637         the custom attribute being emitted.
14638         * appdomain.c: Increment version number.
14639         
14640 2004-05-26  Duncan Mak  <duncan@ximian.com>
14641
14642         * icall.c
14643         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14644         Set the full version number (major, minor, build, revision).
14645
14646 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
14647
14648         * marshal.c (emit_struct_conv): increment src/dst after blit
14649         (mono_marshal_get_managed_wrapper,
14650         mono_marshal_get_native_wrapper): make sure we have marshalling
14651         info before marshalling params (info computation affects
14652         blittable)
14653
14654         * class.c (class_compute_field_layout): correctly deal with
14655         blittable
14656         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
14657         value types (as per what windows dows by default)
14658         (mono_class_setup_mono_type): System.ValueType is blittable
14659         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
14660         blittable
14661
14662         * marshal.c (mono_marshal_load_type_info): flag types  as
14663         non-blittable if the native layout doesn't match the managed
14664         layout
14665
14666 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14667
14668         * appdomain.c: don't add stuff in the private search path that is
14669         above the application base. If application base is not set, there's
14670         no private search path.
14671
14672 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
14673
14674         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
14675         byref struct arguments in native->managed marshalling.
14676
14677 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
14678
14679         * marshal.c (mono_marshal_get_runtime_invoke): correctly
14680         cache methods using signature (special case for methods
14681         that are value type or string class)
14682         
14683         * image.c (mono_image_close): clean up allocated GSList's
14684         in runtime_invoke_cache.
14685
14686 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14687
14688         * mono-config.c: set the correct path for mono_cfg_dir on windows when
14689         there's no MONO_CFG_DIR environment variable defined.
14690
14691 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14692
14693         * threads.c: windows version must be >= 0x0500 to include OpenThread.
14694
14695 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
14696
14697         * threadpool.c: Really wait for 500ms after the async call, even if the wait
14698           is interrumped.
14699         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
14700           before waiting for it, and call CloseHandle after the wait to unref it.
14701           This will make sure that handles are not disposed too early.
14702
14703 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14704
14705         * appdomain.c:
14706         * appdomain.h:
14707         * icall.c: removed
14708         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
14709         needed now.
14710
14711         * object.c: se the application_base only for the domain that runs
14712         Main. Fixes bug #59216,
14713
14714 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14715
14716         * appdomain.c:
14717         * object.c: only the domain in which Main is run have
14718         SetupInformation.ConfigurationFile set, so moved a few lines from
14719         appdomain.c to object.c.
14720
14721 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14722
14723         * appdomain.c: we tried to load [name].(dll|exe), but according
14724         to bug #57710, we must also try [culture]/[name].(dll|exe) and
14725         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
14726         There's a test case attached to bug #58922.
14727
14728 2004-05-27  Dick Porter  <dick@ximian.com>
14729
14730         * icall.c:
14731         * file-io.c: Implemented icalls for locking and unlocking regions
14732         in a file.
14733         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
14734         FALSE on error (fixes both compiler warning and real bug.)
14735
14736 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
14737
14738         * culture-info-tables.h: reflecting locale-builder updates.
14739
14740           (Added missing ChangeLog entry for 05/26)
14741
14742 2004-05-27  Jackson Harper  <jackson@ximian.com>
14743
14744         * locales.c: Fix some cut and paste errors.
14745         
14746 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14747
14748         * mono-config.c: set the correct path for config. directory on windows.
14749
14750 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
14751
14752         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
14753           on win32.
14754
14755 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
14756
14757         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
14758         from pinvoke functions.
14759         
14760         * marshal.c (mono_ftnptr_to_delegate): Implement this.
14761
14762 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
14763
14764         * culture-info-tables.h: reflecting locale-builder updates.
14765
14766 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
14767
14768         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
14769         #59086.
14770
14771 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
14772
14773         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
14774         * icall.c: Modified icalls for RNG.
14775         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
14776         Windows (CryptoAPI).
14777
14778 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
14779
14780         * locales.c: Fix build.
14781
14782 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
14783
14784         * culture-info-tables.h: reflecting locale-builder updates.
14785
14786 2004-05-25  Jackson Harper  <jackson@ximian.com>
14787
14788         * locales.c: When creating the current culture use the $LANGs
14789         specific culture. So DateTimeFormat and NumberFormat entries are created.
14790         
14791 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
14792
14793         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
14794         a char array as parameter.
14795
14796 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
14797
14798         * image.c: In mono_image_open(), always use an absolute path name to
14799           look for already loaded images.
14800
14801 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
14802
14803         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
14804         missing in the windows build (like older cygwin include files).
14805
14806 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
14807
14808         * icall.c: Fixed check for possible integer overflow in Buffer_
14809         BlockCopy icall. Replaced comments style // by /* */.
14810
14811 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
14812
14813         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
14814         
14815         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
14816         check after MONO_VTADDR. Fixes pinvoke2.exe.
14817
14818         * marshal.h marshal.c metadata.h: Add beginnings of support for
14819         ftnptr -> delegate marshalling.
14820
14821 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
14822
14823         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
14824         * threads.c: Fix warnings.
14825
14826 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
14827
14828         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
14829         * icall.c: Registered icalls for Suspend and Resume.
14830         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
14831           Thread.Abort.
14832         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
14833         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
14834         * process.c: Use WaitForSingleObjectEx.
14835         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
14836           checkpoints.
14837         * threads.c, threads.h: Make use of new Ex wait methods. Improved
14838           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
14839           for Suspend and Resume. Added new mono_thread_stop, used for stoping
14840           background threads. Added basic support for Abort in Windows.
14841           Start new threads using a managed delegate invoke wrapper. This wrapper
14842           has an interruption checkpoint that is needed since an interruption
14843           can be requested before the thread leaves the unmanaged code that starts 
14844           the thread.
14845         * marshal.c: Added interruption checkpoint after every native call, and
14846           also before managed calls for wrappers called from unmanaged code to
14847           go into managed code.
14848         * object.h: Added new field in MonoThread to keep track of interruption
14849           requests.
14850
14851 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
14852
14853         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
14854         calls.
14855
14856 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14857
14858         * appdomain.c:
14859         * assembly.c:
14860         * gc.c:
14861         * locales.c:
14862         * mono-config.c:
14863         * rand.c: getenv -> g_getenv (windows!)
14864
14865         * process.c: complete_path is also used on non-windows platforms.
14866
14867 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14868
14869         * icall.c: new signature for Process_Start.
14870
14871         * process.[ch]: new signature for Process_Start. If we're on windows
14872         and UseShellExecute is false, we have to search for the program by
14873         ourselves if we don't get a full path.
14874
14875 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
14876
14877         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
14878         marshalling and call CleanUpNativeData if needed. Fixes #58646.
14879
14880 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14881
14882         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
14883         Fixes bug #58373.
14884
14885 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14886
14887         * process.c: use double quotes to quote program name and arguments on
14888         windows. Fixes bug #58575.
14889
14890 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14891
14892         * file-io.c: don't return "." and ".." when using windows Find*File.
14893
14894 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
14895
14896         * marshal.c: Don't pass wrappers to message init because method 
14897         addressed used to lookup metadata. part of remoting[2|3] fix.
14898
14899 2004-05-15  Jackson Harper  <jackson@ximian.com>
14900
14901         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
14902         path is essentially the same as MONO_PATH except that it points to
14903         GACs instead of lib directories.
14904         * loader.h: The user gac is gone so we dont need function to
14905         enable/disable it.
14906         * mono-config.c: user gac option is now gone.
14907         
14908 2004-05-15  Jackson Harper  <jackson@ximian.com>
14909
14910         * culture-info.h: Make defines more consistent, add calendar data
14911         to the culture info table.
14912         * culture-info-tables.h: Add basic calendar data. Basically
14913         everyone gets default gregorian until all the data is
14914         updated.
14915         * locales.c: Use the new consistent defines. Set calendar data for
14916         culture info objects.
14917         * object.h: add a field for calendar data to CultureInfo
14918         
14919 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
14920
14921         * image.c: image->runtime_invoke_cache is keyed on signatures now.
14922         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
14923         a signature.
14924         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
14925         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
14926         an extra param that is the pointer of the method to invoke. The IL for
14927         the invoke method is no longer specific to the method, but to the
14928         signature of the method. Thus, we can share the same code for multiple
14929         methods. This reduces the number of methods that have to be compiled.
14930
14931 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
14932
14933         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
14934
14935         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14936
14937         * icall.c: Optimize Buffer.BlockCopy.
14938
14939 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14940
14941         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
14942         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
14943         quote). Changed them to "MMMM yyyy".
14944
14945 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
14946
14947         * rand.c
14948         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
14949
14950 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
14951
14952         * reflection.h: Updated after changes to managed structures.
14953
14954         * appdomain.c: Bump corlib version.
14955
14956 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14957
14958         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
14959         windows.
14960
14961 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14962
14963         * Makefile.am: link to ../os/libmonoos.la on windows.
14964
14965         * assembly.c:
14966                 -If MONO_DEBUG, warn about non-existing directories in
14967                 MONO_PATH.
14968                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
14969                 compile time variable.
14970                 -Removed init_default_path and call mono_set_rootdir from
14971                 libmonoos.a instead (windows only).
14972
14973         * assembly.h: declare mono_assembly_getrootdir().
14974
14975         * domain.c:
14976         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
14977
14978         * loader.c: s/getenv/g_getenv/
14979
14980 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
14981
14982         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
14983
14984         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
14985
14986         * metadata.h: Add new marshalling conversions.
14987
14988         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
14989         function.
14990
14991         * reflection.c (mono_reflection_get_type): Lookup the type in all
14992         modules of a multi-module assembly. Fixes #58291.
14993
14994 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
14995
14996         * threads.c: Before aborting a background, set the StopRequested
14997         state.  This avoids throwing the Abort exception.
14998         In mono_thread_manage, don't continue with the shutdown until all
14999         aborted threads have actually stopped.
15000
15001 2004-05-10  Jackson Harper  <jackson@ximian.com>
15002
15003         * locales.c: Remove the modifier from culture names.
15004         
15005 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15006
15007         * Makefile.am: monosn is not installed any more. It has been deprecated
15008         in favor of sn.
15009
15010 2004-05-07  Jackson Harper  <jackson@ximian.com>
15011
15012         * locales.c
15013         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
15014         Fix array construction, add bailout if the length is 0.
15015
15016 2004-05-07  Dick Porter  <dick@ximian.com>
15017
15018         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
15019         machine doesn't have a DNS entry.  Patch by Urs Muff
15020         (umuff@quark.com), fixes bug 57928.
15021
15022 2004-05-06  Jackson Harper  <jackson@ximian.com>
15023
15024         * reflection.c: Handle null PublicTokens properly. alloc mem for
15025         assembly names culture so we dont crash when freeing it.
15026         
15027 2004-05-06  Jackson Harper  <jackson@ximian.com>
15028
15029         * assembly.c: Check the usergac when loading with partial names.
15030         
15031 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
15032
15033         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
15034         does nothing for now (not required for Linux/Windows) but the class
15035         library can call it (and a newer or modified runtime could need it).
15036         * icall.c: Registred icall.
15037
15038 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15039
15040         * loader.c: prints a message on module loading error we set MONO_DEBUG
15041         environment variable.
15042
15043 2004-05-05  Jackson Harper  <jackson@ximian.com>
15044
15045         * appdomain.c: Handle PublicKeyToken=null properly.
15046         
15047 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
15048
15049         * environment.c|h: Added icall ves_icall_System_Environment_
15050         GetOSVersionString to get the current OS version as a string.
15051         * icall.c: Registred icall.
15052
15053 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
15054
15055         * object.c: in mono_object_get_virtual_method(), take into account that
15056         non-virtual methods don't have a slot in the vtable. Check needed when
15057         the object is a proxy.
15058
15059 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
15060
15061         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
15062         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
15063
15064         * object.c (mono_class_compute_gc_descriptor): Fix warning.
15065
15066         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
15067         passed when a valuetype is expected.
15068
15069         * object.c (mono_unhandled_exception): Only set the exit code if the
15070         exception happens in the main thread. Fixes thread5.exe.
15071
15072         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
15073         invalid names. Fixes #58047.
15074
15075 2004-05-03  Jackson Harper  <jackson@ximian.com>
15076
15077         * assembly.c: This line was committed accidently and is unneeded.
15078         
15079 2004-05-03  Jackson Harper  <jackson@ximian.com>
15080
15081         * icall.c: Add new icall for Assembly::LoadWithPartialName
15082         * assembly.c/.h: new function that probes the GAC to load partial
15083         assembly names by Paolo Molaro.
15084         
15085 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15086
15087         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
15088         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
15089         (type_get_fully_qualified_name): Added PublicKeyToken when building a
15090         full type name.
15091
15092 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15093
15094         * appdomain.c: fixed check for 'neutral' culture and removed warning.
15095         * reflection.c: fix bug when parsing a full type name and Version is not
15096         the last thing in the string.
15097
15098 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
15099
15100         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
15101         crashes when it is freed.
15102
15103 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15104
15105         * assembly.c: print the compat warning to stderr.
15106
15107 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
15108
15109         * assembly.c (mono_assembly_load_references): Add a compatibility
15110         hack to run old applications that might be still referencing the
15111         3300-based assemblies, only do this for System.xxx.
15112
15113 2004-05-01  Jackson Harper  <jackson@ximian.com>
15114
15115         * appdomain.c: If the culture is neutral we set it to "".
15116         
15117 2004-04-29  Jackson Harper  <jackson@ximian.com>
15118
15119         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
15120
15121 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
15122  
15123         * string-icalls.c: added low overhead function for copying chars
15124         * icall.c: added needed icall for the above function
15125  
15126 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15127
15128         * icall.c: fix return value of get_global_assembly_cache.  Implemented
15129         Environment.GetLogicalDrives.
15130
15131 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
15132
15133         * rand.c: try and talk to egd or prngd
15134         for random bytes if opening devices fail.
15135
15136 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
15137
15138         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
15139         alignment for the type using the native alignment of its members 
15140         instead of using klass->min_align.
15141
15142         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
15143
15144 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15145
15146         * file-io.c:
15147         * socket-io.c: added check for sys/aio.h.
15148
15149 2004-04-28  Dick Porter  <dick@ximian.com>
15150
15151         * threads.c: Don't abort a thread thats already aborting, when
15152         terminating everything.
15153
15154 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15155
15156         * icall.c: added 2 new async calls for Socket.
15157
15158         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
15159         IO on *nix systems.
15160
15161         * threadpool.c: removed unused variable.
15162
15163 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
15164
15165         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
15166
15167 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15168
15169         * locales.c: put back string_invariant_tolower () and
15170         string_invariant_toupper ().
15171
15172 2004-04-26 David Waite <mass@akuma.org>
15173
15174         * file-io.h:
15175         * socket-io.h:
15176         * threads.h:
15177         * unicode.h: remove comma from end of enumeration declarations
15178
15179 2004-04-26 David Waite <mass@akuma.org>
15180
15181         * debug-mono-symfile.h:
15182         * decimal.c:
15183         * mono_debug.h:
15184         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
15185
15186
15187 2004-04-26  Jackson Harper  <jackson@ximian.com>
15188
15189         * appdomain.c: Increment version number.
15190         
15191 2004-04-26  Jackson Harper  <jackson@ximian.com>
15192
15193         * appdomain.c: Set assembly references public token value when
15194         PublicKeyToken is specified, not the hash_value. Free public token
15195         values when free assembly name data. Previously the public key
15196         token was hex decoded, however we are using hex encoded public key
15197         tokens, so this is not neccasary.
15198         * assembly.c: Lookup assemblies in the gac if their public token
15199         value is set. Add function to allow enabling user gac
15200         lookups. Specify whether or not the assembly was loaded from the
15201         GAC. Compare full assembly names when checking the cache for
15202         assemblies (Temporarily disabled see comment in code). Remove
15203         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
15204         specifies trace-loader they get extra info to stdout on the
15205         loading of assemblies.
15206         * image.h: Add a field for an assembly references public token
15207         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
15208         whether an assembly has been loaded from the GAC.
15209         * image.c: Remove a corlib -> mscorlib name mapping.
15210         * loader.h: Add function to enable/disable the user gac.
15211         * mono-config.c: Check if the usergac is enabled in the config
15212         file.
15213         * icall.c: New icall to determine whether or not an assembly has
15214         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
15215         * tabldefs.h: Add constant for assemblyref flag that specifies a
15216         full public key is used instead of a public token.
15217         * reflection.c: Remove mscorlib -> corlib mappings. Set
15218         PublicTokenValue instead of hash value. This value is a hex
15219         string so it does not need to be expanded.
15220
15221 2004-04-26  Martin Baulig  <martin@ximian.com>
15222
15223         * mono-debug-debugger.c (mono_debugger_initialize): Set
15224         `mono_debugger_initialized' before calling mono_debug_lock().
15225
15226 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
15227
15228         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
15229           InternalToUpper/InternalToLower.
15230         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
15231           removed invariant culture shortcut.  This is now done in managed code.
15232         * locales.c: (string_invariant_toupper/tolower) removed.
15233
15234 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15235
15236         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
15237         Added Poll internal call.
15238
15239         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
15240         call for Poll. Select was too heavy for polling a single socket.
15241
15242         * threadpool.[ch]: added mono_threadpool_cleanup.
15243         * threads.c: use it. Don't use Thread_Abort on windows.
15244
15245 2004-04-23  Martin Baulig  <martin@ximian.com>
15246
15247         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
15248
15249 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
15250
15251         * icall.c: Registred new icalls for key pair protection and added an
15252         icall for Environment.GetFolderPath on Windows.
15253         * security.c|h: Added new icalls for key pair protection.
15254
15255 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15256
15257         * socket-io.c: don't display the non-supported family warning for known
15258         families. Now this is not displayed on windows when checking support
15259         for IPv4/IPv6.
15260
15261 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15262
15263         * class.c: don't display the layout warning for static fields.
15264
15265 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
15266
15267         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
15268         * locales.c, locales.h: Added new icalls for culture-specific
15269         Char.ToLower and Char.ToUpper.
15270
15271 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15272
15273         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
15274         by David Waite.
15275
15276 2004-04-20  Martin Baulig  <martin@ximian.com>
15277
15278         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
15279         of the type name before passing it to mono_reflection_type_from_name().
15280
15281 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
15282
15283         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
15284         encodings here. Fixes #56965.
15285
15286 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
15287
15288         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15289         fix test on strstr result not that I can see anything that
15290         relies on the result.
15291
15292 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
15293
15294         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
15295         Fixes #57081.
15296
15297         * marshal.c (mono_marshal_get_string_encoding): New helper function.
15298
15299         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
15300         function to determine which marshalling to use for strings. Fixes
15301         #56965.
15302
15303         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
15304
15305         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
15306
15307 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
15308
15309         * icall.c: #include mono-config.h
15310
15311 2004-04-15  Jackson Harper  <jackson@ximian.com>
15312
15313         * culture-info-tables.h: Fix date formats for en-US culture.
15314         
15315 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
15316
15317         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
15318         ThreadPool.SetMinThreads.
15319         * threadpool.c: Implemented ThreadPool.GetMinThreads and
15320         ThreadPool.SetMinThreads.
15321
15322 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
15323
15324         * mono-config.c: also load the .config file in the directory
15325         where the assembly was found.
15326
15327 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
15328
15329         * assembly.c: load per-assembly config files.
15330         * icall.c: decrapified code to get the config dir and moved to
15331         mono-config.c.
15332         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
15333         per-assembly config files. When doing a dll map lookup give precedence
15334         to the per-assembly data.
15335
15336 2004-04-14  Martin Baulig  <martin@ximian.com>
15337
15338         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
15339         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
15340         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
15341
15342         * mono-debugger-debugger.c: While the debugger is locked, remember
15343         whether the symbol tables have changes and send one single
15344         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
15345
15346 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
15347
15348         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
15349
15350         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
15351         function.
15352
15353         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
15354         account when marshalling string arrays. Fixes #56965.
15355
15356 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
15357
15358         * icall.c: Add new icalls mapping for security.
15359         * security.c|h: Add internal calls for WindowsIdentity,
15360         WindowsImpersonationContext and WindowsPrincipal.
15361
15362 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
15363
15364         * class.c: Added comment to ensure the System.MonoDummy class
15365         is removed when no longer necessary
15366
15367 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
15368
15369         * appdomain.c: Pass arguments to the bootstraping exceptions to
15370         minimize JITed methods at boot
15371
15372         * metadata.c (mono_exception_from_name_two_strings): Allow for the
15373         second string to be null.
15374
15375         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15376         Change the protocol to minimize the JIT methods at startup.  Now
15377         it Returns the internal codepage, if the value of "int_code_page"
15378         is 1 at entry, and we can not compute a suitable code page
15379         number, returns the code page as a string.
15380
15381 2004-04-13  Jackson Harper  <jackson@ximian.com>
15382
15383         * culture-info-tables.h: Fix number of decimal digits for all
15384         english locales.
15385
15386 2004-04-13  Jackson Harper  <jackson@ximian.com>
15387
15388         * icall.c: Clairfy out of sync error message. It is not always
15389         your corlib that is out of sync.
15390
15391 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
15392
15393         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
15394         properties when only the set accessor is overriden. Fixes #55874.
15395
15396 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
15397
15398         * assembly.c (mono_assembly_load_references): Make this thread safe.
15399         Fixes #56327.
15400
15401 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
15402
15403         * monosn.c: Add missing initialization calls.
15404
15405 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
15406
15407         * locales.c:
15408         ves_icall_System_Globalization_CultureInfo_construct_number_format
15409         Fix g_assert so it compiles on fussier compilers re int/ptr
15410         mismatch
15411
15412 2004-04-08  Dick Porter  <dick@ximian.com>
15413
15414         * socket-io.h:
15415         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
15416         53992.  Also rearrange the code so that the internal calls return
15417         an error value and exceptions are thrown from managed code.
15418
15419         * icall.c: Add type info to the socket icalls.
15420
15421 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15422
15423         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
15424         owes me a beer.
15425
15426 2004-04-07  Martin Baulig  <martin@ximian.com>
15427
15428         * class.c (mono_class_from_generic_parameter): Don't default
15429         `klass->parent' to `mono_defaults.object_type'.
15430
15431 2004-04-07  Martin Baulig  <martin@ximian.com>
15432
15433         * reflection.c (mono_reflection_initialize_generic_parameter): Set
15434         `param->pklass->reflection_info'.       
15435
15436 2004-04-07  Jackson Harper  <jackson@ximian.com>
15437
15438         * culture-info-tables.h: Fix date separator symbol.
15439         
15440 2004-04-07  Martin Baulig  <martin@ximian.com>
15441
15442         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
15443         from System.Type to System.MonoType.
15444
15445 2004-04-07  Martin Baulig  <martin@ximian.com>
15446
15447         * reflection.h
15448         (MonoReflectionGenericParam): Added `has_reference_type' and
15449         `has_value_type' fields.
15450
15451         * reflection.c (mono_image_get_generic_param_info): Encode the
15452         correct flags if we have the `class' or `struct' constraint.
15453
15454 2004-04-07  Martin Baulig  <martin@ximian.com>
15455
15456         * reflection.h
15457         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
15458
15459 2004-04-07  Jackson Harper  <jackson@ximian.com>
15460
15461         * appdomain.c: Revert extra patches, just wanted to bump the
15462         version number.
15463         
15464 2004-04-07  Jackson Harper  <jackson@ximian.com>
15465
15466         * Makefile.am: Add culture-info private headers.
15467         * icall.c: Add new icalls for contructing locales.
15468         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
15469         * locales.h: Declare new culture info construction methods.
15470         * object.h: Add new fields used to avoid the CultureMap to
15471         MonoCultureInfo.
15472         * culture-info.h: Definition of structs used in the culture info
15473         tables.
15474         * culture-info-tables.h: Autogenerated tables that contain culture
15475         info data. This file was generated with the locale-builder tool.
15476         * appdomain.c: Incement corlib version number.
15477         
15478 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
15479
15480         * appdomain.c: (mono_runtime_init) move mono_thread_init
15481         to before mono_object_new calls so critical sections
15482         are initialized before use.
15483
15484 2004-04-07  Martin Baulig  <martin@ximian.com>
15485
15486         * icall.c
15487         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
15488         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
15489         (ves_icall_MonoGenericParam_initialize): Removed.
15490         (monogenericparam_icalls): Removed.
15491         (generictypeparambuilder_icalls): Added new table for
15492         System.Reflection.Emit.GenericTypeParameterBuilder.
15493
15494         * reflection.c
15495         (mono_reflection_define_generic_parameter): Removed.
15496         (mono_reflection_initialize_generic_parameter): This is now called
15497         from GenericTypeParameterBuilder's .ctor.
15498
15499 2004-04-06  Martin Baulig  <martin@ximian.com>
15500
15501         * class.c (mono_class_init): Don't inflate nested classes in a
15502         generic instance.
15503         (mono_type_get_name_recurse): Include the generic arguments for
15504         generic instances and generic type declarations.
15505         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
15506         (_mono_class_get_instantiation_name): Removed.
15507         (mono_class_create_generic): Always use `gklass->name' as our name.
15508
15509         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
15510
15511         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
15512         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
15513         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
15514         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
15515         closed generic methods here.
15516
15517         * reflection.c
15518         (mono_reflection_generic_inst_get_nested_types): Removed.
15519         (inflate_mono_method): Copy the generic parameters from the
15520         MonoMethodHeader into out MonoGenericMethod.
15521
15522 2004-04-06  Martin Baulig  <martin@ximian.com>
15523
15524         * row-indexes.h
15525         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
15526
15527         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
15528
15529         * reflection.c (build_compressed_metadata): If we have any entries
15530         in the GenericParam, MethodSpec or GenericParamConstraint tables,
15531         set the header version to 1.1.
15532
15533 2004-04-06  Martin Baulig  <martin@ximian.com>
15534
15535         * class.c (mono_class_init): If we're a generic instance,
15536         initialize our nested classes, too.
15537         (_mono_class_get_instantiation_name): Deal with the new `!%d'
15538         suffix. 
15539
15540 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15541
15542         * process.c: quote the argument passed to the shell on windows.
15543
15544 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
15545
15546         * threads.c (mono_alloc_special_static_data): Allow this to be
15547         called during startup.
15548
15549 2004-04-02  Martin Baulig  <martin@ximian.com>
15550
15551         * icall.c
15552         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
15553
15554 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
15555
15556         * icall.c: Fix build.
15557
15558 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
15559
15560         * Makefile.am: Added security.c|h.
15561         * icall.c: Added icall for get_UserName;
15562         * security.c: New file for security related icalls. Added function
15563         get_UserName for System.Environment (fix #56144).
15564         * security.h: New. Header file for security.c
15565
15566 2004-04-02  Dick Porter  <dick@ximian.com>
15567
15568         * icall.c: Deleted the icalls that were obsoleted some time ago
15569         by the ICU string code, and which were mixed into the icall
15570         rearranging.  Fixes bug 55969.
15571
15572         * string-icalls.h: 
15573         * string-icalls.c: Deleted the code that those icalls reference.
15574
15575 2004-04-01  Martin Baulig  <martin@ximian.com>
15576
15577         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
15578
15579         * class.c (mono_class_from_generic_parameter): Don't set 
15580         TYPE_ATTRIBUTE_INTERFACE.
15581         (my_mono_class_from_generic_parameter): Likewise.
15582
15583 2004-04-01  Martin Baulig  <martin@ximian.com>
15584
15585         * loader.c (find_method): Added an optional `MonoClass *ic'
15586         argument to search in a specific interface.
15587         (mono_get_method_constrained): New public function.
15588
15589 2004-04-01  Martin Baulig  <martin@ximian.com>
15590
15591         * reflection.c (mono_image_get_generic_field_token): Use the
15592         `handleref' cache here.
15593
15594 2004-04-01  Martin Baulig  <martin@ximian.com>
15595
15596         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
15597
15598         * reflection.c (create_generic_typespec): Use the `typespec' hash
15599         here, not the `typeref' one.    
15600
15601 2004-04-01  Martin Baulig  <martin@ximian.com>
15602
15603         * class.c (mono_class_inflate_generic_type): Moved the
15604         functionality into a new static inflate_generic_type() which
15605         returns NULL if it didn't do anything.  Only increment the
15606         `mono_stats.inflated_type_count' if we actually inflated
15607         something.
15608         (mono_class_get_full): Check the classes type to see whether we
15609         need to inflate it; also inflate MONO_TYPE_(M)VAR.
15610
15611 2004-04-01  Jackson Harper  <jackson@ximian.com>
15612
15613         * reflection.c: Set culture for assembly references.
15614         
15615 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
15616
15617         * reflection.[ch], icall.[ch], Fix support for pinning variables.
15618
15619 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15620
15621         * assembly.c:
15622         (do_mono_assembly_open): the critical section also covers
15623         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
15624
15625 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15626
15627         * threads.c:
15628         (mono_manage_threads): abort the background threads when finishing.
15629         Fixes bug #47232.
15630
15631 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15632
15633         * gc.c: only close the done_event handle if there was no timeout.
15634         C-ified comments.
15635
15636 2004-03-30  Martin Baulig  <martin@ximian.com>
15637
15638         * icall.c (icall_entries): It's called "System.Activator", not
15639         "System.Activation".    
15640
15641 2004-03-30  Martin Baulig  <martin@ximian.com>
15642
15643         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
15644         (mono_class_create_from_typespec): Likewise.
15645
15646 2004-03-30  Martin Baulig  <martin@ximian.com>
15647
15648         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
15649         `has_ctor_constraint' and `initialized'.
15650
15651 2004-03-30  Martin Baulig  <martin@ximian.com>
15652
15653         * reflection.c (encode_new_constraint): New static function to add
15654         the constructor constraint attribute to a type parameter.
15655         (encode_constraints): Call encode_new_constraint() if necessary.
15656
15657         * reflection.h
15658         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
15659
15660         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
15661         
15662 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
15663
15664         * reflection.c, icall.c: add support for pinning variables. 
15665
15666 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
15667
15668         * marshal.c (mono_marshal_get_managed_wrapper):
15669         init bool local with zero rather than null.
15670
15671 2004-03-29  Martin Baulig  <martin@ximian.com>
15672
15673         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
15674         the "official" behavior here.
15675         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
15676
15677 2004-03-29  Martin Baulig  <martin@ximian.com>
15678
15679         * icall.c: Reflect latest API changes.
15680
15681 2004-03-29  Martin Baulig  <martin@ximian.com>
15682
15683         * loader.c (mono_get_method_from_token): Also call
15684         mono_metadata_load_generic_params () for abstract and interface
15685         methods; replace the type arguments in the method signature with
15686         the ones which are loaded from the metadata.
15687
15688 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
15689
15690         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
15691         of the lock is not the current thread. MS.NET don't do it, in spite of
15692         what the documentation says. See bug #56157.
15693
15694 2004-03-28  Martin Baulig  <martin@ximian.com>
15695
15696         * class.c (mono_class_init): Don't call init_properties() and
15697         init_events() for generic instances; set `prop->parent' when
15698         inflating properties.
15699
15700         * reflection.c (mono_generic_inst_get_object): Call
15701         `mono_class_init (ginst->klass)'.
15702         (mono_type_get_object): Only create a MonoGenericInst if your
15703         generic type is a TypeBuilder.
15704         (do_mono_reflection_bind_generic_parameters): Only set
15705         `ginst->is_dynamic' if our generic type is a TypeBuilder.
15706
15707 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
15708
15709         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
15710         Fixes #56091.
15711
15712 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15713
15714         * icall.c: added Kill_internal icall.
15715         * process.[ch]: added Kill_internal icall.
15716
15717 2004-03-25  Martin Baulig  <martin@ximian.com>
15718
15719         * class.h (MonoStats): Added `generic_instance_count',
15720         `inflated_method_count', `inflated_type_count' and
15721         `generics_metadata_size'.       
15722
15723 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15724
15725         * reflection.c: no warnings now.
15726
15727 2004-03-25  Martin Baulig  <martin@ximian.com>
15728
15729         * class.c (mono_class_get_full): New public function; does a
15730         mono_class_get(), but also takes a `MonoGenericContext *'.
15731
15732         * loader.c (mono_field_from_memberref): Renamed to
15733         `field_from_memberref', made static and added `MonoGenericContext *'
15734         argument.
15735         (mono_field_from_token): Added `MonoGenericInst *' argument.
15736         (method_from_memberef): Likewise.
15737         (mono_get_method_from_token): Likewise.
15738         (mono_get_method_full): New public function; does a
15739         mono_get_method(), but also takes a `MonoGenericContext *'.
15740
15741         * verify.c (mono_method_verify): Get the method's generic context
15742         and pass it to mono_field_from_token(), mono_get_method_full() and
15743         mono_class_get_full().
15744
15745 2004-03-25  Martin Baulig  <martin@ximian.com>
15746
15747         * class.c (mono_class_inflate_generic_type): Take a
15748         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
15749         `MonoGenericMethod *'.
15750
15751 2004-03-25  Martin Baulig  <martin@ximian.com>
15752
15753         * loader.h (MonoMethodInflated): Store the MonoGenericContext
15754         instead of the MonoGenericMethod here.
15755
15756 2004-03-25  Martin Baulig  <martin@ximian.com>
15757
15758         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
15759         each time we create a new MonoGenericInst, we also create a new
15760         context which points back to us.
15761
15762         * class.c (inflate_method): Use `ginst->context' instead of
15763         creating a new context.
15764
15765         * loader.c (method_from_memberref): Use
15766         `klass->generic_inst->context' instead of creating a new context.
15767
15768 2004-03-25  Martin Baulig  <martin@ximian.com>
15769
15770         * class.h (MonoGenericContext): New struct.
15771         (MonoGenericMethod): Removed `generic_inst'.
15772
15773         * class.c (mono_class_inflate_generic_method): Take a
15774         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
15775
15776 2004-03-25  Martin Baulig  <martin@ximian.com>
15777
15778         * loader.h (MonoMethodInflated): New typedef.
15779
15780         * metadata.h (MonoMethodSignature): Removed `gen_method', make
15781         `generic_param_count' consume just 30 bits, added `is_inflated'
15782         and `has_type_parameters' flags (one bit each).
15783
15784         * class.c (mono_class_inflate_generic_method): Create a
15785         MonoMethodInflated instead of a MonoMethodNormal and set
15786         `is_inflated' in the method signature.
15787
15788         * class.h (MonoGenericMethod): Removed `generic_method'.
15789
15790 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
15791
15792         * image.c: Make sure the name of a MonoImage is always an absolute path.
15793           This fixes bug #54415.
15794
15795 2004-03-24  Martin Baulig  <martin@ximian.com>
15796
15797         * class.c (mono_class_setup_vtable): If we're a generic instance,
15798         use our generic type's vtable size.
15799
15800 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
15801
15802         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
15803         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
15804         problems.
15805
15806 2004-03-23  Martin Baulig  <martin@ximian.com>
15807
15808         * class.h (MonoDynamicGenericInst): Added `int count_events' and
15809         `MonoEvent *events'.
15810
15811         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
15812         (typebuilder_icalls): Added "get_event_info"; calls
15813         mono_reflection_event_builder_get_event_info(). 
15814
15815         * reflection.c (mono_reflection_generic_inst_initialize): Added
15816         `MonoArray *events'.
15817         (mono_reflection_event_builder_get_event_info): New function.
15818
15819 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
15820
15821         * object.h: add mono_type_initialization_init
15822
15823         * object.c (mono_runtime_class_init): 
15824         implement class constructor synchronization rules
15825         to cope with threading issues.  
15826         add mono_type_initialization_init
15827
15828         * appdomain.c (mono_runtime_init): call 
15829         mono_type_initialization_init
15830
15831         * class.h: removing initializing field from MonoVTable
15832
15833 2004-03-23  Martin Baulig  <martin@ximian.com>
15834
15835         * class.c (my_mono_class_from_generic_parameter): Use
15836         `param->name' if it's not NULL. 
15837
15838 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
15839
15840         * class.c: do not insert non-virtual methods in the vtable.
15841         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
15842         that means the method is non-virtual. This never would have
15843         happened before.
15844
15845 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
15846
15847         * profiler.c: Added lock for accessing coverage_hash.
15848
15849 2004-03-22  Martin Baulig  <martin@ximian.com>
15850
15851         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
15852         `method->method->signature->generic_param_count != 0' to make it
15853         work for interface methods.
15854
15855 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15856
15857         * process.c: quote the string passed to the shell using g_shell_quote.
15858
15859 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15860
15861         * threads.c:
15862         (mono_threads_manage): don't remove the finalizer thread and self
15863         from the threads hash table so that mono_thread_manage can be called
15864         more than once.
15865
15866 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15867
15868         * process.c: quote the arguments when UseShellExecute is true. Fixes
15869         bug #55790.
15870
15871 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15872
15873         * threads.c: set mono_thread_detach as a cleanup routine for every
15874         thread. This way it's always executed upon thread termination, either
15875         aborted or finished normally. No more xsp hangs!
15876
15877 2004-03-17  Martin Baulig  <martin@ximian.com>
15878
15879         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
15880         `int count_nested' and a `MonoType **nested'.
15881
15882         * reflection.c (mono_reflection_bind_generic_parameters): Moved
15883         most of the functionality into a new static
15884         do_mono_reflection_bind_generic_parameters() and don't take a
15885         `MonoType *nested_in' argument any more.  Don't compute nested
15886         types here.
15887         (mono_reflection_generic_inst_get_nested_types): New public method
15888         to get nested types.
15889
15890         * class.c (mono_class_create_generic): Set `klass->nested_in' if
15891         we're a nested class.
15892
15893         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
15894         mono_reflection_generic_inst_get_nested_types() to compute the
15895         nested types.
15896
15897 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
15898
15899         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
15900         descriptive error message under windows.
15901         
15902 2004-03-17  Martin Baulig  <martin@ximian.com>
15903
15904         * class.c (dup_type): Added `const MonoType *original' argument;
15905         copy the attrs from the original type.
15906
15907 2004-03-17  Martin Baulig  <martin@ximian.com>
15908
15909         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
15910         `m->generic_inst_cache' here.
15911
15912 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
15913
15914         * exception.h exception.c: Add stack_overflow_exception.
15915
15916 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15917
15918         * threadpool.c:
15919         (overlapped_callback): call SetEvent *after* invoking the callback.
15920         No need to call CloseHandle.
15921
15922 2004-03-16  Martin Baulig  <martin@ximian.com>
15923
15924         * reflection.c (mono_image_get_fieldref_token): Take a
15925         `MonoReflectionField *' instead of a `MonoClassField *' and a
15926         `MonoClass *'; store the `MonoReflectionField *' in the hash.
15927
15928 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15929
15930         * appdomain.c: don't add the culture to the filename we're looking for
15931         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
15932
15933 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15934
15935         * locales.c: don't ignore symbols when doing case insensitive compares.
15936         Thanks Dick! Fixes bug #54046.
15937
15938         * threads.c: surround 'threads' usage with enter/leave in
15939         mono_thread_manage.
15940
15941 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
15942
15943         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
15944         implicitly marshalled as [Out]. Fixes #55450.
15945
15946         (mono_marshal_get_runtime_invoke): Zero out the result if there is
15947         an exception.
15948
15949 2004-03-16  Martin Baulig  <martin@ximian.com>
15950
15951         * class.c (mono_class_from_generic_parameter): Use the actual
15952         parameter name. 
15953
15954 2004-03-16  Martin Baulig  <martin@ximian.com>
15955
15956         * reflection.c (type_get_signature_size): New static function.
15957         Compues the size of the type in a method signature.
15958         (method_get_signature_size): New static function; calls
15959         type_get_signature_size() to compute the actual size of the
15960         method's signature.
15961         (method_encode_signature): Use method_get_signature_size() to get
15962         the signature's size rather than using `nparams * 10'.
15963
15964 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15965
15966         * file-io.h: define here WapiOverlapped on windows. I don't want the
15967         regular OVERLAPPED one.
15968
15969         * file-io.c:
15970         * threadpool.c: somehow, BindIoCompletionCallback is not found.
15971         Disabling AIO on windows.
15972
15973 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15974
15975         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
15976         bug #55385.
15977
15978 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15979
15980         * appdomain.c: upgraded corlib version.
15981
15982         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
15983         and BeginWrite. Allow opening files for asynchrnous operations.
15984
15985         * file-io.h: new struct that maps FileStreamAsyncResult.
15986         * icall.c: added new icalls.
15987         * process.[ch]: support setting child process environment variables
15988         and use the SHELL or COMSPEC when UseShellExecute is true.
15989
15990         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
15991         callback for async. IO is here and also BindHandle.
15992
15993         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
15994         from here.
15995
15996 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
15997
15998         * reflection.c (create_custom_attr): Allow len == 0.
15999
16000         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
16001         computation on big-endian machines.
16002
16003 2004-03-13  Martin Baulig  <martin@ximian.com>
16004
16005         * class.h (MonoGenericInst): Added `int count_ifaces'.
16006
16007         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
16008         `ginst->count_ifaces' instead `klass->interface_count' since we
16009         may get called before the vtable is created.
16010
16011         * loader.c (mono_method_get_param_names): If we're a generic
16012         instance, return and don't initialize the class.
16013
16014         * reflection.c (mono_reflection_setup_generic_class): Don't call
16015         ensure_runtime_vtable().
16016         (mono_reflection_bind_generic_parameters): Set
16017         `ginst->count_ifaces'.
16018
16019 2004-03-11  Jackson Harper <jackson@ximian.com>
16020
16021         * icall.c:
16022         * unicode.c:
16023         * unicode.h: Remove unused System.Char icalls.
16024         
16025 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
16026
16027         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
16028         code when we P/Invoke the first library in Windows.Forms, instead
16029         of when we first open the assembly.
16030
16031         * assembly.c: Drop the lookup from here.
16032
16033 2004-03-10  Martin Baulig  <martin@ximian.com>
16034
16035         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
16036         class for properties, fields and events.  Finally fixes #54945.
16037
16038 2004-03-10  Martin Baulig  <martin@ximian.com>
16039
16040         * metadata.c (mono_metadata_class_equal): New static function;
16041         checks whether two generic instances or two generic parameters are
16042         equal.
16043         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
16044         compare classes.        
16045
16046 2004-03-10  Martin Baulig  <martin@ximian.com>
16047
16048         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
16049
16050         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
16051         argument and write it into the `reflection_info' field.
16052
16053         * icall.c
16054         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
16055         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
16056
16057 2004-03-09  Jackson Harper  <jackson@ximian.com>
16058
16059         * char-conversions.h: use 8 bits for numeric data its all we need
16060         * icall.c: numeric data is only 8 bits now.
16061
16062 2004-03-09  Martin Baulig  <martin@ximian.com>
16063
16064         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
16065
16066         * class.c (init_properties, init_events): Initialize the new
16067         `parent' field.
16068
16069         * reflection.c (typebuilder_setup_properties): Likewise.
16070         (typebuilder_setup_events): Likewise.
16071
16072         * reflection.h (MonoEventInfo): Replaced `parent with
16073         `declaring_type' and `reflected_type'.
16074
16075         * icall.c (ves_icall_get_property_info): Distinguish between
16076         declaring and reflected type.
16077         (ves_icall_get_event_info): Likewise.
16078
16079 2004-03-09  Martin Baulig  <martin@ximian.com>
16080
16081         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
16082         (ves_icall_Type_GetField): Correctly set field->klass.
16083
16084 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
16085
16086         * loader.h: Fix warning.
16087
16088 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
16089
16090         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
16091         library routine if present.  Notice that it will still continue
16092         executing even if its missing, for those working on the Gtk#
16093         edition of Windows.Forms.
16094
16095         * assembly.c (do_mono_assembly_open): If loading the
16096         System.Windows.Forms call mono_loader_wini_init.
16097
16098 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
16099
16100         * class.h: Added MonoRemoteClass struct.
16101         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
16102         function for MonoStrings.
16103         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
16104         Added internal call for getting the proxy type.
16105         * marshal.c: Get the type of transparent proxies from its remote_class.
16106         Added methods that generate the IL for type checks and casts:
16107         mono_marshal_get_isinst, mono_marshal_get_castclass, 
16108         mono_marshal_get_proxy_cancast.
16109         * marshal.h: Declaration of the previous new methods.
16110         * object.c: Added new moethods for creating and updating MonoRemoteClass
16111         instances: mono_remote_class, mono_upgrade_remote_class, 
16112         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
16113         * verify.c: FIx transparent_proxy_fields layout.
16114         * appdomain.c: Bump corlib version.
16115
16116 2004-03-04  Jackson Harper  <jackson@ximian.com>
16117
16118         * icall.c: Add icall to access char conversion tables.
16119         * char-conversions.h: Character conversion tables.
16120         * Makefile.am: Add char-conversions.h private header file.
16121         
16122 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
16123
16124         * appdomain.c (unload_thread_main): Increase unloading timeout to
16125         10 sec as a temporary workaround for Nant problems.
16126
16127 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
16128
16129         * gc.c: Add checks for GC_enable and GC_disable.
16130
16131         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
16132         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
16133         (bug #54988).
16134         
16135 2004-02-27  Martin Baulig  <martin@ximian.com>
16136
16137         * reflection.c (mono_reflection_bind_generic_parameters): Take a
16138         `MonoReflectionType *' instead of a `MonoType *'.
16139
16140 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
16141
16142         * gc.c (run_finalize): Avoid finalizing the object representing the
16143         finalizer thread.
16144         (finalizer_thread): Fix warning.
16145
16146 2004-02-25  Martin Baulig  <martin@ximian.com>
16147
16148         * class.c (_mono_class_get_instantiation_name): Added `int offset'
16149         argument for nested types.
16150         (mono_class_create_generic): Added support for nested generictypes.
16151
16152         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
16153         `GList *nested'.
16154
16155         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
16156
16157         * reflection.c (method_encode_signature): Increase the minimum
16158         value of `size' from 10 to 11.
16159         (mono_reflection_bind_generic_parameters): Take `int type_argc'
16160         and `MonoType **types' arguments instead of the `MonoArray
16161         *types'; added `MonoType *nested_in'.  Recursively instantiate
16162         nested classes. 
16163
16164 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
16165
16166         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
16167         stack_overflow_ex members which are used by exception handling.
16168
16169         * appdomain.c (mono_runtime_init): Initialize the new members.
16170
16171         * gc.c (mono_gc_enable): New helper function.
16172         * gc.c (mono_gc_disable): New helper function.
16173
16174 2004-02-23  Martin Baulig  <martin@ximian.com>
16175
16176         * icall.c: I must have been really stupid - make it actually work
16177         this time ;-)
16178
16179 2004-02-23  Martin Baulig  <martin@ximian.com>
16180
16181         * loader.c (method_from_memberref): Only inflate the method if
16182         it's in another klass.
16183
16184 2004-02-23  Martin Baulig  <martin@ximian.com>
16185
16186         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
16187         (mono_class_init): If we're a generic instance and an interface,
16188         compute `class->interface_id'; also create `class->interfaces'
16189         here and inflate them.
16190
16191         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
16192         `ginst->is_open'.
16193         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
16194
16195         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
16196
16197 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
16198
16199         * reflection.c (method_encode_code): Improved the error message
16200         generated by the exception.
16201
16202 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16203
16204         * icall.c: Martin did not do what he said in the ChangeLog for
16205         2004-02-18, but put back the changes for properties and events.
16206         Commenting those changes out again and adding comment to bug #54518.
16207         
16208         * process.c: removed warning.
16209
16210 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
16211
16212         * marshal.c (emit_struct_conv): Print an error message instead of
16213         asserting when a type does not have the StructLayout attribute.
16214
16215 2004-02-20  Martin Baulig  <martin@ximian.com>
16216
16217         * reflection.c (mono_type_get_object): Also use the cache for
16218         generic instances.
16219         (mono_reflection_bind_generic_parameters): Always compute
16220         `ginst->ifaces'.        
16221
16222 2004-02-20  Martin Baulig  <martin@ximian.com>
16223
16224         * class.h (MonoGenericMethod): Removed `klass'.
16225
16226         * class.c (mono_class_inflate_generic_method): Added `MonoClass
16227         *klass' argument.
16228
16229 2004-02-20  Martin Baulig  <martin@ximian.com>
16230
16231         * reflection.c (method_encode_methodspec): Actually use the
16232         uninflated signature for the memberref.
16233
16234 2004-02-20  Martin Baulig  <martin@ximian.com>
16235
16236         * class.h (MonoGenericMethod): Removed `declaring'.
16237
16238         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
16239         is NULL, compute it here.
16240
16241 2004-02-20  Martin Baulig  <martin@ximian.com>
16242
16243         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
16244
16245         * metadata.c (mono_metadata_generic_inst_hash): New method.
16246         (mono_metadata_generic_inst_equal): New method.
16247
16248         * reflection.c (mono_reflection_bind_generic_parameters): Use the
16249         `klass->image->generic_inst_cache' cache to avoid creating
16250         duplicate MonoGenericInst's.
16251
16252         * class.c (mono_class_inflate_generic_type): Use the cache.
16253
16254 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
16255
16256         * object.c: fixed gc descriptor calculation for embedded valuetypes.
16257
16258 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16259
16260         * icall.c: added Socket.WSAIoctl icall.
16261
16262         * socket-io.[ch]: implemented
16263         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
16264
16265 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
16266
16267         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
16268
16269 2004-02-18  Urs C Muff  <umuff@quark.com>
16270
16271         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
16272         this work on PPC and other big-endian architectures.
16273
16274         * debug-mono-symfile.h: Prepended the names of all the `guint32'
16275         fields with an underscore to make sure they're only accessed by
16276         the read32() macro.
16277
16278 2004-02-18  Martin Baulig  <martin@ximian.com>
16279
16280         * icall.c: Put the klass->refclass changes back for methods and
16281         fields, but not for properties and events.  We're currently not
16282         distinguishing between DeclaringType and ReflectedType for
16283         properties and events, that's what caused the regressions.
16284
16285 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16286
16287         * object.c:
16288         (mono_async_result_new): the handle can be NULL.
16289
16290         * threadpool.c: Use an event instead of a semaphore, don't initialize
16291         it until needed. This saves quite a few semaphores from being created
16292         when using the threadpool.
16293
16294 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
16295
16296         * object.c (mono_string_is_interned_lookup): Fix interning of long
16297         strings. Fixes #54473.
16298
16299         * domain.c (ldstr_equal): Optimize if the two strings are equal.
16300
16301         * icall.c: Revert the klass->refclass changes since they introduce
16302         regressions (bug #54518).
16303
16304 2004-02-18  Martin Baulig  <martin@ximian.com>
16305
16306         * class.c (mono_class_init): If we're a generic instance and don't
16307         come from a TypeBuilder, inflate our members here.
16308         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
16309         (mono_class_create_generic): New public method.
16310         (mono_class_initialize_generic): Removed.
16311         (get_instantiation_name): Renamed to
16312         _mono_class_get_instantiation_name() and made it public.
16313
16314 2004-02-18  Martin Baulig  <martin@ximian.com>
16315
16316         * class.c (mono_class_inflate_generic_type): Clear the new
16317         instance's `nginst->klass' when inflating a generic instance.
16318         (mono_class_is_subclass_of): Added (basic) support for generic
16319         instances.
16320
16321 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
16322
16323         * appdomain.h, domain.c: use a MonoCodeManager instead of a
16324         MonoMempool to hold compiled native code.
16325
16326 2004-02-17  Martin Baulig  <martin@ximian.com>
16327
16328         * class.h (MonoDynamicGenericInst): Added `count_properties' and
16329         `properties'.
16330
16331         * reflection.c (mono_reflection_generic_inst_initialize): Added
16332         `MonoArray *properties' argument.
16333
16334         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
16335
16336 2004-02-17  Martin Baulig  <martin@ximian.com>
16337
16338         * icall.c (ves_icall_Type_GetFields): Renamed to
16339         ves_icall_Type_GetFields_internal() and added a
16340         `MonoReflectionType *rtype' argument; pass it to
16341         mono_field_get_object() to set the field's "reflected" type.
16342         (ves_icall_Type_GetConstructors): Likewise.
16343         (ves_icall_Type_GetEvents): Likewise.
16344         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
16345         argument; pass it to mono_method_get_object() to set the method's
16346         "reflected" type.       
16347
16348 2004-02-17  Martin Baulig  <martin@ximian.com>
16349
16350         * class.h (MonoDynamicGenericInst): New type.
16351         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
16352
16353         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
16354         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
16355         (ves_icall_MonoGenericInst_GetFields): New interncall.
16356
16357         * class.c (mono_class_from_generic): Don't call
16358         mono_class_initialize_generic() if this is a dynamic instance;
16359         ie. it's being created from a TypeBuilder.
16360         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
16361         `class->byval_arg.type'.
16362
16363         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
16364         to `inflate_method' and made static.
16365         (mono_reflection_inflate_field): Removed.
16366         (mono_reflection_generic_inst_initialize): New public method.
16367
16368         * reflection.h (MonoReflectionGenericInst): Removed `methods',
16369         `ctors' and `fields'; added `initialized'.
16370
16371 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
16372
16373         * debug-helpers.c (mono_method_full_name): Fix output for empty
16374         namespaces.
16375
16376 2004-02-12  Martin Baulig  <martin@ximian.com>
16377
16378         * class.h (MonoClassField): Added `MonoType *generic_type'.
16379
16380         * reflection.c (mono_image_get_fieldref_token): Added support for
16381         instantiated generic types.
16382         (field_encode_inflated_field): Removed.
16383         (mono_image_get_inflated_field_token): Removed.
16384         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
16385
16386         * reflection.h (MonoReflectionInflatedField): Removed.
16387
16388 2004-02-12  Martin Baulig  <martin@ximian.com>
16389
16390         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
16391         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
16392
16393         * reflection.c (mono_image_get_methodspec_token): Take a
16394         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
16395         (mono_image_create_token): Check whether we have a
16396         `method->signature->gen_method' and call
16397         mono_image_get_methodspec_token() if appropriate.
16398         (inflated_method_get_object): Removed.
16399         (mono_reflection_bind_generic_method_parameters): Return a
16400         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
16401         (mono_reflection_inflate_method_or_ctor): Likewise.
16402
16403         * reflection.h (MonoReflectionInflatedMethod): Removed.
16404
16405 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
16406
16407         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
16408         for custom valuetype marshalling.
16409
16410         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
16411
16412 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16413
16414         * icall.c: fixed WSAGetLastError_internal name.
16415
16416 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
16417
16418         * threads.c (mono_thread_attach): Allow this to be called multiple
16419         times for a thread.
16420         
16421         * threads.c (build_wait_tids): Do not wait for ourselves.
16422
16423         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
16424         appdomain list is empty.
16425
16426         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
16427         memory returned by mono_string_builder_to_utf16, since it points into
16428         managed memory. Thanks to Bernie Solomon for noticing this.
16429
16430         * icall.c: Add AppDomainSetup icalls.
16431
16432         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
16433
16434         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
16435         types.
16436
16437         * reflection.c (reflection_methodbuilder_to_mono_method): Save
16438         custom attributes to the method_aux struct. Also fix array indexes etc.
16439
16440         * loader.c (mono_method_get_param_names): Make dynamic case work again.
16441         
16442 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
16443
16444         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
16445         (both static and runtime) and reduce startup time.
16446
16447 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
16448
16449         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
16450         AsAny marshalling conversion instead of crashing.
16451
16452         * marshal.c: Fix warnings.
16453
16454 2004-02-09  Martin Baulig  <martin@ximian.com>
16455
16456         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
16457
16458         * reflection.h (MonoReflectionInflatedMethod): Removed the
16459         `declaring' field, it's now in the unmanaged MonoGenericMethod.
16460
16461         * reflection.c (method_encode_methodspec): Removed the `method'
16462         argument; we get it from `gmethod->declaring'.
16463         (inflated_method_get_object): Removed the `declaring' argument.
16464
16465 2004-02-09  Martin Baulig  <martin@ximian.com>
16466
16467         * class.h (MonoGenericMethod): New type.
16468         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
16469         `generic_method'.
16470
16471         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
16472         a `MonoGenericMethod *gen_method' one.
16473
16474         * class.c (mono_class_inflate_generic_type): Take an additional
16475         `MonoGenericMethod * argument.  This is only non-NULL if we're
16476         inflating types for a generic method.   
16477         (mono_class_inflate_generic_signature): Renamed to
16478         inflate_generic_signature() and made static; take a
16479         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16480         (inflate_generic_header): Take a `MonoGenericMethod *' argument
16481         instead of a `MonoGenericInst *' one.
16482         (mono_class_inflate_generic_method): Likewise.
16483
16484         * reflection.c (encode_generic_method_sig): Take a
16485         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16486         (method_encode_methodspec): Likewise.
16487         (inflated_method_get_object): Likewise. 
16488
16489         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
16490         field with a `MonoGenericMethod *gmethod' one.  
16491
16492 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
16493
16494         * class.h (mono_class_has_parent): add parens to expansion
16495         so you can ! this.
16496
16497 2004-02-08  Martin Baulig  <martin@ximian.com>
16498
16499         * image.h (MonoImage): Removed `generics_cache'.
16500
16501         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
16502         instead of a `MonoType *' argument; removed the `inflate_methods'
16503         argument.  Don't inflate methods here.
16504
16505         * loader.c (find_method): If it's a generic instance, call
16506         mono_class_init() on the `sclass->generic_inst->generic_type'.
16507
16508         * metadata.c (mono_type_size): Make this work on uninitialized
16509         generic instances; call it on the `ginst->generic_type's class.
16510
16511         * reflection.c (mono_reflection_bind_generic_parameters): Call
16512         mono_class_from_generic() to create the `ginst->klass'.
16513
16514 2004-02-08  Martin Baulig  <martin@ximian.com>
16515
16516         * class.h (MonoClass): Changed type of `generic_inst' from
16517         `MonoType *' to `MonoGenericInst *'.
16518
16519 2004-02-08  Martin Baulig  <martin@ximian.com>
16520
16521         * icall.c (ves_icall_Type_BindGenericParameters): Just call
16522         mono_type_get_object(), this is now creating a `MonoGenericInst'
16523         for MONO_TYPE_GENERICINST.
16524         (ves_icall_MonoGenericInst_GetParentType): Likewise.
16525         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
16526
16527         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
16528         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
16529         (inflated_method_get_object): Added `MonoClass *refclass' argument.
16530         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
16531         and reflected type.
16532
16533         * reflection.h (MonoReflectionInflatedMethod): Removed
16534         `declaring_type' and `reflected_type'.
16535
16536 2004-02-08  Martin Baulig  <martin@ximian.com>
16537
16538         * class.h (MonoGenericInst): Added `MonoType *parent' and
16539         `MonoType **ifaces'.
16540
16541         * reflection.h (MonoReflectionGenericInst): Removed `klass',
16542         `parent' and `interfaces'.
16543
16544         * reflection.c (mono_reflection_bind_generic_parameters): Take a
16545         `MonoType *' argument and return a `MonoType *'.
16546
16547         * icall.c
16548         (ves_icall_MonoGenericInst_GetParentType): New interncall.
16549         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
16550
16551 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
16552
16553         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
16554         valuetype marshalling.
16555
16556 2004-02-06  Martin Baulig  <martin@ximian.com>
16557
16558         * class.c
16559         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
16560         (my_mono_class_from_generic_parameter): Likewise.
16561
16562 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
16563
16564         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
16565         contents of the symbol files lazily.
16566
16567         * object.h (MonoThread): Add 'name' and 'name_len' fields.
16568
16569         * threads.h threads.c icall.c: New icalls for getting and setting the
16570         threads name.
16571
16572 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
16573
16574         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
16575         Raise an exception when the domain is not found.
16576
16577 2004-02-03  Martin Baulig  <martin@ximian.com>
16578
16579         * reflection.c (mono_image_get_methodspec_token): Use the
16580         uninflated signature; fixes gen-33.
16581
16582 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
16583
16584         * gc.c threads.c: Make the finalizer thread a normal managed thread so
16585         the finalizer code can use thread functionality.
16586
16587         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
16588         the finalizer thread.
16589
16590         * threads.c: Make some functions more robust.
16591
16592         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
16593
16594         * metadata.h: Add new marshalling conventions.
16595
16596         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
16597         stringbuilder marshalling. Fixes #53700.
16598
16599         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
16600
16601         * reflection.c (mono_image_get_type_info): Save declarative security
16602         info.
16603
16604         * reflection.c (mono_image_get_field_info): Handle uninitialized 
16605         unmanaged fields as well.
16606
16607         * appdomain.c: Bump corlib version.
16608
16609 2004-02-01  Martin Baulig  <martin@ximian.com>
16610
16611         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
16612         method type arguments.  
16613
16614 2004-01-30  Duncan Mak  <duncan@ximian.com>
16615
16616         * marshal.h: Add prototype for
16617         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
16618         and
16619         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
16620         fix the build.
16621
16622 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
16623
16624         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
16625         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
16626
16627 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
16628
16629         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16630         custom marshalling of valuetypes.
16631
16632         * marshal.c: Fix some warnings.
16633
16634 2004-01-29  Martin Baulig  <martin@ximian.com>
16635
16636         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
16637         for generic method parameters.
16638
16639         * reflection.c (method_encode_methodspec): Write the uninflated
16640         signature into the methodspec table.
16641         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
16642         is always the uninflated method.
16643         (reflection_methodbuilder_to_mono_method): Copy the generic
16644         parameters from the MethodBuilder into `header->gen_params'.
16645
16646 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
16647
16648         * class.c (mono_class_from_generic_parameter): Fix warning.
16649
16650 2004-01-27  Martin Baulig  <martin@ximian.com>
16651
16652         * class.c (mono_class_from_generic_parameter): Don't create
16653         `klass->methods' here.  
16654
16655 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
16656
16657         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
16658         extension since it does not work with libraries named lib<FOO>.dll.so.
16659
16660 2004-01-25  Martin Baulig  <martin@ximian.com>
16661
16662         * class.c (mono_class_inflate_generic_type): Added support for
16663         MONO_TYPE_GENERICINST.
16664
16665         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
16666         inflate methods on open constructed types.      
16667
16668 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16669
16670         * object.c: fire ProcessExit event in the root AppDomain after running
16671         Main. Fixes bug #53299.
16672
16673 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
16674
16675         * socket-io.c: include the new socket-wrappers.h header.
16676         Use the wrappers instead of the unix socket functions to make the code
16677         more clear.
16678
16679 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
16680
16681         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
16682
16683         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16684         Fixes #22532.
16685
16686 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
16687
16688         * reflection.c (mono_image_create_pefile): Handle the case when the
16689         entry point is not a MethodBuilder.
16690
16691         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16692         field to ReflectionMethod since it is not allways a builder.
16693
16694         * reflection.c (type_get_fully_qualified_name): New helper function to
16695         return the fully qualified name of a type.
16696
16697         * reflection.c (encode_marshal_blob): Always emit the fully qualified
16698         type name for custom marshallers.
16699
16700         * reflection.c (mono_marshal_spec_from_builder): Ditto.
16701
16702         * class.c (mono_class_setup_vtable): If a parent class already 
16703         implements an interface, use the implementing methods from that class.
16704         Fixes #53148.
16705
16706 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16707
16708         * threadpool.c: just return instead of ExitThread to allow for thread
16709         clean up earlier.
16710
16711 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
16712
16713         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
16714         when closing resource modules.
16715
16716         * reflection.c (mono_image_create_pefile): Handle the case when the
16717         entry point is not a MethodBuilder.
16718
16719         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16720         field to ReflectionMethod since it is not allways a builder.
16721
16722 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
16723
16724         * marshal.c (mono_marshal_get_managed_wrapper): 
16725         mono_marshal_alloc takes native int so CONV_I
16726         the arg for 64bits.
16727
16728 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
16729
16730         * reflection.c (fixup_cattrs): New function to fixup the methoddef
16731         tokens in the cattr table. Fixes #53108.
16732
16733 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16734
16735         * loader.c: don't trim ".dll" before looking up in the config file.
16736         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
16737
16738 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
16739
16740         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
16741         Return the module which contains the resource as well.
16742         (ves_icall_System_Reflection_Module_Close): New icall.
16743
16744         * appdomain.c: Bump corlib version number.
16745
16746         * image.c (mono_image_addref): New public function.
16747
16748         * assembly.c: Call mono_image_addref.
16749
16750         * reflection.c (mono_module_get_object): Increase reference count of 
16751         the image.
16752
16753         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16754         Fixes #22532.
16755
16756         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
16757         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
16758         proper exceptions on DllImport problems.
16759
16760 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
16761
16762         * class.c, metadata.c: eliminate CSIZE macro.
16763
16764 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
16765
16766         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
16767         * object.h: Added async_callback field in MonoAsyncResult.
16768         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
16769         * verify.c: Added async_callback in MonoAsyncResult layout.
16770
16771 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
16772
16773         * reflection.c (mono_reflection_get_custom_attrs): Add support
16774         for Modules.
16775
16776 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
16777
16778         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
16779         marshalling.
16780         (mono_marshal_method_from_wrapper): Add null pointer check.
16781
16782 2004-01-16  Martin Baulig  <martin@ximian.com>
16783
16784         * debug-mono-symfile.h: Set version number to 36 and reflect
16785         latest symbol writer changes.
16786
16787 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
16788
16789         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
16790         multi-dimensional arrays.
16791         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
16792         (mono_class_from_mono_type): Use bounded_array_class_get.
16793         
16794         * class.c (mono_bounded_array_class_get): New function which takes
16795         a 'bounded' bool argument to distinguish vectors from one dimensional
16796         arrays.
16797
16798         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
16799         bounded_array_class_get if the array has bounds.
16800
16801         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
16802         Search modules loaded using AssemblyBuilder:AddModule as well.
16803
16804 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16805
16806         * appdomain.c: increased corlib version.
16807         * filewatcher.c: removed g_print.
16808         * icall.c:
16809         (get_property_info): only allocate what is actually requested.
16810         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
16811
16812 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16813
16814         * Makefile.am: added filewatcher.[ch]
16815         * filewatcher.[ch]: FileSystemWatcher runtime support.
16816         * icall.c: added new FSW icalls.
16817
16818 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
16819
16820         * string-icalls.c: fix stringbuilder regression as suggested by
16821         Iain McCoy <iain@mccoy.id.au>.
16822
16823 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
16824
16825         * process.c (process_read_stringtable_block): Recognize '007f' as
16826         a language neutral stringtable block.
16827
16828 2004-01-12  Patrik Torstensson
16829
16830         * object.h (MonoStringBuilder) : Changed layout to support our
16831         new stringbuilder class.
16832         * marshal.c: Change marshalling to support the new layout of 
16833         string builder.
16834         * appdomain.c: increased version number because new layout of
16835         string builder.
16836
16837 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
16838
16839         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
16840         assembly name as an string instead of an AssemblyName, since it is
16841         easier to extract info from it.
16842
16843         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
16844         the culture subdirectories too. Fixes #52231.
16845
16846 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16847
16848         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
16849         It takes 2 new parameters with an optional name for the method to look
16850         for and case ignoring info.
16851
16852         * threadpool.c: removed unused variable.
16853
16854 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16855
16856         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
16857         It takes 2 new parameters with an optional name for the property to look
16858         for and case ignoring info.
16859         Fixes bug #52753.
16860
16861 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
16862
16863         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
16864         Fix #52451.
16865
16866 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16867
16868         * appdomain.c:
16869         * assembly.c: escape the uri before passing it to g_filename_from_uri.
16870         Fixes bug #52630.
16871
16872 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
16873
16874         * reflection.c: Add support for more than one unmanaged resource.
16875
16876         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
16877         in field->def_value, as done in all other cases.
16878
16879         * reflection.c (mono_reflection_get_custom_attrs): Add support for
16880         TypeBuilders.
16881
16882         * reflection.c (mono_reflection_create_runtime_class): Remove 
16883         errorneous assignment to klass->element_class, since it is already
16884         done in mono_reflection_setup_internal_class.
16885
16886 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16887
16888         * gc.c: added missing LeaveCriticalSection.
16889         * icall.c: indented a couple of lines.
16890         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
16891         if we call EndInvoke inside a callback. Fixes bug #52601.
16892
16893 2004-01-07  Martin Baulig  <martin@ximian.com>
16894
16895         * mono-debug-debugger.h
16896         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
16897
16898 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
16899
16900         * appdomain.c: Use messages in NotImplementedException.
16901
16902         * exception.c (mono_get_exception_not_implemented): Now this takes
16903         a message argument.
16904
16905         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
16906         exception instead of g_asserting an aborting when something is not
16907         implemented.
16908
16909         Add some inline docs.
16910
16911 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
16912
16913         * reflection.h: Update after changes to object layout.
16914
16915         * reflection.c: Implement saving of unmanaged aka win32 resources.
16916
16917         * appdomain.c: Bump version number.
16918
16919         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
16920         Handle missing domains gracefully.
16921
16922 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
16923
16924         * file-io.c : On Windows, there are much more invalid_path_chars.
16925
16926 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
16927
16928         * class.h, object.c: prepare for GetType () speedup.
16929
16930 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
16931
16932         * profiler.c: workaround for --profile null reference exception on
16933           cygwin. Patch by Patrik Torstensson.
16934
16935 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
16936
16937         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
16938         make work for unaligned access.
16939
16940 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
16941
16942         * class.c: small cleanup (class->fields [i] -> field).
16943         * image.c: check address of metadata is valid.
16944
16945 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
16946
16947         * assembly.h assembly.c (mono_assembly_loaded): New public function to
16948         search the list of loaded assemblies.
16949
16950         * reflection.c (mono_reflection_type_from_name): Use 
16951         mono_assembly_loaded instead of mono_image_loaded.
16952
16953         * reflection.c: Fix warnings.
16954
16955 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
16956
16957         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
16958         is dynamic. This is needed since an assembly can contain both dynamic and
16959         non-dynamic images.
16960
16961         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
16962         assembly->dynamic.
16963
16964         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
16965
16966         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
16967         to store modules loaded using AddModule.
16968
16969         * reflection.c (mono_image_fill_file_table): Generalize this so it works
16970         on Modules.
16971
16972         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
16973
16974         * reflection.c (mono_image_fill_export_table_from_module): New function to
16975         fill out the EXPORTEDTYPES table from a module.
16976
16977         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
16978         into a separate function. Also handle loaded non-dynamic modules.
16979
16980         * reflection.c (mono_image_basic_init): Fix memory allocation.
16981
16982         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16983
16984         * assembly.c (mono_assembly_load_references): Make this public.
16985
16986 2003-12-19  Martin Baulig  <martin@ximian.com>
16987
16988         * class.c (mono_class_initialize_generic): Made this static, take
16989         a `MonoGenericInst *' instead of a `MonoClass *'.
16990         (mono_class_from_generic): Call mono_class_initialize_generic()
16991         unless we're already initialized or being called from
16992         do_mono_metadata_parse_generic_inst().
16993
16994         * class.h (MonoGenericInst): Added `initialized' and
16995         `init_pending' flags.
16996
16997         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
16998         `mono_class_init (gklass)' or mono_class_initialize_generic()
16999         here; set `generic_inst->init_pending' while parsing the
17000         `type_argv'.
17001
17002 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
17003
17004         * locales.c: include string.h for memxxx prototypes
17005
17006 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
17007
17008         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
17009         constructor when accessing literal fields.
17010
17011 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
17012
17013         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17014
17015         * reflection.c (assembly_add_resource_manifest): New function to fill
17016         the MANIFESTRESOURCE table.
17017
17018         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
17019
17020         * reflection.h: Update to changes in class layout.
17021
17022         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
17023         Reenable call to mono_runtime_is_shutting_down ().
17024
17025         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
17026         determine if the runtime is shutting down.
17027
17028 2003-12-16  Jackson Harper <jackson@ximian.com>
17029
17030         * icall.c: comment out call to mono_runtime_is_shutting_down to
17031         fix build.
17032         
17033 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
17034
17035         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
17036         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
17037
17038 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
17039
17040         * reflection.c: move definition of swap_with_size
17041         to before its first call
17042
17043 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
17044
17045         * appdomain.c (mono_runtime_is_shutting_down): New public function.
17046
17047         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
17048         icall.
17049
17050         * object.c: Fix warnings.
17051
17052         * icall.c (ves_icall_Type_Get...): Only consider inherited static
17053         members if FlattenHierarchy is set.
17054
17055         * reflection.c (mono_image_add_decl_security): New function to emit
17056         declarative security.
17057
17058         * reflection.h reflection.c: Add support for declarative security.
17059
17060         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17061         
17062 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
17063
17064         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17065         
17066         * appdomain.c verify.c: Moved corlib version checking into its own
17067         function in appdomain.c since it needs to create vtables etc.
17068
17069 2003-12-13  Patrik Torstensson <p@rxc.se>
17070
17071         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
17072         instead of unwrapped server.
17073
17074 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
17075
17076         * verify.c (check_corlib): Fix field index.
17077
17078 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
17079
17080         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
17081         GetGacPath icall.
17082
17083 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
17084
17085         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
17086         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
17087         cope with sizeof(size_t) != sizeof(guint32).
17088
17089 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17090
17091         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
17092         in case of failure.
17093
17094 2003-12-10  Mark Crichton <crichton@gimp.org>
17095
17096         * icall.c: removed the GetNonZeroBytes.  We now handle this case
17097         in managed code.
17098
17099         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
17100
17101 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
17102
17103         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
17104         marked as deleted.
17105
17106 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
17107
17108         * verify.c (check_corlib): Handle the case when the version field is 
17109         initialized by a static constructor.
17110
17111 2003-12-08  Patrik Torstensson  <p@rxc.se>
17112
17113     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
17114
17115 2003-12-08  Martin Baulig  <martin@ximian.com>
17116
17117         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
17118         a MonoReflectionGenericParameter, also take the parameter index
17119         and name as arguments.
17120         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
17121         (ves_icall_MonoGenericParam_initialize): New interncall.
17122         (ves_icall_Type_make_byref_type): New interncall.
17123
17124         * reflection.h (MonoReflectionGenericParam): Derive from
17125         MonoReflectionType, not just from MonoObject.  Added `refobj' and
17126         `index' fields.
17127
17128         * reflection.c (mono_reflection_define_generic_parameter): Create
17129         and return a new MonoReflectionGenericParam; don't initialize the
17130         constraints here.
17131         (mono_reflection_initialize_generic_parameter): New public method;
17132         initializes the constraints and creates the `param->pklass'.
17133
17134 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
17135
17136         * reflection.h reflection.c: Use the new fields 'num_types', 
17137         'num_fields' and 'num_methods' to track the number of types etc.
17138
17139         * verify.c (check_corlib): Check corlib version number.
17140
17141 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
17142
17143         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
17144         function works on all methods.
17145
17146 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
17147
17148         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
17149         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
17150         the custom_type_info flag of the transparent proxy.
17151         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
17152         objects that supports IRemotingTypeInfo.
17153         * object.h: Added custom_type_info field in transparent proxy.
17154
17155 2003-12-06  Martin Baulig  <martin@ximian.com>
17156
17157         * class.c (mono_class_create_from_generic): Removed.
17158         (mono_class_from_generic): Check `ginst->klass' before doing
17159         anything else.  This is important to fully support "recursive"
17160         generic types.
17161
17162         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
17163         empty `generic_inst->klass' before doing anything else.
17164
17165 2003-12-06  Dick Porter  <dick@ximian.com>
17166
17167         * verify.c: 
17168         * object.h:
17169         * icall.c:
17170         * locales.c: Use C structs to access class fields.  Don't do a
17171         conversion between MonoString and UChar because both are
17172         platform-endian UTF-16.  Compare now takes startindex and count
17173         parameters.  Add a char overload for IndexOf.  Speed up the
17174         invariant string IndexOf.
17175
17176 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
17177
17178         * Makefile.am (monosn_LDADD): Fix parallel build.
17179
17180 2003-12-04  Martin Baulig  <martin@ximian.com>
17181
17182         * icall.c
17183         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17184         (ves_icall_Type_make_array_type): New interncall.       
17185
17186 2003-12-04  Martin Baulig  <martin@ximian.com>
17187
17188         * locales.c: also change it in the !HAVE_ICU case.
17189
17190 2003-12-04  Dick Porter  <dick@ximian.com>
17191
17192         * icall.c:
17193         * locales.c: construct_compareinfo is now in CompareInfo, not
17194         CultureInfo.
17195
17196 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
17197
17198         * image.c (mono_image_load_file_for_image): Cache loaded images in the
17199         image->files array.
17200
17201         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
17202         table as well.
17203
17204         * assembly.c (mono_assembly_load_references): Only load references
17205         once.
17206
17207         * class.c (mono_class_from_name): Avoid linear search of the 
17208         EXPORTEDTYPE table.
17209
17210         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
17211
17212 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
17213
17214         * image.h (MonoImage): Add 'field_cache' field.
17215
17216         * loader.c (mono_field_from_token): Cache field lookups.
17217         
17218         * reflection.c (mono_module_get_object): Fix name property.
17219
17220         * icall.c (ves_icall_get_enum_info): Update after changes to 
17221         mono_metadata_get_constant_index ().
17222
17223         * icall.c: Get rid of get_type_info icall, use a separate icall for
17224         each type property to avoid needless memory allocations. Fixes #51514.
17225
17226         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
17227         to avoid needless binary searches.
17228
17229         * class.c (class_compute_field_layout): Move the initialization of
17230         field->def_value to mono_class_vtable ().
17231
17232         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
17233         non-corlib types.
17234
17235         * object.c (mono_object_allocate): Make it inline.
17236
17237         * object.c (mono_object_allocate_spec): Make it inline.
17238         
17239 2003-12-02  Dick Porter  <dick@ximian.com>
17240
17241         * locales.c (create_NumberFormat): NumberFormatInfo construction.
17242         Patch by Mohammad DAMT (mdamt@cdl2000.com).
17243
17244 2003-12-01  Dick Porter  <dick@ximian.com>
17245
17246         * threads.c: Fix signature and call in CreateMutex and
17247         CreateEvent.
17248
17249 2003-12-01  Dick Porter  <dick@ximian.com>
17250
17251         * icall.c: 
17252         * locales.c: Implement string compares and searching
17253
17254         * object.h: Add extra Thread field
17255
17256 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
17257
17258         * reflection.c (fixup_method): Add support for MonoCMethod.
17259
17260 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
17261
17262         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
17263
17264         * reflection.c (assembly_name_to_aname): Allow extra characters in
17265         assembly names. Fixes #51468.
17266
17267 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
17268
17269         * exception.c (mono_exception_from_name_domain): New helper function.
17270
17271         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
17272         exception object in the correct domain.
17273
17274         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
17275         formatting + make a copy a the input data.
17276
17277         * loader.c (mono_get_method_from_token): Methods which contain
17278         native code do not have entries in the ImplMap.
17279
17280         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
17281         Thanks to Gonzalo for spotting this.
17282         
17283         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
17284         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
17285
17286         * assembly.h (mono_assembly_load_from): Split the second part of 
17287         assembly loading into a new public function.
17288
17289         * exception.h (mono_get_exception_bad_image_format): New function.
17290
17291 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
17292
17293         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
17294         Enumerate all modules inside a dynamic assembly. Fixes #51293.
17295         
17296         * icall.c: Add new icall for creating dynamic methods.
17297
17298         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
17299
17300         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
17301
17302         * reflection.c (mono_reflection_create_dynamic_method): New icall to
17303         create a dynamic method.
17304
17305         * reflection.c (resolve_object): New helper function.
17306
17307         * reflection.c: Generalize ReflectionMethodBuilder and the functions
17308         which manipulate it so they can also work on dynamic methods.
17309
17310         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
17311         creating the MonoReflectionMethodAux structure if it is not needed.
17312         
17313         * reflection.h verify.c: Update after changes to object layout.
17314
17315         * reflection.c (method_builder_encode_signature): Fix compilation on
17316         gcc 2.95.x.
17317
17318 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
17319
17320         * appdomain.h: Added support for context static fields. Added static_data
17321           field to MonoAppContext and renamed thread_static_fields to a more
17322           generic special_static_fields in MonoAppDomain, since it can now contain
17323           context static fields.
17324         * domain.c: Updated hashtable name.
17325         * object.c: Replaced field_is_thread_static() for a more generic
17326           field_is_special_static() which also checks for context static attribute.
17327           In mono_class_vtable(), added support for static context fields.
17328         * threads.c: Changed methods that manage thread static fields to more
17329           generic methods so they can be reused both for thread and context static
17330           data.
17331         * threads.h: Declared some new methods.
17332
17333 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
17334
17335         * reflection.h: Update after changes to the managed types.
17336
17337         * reflection.c (encode_custom_modifiers): New helper function.
17338
17339         * reflection.c (method_encode_signature): Emit custom modifiers.
17340
17341         * reflection.c (field_encode_signature): Emit custom modifiers.
17342
17343 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
17344
17345         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
17346
17347         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
17348         implementation.
17349
17350         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
17351         icall.
17352
17353         * object.c (mono_field_get_value_object): New function.
17354
17355         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
17356         specific.
17357
17358 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
17359
17360         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
17361         return a preallocated out-of-memory exception instance.
17362
17363         * object.c (out_of_memory): Use the new function.
17364
17365         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
17366         flag is before the custom modifiers. Fixes #49802.
17367
17368 2003-11-16  Martin Baulig  <martin@ximian.com>
17369
17370         * class.c (mono_class_is_open_constructed_type): Implemented the
17371         MONO_TYPE_GENERICINST case.
17372
17373 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
17374
17375         * assembly.c (mono_assembly_fill_assembly_name): New function to
17376         fill out the MonoAssemblyName structure.
17377         (mono_assembly_open): Use the new function.
17378
17379         * icall.c (fill_reflection_assembly_name): New helper function.
17380
17381         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
17382         new function.
17383
17384         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
17385
17386 2003-11-15  Martin Baulig  <martin@ximian.com>
17387
17388         * class.c (mono_class_is_open_constructed_type): New public
17389         function; checks whether a type is an open constructed type,
17390         ie. whether it still contains type parameters.
17391         (mono_class_inflate_generic_type): If we're a type parameter and
17392         the inflated type is also a MONO_TYPE_(M)VAR, return the original
17393         type.
17394
17395         * class.h (MonoGenericInst): Added `guint32 is_open'.
17396
17397         * loader.c (method_from_methodspec): Check whether we're an open
17398         or closed constructed type and set `ginst->is_open'.
17399
17400         * reflection.c (mono_reflection_bind_generic_parameters): Check
17401         whether we're an open or closed constructed type and set
17402         `ginst->is_open'.
17403         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
17404         from open constructed types.
17405
17406 2003-11-15  Martin Baulig  <martin@ximian.com>
17407
17408         * reflection.c (mono_reflection_bind_generic_parameters): If we're
17409         a generic instance (instead of a generic type declaration) with
17410         unbound generic parameters, bind them to our actual types.
17411
17412 2003-11-14  Martin Baulig  <martin@ximian.com>
17413
17414         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
17415
17416         * reflection.c (mono_reflection_bind_generic_parameters): If we're
17417         an interface type, populate `res->interfaces' with instantiated
17418         versions of all the interfaces we inherit.
17419
17420 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
17421
17422         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
17423         when MONO_PATH is set but doesn't contain the install dir.
17424
17425 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17426
17427         * icall.c:
17428         (ves_icall_Type_GetInterfaces): don't return an interface twice when
17429         it's also implemented in base classes. Fixes bug #50927.
17430
17431 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
17432
17433         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
17434         if this method is called from a finalizer. Fixes #50913.
17435
17436 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
17437
17438         * threads.c: Implement VolatileRead/VolatileWrite
17439
17440         * icall.c: Add new icalls for VolatileRead/VolatileWrite
17441
17442 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17443
17444         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
17445         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
17446         2.95.3.
17447
17448         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
17449         from Peter Ross (pro@missioncriticalit.com).
17450         
17451 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
17452
17453         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
17454
17455 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17456
17457         * assembly.c (mono_assembly_load_references): Disable check because it
17458         triggers on older corlibs which lots of people have.
17459
17460 2003-11-12  Jackson Harper  <jackson@ximian.com>
17461
17462         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
17463         load corlib.dll if mscorlib.dll is not found.
17464         * assembly.h: Remove corlib name define.
17465         * class.c:
17466         * domain.c:
17467         * image.c: Change corlib name to mscorlib.
17468         
17469 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17470
17471         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
17472
17473 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
17474
17475         * appdomain.h: Added loader_optimization here to sync with the C#
17476         code, and add disallow_binding_redirects field.
17477
17478 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
17479
17480         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
17481
17482         * reflection.c (mono_image_build_metadata): Fix crash on modules
17483         with no types.
17484
17485         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
17486
17487         * icall.c (ves_icall_get_method_info): Return callingConvention as
17488         well.
17489
17490         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
17491         namespaces from the EXPORTEDTYPE table as well.
17492
17493         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
17494         from all modules inside the assembly.
17495         
17496 2003-11-11  Martin Baulig  <martin@ximian.com>
17497
17498         * reflection.c (mono_reflection_bind_generic_parameters): Make
17499         this work for interfaces.
17500
17501 2003-11-11  Martin Baulig  <martin@ximian.com>
17502
17503         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
17504
17505 2003-11-11  Martin Baulig  <martin@ximian.com>
17506
17507         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
17508         "MonoInflatedMethod" and "MonoInflatedCtor".
17509
17510 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
17511
17512         * reflection.c (resolution_scope_from_image): Use the assembly table
17513         from the manifest module, since other modules don't have it.
17514
17515         * debug-helpers.c (mono_type_full_name): New helper function.
17516
17517         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
17518
17519         * image.c (mono_image_load_file_for_image): New public function which
17520         is a replacement for the load_file_for_image in class.c.
17521
17522         * assembly.c (mono_assembly_load_module): A wrapper for the function
17523         above which does assembly association and reference loading too.
17524
17525         * class.c (mono_class_from_name): Call mono_assembly_load_module.
17526
17527 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17528
17529         * appdomain.c: not all of the attributes for the full assembly name
17530         are required and the order doesn't matter. Fixes bug #50787.
17531
17532 2003-11-10  Dick Porter  <dick@ximian.com>
17533
17534         * locales.c: Use platform-endian UTF16
17535
17536 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
17537
17538         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17539         
17540 2003-11-10  Martin Baulig  <martin@ximian.com>
17541
17542         * metadata.c
17543         (mono_metadata_load_generic_params): Make this actually work.
17544
17545         * reflection.c (mono_reflection_bind_generic_parameters): If our
17546         parent is a generic instance, pass all the `types' to it, no
17547         matter whether it has the same number of type parameters or not.
17548
17549 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
17550
17551         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17552
17553         * assembly.c (mono_assembly_load_references): Move the image<->assembly
17554         assignment code to this function so it gets called recursively for all
17555         modules.
17556
17557         * image.c (load_modules): Remove the assembly assignment since it is
17558         now done by mono_assembly_load_references.
17559         
17560         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
17561         Add 'module' argument.
17562         (mono_module_get_types): New helper function.
17563         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
17564
17565 2003-11-08  Martin Baulig  <martin@ximian.com>
17566
17567         * class.c (mono_class_inflate_generic_method): Interface method
17568         don't have a header.
17569
17570         * reflection.c (mono_image_get_methodspec_token): Take an
17571         additional `MonoGenericInst *' argument instead of reading it from
17572         the header; this is necessary to support interfaces.
17573         (mono_image_create_token): Pass the `MonoGenericInst *' from the
17574         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
17575         (inflated_method_get_object): Take an additional `MonoGenericInst *'
17576         argument.
17577
17578         * reflection.h (MonoReflectionInflatedMethod): Added
17579         `MonoGenericInst *ginst'.
17580
17581 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
17582
17583         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
17584
17585 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
17586
17587         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
17588
17589 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
17590
17591         * reflection.c 
17592         (reflection_methodbuilder_from_method_builder):
17593         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
17594         initialize a ReflectionMethodBuilder structure.
17595         (mono_image_get_methodbuilder_token):
17596         (mono_image_get_ctorbuilder_token): New functions to emit memberref
17597         tokens which point to types in another module inside the same assembly.
17598
17599         * reflection.c: Use the new helper functions.
17600         
17601         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
17602
17603         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
17604         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
17605
17606         * reflection.c (resolution_scope_from_image): Emit a moduleref if
17607         neccesary.
17608
17609         * reflection.c (mono_image_build_metadata): Emit metadata only for the
17610         current module. Emit the manifest only for the main module.
17611
17612         * reflection.c (mono_image_create_token): Add assertion when a 
17613         memberref needs to be created.
17614
17615         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
17616
17617         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
17618         larger buffer for the custom attribute blob. Fixes #50637.
17619         
17620 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17621
17622         * threadpool.c: notify listener on async processing handles after
17623         invoking the async callback. Thanks to Zoltan.
17624
17625 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17626
17627         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
17628         avoid code duplication.
17629
17630         * reflection.h (MonoDynamicImage): New type which is currently unused,
17631         but will be used through the ref.emit code in place of 
17632         MonoDynamicAssembly.
17633
17634         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17635         object layout.
17636
17637         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
17638         a MonoDynamicImage instead of just a MonoImage.
17639         
17640         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
17641         icalls to ModuleBuilder but keep their semantics, so they will work
17642         with moduleb->assemblyb. This will change later.
17643         
17644 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17645
17646         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17647         object layout.
17648
17649         * reflection.c (mono_image_build_metadata): Avoid creation of a default
17650         main module, since it is now done by the managed code.
17651
17652 2003-11-03  Martin Baulig  <martin@ximian.com>
17653
17654         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
17655         `ginst->klass' here.
17656         (method_encode_methodspec): Don't use the `ginst->generic_method's
17657         klass if it's a generic instance, use `ginst->klass' in this case.
17658
17659 2003-11-03  Martin Baulig  <martin@ximian.com>
17660
17661         * reflection.c (mono_image_get_generic_method_param_info):
17662         Removed, use mono_image_get_generic_param_info() instead.
17663         (mono_image_get_type_info): Write the GenericParam table before
17664         the Method table.  This is neccessary because in the GenericParam
17665         table, type parameters of the class (ie. '!0' etc.) must come
17666         before the ones from its generic methods (ie. '!!0' etc).
17667
17668 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
17669
17670         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
17671
17672 2003-11-02  Martin Baulig  <martin@ximian.com>
17673
17674         * reflection.c (create_generic_typespec): Take a
17675         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
17676         the generic parameters from it.
17677
17678 2003-11-02  Martin Baulig  <martin@ximian.com>
17679
17680         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
17681         instead of a `MonoClassField *' since we just need the type.
17682         (create_generic_typespec): New static function.  Creates a
17683         TypeSpec token for a generic type declaration.
17684         (mono_image_get_generic_field_token): New static function.
17685         (mono_image_create_token): If we're a FieldBuilder in a generic
17686         type declaration, call mono_image_get_generic_field_token() to get
17687         the token.
17688
17689 2003-11-02  Martin Baulig  <martin@ximian.com>
17690
17691         * reflection.h
17692         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
17693         `MonoReflectionGenericInst *declaring_type' and
17694         `MonoReflectionGenericInst *reflected_type' fields.
17695
17696         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
17697         `MonoReflectionGenericInst *declaring_type' and a
17698         `MonoReflectionGenericInst *reflected_type' argument instead of a
17699         single `MonoReflectionGenericInst *type' one.  Set
17700         `res->declaring_type' and `res->reflected_type' from them.
17701         (mono_reflection_inflate_field): Likewise.      
17702
17703 2003-11-02  Martin Baulig  <martin@ximian.com>
17704
17705         * class.c (mono_class_setup_vtable): Don't store generic methods
17706         in the vtable.  
17707
17708 2003-11-02  Martin Baulig  <martin@ximian.com>
17709
17710         * reflection.h (MonoReflectionGenericInst): Added
17711         `MonoReflectionType *declaring_type'.
17712
17713         * reflection.c (mono_reflection_bind_generic_parameters): Use
17714         `if (tb->parent)' instead of `klass->parent'.
17715
17716 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
17717
17718         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
17719         with an empty ASSEMBLY table.
17720
17721         * reflection.c (mono_image_build_metadata): Avoid using the same loop
17722         variable in the inner and outer loops.
17723
17724 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
17725
17726         * metadata.h (mono_metadata_make_token): Put parentheses around macro
17727         argument.
17728
17729         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
17730         
17731         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
17732         icalls. Instead, do everything in managed code. This is needed since
17733         it is hard to restore the original domain etc. in unmanaged code in the
17734         presence of undeniable exceptions.
17735
17736         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
17737         New icalls to push and pop appdomain refs.
17738
17739 2003-10-31  Martin Baulig  <martin@ximian.com>
17740
17741         * class.c (inflate_generic_type): Renamed to
17742         mono_class_inflate_generic_type() and made it public.
17743
17744         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
17745         New interncall.
17746
17747         * loader.c (mono_field_from_memberref): Also set the retklass for
17748         typespecs.
17749
17750         * fielder.c (mono_image_get_inflated_field_token): New static
17751         method; creates a metadata token for an inflated field.
17752         (mono_image_create_token, fixup_method): Added support for
17753         "MonoInflatedField".
17754         (fieldbuilder_to_mono_class_field): New static function.
17755         (mono_reflection_inflate_field): New public function.
17756
17757         * reflection.h
17758         (MonoReflectionGenericInst): Added `MonoArray *fields'.
17759         (MonoReflectionInflatedField): New typedef.     
17760
17761 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
17762
17763         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
17764         for Solaris and other platforms without s6_addr16
17765
17766 2003-10-30  Martin Baulig  <martin@ximian.com>
17767
17768         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
17769         argument instead of two.
17770         (mono_class_inflate_generic_signature): Likewise.
17771         (inflate_generic_header): Likewise.
17772         (mono_class_inflate_generic_method): Likewise.  In addition, if
17773         `ginst->klass' is set, it becomes the new `method->klass'.
17774
17775         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
17776         field.
17777
17778         * reflection.c (encode_generic_method_sig): Write a 0xa as the
17779         first byte. [FIXME]
17780         (method_encode_methodspec): If we have generic parameters, create
17781         a MethodSpec instead of a MethodRef.
17782         (fixup_method): Added support for "MonoInflatedMethod" and
17783         "MonoInflatedCtor".
17784         (mono_image_create_token): Added support for "MonoInflatedMethod"
17785         and "MonoInflatedCtor".
17786         (inflated_method_get_object): New static function; returns a
17787         managed "System.Reflection.MonoInflatedMethod" object.
17788         (mono_reflection_bind_generic_method_parameters): Return a
17789         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
17790         (mono_reflection_inflate_method_or_ctor): Likewise.
17791         (mono_image_get_generic_method_param_info): Initialize unused
17792         fields to zero.
17793         (mono_image_get_generic_param_info): Likewise.
17794
17795         * reflection.h (MonoReflectionInflatedMethod): New public
17796         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
17797         "S.R.MonoInflatedCtor" classes.
17798
17799         * loader.c (method_from_memberref): If we're a TypeSpec and it
17800         resolves to a generic instance, inflate the method.
17801
17802 2003-10-28  Dick Porter  <dick@ximian.com>
17803
17804         * object.c (mono_runtime_run_main): Convert command-line arguments
17805         into utf8, falling back to the user's locale encoding to do so.
17806
17807 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
17808
17809         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
17810         at this time.
17811
17812         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
17813
17814         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
17815         up icalls at method definition time. Partially fixes #33569.
17816
17817 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
17818
17819         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
17820         marshalling of arrays. Fixes #50116.
17821
17822         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
17823
17824         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
17825         points to a vtable in the dying appdomain.
17826
17827         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
17828         listeners into unmanaged code inside the lock.
17829
17830         * object.c (mono_class_vtable): Turn off typed allocation in non-root
17831         domains and add some comments.
17832
17833 2003-10-25  Martin Baulig  <martin@ximian.com>
17834
17835         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
17836
17837         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
17838
17839         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
17840         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
17841         currently parsing.  Create the generic class and store it in
17842         `generic_inst->klass' before parsing the type arguments.  This is
17843         required to support "recursive" definitions; see mcs/tests/gen-23.cs
17844         for an example.
17845         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
17846         to support recursive typespec entries.
17847
17848         * class.c (mono_class_setup_parent): If our parent is a generic
17849         instance, we may get called before it has its name set.
17850         (mono_class_from_generic): Splitted into
17851         mono_class_create_from_generic() and mono_class_initialize_generic().
17852
17853 2003-10-25  Martin Baulig  <martin@ximian.com>
17854
17855         * icall.c (ves_icall_Type_BindGenericParameters): Return a
17856         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
17857         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
17858         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
17859
17860         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
17861         (create_typespec): Likewise.
17862         (mono_reflection_bind_generic_parameters): Return a
17863         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
17864         (mono_reflection_inflate_method_or_ctor): New public function.
17865
17866         * reflection.h (MonoReflectionGenericInst): New typedef.        
17867
17868 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
17869
17870         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
17871         inside the domain lock. Fixes #49993.
17872         
17873         * object.c (mono_class_vtable): When typed allocation is used, 
17874         allocate vtables in the GC heap instead of in the mempool, since the
17875         vtables contain GC descriptors which are used by the collector even
17876         after the domain owning the mempool is unloaded.
17877
17878         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
17879
17880         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
17881         reflect what it does. Also invalidate mempools instead of freeing
17882         them if a define is set.
17883
17884         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
17885         of the appdomain.
17886         
17887         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
17888         hold the finalizable objects in this domain.
17889
17890         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
17891         appdomain.
17892
17893         * appdomain.c (mono_domain_set): New function to set the current
17894         appdomain, but only if it is not being unloaded.
17895
17896         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
17897         appdomain which is being unloaded.
17898         
17899         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
17900         unloading of the root appdomain.
17901
17902         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
17903         icall to execute a method in another appdomain. Intended as a 
17904         replacement for InternalSetDomain, which can confuse the code 
17905         generation in the JIT.
17906
17907         * appdomain.c (mono_domain_is_unloading): New function to determine
17908         whenever an appdomain is unloading.
17909
17910         * appdomain.c (mono_domain_unload): New function to correctly unload
17911         an appdomain.
17912
17913         * assembly.c (mono_assembly_load_references): Check that an assembly
17914         does not references itself.
17915
17916         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
17917         domain manually, it asks the finalizer thread to do it, then waits for
17918         the result. Also added a timeout.
17919
17920         * icall.c: Register the new icalls.
17921
17922         * threads.h threads.c: Export the mono_gc_stop_world and 
17923         mono_gc_start_world functions.
17924         
17925         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
17926         function to fill out the mempool with 0x2a.
17927
17928 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
17929
17930         * reflection.h (MonoReflectionMethodAux): New structure to store
17931         information which is rarely used, thus is not in the MonoMethod
17932         structure.
17933
17934         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
17935         store the aux info.
17936
17937         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
17938         and marshalling info into the aux structure.
17939
17940         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
17941         from the aux structure.
17942
17943         * loader.c (mono_method_get_param_names): Retrieve the param names from
17944         the aux structure.
17945         
17946 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
17947
17948         * exception.h exception.c: Add AppDomainUnloadedException && fix 
17949         warning.
17950
17951 2003-10-21  Dick Porter  <dick@ximian.com>
17952
17953         * socket-io.c
17954         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
17955         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
17956
17957 2003-10-21  Martin Baulig  <martin@ximian.com>
17958
17959         * reflection.c (mono_reflection_bind_generic_parameters):
17960         `klass->parent' is NULL for interfaces.
17961
17962 2003-10-21  Martin Baulig  <martin@ximian.com>
17963
17964         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17965
17966 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
17967
17968         * exception.c (mono_exception_from_name_msg): New helper function for
17969         creating exceptions and initializing their message field.
17970
17971         * exception.c: Simplify functions using the new helper.
17972
17973         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
17974         New function.
17975
17976         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
17977         mono_raise_exception, since otherwise gcc doesn't generate the function
17978         epilog for raise_exception, confusing the stack unwinding in the JIT.
17979         Fixes #45043.
17980
17981         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
17982         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
17983         Fixes #49499.
17984
17985 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17986
17987         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
17988         utf8.
17989
17990 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
17991
17992         * icall.c: Removed GetUninitializedObject method because
17993           AllocateUninitializedClassInstance does the same.
17994
17995 2003-10-18  Martin Baulig  <martin@ximian.com>
17996
17997         * class.c (inflate_generic_signature): Renamed to
17998         mono_class_inflate_generic_signature() and made it public.
17999         (my_mono_class_from_generic_parameter): New static function; if we
18000         don't already have the generic parameter's MonoClass, create a
18001         very simple one which is just used internally in the runtime and
18002         not passed back to managed code.
18003
18004         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
18005
18006         * metadata.h (MonoMethodSignature): Moved the
18007         `MonoGenericParam *gen_params' to the MonoMethodHeader.
18008         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
18009
18010         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
18011         ves_icall_MonoMethod_GetGenericArguments(); this is now an
18012         interncall on the MonoMethod class, not on MethodInfo.
18013         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
18014         calling mono_reflection_bind_generic_method_parameters() directly.
18015
18016         * loader.c (mono_method_get_signature): If this is a MethodSpec;
18017         return the already computed `method->signature'.
18018         (method_from_methodspec): New static function to load a method
18019         from a MethodSpec entry.
18020         (mono_get_method_from_token): Call the new method_from_methodspec()
18021         for MethodSpec tokens.  
18022         (mono_get_method_from_token): If we're a generic method, load the
18023         type parameters.
18024
18025         * reflection.c (mono_image_get_memberref_token): Allow
18026         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
18027         table.
18028         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
18029         (mono_image_create_token): First check whether it's a generic
18030         method (so we'd need to create a MethodSpec), then do the other
18031         two alternatives.
18032         (mono_reflection_bind_generic_method_parameters): Return a
18033         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
18034         called directly from the interncall.
18035
18036 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
18037
18038         * reflection.c (load_public_key): Move loading of the public key
18039         into managed code.
18040
18041         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
18042
18043         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
18044         fields.
18045
18046         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
18047         culture, hash_alg and public_key. Fixes #49555.
18048
18049 2003-10-17  Martin Baulig  <martin@ximian.com>
18050
18051         * class.h (MonoGenericInst): Moved this declaration here and added
18052         `MonoMethod *generic_method'.
18053
18054         * icall.c
18055         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
18056         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
18057
18058         * metadata.c (mono_metadata_type_equal): Two types of
18059         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
18060         index; ie. don't compare the address of the `MonoGenericParam'
18061         structure.
18062         (mono_metadata_load_generic_params): Removed the `MonoMethod
18063         *method' argument.
18064
18065         * metadata.h (MonoGenericInst): Moved declaration to class.h.
18066         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
18067
18068         * reflection.c (method_encode_signature): Encode the number of
18069         generic parameters.
18070         (encode_generic_method_sig): New static function.
18071         (method_encode_methodspec): New static function; creates an entry
18072         in the MethodSpec table for a generic method.
18073         (mono_image_get_methodspec_token): New static function.
18074         (mono_image_create_token): Call mono_image_get_methodspec_token()
18075         for generic methods.
18076         (mono_reflection_bind_generic_method_parameters): New public
18077         function.  Instantiates a generic method.
18078
18079 2003-10-16  Martin Baulig  <martin@ximian.com>
18080
18081         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
18082         *gen_params' here from MonoMethodHeader.
18083
18084         * metadata.c (mono_metadata_parse_method_signature): If we have
18085         generic parameters, initialize `method->gen_params' and then set
18086         the correct `type->data.generic_param' in all the parameters.
18087
18088 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
18089
18090         * threads.c (mono_threads_get_default_stacksize): New function to 
18091         return the default stacksize.
18092
18093         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
18094         termination of the finalizer thread, since the previous method had
18095         race conditions. Fixes #49628.
18096
18097         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
18098         as for the other managed threads.
18099
18100 2003-10-16  Martin Baulig  <martin@ximian.com>
18101
18102         * class.c (inflate_generic_signature): Copy `generic_param_count'
18103         and `gen_params'.
18104
18105         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
18106         New interncall.
18107
18108         * metadata.c (mono_metadata_parse_method_signature): Actually set
18109         the `method->generic_param_count' here.
18110         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
18111
18112 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
18113
18114         * object.h: Add a new field to TypedRef to simplify the implementation
18115         of the REFANY opcodes in the JIT.
18116
18117         * icall.c: Make use of the new field.
18118
18119         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
18120         dynamically.
18121
18122 2003-10-15  Martin Baulig  <martin@ximian.com>
18123
18124         * class.c (mono_class_from_gen_param): Renamed to
18125         mono_class_from_generic_parameter() and moved most of the
18126         functionality from mono_reflection_define_generic_parameter()
18127         here; ie. we create a "real" class here.
18128         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
18129         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
18130         previously been called.
18131
18132         * class.h (MonoGenericParam): Moved the declaration of this struct
18133         here from metadata.h and added `MonoMethod *method'.
18134
18135         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
18136         interncall.
18137
18138         * loader.c (mono_get_method_from_token): If we have any generic
18139         parameters, call mono_metadata_load_generic_params() to read them
18140         from the MONO_TABLE_GENERICPAR.
18141
18142         * metadata.c (mono_metadata_load_generic_params): Added
18143         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
18144
18145         * metadata.h (MonoMethodSignature): Replaced
18146         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
18147         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
18148
18149         * reflection.c (mono_reflection_define_generic_parameter): Moved
18150         most of the functionality into the new
18151         mono_class_from_generic_parameter(); set the `method' field if
18152         we're a method parameter.       
18153
18154 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
18155
18156         * marshal.c (emit_struct_conv): if native size is 0
18157         emit no code.
18158
18159 2003-10-14  Martin Baulig  <martin@ximian.com>
18160
18161         * icall.c: The generics API has changed in the spec since it was
18162         added to System.Type; these modifications make it match the spec
18163         again.
18164         (ves_icall_Type_GetGenericParameters): Renamed to
18165         `ves_icall_Type_GetGenericArguments'.
18166         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
18167         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
18168         `ves_icall_MonoType_get_HasGenericArguments'.
18169         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
18170         `ves_icall_MonoType_get_IsGenericParameter'.
18171         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
18172         this is no interncall anymore.
18173         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
18174         `ves_icall_TypeBuilder_get_IsGenericParameter'.
18175
18176 2003-10-14  Martin Baulig  <martin@ximian.com>
18177
18178         * reflection.c (mono_reflection_bind_generic_parameters): Also
18179         inflate generic methods if we're reading the class from IL.
18180
18181 2003-10-13  Martin Baulig  <martin@ximian.com>
18182
18183         * reflection.c (mono_reflection_define_generic_parameter): This
18184         method isn't called directly from the icall anymore; take a
18185         `MonoReflectionAssemblyBuilder *' so we can use this for type and
18186         method generic parameters.
18187         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
18188         (method_builder_encode_signature): Encode generic parameters.
18189         (mono_image_get_method_info): Write generic params to the
18190         MONO_TABLE_GENERICPARAM table.
18191
18192         * reflection.h (MonoReflectionMethodBuilder): Added
18193         `MonoArray *generic_params'.
18194
18195         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
18196
18197         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
18198         wrapper for mono_reflection_define_generic_parameter().
18199         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
18200
18201 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
18202
18203         * marshal.h: Add missing function to fix build.
18204
18205         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
18206         the SetLastError pinvoke attribute.
18207
18208         * marshal.c (mono_marshal_set_last_error): New helper function called
18209         by the generated code.
18210         
18211         * marshal.c (mono_mb_emit_branch): New helper function.
18212
18213         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
18214
18215         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
18216         classes as parameters and return values of delegates. Fixes #29256. 
18217
18218 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
18219
18220         * locales.c: use gint32 in non HAVE_ICU case
18221
18222 2003-10-11  Martin Baulig  <martin@ximian.com>
18223
18224         * mono-debug.c (mono_debug_add_method): Added a workaround for
18225         bug #48591.
18226
18227 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
18228
18229         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
18230         delegates passed to native code must use the STDCALL calling 
18231         convention. Fixes #35987.
18232
18233 2003-10-10  Martin Baulig  <martin@ximian.com>
18234
18235         * class.c (inflate_generic_type): If we're inflating for a generic
18236         type instance (and not for a generic method), return
18237         MONO_TYPE_MVAR unchanged.
18238
18239 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18240
18241         * string-icalls.c: Join ignores null strings in the source array.
18242         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
18243         * threads.c: GetAvailableTheads is slightly more accurate.
18244
18245 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
18246
18247         * threads.h threads.c : add mono_threads_set_default_stacksize
18248         and pass default to CreateThread calls.
18249
18250 2003-10-09  Dick Porter  <dick@ximian.com>
18251
18252         * icall.c:
18253         * locales.h:
18254         * locales.c: Internal calls for constructing CultureInfo and
18255         related objects from libicu (if its available.)
18256
18257 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
18258
18259         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
18260
18261 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18262
18263         * threadpool.c: added an argument to async_invoke_thread that is the
18264         item to process, pass the MonoAsyncResult to the thread start function
18265         when creating a new thread. This way we don't need to acquire any lock
18266         when we're creating a new thread. Readded a semaphore for faster
18267         response times (instead of that Sleep i added).
18268
18269 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
18270
18271         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
18272         get daylight change dates better on Windows, fix handling
18273         of platforms without tm_gmtoff.
18274
18275 2003-10-06  Martin Baulig  <martin@ximian.com>
18276
18277         * class.c (inflate_generic_method): Renamed to
18278         mono_class_inflate_generic_method() and made public.
18279         (mono_class_init): Don't inflate the generic methods here.
18280         (mono_class_from_generic): Added `gboolean inflate_methods'
18281         argument.  Inflate the methods here.
18282
18283         * loader.c (mono_method_get_param_names): Ignore instances of
18284         generic types for the moment.
18285
18286         * reflection.c (fixup_method): Added support for inflated methods.
18287         (mono_image_create_token): Use mono_image_get_methodref_token()
18288         for inflated methods.
18289         (mono_custom_attrs_from_param): Ignore instances of generic types
18290         for the moment.
18291         (mono_reflection_bind_generic_parameters): New public function.
18292         Moved all the functionality from
18293         ves_icall_Type_BindGenericParameters() here and added support for
18294         dynamic types.
18295         (mono_reflection_define_generic_parameter): Initialize
18296         `klass->methods' here.
18297
18298         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
18299         functionality into mono_reflection_define_generic_parameter().
18300         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
18301         TypeBuilder, return that TypeBuilder.
18302
18303 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18304
18305         * appdomain.c: removed mono_delegate_semaphore.
18306
18307         * threadpool.c:
18308         (mono_thread_pool_add): moved hash table creation inside and the thread 
18309         creation outside of the critical region.
18310         (mono_thread_pool_finish): removed obsolete code.
18311         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
18312         continue or exit the thread depending on the queue.
18313
18314 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
18315
18316         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
18317         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
18318         handle more bool marshalling options
18319
18320 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
18321
18322         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
18323         arrays of structs. Also add a more descriptive error message when
18324         a structure member is marshalled as LPArray.
18325
18326 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
18327
18328         * marshal.c (mono_marshal_get_native_wrapper): Add support for
18329         marshalling arrays of complex types. Fixes #29098. Also remove an
18330         usused and incomplete function.
18331
18332 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
18333
18334         * gc.c: report heap_size - free_bytes as total memory allocated
18335         (bug#49362).
18336
18337 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
18338
18339         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
18340         fix timezone handling problems on Windows.
18341         
18342         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
18343         asserts when the year is outside the range handled by ms the functions.
18344
18345         * class.c (setup_interface_offsets): If the class is an interface,
18346         fill out its interface_offsets slot.
18347
18348 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18349
18350         * threadpool.c: mark threadpool threads as background.
18351
18352 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
18353
18354         * decimal.c - define DECINLINE to nothing if not using GCC
18355
18356 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
18357
18358         * assembly.c: More refcount fixes.
18359
18360 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18361
18362         * string-icalls.c: if we're not trimming, return the same string.
18363         When not splitting, don't create a new string.
18364
18365 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18366
18367         * image.c:
18368         (mono_image_open): increment the ref_count inside the critical section.
18369
18370 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
18371
18372         * image.c (mono_image_open): Fix reference counting bug.
18373
18374 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
18375
18376         * marshal.c (mono_marshal_type_size) struct alignment changed for 
18377         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
18378         64bits. Avoid leak in mono_marshal_get_native_wrapper when
18379         mono_lookup_pinvoke_call throws.        
18380
18381 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
18382
18383         * reflection.c (mono_reflection_parse_type): Fix #49114.
18384
18385         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
18386         temporary workaround for cygwin header problem.
18387
18388         * object.c (mono_object_isinst): Synchronize this with the code
18389         generated by the JIT for casts.
18390
18391 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
18392
18393         * reflection.c (encode_type): Fix #38332.
18394
18395 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
18396
18397         * marshal.c (mono_marshal_method_from_wrapper): New function to return
18398         the original method from the wrapper method.
18399
18400 2003-09-25  Martin Baulig  <martin@ximian.com>
18401
18402         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
18403         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
18404         (ves_icall_Type_get_IsGenericInstance): New interncall.
18405
18406 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
18407
18408         * object.c: fix cast warning in big endian code.
18409
18410 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
18411
18412         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
18413         
18414 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18415
18416         * assembly.c: don't call check_env from mono_assembly_load. It's
18417         already done once in mono_assemblies_init and may cause headaches when
18418         multiple threads are loading assemblies.
18419
18420 2003-09-19  Martin Baulig  <martin@ximian.com>
18421
18422         * reflection.c (mono_reflection_define_generic_parameter): Don't
18423         allocate `klass->methods', set `klass->flags' to
18424         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
18425
18426 2003-09-18  Martin Baulig  <martin@ximian.com>
18427
18428         * class.c (mono_class_init): Don't create `class->methods' if it's
18429         already initialized.
18430
18431         * metadata.c (mono_metadata_load_generic_params): Make this
18432         actually work.
18433
18434         * reflection.c (mono_reflection_define_generic_parameter): Set
18435         parent class and interfaces from the constraints.
18436
18437         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
18438         to keep this struct in sync with the declaration in TypeBuilder.cs.
18439
18440 2003-09-17  Martin Baulig  <martin@ximian.com>
18441
18442         * metadata.h (MonoType): Replaced the data's `int type_param'
18443         field with `MonoGenericParam *generic_param'.
18444         (MonoGenericParam): Added `MonoClass *klass'.
18445
18446         * class.c (mono_class_from_gen_param): Removed the
18447         `MonoImage *image' and `int type_num' arguments.
18448
18449         * metadata.c (mono_metadata_parse_generic_param): New static
18450         method; creates a MonoGenericParam which just contains the index.
18451         (do_mono_metadata_parse_type): Call
18452         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
18453         MONO_TYPE_MVAR.
18454
18455         * reflection.c (mono_image_typedef_or_ref): Generic type
18456         parameters may be in the same assembly, but never use a typedef
18457         for them.
18458         (mono_reflection_define_generic_parameter): We're now creating a
18459         "real" class for the type parameter; it's now safe to call
18460         mono_class_from_mono_type() on the class'es type, it'll do the
18461         right thing.
18462
18463 2003-09-16  Martin Baulig  <martin@ximian.com>
18464
18465         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
18466         `symfile->range_entry_size' and `symfile->class_entry_size' here;
18467         the `symfile' data structure must be fully initialized before it
18468         gets added to the table.
18469
18470 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
18471
18472         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
18473
18474         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
18475         class init trampolines.
18476
18477 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
18478
18479         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
18480         to the built-in profiler to turn off time and allocation profiling
18481         respectively.
18482
18483 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
18484
18485         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
18486         g_direct_equal.
18487
18488         * debug-helpers.c (mono_method_full_name): Print the wrapper type
18489         in human readable form.
18490
18491 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
18492
18493         * reflection.c icall.c: Fixed warnings.
18494
18495         * image.c (load_class_names): Use a temporary hash table to hold the
18496         namespaces in order to avoid doing many string comparisons.
18497
18498         * image.h: Fix typo.
18499
18500         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
18501         Pass NULL instead of g_direct_equal to the GHashTable constructor 
18502         since the NULL case is short-circuited inside g_hash_table_lookup, 
18503         leading to better performance.  
18504
18505         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
18506         obtain the first custom attribute for a given index. Depends on the
18507         CustomAttribute table being sorted by the parent field.
18508
18509         * reflection.c (mono_custom_attrs_from_index): Use the new function 
18510         for better performance.
18511
18512 2003-09-07  Martin Baulig  <martin@ximian.com>
18513
18514         * class.c (mono_class_init): If we're a generic instance, inflate
18515         all our methods instead of loading them from the image.
18516         (mono_class_from_generic): Set `class->methods = gklass->methods'.
18517
18518 2003-09-07  Martin Baulig  <martin@ximian.com>
18519
18520         * mono-debug-debugger.c: Added support for constructors.
18521
18522 2003-09-06  Martin Baulig  <martin@ximian.com>
18523
18524         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
18525         New interncall.
18526
18527         * reflection.c (mono_reflection_setup_generic_class): Call
18528         ensure_runtime_vtable() to create the vtable.
18529
18530 2003-09-05  Martin Baulig  <martin@ximian.com>
18531
18532         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
18533         MONO_TYPE_MVAR.
18534
18535 2003-09-04  Martin Baulig  <martin@ximian.com>
18536
18537         * reflection.c (mono_reflection_define_generic_parameter): Generic
18538         parameters start with zero.
18539
18540 2003-09-04  Martin Baulig  <martin@ximian.com>
18541
18542         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18543
18544         * reflection.h (MonoReflectionGenericParam): New typedef.
18545         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
18546         the generic parameters from the managed TypeBuilder.
18547
18548         * reflection.c (mono_reflection_define_generic_parameter): New function.
18549         (mono_reflection_create_runtime_class): Encode generic parameters.
18550         (mono_reflection_setup_generic_class): New function; this is
18551         called after adding adding all generic params to the TypeBuilder.
18552         (encode_type): Added MONO_TYPE_VAR.
18553
18554 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
18555
18556         * class.h class.c (mono_class_needs_cctor_run): Moved this method
18557         here from the JIT.
18558
18559         * assembly.h assembly.c: Moved the AOT loading code into an assembly
18560         load hook.
18561
18562 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
18563
18564         * reflection.h reflection.c class.h class.c: Delete duplicate 
18565         definition of mono_type_get_name () from reflection.c and export the
18566         one in class.c.
18567
18568         * class.c: Class loading fixes from Bernie Solomon 
18569         (bernard@ugsolutions.com).
18570
18571         * reflection.c: Endianness fixes from Bernie Solomon 
18572         (bernard@ugsolutions.com).
18573         
18574 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
18575
18576         * assembly.h assembly.c: Define a file format version for AOT
18577         libraries.
18578         
18579         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
18580
18581         * appdomain.h (MonoJitInfo): New field to determine whenever the
18582         code is domain neutral.
18583         
18584 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
18585
18586         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
18587
18588 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
18589
18590         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
18591         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
18592         Avoid caching the result since strings must be domain specific. Fixes
18593         #48050.
18594
18595 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
18596
18597         * marshal.c (mono_marshal_init): Make this callable multiple times
18598         since it is hard to find a correct place to call it.
18599
18600         * object.c (mono_runtime_class_init): Execute static constructors in
18601         the correct appdomain.
18602
18603         * image.c (build_guid_table): Handle the case when multiple images have
18604         the same GUID.
18605
18606 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18607
18608         * icall.c: added a couple of icalls for System.Web.
18609
18610 2003-08-28  Martin Baulig  <martin@ximian.com>
18611
18612         * icall.c (ves_icall_Type_BindGenericParameters): Use
18613         `klass->generic_inst' instead of `&klass->byval_arg' in the
18614         mono_type_get_object() call.  The returned type must be
18615         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
18616
18617 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
18618
18619         * NOTES: New file.
18620
18621         * object.c (mono_class_proxy_vtable): Make it thread safe.
18622
18623         * pedump.c: Fix warning.
18624
18625         * object.c appdomain.h: Get rid of metadata_section. 
18626         It is no longer needed and it was causing deadlocks with domain->lock.
18627
18628         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
18629
18630 2003-08-26  Martin Baulig  <martin@ximian.com>
18631
18632         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
18633
18634 2003-08-26  Martin Baulig  <martin@ximian.com>
18635
18636         * pedump.c (main): Call mono_metadata_init(),
18637         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
18638         and mono_loader_init().
18639
18640 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
18641
18642         * loader.h: Add missing include to fix build.
18643
18644         * image.h: mono_image_load_references is no more.
18645
18646         * assembly.c: Reworked assembly loading to make it really thread safe.
18647         After these changes, the assembly returned by mono_assembly_open is
18648         fully initialized, i.e. all its references assemblies are loaded.
18649
18650         * assembly.c (mono_image_load_references): Renamed to 
18651         mono_assembly_load_references, and made private, since clients no
18652         longer need to call it.
18653
18654         * class.c: Removed calls to mono_assembly_load_references, since it was
18655         a source of deadlocks.
18656
18657         * loader.h loader.c class.h class.c: Protect data structures using a 
18658         new lock, the loader lock.
18659
18660         * class.c (mono_class_setup_vtable): Create temporary hash tables and
18661         GPtrArrays only when needed.
18662
18663         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
18664         into empty structures by mcs. Fixes pinvoke7.cs.
18665         
18666         * domain.c (mono_init): Call a new initialization function.
18667
18668         * appdomain.c (mono_runtime_init): Call the new initializer function
18669         of the marshal module.
18670
18671         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
18672         inserted into empty structures by mcs. Fixes pinvoke7.cs.
18673
18674         * marshal.h marshal.c: Added locks around the wrapper caches to make
18675         this module thread safe.
18676
18677         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
18678         this argument. Fixes pinvoke1.exe.
18679
18680 2003-08-25  Lluis Sanchez <lluis@ximian.com>
18681
18682         * object.h: Added call_type field to MonoMethodMessage and the corresponding
18683         enumeration of values. Removed fields to store remote call output values in
18684         MonoAsyncResult. Not needed any more.
18685         * object.c: Initialize call_type and async_result fields in mono_message_init.
18686         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
18687         dispatching the message.
18688         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
18689         async call to finish. To do it use a message with EndInvoke call type.
18690
18691 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
18692
18693         * loader.h loader.c (mono_method_hash_marhal_info): New function which
18694         determines whenever a method has marshalling info.
18695
18696 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18697
18698         * assembly.c: fix the build on windows.
18699
18700 2003-08-22 Lluis Sanchez <lluis@ximian.com>
18701
18702         * object.cs: Fixed bug #47785.
18703
18704 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
18705
18706         * string-icalls.c (StringReplace): If their are no occurances of
18707         the old string found return a reference to the supplied
18708         string. This saves some memory and matches MS behavoir.
18709         
18710 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18711
18712         * socket-io.c: fixed compilation for systems that define AF_INET6
18713         and don't define SOL_IP/SOL_IPV6.
18714
18715 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
18716
18717         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
18718         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
18719
18720         * rawbuffer.c rawbuffer.h: Make this module thread safe.
18721
18722         * domain.c: Make this module thread safe.
18723
18724         * domain.c (mono_init): Call new initialization function.
18725
18726         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
18727         reference types too. Fixes #38812.
18728
18729         * image.c (mono_image_init): Fixed warnings.
18730
18731         * class.c (mono_class_from_typeref): Handle assembly load failure
18732         correctly.
18733
18734         * appdomain.c (add_assemblies_to_domain): Handle the case when
18735         the references of an assembly are not yet loaded.
18736
18737         * metadata.c image.c assembly.c: Moved initialization of global
18738         variables to a separate function called at startup since lazy 
18739         initialization of these variables is not thread safe.
18740         
18741         * image.c assembly.c: Made this module thread safe by adding locks in 
18742         the appropriate places.
18743
18744         * domain.c (mono_init): Call the new initialization functions of the
18745         three modules.
18746
18747 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
18748
18749         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
18750           make a direct call. It is proxy's work to make the call asynchronous.
18751           mono_delegate_end_invoke(): If the targe is a proxy, just collect
18752           the return values.
18753         * object.cs: mono_method_call_message_new(): read AsyncResult and
18754           state object from parameters list, if this info is requested.
18755         * object.h: Added fields to store remote call output values in
18756           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
18757
18758 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
18759
18760         * object.h: add needed fields to MonoThread.
18761         * threads.c, threads.h: allow registering a function to cleanup data
18762         allocated per thread by the JIT.
18763
18764 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18765
18766         * loader.h: portability fix by Bernie Solomon
18767         * <bernard@ugsolutions.com>.
18768
18769 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
18770
18771         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
18772         return a MonoArray. This simplifies the code and also ensures that
18773         the cache allways contains an object reference as a value.
18774
18775         * icall.c (ves_icall_get_parameter_info): Simplified using the new
18776         function.
18777
18778 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18779
18780         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
18781         fixes a problem with byte ordering when getting the address family for
18782         a socket.
18783
18784 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
18785
18786         * .cvsignore: Added monosn.
18787
18788         * reflection.h reflection.c loader.c: Added support for parameter
18789         marshalling to dynamically created types. Fixes #47295.
18790
18791 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
18792
18793         * rand.c: remove useless warnings.
18794
18795 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
18796
18797         * class.c: implemented ldtoken for methods and fieldrefs.
18798
18799 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18800
18801         * threadpool.c: when mono_async_invoke was called, no one took care of
18802         monitoring the queue. So if the method invoked took some time and we
18803         got new async invoke requests after 500 ms (the thread created waited
18804         that long in WaitForSingleObject), the new async invoke was not called
18805         until the previous one finished.
18806
18807         This is fixed now. Thanks to Totte for helping with it.
18808
18809 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18810
18811         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
18812
18813 2003-08-11  Martin Baulig  <martin@ximian.com>
18814
18815         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
18816
18817 2003-08-06  Martin Baulig  <martin@ximian.com>
18818
18819         * mono-debug-debugger.c: Added support for static fields,
18820         properties and methods.
18821
18822 2003-08-06  Martin Baulig  <martin@ximian.com>
18823
18824         * mono-debug-debugger.c: Don't store the MonoString's vtable to
18825         make this work for applications with multiple application domains.
18826
18827 2003-08-04  Martin Baulig  <martin@ximian.com>
18828
18829         * mono-debug-debugger.c: Completely reworked the type support; the
18830         most important thing is that we're now just using one single
18831         `MonoType' instance per type.
18832
18833 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
18834
18835         * mono-endian.h, mono-endian.c, icall.c: Added icall
18836         ves_icall_System_Double_AssertEndianity to assert double word endianity
18837         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
18838
18839 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18840
18841         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
18842         support, icalls and fixes.
18843
18844 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
18845
18846         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
18847         classes that are a punctuation character in .NET is not the same a
18848         g_unichar_ispunct.
18849
18850 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18851
18852         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
18853
18854 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
18855
18856         * icall.c: Add new MemCopy internalcall.
18857         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
18858         Simplified code; It is not necessary to handle all the cases here,
18859         as the C# code takes care of it.  Only handle the case of the name
18860         resource embedded into the assembly.
18861
18862         Changed signature to return the data pointer and the size of the
18863         data. 
18864
18865 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
18866
18867         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
18868         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
18869
18870 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
18871
18872         * socket-io.c: ignore EINTR error in select.
18873
18874 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
18875
18876         * class.h, class.c: removed unused subclasses field in MonoClass.
18877
18878 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
18879
18880         * icall.c: improve fix of get_base_definition(). If the parent class
18881           doesn't have the mehod, look at the parent of the parent.
18882         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
18883           to check if a parameter is an in or out parameter
18884           (PARAM_ATTRIBUTE_IN is not set by default).
18885           mono_method_return_message_restore(): Use mono_class_value_size to
18886           get the size of a value type. mono_type_stack_size (parameterType)
18887           does not return the correct value if parameterType is byRef.
18888           mono_load_remote_field(), mono_load_remote_field_new(),
18889           mono_store_remote_field(), mono_store_remote_field_new():
18890           raise exception if the remote call returns an exception.
18891
18892 2003-07-28  Martin Baulig  <martin@ximian.com>
18893
18894         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
18895         method.  This is a wrapper around mono_runtime_invoke() which
18896         boxes the instance object if neccessary.
18897
18898 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18899
18900         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
18901         metadata.h, row-indexes.h, verify.c: first cut of generics support.
18902
18903 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18904
18905         * icall.c: disable mcs bug workaround.
18906
18907 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
18908
18909         * object.c (mono_runtime_class_init): Take the metadata_section
18910         mutex before obtaining the domain mutex.
18911
18912         * appdomain.h: Added definition of metadata_section mutex here. 
18913
18914         * object.c: define metadata_mutex here.
18915
18916 2003-07-24  Ravi Pratap  <ravi@ximian.com>
18917
18918         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
18919         fixed.
18920
18921 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
18922
18923         * reflection.c: Fix bug #46669
18924
18925 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18926
18927         * exception.c:
18928         * exception.h:
18929         * icall.c:
18930         * object.h: fill in the type name for TypeLoadException.
18931
18932 2003-07-23  Ravi Pratap  <ravi@ximian.com>
18933
18934         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
18935         relationship between TypeBuilders while compiling corlib) and bug
18936         45993 (Array types returned from the runtime while compiling
18937         corlib were from the loaded corlib).
18938
18939 2003-07-22  Martin Baulig  <martin@ximian.com>
18940
18941         * mono-debug-debugger.c: Reworked the type support a bit more;
18942         distinguish between types and classes.
18943
18944 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
18945
18946         * icall.c: add IsArrayImpl icall.
18947
18948 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
18949
18950         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
18951         initializing real_size only once. Also fix bug #46602.
18952
18953 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
18954
18955         * object.c: Renamed mono_metadata_section to metadata_section.
18956
18957 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
18958
18959         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
18960           empty array if the type is an array. Fixed.
18961           ves_icall_MonoMethod_get_base_definition: if the base method
18962           is abstract, get the MethodInfo from the list of methods of
18963           the class.
18964         * reflection.c: ParameterInfo.PositionImpl should be zero-based
18965           and it was 1-based. Fixed in mono_param_get_objects.
18966
18967 2003-07-20  Martin Baulig  <martin@ximian.com>
18968
18969         * mono-debug.h: Set version number to 31.
18970         (mono_debug_init): Added `MonoDomain *' argument.
18971
18972         * mono-debug-debugger.c: Reworked the type support; explicitly
18973         tell the debugger about builtin types; pass the `klass' address to
18974         the debugger.
18975
18976 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
18977
18978         * image.c: Allow new metadata tables to be loaded without a
18979         warning. Also update the warning message to give the new constant value.
18980                 
18981 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
18982
18983         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
18984         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
18985         array type representation changes.
18986
18987 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
18988
18989         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
18990         on Environment.Exit () call.
18991
18992 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
18993
18994         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
18995         requires a matching corlib.
18996
18997 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
18998
18999         * Changelog: My editor decided to add a CR to each line. Sorry about that.
19000           Committed again without the CRs.
19001         
19002 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
19003
19004         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
19005           getting it from the "this" socket instance. Did not work
19006           if the socket is a subclass of Socket.
19007           Also fixed bug #35371.
19008
19009 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19010
19011         * metadata.c: fixed size for TypedByRef.
19012         * loader.c: when searching for a method, consider the vararg amrker.
19013         * unicode.c, decimal.c: constify some arrays.
19014
19015 2003-07-15  Dick Porter  <dick@ximian.com>
19016
19017         * socket-io.c: Fixed compilation for gcc < 3.2.
19018
19019         Fixed compilation for machines that don't have AF_INET6 (thanks to
19020         Bernie Solomon <bernard@ugsolutions.com> for that part.)
19021
19022         Fixed compile warnings.
19023         
19024         Fixed formatting and line endings.
19025
19026 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
19027
19028         * socket-io.h:
19029         * socket-io.c: Added IPv6 support.
19030
19031 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
19032
19033         * class.c (mono_class_is_assignable_from): New function to implement
19034         the is_assignable_from logic. Used by mono_object_isinst, 
19035         Type::IsAssignableFrom () and the interpreter.
19036
19037         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
19038         Object, even interfaces.
19039         
19040         * object.c (mono_object_isinst): Implement in terms of 
19041         is_assignable_from.
19042
19043         * icall.c (ves_icall_type_is_assignable_from): New icall.
19044
19045 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
19046
19047         * domain.c (foreach_domain): fix compiler warning.
19048
19049 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
19050
19051         * image.c (load_metadata_ptrs): use g_strndup because strndup is
19052         not available on all plattforms
19053
19054 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
19055
19056         * image.h image.c: Store the metadata version string in MonoImage.
19057         * icall.c: New icall to retrieve the image version.
19058         * reflection.c (create_dynamic_image): Fill in the image version field
19059         * reflection.c (build_compressed_metadata): Use the image version
19060         from the image structure.
19061
19062 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19063
19064         * appdomain.c: modified comment.
19065         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
19066         That will be its last iteration when mono_gc_cleanup is called from
19067         mono_runtime_cleanup and before the domain is unloaded.
19068
19069         Fixes bug #45962.
19070
19071 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
19072
19073         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
19074         attributes.
19075
19076 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19077
19078         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
19079         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
19080         Bernie Solomon <bernard@ugsolutions.com>.
19081
19082 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19083
19084         * object.c, object.h: provide mono_object_new_fast() for faster
19085         allocation in some special cases.
19086
19087 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
19088
19089         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
19090         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
19091
19092 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
19093
19094         * threadpool.c: fix leaks.
19095
19096 2003-07-01  Dick Porter  <dick@ximian.com>
19097
19098         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
19099         using MonoGHashTables.  Fixes threadpool bug posted to list.
19100
19101 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
19102
19103         * image.h, image.c: added support to load an assembly from a byte array.
19104         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
19105         assembly bundle support.
19106
19107 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
19108
19109         * threadpool.c (mono_thread_pool_add): keep a reference to the
19110         AsyncResult to prevent GC
19111
19112 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19113
19114         * class.c: leak fix.
19115
19116 2003-06-25  Dick Porter  <dick@ximian.com>
19117
19118         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
19119         for the async object, the WaitHandle object will close the handle.
19120         Fixes bug 45321.
19121
19122 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19123
19124         * class.c: in mono_array_class_get (), lookup from the hash with the
19125         same type we insert: this works around a bug in
19126         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
19127         lluis. The real fix will have to wait for after the release.
19128
19129 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19130
19131         * icall.c: fix memory leak when getting type members.
19132
19133 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19134
19135         * reflection.c: added more pubtoken special cases.
19136
19137 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
19138
19139         * class.c: handle field offset correctly when class size
19140         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
19141
19142 2003-06-20  Martin Baulig  <martin@ximian.com>
19143
19144         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
19145         *image' field.
19146
19147 2003-06-20  Martin Baulig  <martin@ximian.com>
19148
19149         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
19150
19151 2003-06-20  Martin Baulig  <martin@ximian.com>
19152
19153         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
19154         just distinguish between variables in registers and variables at
19155         an offset relative to a register.
19156
19157 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19158
19159         * icall.c: #ifdef out latest changes until mcs is fixed.
19160
19161 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19162
19163         * icall.c: return members in metadata order.
19164
19165 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19166
19167         * icall.c: avoid infinite loop in GetTimeZoneData.
19168
19169 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
19170
19171         * icall.c: added Marshal.Prelink/All icalls.
19172
19173 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19174
19175         * object.c, object.h: fix warnings and do some overflow checking
19176         when creating arrays.
19177
19178 2003-06-17  Dick Porter  <dick@ximian.com>
19179
19180         * file-io.h:
19181         * file-io.c: File attributes need to be tweaked slightly when
19182         passed from the managed to the w32 world.
19183
19184 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
19185         * profiler.h profiler-private.h profiler.c: Rework last patch
19186         based on suggestion by Paolo.
19187         
19188 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
19189
19190         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
19191         instruction level coverage data collection.
19192         * profiler.h profiler.c (: Added new callback function which can be
19193         used by the profiler to limit which functions should have coverage
19194         instrumentation.
19195         * profiler.c (mono_profiler_load): Call g_module_build_path to
19196         generate the file name of the profiler library.
19197
19198 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19199
19200         * profiler.c, profiler.h, profiler-private.h: added basic block 
19201         coverage profiling API.
19202
19203 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
19204
19205         * reflection.c (mono_reflection_create_runtime_class): Add support
19206         for events in dynamically generated code.
19207
19208         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
19209         not allocated.
19210
19211 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19212
19213         * icall.c: when getting timezone info, return reasonable values if we
19214         can't get the actual data.
19215
19216 2003-06-14  Dick Porter  <dick@ximian.com>
19217
19218         * threads.c (start_wrapper): Remove the reference to the thread
19219         object in the TLS data, so the thread object can be finalized.
19220         This won't be reached if the thread threw an uncaught exception,
19221         so those thread handles will stay referenced :-( (This is due to
19222         missing support for scanning thread-specific data in the Boehm GC
19223         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
19224
19225 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
19226
19227         * reflection.c: ensure streams and tables are first allocated with
19228         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
19229
19230 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19231
19232         * icall.c: fixed GetElementType for byrefs (bug# 44792).
19233
19234 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
19235
19236         * reflection.c (mono_reflection_create_runtime_class): Add support for
19237         properties to dynamically created classes.
19238         * reflection.c: Fix a few places where non-MonoObjects were inserted
19239         into the tokens hashtable.
19240
19241 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19242
19243         * object.c: some support to handle out of memory exceptions.
19244
19245 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
19246
19247         * marshal.c (mono_marshal_get_native_wrapper): support reference
19248         return types
19249
19250 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19251
19252         * object.h, object.c: more portability stuff from Bernie Solomon.
19253         Unexport mono_object_allocate(). Added mono_object_unbox ().
19254         Set exitcode when an unhandled exception is thrown.
19255
19256 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
19257
19258         * marshal.c (mono_marshal_get_native_wrapper): use custom
19259         marshaler for return types.
19260
19261 2003-06-10  Dick Porter  <dick@ximian.com>
19262
19263         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
19264         ip_mreq is available
19265
19266 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
19267
19268         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
19269         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
19270         by Bernie Solomon <bernard@ugsolutions.com>.
19271
19272 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
19273
19274         * gc.c (mono_gc_init): Avoid error message on shutdown when
19275         GC_DONT_GC=1 is used.
19276
19277         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
19278         New icall to return the GUID of a module.
19279
19280 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19281
19282         * class.c: ensure instance size always includes the parent's size
19283         even whem class size is set explicitly (fixes bug#44294).
19284
19285 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19286
19287         * profiler.h, profiler.c: made the simple profiler thread-safe,
19288         get more accurate timing info. Allow the loading of an
19289         externally-developed profiler module.
19290
19291 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
19292
19293         * marshal.c (mono_marshal_get_native_wrapper): improved
19294         class/byref arguments.
19295         (mono_marshal_get_native_wrapper): better string marshaling support.
19296
19297 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
19298
19299         * class.c: ensure .pack and .size are handled correctly and
19300         simplified layout of static fields.
19301
19302 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
19303
19304         * appdomain.c
19305         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
19306
19307         * loader.c (mono_lookup_pinvoke_call): look for modules in the
19308         current directory (fix bug 44008)
19309
19310 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
19311
19312         * marshal.c (mono_marshal_get_native_wrapper): started support for
19313         custom marshalers.
19314         (mono_delegate_to_ftnptr): consider marshalling specifications
19315
19316 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
19317
19318         * reflection.c, reflection.h: emit custom marshal info.
19319
19320 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19321
19322         * object.c: free the GError.
19323         * icall.c: added CloseEvent_internal.
19324         * threads.[ch]:
19325         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
19326         call.
19327
19328 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
19329
19330         * loader.c (mono_method_get_signature): Add support for dynamic
19331         assemblies.
19332
19333 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
19334
19335         * reflection.c: fixed bug #43905.
19336
19337 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19338
19339         * class.c, domain.c, icall.c, metadata.h, object.h: support for
19340         handling TypedReference and ArgIterator.
19341         * loader.c, loader.h: added function to get signature at call site.
19342
19343 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19344
19345         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
19346         data readonly. Buglets and warning fixes. Some MethodSpec support.
19347
19348 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19349
19350         * class.h, class.c, object.c: remove relative numbering support.
19351
19352 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
19353
19354         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
19355         free the string, until we get a chance to fix Gtk#
19356
19357 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19358
19359         * marshal.c: revert last patch.
19360
19361 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
19362
19363         * icall.c: updates for new mono_class_vtable() not calling
19364         the type constructor anymore.
19365
19366 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19367
19368         * object.h, object.c: separate vtable creation from type
19369         initialization. Make running the .cctor thread safe.
19370
19371 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
19372
19373         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
19374
19375 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
19376
19377         * loader.c (mono_get_method): consider calling convention
19378
19379 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
19380
19381         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
19382         to return the invisible global type for a module.
19383
19384         * reflection.c (mono_image_build_metadata): Emit global fields too.
19385
19386 2003-05-20  Peter Williams  <peterw@ximian.com>
19387
19388         * loader.c (mono_lookup_internal_call): Add a few newlines.
19389
19390 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
19391
19392         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
19393         literal strings.
19394
19395         * appdomain.c (set_domain_search_path): Recalculate search path when
19396         AppDomainSetup.PrivateBinPath changes.
19397
19398         * object.c (mono_class_compute_gc_descriptor): It turns out some
19399         parts of the class libs (like System.Thread) holds pointers to
19400         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
19401         to treat native int a pointer type here.
19402         
19403 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
19404
19405         * appdomain.h, domain.c: add hashtable for jump target resolution.
19406
19407 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
19408
19409         * reflection.h reflection.c icall.c: Added new icalls 
19410         GetManifestResourceInfoInternal, GetModulesInternal and support
19411         infrastructure.
19412
19413 2003-05-16  Dick Porter  <dick@ximian.com>
19414
19415         * icall.c:
19416         * file-io.h:
19417         * file-io.c: Implement System.IO.MonoIO::GetTempPath
19418
19419 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
19420
19421         * object.c: mono_store_remote_field: little fix to previous patch.
19422
19423 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19424
19425         * class.c: add constructors to array classes.
19426         * icall.c: special case array construction for InternalInvoke (),
19427
19428 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
19429
19430         * class.h class.c reflection.c object.c: Added support for field
19431         defaults in dynamically generated classes.
19432
19433 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
19434
19435         * reflection.c: properly encode charset for ddlimport.
19436
19437 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
19438
19439         * threads.c: allow compiling without GC.
19440
19441 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19442
19443         * appdomain.h, object.c, object.h, threads.c, threads.h: added
19444         handling of thread static data.
19445
19446 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19447
19448         * reflection.h, reflection.c: added mono_custom_attrs_free ().
19449
19450 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
19451
19452         * class.c (mono_array_class_get): always set the serializable flags
19453         (mono_array_class_get): always set the SEALED attribute for array types
19454
19455 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
19456
19457         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
19458         attributes (fix for bug 42021).
19459
19460 2003-05-12  Dick Porter  <dick@ximian.com>
19461
19462         * gc.c: Don't run finalizers when the finalizer thread is
19463         finishing up, because the default domain has already been
19464         destroyed.
19465
19466 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
19467
19468         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
19469         value is null, we should throw an exception.   This is slightly
19470         different than the other conventions used for the constructor.
19471
19472 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19473
19474         * socket-io.c: fixed windows build.
19475
19476 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19477
19478         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
19479
19480 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
19481
19482         * object.c (mono_string_new_wrapper): Compatibility fix for MS
19483         compilers.
19484
19485 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
19486
19487         * class.c (mono_class_layout_fields): Add experimental GC aware
19488         auto layout facility. Requires class library changes to work correctly.
19489
19490         (mono_class_setup_vtable): Avoid overriding explicit interface
19491         method implementations. Fixes iface3.exe test.
19492
19493         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
19494         object reference.
19495         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
19496         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
19497
19498         * metadata.h: Add new type classification macro which determines
19499         whenever the type holds an object reference.
19500
19501 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
19502
19503         * marshal.c (mono_marshal_get_native_wrapper): cleanups
19504
19505 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
19506
19507         * gc.c (finalizer_thread): Work around a GC bug.
19508
19509 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
19510
19511         * marshal.c (emit_struct_conv): allow unions
19512
19513         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
19514
19515 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
19516
19517         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
19518
19519 2003-05-06  Martin Baulig  <martin@ximian.com>
19520
19521         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
19522
19523 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19524
19525         * socket-io.c:
19526         (Select_internal): allow NULLs, don't create arrays if not needed.
19527         Coupled with Socket.cs changes.
19528
19529         * threadpool.c:
19530         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
19531         register a finalizer for it that will close the semaphore handle. This
19532         fixes the leak and make Lupus' test run with > 4080 loops.
19533
19534 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
19535
19536         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
19537         Jerome Laban (bug #42287)
19538
19539 2003-05-02  Martin Baulig  <martin@ximian.com>
19540
19541         * debug-mono-symfile.h
19542         (MonoSymbolFile): Moved declaration into mono-debug.h.
19543         (MonoDebugMethodJitInfo): Likewise.
19544         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
19545         argument.
19546         (_mono_debug_address_from_il_offset): Take a
19547         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
19548
19549         * mono-debug.h
19550         (MonoDebugDomainData): New struct.
19551         (mono_debug_get_domain_data): New function.
19552         (mono_debug_add_method): Take an additional `MonoDomain *'
19553         argument.
19554         (mono_debug_source_location_from_address): Likewise.
19555         (mono_debug_il_offset_from_address): Likewise.
19556         (mono_debug_address_from_il_offset): Likewise.
19557
19558 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
19559
19560         * reflection.c: one more check for null type in custom attrs.
19561
19562 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19563
19564         * reflection.c: avoid warning (comparison is always false due to limited
19565         range of data type).
19566
19567 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19568
19569         * icall.c: throw an exception in Type.GetField if the argument 'name'
19570         is NULL.
19571
19572 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
19573
19574         * reflection.c: fixed handling of enums in named arguments to custom
19575         attributes (bug #42123).
19576
19577 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
19578
19579         * reflection.c: use the right array element type and handle
19580         a null for a Type argument, too.
19581
19582 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
19583
19584         * reflection.c: handle arrays as arguments to custom attributes.
19585
19586 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
19587
19588         * reflection.c: handle a string value in a custom attr
19589         ctor that takes an object.
19590
19591 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
19592
19593         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
19594         (fix bug #42063)
19595
19596 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
19597
19598         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
19599
19600 2003-04-27  Martin Baulig  <martin@ximian.com>
19601
19602         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
19603         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
19604         MONO_DEBUGGER_EVENT_BREAKPOINT.
19605         (mono_breakpoint_trampoline_code): Removed.
19606         (mono_debugger_event_handler): The last argument is now a
19607         `guint32'.
19608         (mono_debugger_insert_breakpoint_full): Removed the
19609         `use_trampoline' argument.
19610         (mono_debugger_method_has_breakpoint): Likewise.
19611         (mono_debugger_trampoline_breakpoint_callback): Renamed to
19612         mono_debugger_breakpoint_callback(); take the method and
19613         breakpoint number as arguments.
19614
19615 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
19616
19617         * metadata.c: fix off by one when loading parameters attributes.
19618
19619 2003-04-24  Martin Baulig  <martin@ximian.com>
19620
19621         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
19622
19623 2003-04-24  Martin Baulig  <martin@ximian.com>
19624
19625         * mono-debug-debugger.c: Moved all code which interacts with the
19626         Mono Debugger here.
19627
19628         * debug-mono-symfile.c: This code now just deals with the symbol
19629         file itself, the debugger code is now in mono-debug-debugger.c.
19630
19631 2003-04-23  Martin Baulig  <martin@ximian.com>
19632
19633         * mono-debug.c (mono_debug_source_location_from_il_offset):
19634         New method; like mono_debug_source_location_from_address(), but
19635         takes an IL offset instead of a machine address.
19636
19637 2003-04-23  Martin Baulig  <martin@ximian.com>
19638
19639         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
19640         `line' field; this is now computed by the debugger.
19641
19642 2003-04-23  Martin Baulig  <martin@ximian.com>
19643
19644         * mono-debug.[ch]: New files.  This is the new debugging interface.
19645
19646         * mono-debug-debugger.[ch]: New files.  Moved all code which
19647         interacts with the Mono Debugger here.
19648
19649 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
19650
19651         * domain.c (mono_init): initialize mono_defaults.monitor_class
19652
19653 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
19654
19655         * reflection.c (method_encode_code): Add a spicy exception to help
19656         future compiler authors.
19657
19658 2003-04-21  Martin Baulig  <martin@ximian.com>
19659
19660         * icall.c
19661         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
19662         Make this work with relative pathnames; g_filename_to_uri() needs
19663         an absolute filename.
19664
19665 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
19666
19667         * icall.c: Track name changes in Object and ValueType.
19668
19669 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
19670
19671         * metadata.c (mono_type_stack_size): size should be a multiple of
19672         sizeof (gpointer)
19673
19674 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19675
19676         * gc.c:
19677         (internal_domain_finalize): moved into mono_domain_finalize. No need
19678         to create another thread because the finalizers will be run in the
19679         finalizer thread.
19680         
19681         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
19682         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
19683         to be run (MS does this too).
19684
19685 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
19686
19687         * object.c (mono_class_compute_gc_descriptor): Update comment.
19688
19689         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
19690
19691         * image.h: Add synchronized wrapper cache.
19692
19693         * image.c (do_mono_image_open): Initialize cache.
19694
19695         * reflection.c (create_dynamic_mono_image): Initialize cache.
19696
19697 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19698
19699         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
19700         ves_icall_System_Buffer_ByteLengthInternal.
19701
19702 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19703
19704         * reflection.c: setup klass->nested_in earlier. Allow
19705         a dash in the assembly name.
19706
19707 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
19708
19709         * metadata.c (mono_type_to_unmanaged): dont access
19710         type->data.klass for MONO_TYPE_OBJECT
19711         (mono_type_to_unmanaged): consider System.Delegate class
19712
19713 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
19714
19715         * class.c: just setup supertypes in the proper place instead of
19716         initializing the full element class for arrays.
19717
19718 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19719
19720         * class.c: ensure the element class of arrays is initialized.
19721         Setup the supertype info for array classes, too.
19722
19723 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
19724
19725         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
19726
19727 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19728
19729         * Makefile.am: re-added -m option when running cygpath. This way,
19730         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
19731         separator.
19732         * mono-config.c: same codepath for locating mono config file for WIN32
19733         and the rest.
19734         * assembly.c: if mono_assembly_setrootdir is called, don't override
19735         the value set.
19736
19737 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19738
19739         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
19740         MONO_ASSEMBLIES variable.
19741
19742 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
19743
19744         * icall.c: added Assembly::GetNamespaces() icall.
19745
19746 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19747
19748         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
19749
19750 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
19751
19752         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
19753         * object.c: fixed bug in the construction of vtable for proxies
19754
19755 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
19756
19757         * object.c (mono_array_new): Mark mono_array_new as an icall.
19758
19759 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19760
19761         * class.c: fixed test for public method when overriding interfaces.
19762         Closes bug #40970.
19763
19764 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19765
19766         * appdomain.h, domain.c: added mono_domain_foreach() to
19767         be able to access the currently loaded appdomains.
19768         * object.c: make string interning work across sppdomains.
19769         Mark some functions for use as icalls.
19770
19771 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
19772
19773         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
19774
19775         * reflection.h reflection.c: Allocate long living data using 
19776         GC_MALLOC_ATOMIC so the collector does not need to scan it.
19777
19778         * reflection.c: Double the allocation size in streams instead of
19779         increasing it, to prevent unneccesary copying on large assemblies.
19780         
19781         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
19782         creation if the assembly does not have the Run flag set.
19783
19784 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
19785
19786         * class.h: avoid the C++ keywords in header files (Jerome Laban
19787         spotted and fixed this).
19788
19789 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19790
19791         * object.c:
19792         (mono_unhandled_exception): fill in the arguments for the
19793         UnhandledException event. Only trigger that event for the default
19794         domain (as MS does).
19795
19796 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
19797
19798         * object.c: Improve typed allocation stuff based on suggestions from
19799         Paolo. Also turn it on if the GC library supports it.
19800
19801 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
19802
19803         * object.c object.h class.h: Added experimental typed allocation
19804         facility using the interfaces in gc_gcj.h.
19805
19806         * os/gc_wrapper.h: Added new include files.
19807         
19808 2003-04-03  Martin Baulig  <martin@ximian.com>
19809
19810         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
19811         which is not yet enabled by default.
19812
19813         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
19814         functions.
19815         (mono_gc_lock, mono_gc_unlock): New static functions.
19816
19817         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
19818         functions; stop/start the world for the garbage collector.  This
19819         is using the windows API; we need to complete the SuspendThread()/
19820         ResumeThread() implementation in the io-layer to make this work on Unix.
19821         (mono_gc_push_all_stacks): New public function; tells the garbage
19822         collector about the stack pointers from all managed threads.
19823
19824 2003-04-03  Martin Baulig  <martin@ximian.com>
19825
19826         * object.h (MonoThread): Added `gpointer stack_ptr'.
19827
19828         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
19829
19830 2003-04-03  Martin Baulig  <martin@ximian.com>
19831
19832         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
19833
19834 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
19835
19836         * reflection.c (typebuilder_setup_fields): Initialize field.first and
19837         field.last.
19838
19839 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
19840
19841         * loader.c (mono_lookup_internal_call): Report the corlib that is
19842         out of sync.
19843
19844 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
19845
19846         * icall.c (ves_icall_type_GetTypeCode): fixed check for
19847         System.DBNull (it's class not valuetype).
19848
19849 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19850
19851         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
19852         if the array method was already assigned a token (fixes bug#40646).
19853
19854 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
19855
19856         * reflection.c (mono_reflection_get_type): Attempt type resolve even
19857         if no assembly is given.
19858
19859 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
19860
19861         * metadata.h: Added the new tables.
19862
19863         * row-indexes.h: Added definitions for new tables.
19864
19865         * metadata.c: Add schemas for new tables, and add support for
19866         computing the sizes of them.
19867
19868         * class.c: Update for handling the new type cases.
19869
19870 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
19871
19872         * metadata.h (MONO_TYPE_IS_VOID): new macro
19873
19874 2003-03-31  Martin Baulig  <martin@ximian.com>
19875
19876         * threads.h (MonoThreadCallbacks): Added `thread_created'.
19877
19878         * threads.c (mono_thread_new_init): Call `thread_created' in the
19879         mono_thread_callbacks.
19880
19881 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
19882
19883         * loader.h: added marshalbyrefobject_class to mono_defaults
19884         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
19885         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
19886           generation of output parameters.
19887           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
19888         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
19889           contextbound and the target object belongs to the context of the caller.
19890         * object.h: added context and unwrapped_server variables in MonoRealProxy.
19891         * object.c: Implemented support for interfaces and abstract classes
19892           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
19893           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
19894
19895 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
19896
19897         * class.h class.c (mono_class_is_subclass_of): New function.
19898         
19899         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
19900         routines for most common case (calls from ArrayList::ToArray).
19901
19902         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
19903         routine so programs which call Environment::Exit() can be profiled.
19904
19905         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
19906         Added MONO_ARCH_SAVE_REGS.
19907
19908         * icall.c (ves_icall_type_is_subtype_of): Use new function.
19909
19910 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
19911
19912         * blob.h: Add a couple of new MonoType types definitions.
19913
19914         * tabledefs.h: Add a couple of new call convs.
19915
19916 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
19917
19918         * reflection.h (MonoReflectionDynamicAssembly): track changes in
19919         the layout of the class.
19920
19921         * reflection.c (alloc_table): double the size on overflow to avoid
19922         unnecessary copying.
19923
19924         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
19925         avoid filling out metadata tables and blobs. Also set mb->ilgen to
19926         null so it can be garbage collected.
19927         
19928 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
19929
19930         * reflection.c (mono_reflection_get_type): Return the resolved type
19931         only if it is in the assembly we searched.
19932
19933         * reflection.c (ensure_runtime_vtable): Initialize method slots.
19934
19935         * class.c (mono_class_setup_vtable): Set the slot of the overriding
19936         method.
19937
19938 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19939
19940         * appdomain.c:
19941         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
19942         the right one is 'file:///blah', but MS allows it.
19943         * assembly.c:
19944         (mono_assembly_open): allow 'file://blah'
19945
19946         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
19947
19948 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
19949
19950         * socket-io.c: fixes bug #40310.
19951
19952 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
19953
19954         * reflection.c (mono_reflection_parse_type): handle deeply nested
19955         types correctly.
19956
19957         * reflection.c (mono_image_create_token): Use unique token values
19958         since they will be put into a hash table.
19959
19960         * class.c (mono_class_setup_vtable): If a method occurs in more than
19961         one place in the vtable, and it gets overriden, then change the
19962         other occurances too.
19963
19964         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
19965         object as return type.
19966
19967 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
19968
19969         * icall.c: Deleted "ToString" implementation for double and float
19970         because they are full implemented in managed code.
19971
19972 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
19973
19974         * reflection.c, reflection.h: implemented and exported functions
19975         to retrieve info about custom attributes.
19976
19977 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19978
19979         * appdomain.c: moved Uri handling to assembly.c
19980         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
19981         work when using a file Uri in *nix and windows.
19982
19983         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
19984         GetReferencedAssemblies.
19985
19986 2003-03-18  Dick Porter  <dick@ximian.com>
19987
19988         * icall.c: Rename a couple of internal calls
19989
19990         * threads.c: Set the thread state to Stopped when a thread exits.
19991         Fixes bug 39377.
19992
19993 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
19994
19995         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
19996         New icall.
19997
19998         * object.c (mono_class_vtable): fix warning.
19999
20000 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
20001
20002         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
20003
20004         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
20005         memory.
20006         (method_encode_clauses): Create exception info structures in the right
20007         order.
20008         (mono_reflection_setup_internal_class): Initialize supertypes field.
20009
20010         * class.c object.c: Handle interfaces which implement other interfaces 
20011         correctly.
20012
20013         * class.h class.c: Move the supertypes array initialization code into 
20014         a separate function so it can be used for dynamic types too. Also call
20015         it earlier, in mono_class_init(), since it can be used before the
20016         type is initialized.
20017
20018 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20019
20020         * Makefile.am:
20021         * assembly.c:
20022         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
20023
20024         * appdomain.c:
20025         * appdomain.h:
20026         * marshal.c:
20027         * object.c: remove warnings.
20028
20029 2003-03-13  Martin Baulig  <martin@ximian.com>
20030
20031         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
20032         (MonoDebugLexicalBlockEntry): New types.
20033
20034         * debug-mono-symfile.c
20035         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
20036
20037 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20038
20039         * process.c: ret can be any non-zero value accroding to MS doc.
20040
20041 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
20042
20043         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
20044         fixing a warning for a miss-used prototype, would have cause
20045         random memory corruption.
20046
20047 2003-03-07  Martin Baulig  <martin@ximian.com>
20048
20049         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
20050         getting really annoying ....
20051
20052 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
20053
20054         * reflection.c (fixup_method): added support for array methods.
20055
20056 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
20057
20058         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
20059         (pointed out by Michael Adams).
20060
20061 2003-03-04  Dick Porter  <dick@ximian.com>
20062
20063         * icall.c: Temporarily reverted the Double and Single ToString()
20064         change, because it broke nunit.
20065
20066 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
20067
20068         * object.h, threads.h: make include files compatible with C++
20069         (patch by Jerome Laban <jlaban@wanadoo.fr>).
20070
20071 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20072
20073         * icall.c: Erased ToString helper functions for Double and Single.
20074         Now, that implementations ar all in managed code (Double and Single
20075         Formatters).
20076
20077 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
20078
20079         * appdomain.c: Added method for initializing the default context of
20080         a domain. Added internal call for getting the default context.
20081         * appdomain.h: Added context variable in MonoDomain struct.
20082         * domain.c: mono_domain_set also sets the default context of the domain
20083         * icall.c: Mapped internal method InternalGetDefaultContext.
20084         * object.c: mono_object_get_virtual_method returns always a remoting
20085         wrapper if the object is a transparent proxy.
20086         mono_runtime_invoke_array: when creating an object by calling the
20087         constructor, if the created object is a proxy, then the constructor should
20088         be called using the a remoting wrapper.
20089
20090 2003-03-03  Dick Porter  <dick@ximian.com>
20091
20092         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
20093         variable so it compiles on solaris.  Problem spotted by
20094         Christopher Taylor <ct@cs.clemson.edu>
20095
20096 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20097
20098         * appdomain.c:
20099         (get_info_from_assembly_name): don't leak value.
20100
20101         * icall.c:
20102         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
20103         result.
20104
20105 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
20106
20107         * assembly.c: export mono_image_load_references ().
20108         * class.c: handle function pointers. mono_class_from_name() now
20109         supports nested type names directly.
20110
20111 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
20112
20113         * reflection.h reflection.c: Encode already created dynamic methods 
20114         and fields correctly as a DEF instead of a REF.
20115
20116         * reflection.c: Get rid of the force_ref argument to 
20117         mono_image_typedef_or_ref since it was wrong in the first place.
20118
20119         * string-icalls.c: add error checking to string constructors according
20120         to the MSDN docs.
20121
20122         * reflection.c: Emit types in the order their TypeBuilders were 
20123         created. Previously, a new table index was assigned to each type before
20124         the tables were emitted. This was wrong because the signature blob
20125         might already refer to a type by its original table index.
20126
20127 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
20128
20129         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
20130         change.
20131         
20132 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20133
20134         * Makefile.am: make assemblies dir have \ instead of / on windows.
20135
20136 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
20137
20138         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
20139         iterate over the NESTEDCLASS table using a linear search since the
20140         table is not guaranteed to be sorted by the secondary key.
20141
20142         * class.c (mono_class_create_from_typedef): fixed up call to
20143         mono_metadata_nesting_typedef.
20144         
20145 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
20146
20147         * marshal.c (mono_string_to_byvalstr): clear the memory as
20148         suggested by Jerome Laban <jlaban@wanadoo.fr>
20149
20150 2003-02-26  Dick Porter  <dick@ximian.com>
20151
20152         * process.c: Cope with padding in .rsrc blocks
20153
20154 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
20155
20156         * metadata.h: reverted the filter_len change, it breaks reflection
20157         
20158 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
20159
20160         * metadata.h: added a new field to store the filter_len
20161         
20162
20163 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
20164
20165         * reflection.c: handle custom attributes for types and members
20166         created with Reflection.Emit (bug#38422).
20167
20168 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
20169
20170         * reflection.c: define RTSpecialName automatically for constructors for
20171         compatibility with MS.NET.
20172
20173         * reflection.c (mono_reflection_create_runtime_class): initialize
20174         nested_in field of dynamically created classes.
20175
20176 2003-02-22  Martin Baulig  <martin@ximian.com>
20177
20178         * debug-mono-symfile.h: Incremented version number.
20179
20180 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
20181
20182         * object.h icall.c process.c: fix warnings.
20183
20184 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
20185
20186         * appdomain.h appdomain.c:
20187         (mono_domain_try_type_resolve): split the 
20188         name_or_tb argument into a name and a tb argument.
20189         (mono_domain_has_type_resolve): new function to check whenever the
20190         application has registered a TypeResolve event handler.
20191         
20192         * icall.c reflection.h reflection.c: move the type resolve logic into
20193         mono_reflection_get_type () so it will be invoked when 
20194         Assembly::GetType () is called.
20195
20196         * reflection.c:
20197         (mono_reflection_get_type): renamed to get_type_internal.
20198         (mono_reflection_get_type): fixed type name generation so it works 
20199         for nested types too.
20200         (mono_reflection_get_type): call has_type_resolve () to avoid the 
20201         costly type name generation if there is no resolve event handler.
20202
20203 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20204
20205         * class.c, image.c: load exported types from file references.
20206
20207 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
20208
20209         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
20210           used to cache the managed methods used to create proxies and make 
20211           remote invocation of methods.
20212         * class.h: Added in MonoVTable a flag to indicate that a class needs 
20213           to be remotely created.
20214         * object.c: Modified the method mono_class_vtable(). It now initializes 
20215           the remote flag of the vtable. Modified mono_object_new_specific(), 
20216           so now it checks the remote flag.
20217         * icall.c: Added a couple of internal methods, one for enabling instance 
20218           creation interception for a type, and one for creating objects bypassing
20219           the remote check.
20220
20221 2003-02-18  Martin Baulig  <martin@ximian.com>
20222
20223         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
20224         New interncall to get a method's metadata token.
20225
20226         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
20227         New interncall for the debugger.
20228
20229 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
20230
20231         * class.c (mono_class_setup_vtable): allocate supertype array
20232
20233 2003-02-18  Martin Baulig  <martin@ximian.com>
20234
20235         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
20236
20237 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20238
20239         * reflection.c:
20240         (assembly_name_to_aname): jump over unknown properties (i've found
20241         something like: 'type, assembly, version=xxx, custom=null, public...',
20242         so now will ignore custom=null and still get the rest of the values).
20243
20244 2003-02-17  Dick Porter  <dick@ximian.com>
20245
20246         * threads.c: Have Thread.Start() wait for a semaphore to signal
20247         that the thread has set up all its local data.  This fixes bug
20248         34323, where Abort() raced the new thread's TLS data.
20249
20250         Also removes the handle_store() call from start_wrapper, because
20251         threads are now always created suspended and there is no longer a
20252         race between the parent and child threads to store the info.
20253
20254 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
20255
20256         * image.c: explain the #- heap issue in a message, hopefully
20257         avoiding FAQs on mono-list.
20258
20259 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20260
20261         * icall.c:
20262         (GetEntryAssembly): if the domain has not invoked
20263         AppDomain.ExecuteAssembly yet, return the assembly of the default
20264         AppDomain.
20265
20266 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
20267
20268         * class.c (mono_ldtoken): make it work in dynamic assemblies.
20269
20270 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
20271
20272         * metadata.c, reflection.c: simple speedup to type hash
20273         and equals code.
20274
20275 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
20276
20277         * image.c, image.h, class.c, assembly.c: move module loading
20278         to MonoImage. When loading metadata, consider alignemnet from
20279         the start of metadata, not from the metadata address in memory.
20280
20281 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
20282
20283         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
20284         AssemblyBuilder objects. Factored out custom attribute creation into
20285         a separate function.
20286         (create_custom_attr): new function to create custom attributes.
20287
20288 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
20289
20290         * Makefile.am: Got tired of typing the full pathname to pedump.
20291         Until there is another option, am installing this.
20292
20293 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
20294
20295         * class.c (class_compute_field_layout): always set field->parent 
20296         (mono_ldtoken): use mono_defaults.fieldhandle_class;
20297
20298 2003-02-11  Dick Porter  <dick@ximian.com>
20299
20300         * threads-types.h:
20301         * monitor.c: Rewrote Monitor, making lock much faster and
20302         Pulse/Wait work as specified.  Also uses much fewer handles, and only
20303         creates them as needed.
20304
20305         * exception.c: Added SynchronizationLockException
20306
20307         * threads.c: Deleted old Monitor implementation.  The new one is
20308         in a new file.
20309
20310 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
20311
20312         * class.c: handled TypedReference type code. Set the correct size for
20313         class data. Setup interface_offsets for interface classes, too.
20314
20315 2003-02-09  Martin Baulig  <martin@ximian.com>
20316
20317         * debug-mono-symfile.h: Reflect latest symbol writer changes.
20318
20319 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
20320
20321         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
20322         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
20323         * object.c: fixed mono_object_get_virtual_method () for interfaces.
20324         * verify.c: check for code that runs after the end of the method.
20325
20326 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20327
20328         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
20329         "System.Math::Round2".
20330         * sysmath.h: Added Floor, Round and Round2 definitions.
20331         * sysmath.c: Modified certain functions that were not 100% compliant
20332         with MS.NET (math precision) and added the implementation of Floor,
20333         Round and Round2.
20334
20335 2003-02-07  Martin Baulig  <martin@ximian.com>
20336
20337         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
20338
20339 2003-02-07  Martin Baulig  <martin@ximian.com>
20340
20341         * debug-mono-symfile.c: Reflected latest symwriter changes.
20342         (mono_debug_create_mono_symbol_file): Removed.
20343         (mono_debug_open_mono_symbol_file): Take an argument which
20344         specifies whether to create a dynamic symbol file.
20345
20346 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
20347
20348         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
20349
20350 2003-02-05  Martin Baulig  <martin@ximian.com>
20351
20352         * reflection.c (mono_image_build_metadata): Make this public,
20353         protect it against being called multiple times, don't create
20354         resources and don't build the compressed metadata here.
20355         (mono_image_create_pefile): Do this here.
20356
20357         * icall.c
20358         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
20359
20360 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20361
20362         * socket-io.c: fixed bug #36322.
20363
20364 2003-02-06  Piers Haken <piersh@friskit.com>
20365
20366         * appdomain.[ch]:
20367         * class.h:
20368         * debug-mono-symfile.c:
20369         * icall.c:
20370         * loader.c:
20371         * mono-config.c:
20372         * monosn.c:
20373         * reflection.c:
20374         * socket-io.c: warning cleanups
20375
20376 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
20377
20378         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
20379         function. works like remoting invoke, but does a check for the Proxy first.
20380
20381 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
20382
20383         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
20384
20385 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
20386
20387         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
20388         array of pointers.
20389         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
20390         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
20391
20392         * object.c (mono_store_remote_field_new): used by the new jit
20393         instead of mono_store_remote_field
20394         (mono_load_remote_field_new): used by the new jit
20395         instead of mono_load_remote_field
20396
20397 2003-02-05  Patrik Torstensson
20398
20399         * appdomain.c: changed unload to take the domain id instead
20400         of domain
20401         
20402         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
20403
20404
20405 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20406
20407         * appdomain.c: don't look for assemblies in ApplicationBase if
20408         PrivateBinPathProbe is set.
20409
20410 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20411
20412         * object.c: make the first argument in main_args contain the absolute
20413         path to the assembly. Fixes bug #37511.
20414
20415 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20416
20417         * icall.c: get correct UTC offset for countries not using daylight
20418         time saving. Fixes bug #30030.
20419
20420 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20421
20422         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
20423         and 1 are the family).
20424
20425 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
20426
20427         * icall.c (ves_icall_InternalExecute): removed wrong assertion
20428
20429         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
20430
20431 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
20432
20433         * reflection.c: added support for SignatureHelper tokens, which is
20434         needed by the Calli opcode.
20435
20436         * reflection.h: track changes to SignatureHelper class.
20437
20438         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
20439
20440 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20441
20442         * appdomain.c: fixed loading assemblies from PrivateBinPath.
20443
20444 2003-02-03  Patrik Torstensson
20445         * appdomain.[c|h], domain.c : 
20446          - Added support for getting a domain via domain id
20447          - Support for setting and getting domain from System.AppDomain 
20448            (used in cross appdomain channel)
20449          - Added support for get/set for a MonoAppContext on a thread 
20450            (Context class in System.Runtime.Remoting.Contexts),
20451          - Removed hack in Get/SetData and ExecuteAssembly.
20452         
20453         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
20454         the managed world to get control when a proxy is created.
20455
20456         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
20457         
20458 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
20459
20460         * icall.c
20461         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
20462         Populate the codebase field as well.
20463
20464 2003-02-02  Martin Baulig  <martin@ximian.com>
20465
20466         * debug-mono-symfile.c
20467         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
20468         (mono_debug_symfile_add_method): Allow interncalls.
20469
20470 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20471
20472         * icall.c: throw parse exception if strtod fails or the string is empty.
20473
20474 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
20475
20476         * marshal.c: handle object type separately from defined
20477         class types.
20478
20479 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
20480
20481         * marshal.c: handle NATIVE_LPSTR for strings when it's
20482         explicitly specified.
20483
20484 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
20485
20486         * reflection.c, reflection.h, icall.c: setup the reflection
20487         handle cache for ModuleBuilders and AssemblyBuilders.
20488
20489 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
20490
20491         * reflection.c (reflection_methodbuilder_to_mono_method): set
20492         pinvoke flag
20493
20494 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20495
20496         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
20497
20498 2003-01-29  Dick Porter  <dick@ximian.com>
20499
20500         * threads.c: No need for the fake_thread kludge now that Thread
20501         doesn't run a class constructor
20502         
20503 2003-01-29  Dick Porter  <dick@ximian.com>
20504
20505         * threads.c: Use g_direct_hash instead of the rather bogus
20506         g_int_hash
20507
20508 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
20509
20510         * marshal.c (mono_marshal_get_native_wrapper): add check for null
20511         (fix pinvoke12.exe)
20512         (mono_marshal_get_struct_to_ptr): generate valid IL code
20513         (mono_marshal_get_ptr_to_struct): generate valid IL code
20514         (*): correctly set sig->pinvoke, we need to memdup the signature
20515         to do that
20516
20517 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20518
20519         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
20520         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
20521
20522 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20523
20524         * profiler.c: provide more callers information.
20525
20526 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
20527
20528         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
20529
20530         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
20531
20532         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
20533
20534 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20535
20536         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
20537         exception instead of going into an infinite loop on dates which it 
20538         can't yet handle.
20539
20540         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
20541         out-of-range exception if needed.
20542
20543         * class.c (mono_class_setup_vtable): allow a virtual method to provide
20544         an implementation for an interface method and to override an inherited
20545         method at the same time. 
20546         Imagine a scenario when a virtual method is used to override a
20547         virtual abstract method in a parent class, and this same method 
20548         provides an implementation for an method inherited from an interface. 
20549         In this case, the interface resolution code will set im->slot, which 
20550         means that the virtual method override pass will skip this method 
20551         which means a pointer to the abstract method inherited from the parent
20552         will remain in the vtable of this non-abstract class.
20553
20554         * class.c: (mono_class_setup_vtable): continue search for a real 
20555         method if only an abstract method is found.     
20556
20557 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20558
20559         * reflection.c: add size to encoding for ByValStr and ByValArray
20560         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
20561
20562 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20563
20564         * class.c (mono_class_setup_vtable): pass the override info as an
20565         argument.
20566
20567         * class.c (mono_class_setup_vtable): set the slot of overriding methods
20568         correctly.
20569         
20570         * reflection.c (ensure_runtime_vtable); add support for method 
20571         overrides.
20572         
20573 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20574
20575         * reflection.c (resolution_scope_from_image): Hack to work to work with
20576         dynamic assemblies.
20577
20578         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
20579         added a 'force_ref' argument to force this function to allways return 
20580         a TypeRef. This is needed by mono_image_get_memberref_token ().
20581         
20582 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20583
20584         * reflection.c (mono_image_get_type_info): interfaces really don't have
20585         a parent.
20586
20587         * reflection.c (mono_image_basic_init): fill out missing fields of
20588         image structure.
20589
20590         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
20591         dynamic assemblies. This is required so dynamic assemblies show up in
20592         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
20593         Type::GetType() etc. This is consistent with MS behaviour.
20594
20595         * image.c image.h reflection.c: add newly created classes to the name 
20596         cache so mono_class_get () will find them.      
20597
20598 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
20599
20600         First part of changes to get IKVM.NET running under mono.
20601         
20602         * appdomain.h, appdomain.c: added new function 
20603         mono_domain_try_type_resolve() which will emit TypeResolve events. 
20604         This function will call AppDomain::DoTypeResolve to do the actual work.
20605
20606         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
20607         moved existing code dealing with dynamic tokens to a new function 
20608         called mono_reflection_lookup_dynamic_token (). This function will 
20609         raise TypeResolve events when appropriate. Since reflection.c is not 
20610         part of libmetadata, a new hook function called 
20611         mono_lookup_dynamic_token() is added to class.c which will call this.
20612
20613         * assembly.h assembly.c: make the invoke_load_hook function public,
20614         so it can be called for dynamic assemblies.
20615
20616         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
20617
20618         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
20619         type isn't found.
20620
20621         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
20622         MonoGHashTable, since it contains pointers to objects which the GC 
20623         needs to track.
20624
20625         * assembly.c (search_loaded): remove unused variable.
20626         
20627 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
20628
20629         * object.c: fixed issue exposed by gcc-generated IL programs
20630         that use RVA data for pointers.
20631
20632 2003-01-25  Martin Baulig  <martin@ximian.com>
20633
20634         * threads.c (start_wrapper): Moved the initialization of
20635         `start_func' above the mono_new_thread_init() call to which we
20636         pass it as argument.
20637
20638 2003-01-24  Martin Baulig  <martin@ximian.com>
20639
20640         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
20641         the MonoThread pointer.
20642
20643 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
20644
20645         * icall.c: Rename `PowImpl' to Pow.
20646
20647 2003-01-23  Dick Porter  <dick@ximian.com>
20648
20649         * threads.c (start_wrapper): Create a Thread object if needed, so
20650         the Main() thread can do the class initialisation in a subthread
20651         that has been set up to allow managed code execution.
20652
20653         Pass the thread ID instead of the MonoThread pointer to the thread
20654         start and attach callbacks.  This change is required, because the
20655         jit thread start callback must be called _before_ the Thread
20656         object can be created.
20657         
20658         (mono_thread_init): Removed much object creation code that is no
20659         longer needed.  No managed code is called from here now.
20660
20661         * object.c (mono_runtime_exec_managed_code): Create a subthread
20662         for Main, and call back to the runtime to use it.
20663         Set the exit code when Main exits.
20664
20665         * gc.c: Make sure domain finalisation happens in a subthread.
20666         Re-enable threaded GC, fixing bug 31333 (again).
20667
20668         * environment.c: System.Environment internall calls (so far just
20669         ExitCode is here, the others are still in icall.c)
20670
20671         * appdomain.c (mono_runtime_cleanup): All threads running managed
20672         code should have finished before mono_runtime_cleanup() is
20673         reached, so no need to clean up threads.
20674
20675 2003-01-22  Martin Baulig  <martin@ximian.com>
20676
20677         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
20678         `gpointer func' arguments.      
20679         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
20680         but added `MonoThread *thread' argument.
20681         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
20682
20683         * threads.c (mono_new_thread_init): Added `gpointer func' argument
20684         and pass it to the mono_thread_start_cb callback.
20685         (mono_install_thread_callbacks): New public function to install a
20686         set of callbacks which are set by the debugger.
20687         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
20688
20689 2003-01-22  Martin Baulig  <martin@ximian.com>
20690
20691         * Makefile.am: Install debug-mono-symfile.h.
20692
20693 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
20694
20695         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
20696
20697 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
20698
20699         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
20700         * class.c (mono_ptr_class_get): correctly set access levels of pointers
20701         (mono_array_class_get): correctly set access levels of arrays
20702
20703 2003-01-20      Patrik Torstensson
20704         * image.h (MonoAssemblyName): changed major, minor, build, revision
20705         from signed to unsigned.
20706
20707 2003-01-20  sean kasun <skasun@azstarnet.com>
20708
20709         * reflection.c (load_cattr_value): Now this handles
20710         MONO_TYPE_SZARRAY.  Fixes bug #35629
20711
20712 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
20713
20714         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
20715         integer value
20716
20717 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20718
20719         * decimal.c: fixed bug #26056.
20720
20721 2003-01-17  Martin Baulig  <martin@ximian.com>
20722
20723         * gc.c: Raise an ExecutionEngineException instead of using g_error().
20724
20725 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20726
20727         * exception.[ch]:
20728         (mono_get_exception_type_initialization): new function.
20729
20730         * object.c: throw a TypeInitializationException when an exception is
20731         thrown invoking the class constructor.
20732
20733 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20734
20735         * reflection.c: fixed attribute reading.
20736
20737 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20738
20739         * icall.c:
20740         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
20741         provided, look for the type in the calling assembly and then in
20742         mscorlib; if the assembly name is provided, only try that one.
20743
20744 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
20745
20746         * object.c: register the vtable before there is a chance it's
20747         queried again recursively.
20748
20749 2003-01-13  Duncan Mak  <duncan@ximian.com>
20750
20751         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
20752         gc-internal.h. 
20753         
20754 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
20755
20756         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
20757
20758 2003-01-11  Martin Baulig  <martin@ximian.com>
20759
20760         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
20761         this to 20 for the release.
20762
20763 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
20764
20765         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
20766
20767         * loader.c (mono_method_get_marshal_info): bug fix
20768
20769         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
20770         structures with explicit layout
20771
20772 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
20773
20774         * profiler.c: made the output more readable (and sorted). 
20775         Added caller information for the allocation profiler.
20776
20777 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
20778
20779         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
20780
20781 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20782
20783         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
20784         to get value types.
20785         
20786 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
20787
20788         * object.c, profiler.h, profiler.c, profiler-private.h:
20789         Added object allocation profiler.
20790
20791 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
20792
20793         * reflection.h, reflection.c: handle global methods.
20794         Compress blob entries.
20795
20796 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
20797
20798         * marshal.c: fix compilation.
20799
20800 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
20801
20802         * loader.c (mono_method_get_marshal_info): impl.
20803
20804         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
20805
20806 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20807
20808         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
20809         for reference types.
20810
20811 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
20812
20813         * loader.c: fixed off by one error in loaded parameter names.
20814
20815 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
20816
20817         * marshal.c (mono_marshal_get_icall_wrapper): like
20818         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
20819         instead of a MonoMethod.
20820
20821 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20822
20823         * decimal.c: fixed bug #36537.
20824
20825 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
20826
20827         * marshal.c: throw a missing method exception if a
20828         P/Invoke method is not found.
20829
20830 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
20831
20832         * icall.c: allow a null this for constructors.
20833
20834 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
20835
20836         * icall.c: raise the proper exceptions if the arguments to the
20837         internal Invoke are incorrect.
20838
20839 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
20840
20841         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
20842
20843 2003-01-03  Martin Baulig  <martin@ximian.com>
20844
20845         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20846
20847 2002-12-31  Martin Baulig  <martin@ximian.com>
20848
20849         * debug-mono-symfile.c: Completely rewrote the type section.
20850         Instead of using individual malloc()ed fields, we use one big
20851         continuous memory area and offsets into this area.
20852         See the comments in the source code for details.
20853
20854 2002-12-30  Martin Baulig  <martin@ximian.com>
20855
20856         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
20857
20858 2002-12-30  Martin Baulig  <martin@ximian.com>
20859
20860         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
20861         line number table in this data blob instead of using an external
20862         pointer.
20863
20864 2002-12-28  Martin Baulig  <martin@ximian.com>
20865
20866         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20867
20868 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
20869
20870         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
20871         as a boxed return type.
20872
20873 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
20874
20875         * appdomain.c
20876         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
20877         g_build_filename to properly get separators on the filename created.
20878
20879         * object.h: Small change, introduce MonoMarshalByRefObject to
20880         track the layout of that structure in the C# universe as we make
20881         changes there.
20882
20883 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
20884
20885         * object.c: removed assert to allow static fields on interfaces.
20886         * loader.c: a TypeSpec may be used for any type, not just arrays.
20887
20888 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20889
20890         * class.c, class.h: added mono_class_array_element_size ().
20891         Ignore static methods in interfaces.
20892
20893 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20894
20895         * threads.c: fixed the build under cygwin.
20896
20897 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
20898
20899         * reflection.c: handle nullref constants. Allocate keys for
20900         reflection handles with the GC.
20901
20902 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20903
20904         * threads.c, threads.h: added mono_thread_get_abort_signal()
20905         to get a suitable signal for thread abort.
20906
20907 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20908
20909         * metadata.c: fix handling of ExportedType table.
20910
20911 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20912
20913         * icall.c: added WriteWindowsDebugString internal call.
20914
20915 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20916
20917         * reflection.h: added fields to match C# implementation.
20918
20919 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20920
20921         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
20922
20923 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
20924
20925         * gc.h, gc-internal.h: Rename header for GC internal calls to
20926         gc-internal.h from gc.h as to not clash with Boehm GC having its
20927         header installed as <gc.h> in outside include paths.
20928         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
20929         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
20930
20931 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20932
20933         * icall.c: assign minor, build and revision in FillName.
20934
20935 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
20936
20937         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
20938         Added support for running code generated by Reflection.Emit.
20939
20940 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20941
20942         * appdomain.c: check for NULL argument in LoadFrom.
20943
20944 2002-12-10  Dick Porter  <dick@ximian.com>
20945
20946         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
20947
20948 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20949
20950         * appdomain.c: fix buglet when building exe file name.  Handle full
20951         assembly name (needed after latest changes to AssemblyName).
20952         * image.c:
20953         (mono_image_close): free some hashtables.
20954
20955 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
20956
20957         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
20958         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
20959         on some systems (redhat 7.3) 
20960
20961 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
20962
20963         * threads.c: delete the critical section of a sync block,
20964         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
20965
20966 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
20967
20968         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
20969
20970 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20971
20972         * appdomain.[ch]: handle the assembly preload event to try loading the
20973         assemblies using the paths we have in the current domain.
20974
20975         * assembly.[ch]: created an assembly preload hook that is called to try
20976         loading the assembly by other means that the ones provided here.
20977
20978         * domain.c: initialize the domain search path.
20979
20980         From now on, assemblies (TODO: except corlib and System) are loaded
20981         according to these rules when using mono_assembly_load ():
20982
20983                 1. It tries to load the assembly from the ApplicationBase
20984                 of the current domain appending .dll and .exe (TODO: have to
20985                 try loading from name/name.dll and name/name.exe).
20986
20987                 2. It tries the search path specified in PrivateBinPath for the
20988                 current domain (if any).
20989
20990                 3. Previous behavior.
20991
20992 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
20993
20994         * icall.c: implemented GetInterfaceMap() related icall.
20995         * domain.c, loader.h: load MethodInfo in mono_defaults.
20996
20997 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20998
20999         * gc.c: disable the finalizer thread for now, untill all the issues
21000         with it are resolved.
21001
21002 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21003
21004         * string-icalls.c: handle embedded nulls in string ctor when the
21005         length is specified.
21006
21007 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21008
21009         * class.c: look for explicit interface implementation in parent
21010         classes, too.
21011
21012 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
21013
21014         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
21015
21016 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21017
21018         * gc.c: protect handles with a critical section.
21019
21020 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21021
21022         * icall.c:
21023         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
21024         parameters. If no assembly specified, try getting the type from all
21025         the assemblies in the current domain, else, load the assembly and get
21026         the type from it.
21027
21028 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21029
21030         * marshal.c: applied patch from Aleksey Demakov that fixes
21031         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
21032
21033 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21034
21035         * icall.c: fixed get_location.
21036
21037 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
21038
21039         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
21040         declarations to make it work with older gcc. 
21041
21042         * loader.c (mono_get_method): set signature->pinvoke for native calls
21043
21044 2002-11-20  Dick Porter  <dick@ximian.com>
21045
21046         * threads.c (mono_thread_init): Set the main thread's handle
21047
21048 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21049
21050         * gc.c: allow compilation without GC support. Changed to match the
21051         mono coding style.
21052
21053 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21054
21055         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
21056
21057 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
21058
21059         * reflection.c: set a public key token on the core assemblies.
21060
21061 2002-11-18  Dick Porter  <dick@ximian.com>
21062
21063         * threads.c: Split out some thread initialisation so that other
21064         files can set the start callback function.
21065
21066         * gc.c: Run finalisers in a separate thread, to avoid stack
21067         overflow.  Fixes bug 31333.
21068
21069         * appdomain.c: Set up GC finalisation thread.
21070
21071         * reflection.c: 
21072         * object.c: 
21073         * domain.c: Use gc.h macros for GC_malloc
21074         
21075 2002-11-15  Dick Porter  <dick@ximian.com>
21076
21077         * threadpool.c: 
21078         * threads.c:
21079         * appdomain.c: Removed mono_runtime_init_with_attach(),
21080         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
21081         merging the extra parameter with the existing function.  Removed
21082         unneeded code in mono_thread_attach().
21083
21084 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
21085
21086         * image.c (mono_image_loaded_by_guid): a method to get loaded
21087         images by guid. 
21088         (load_metadata_ptrs): we store the guid as string.
21089
21090 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
21091
21092         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
21093
21094         * metadata.c (mono_guid_to_string): imported method form Zoltan
21095         Varga (slightly modified)
21096
21097         * assembly.c (mono_assembly_open): load precompiled code
21098
21099         * loader.h (MonoMethod): we store the method token for use in the
21100         aot compiler. 
21101
21102 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21103
21104         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
21105         the hook function called when an assembly is loaded.
21106         
21107         * domain.c: Modified file.
21108         (mono_domain_assembly_load): removed hash table insertion of assemblies.
21109
21110         Fixes bug #33196.
21111
21112 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
21113
21114         * reflection.c: Map PEFileKind to the value expected by the WinNT
21115         image loader. 
21116
21117 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21118
21119         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
21120         Read until the buffer is filled completely.
21121
21122 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21123
21124         * icall.c: implemented MonoType.InternalGetEvent ().
21125
21126 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21127
21128         * appdomain.c: implemented InitAppDomainSetup. Delayed
21129         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
21130         the entry_assembly.
21131
21132         * assembly.c: base_dir is now an absolute path ending with
21133         G_DIR_SEPARATOR.
21134
21135         * icall.c: modified get_location according to the above changes.
21136
21137         * object.c: init AppDomain.SetupInformation for the default domain after
21138         we have the entry assembly.
21139
21140         * domain.c: when unloading a domain, setup = NULL.
21141
21142 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
21143
21144         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
21145
21146 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
21147
21148         * object.h, object.c: introduced mono_object_get_virtual_method ()
21149         to lookup the method invoked on an object when a callvirt is done on
21150         a method.
21151         * icall.c: make MethodInfo::Invoke() always do a virtual call.
21152
21153 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21154
21155         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
21156         current domain when loaded an assembly and failed to load it.
21157
21158         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
21159
21160 2002-10-31  Dick Porter  <dick@ximian.com>
21161
21162         * icall.c: 
21163         * file-io.h: 
21164         * file-io.c: Return the error status in a parameter, as the
21165         GetLastError() value has long since been blown away if we try and
21166         look it up in a subsequent internal call invocation.  Delete the
21167         GetLastError() internal call, because it's useless.
21168
21169 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
21170
21171         * class.[ch]: added cast_class to fix bug 29517
21172
21173 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
21174
21175         * marshal.c: create valid IL code in the filter clause:
21176         the new JIT is less forgiving:-)
21177
21178 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21179
21180         * icall.c: removed get_property internal call.
21181
21182 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
21183
21184         * appdomain.h domain.c: Added an ID to appdomains.
21185         
21186         * threads.c threads.h icall.c: Implement icall
21187         Thread:GetDomainID(), and remove unused icall 
21188         CurrentThreadDomain_internal.
21189
21190 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21191
21192         * icall.c: Don't recurse through the base types in GetConstructor.
21193         Fixes bug #32063. 
21194
21195 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
21196
21197         * mempool.h, mempool.c: added mono_mempool_empty() and
21198         mono_mempool_stats().
21199
21200 2002-10-23  Dick Porter  <dick@ximian.com>
21201
21202         * file-io.c: 
21203         * file-io.h: 
21204         * icall.c: Added MonoIO.GetFileType internal call
21205
21206 2002-10-17  Dick Porter  <dick@ximian.com>
21207
21208         * appdomain.c (mono_runtime_cleanup): Don't signal the async
21209         delegate semaphore before waiting for all threads to finish,
21210         because new threads can also call async delegates.  Fixes bug
21211         32004.
21212
21213         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
21214         of 3 seconds, in case another async job is queued.  (This part is
21215         needed because the bug fix reintroduced the 3s exit lag.)  This
21216         makes the mono_runtime_shutdown flag superfluous.
21217
21218 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
21219
21220         * reflection.c: include ehader size in method section headers.
21221         Really check for suplicated modules entries.
21222
21223 2002-10-17  Martin Baulig  <martin@gnome.org>
21224
21225         * debug-mono-symfile.c: Added back support for locals.
21226
21227 2002-10-14  Martin Baulig  <martin@gnome.org>
21228
21229         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
21230         MONO_TYPE_VOID.
21231
21232 2002-10-14  Martin Baulig  <martin@gnome.org>
21233
21234         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
21235         mono_class_get() instead of looking in the class cache. 
21236
21237 2002-10-13  Martin Baulig  <martin@gnome.org>
21238
21239         * debug-mono-symfile.c: Set version number to 28, include the
21240         signature in method names.
21241
21242 2002-10-13  Martin Baulig  <martin@gnome.org>
21243
21244         * debug-mono-symfile.h: Set version number to 27.
21245
21246 2002-10-11  Martin Baulig  <martin@gnome.org>
21247
21248         * gc.c: Don't register/unregister NULL pointers as disappearing links.
21249
21250 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21251
21252         * metadata.c, metadata.h: added helper function to allocate signatures.
21253
21254 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21255
21256         * icall.c: added internal call to get the location of machine.config.
21257
21258 2002-10-08  Martin Baulig  <martin@gnome.org>
21259
21260         * debug-mono-symfile.c: Ignore classes with a pending init for the
21261         moment.
21262
21263 2002-10-03  Dick Porter  <dick@ximian.com>
21264
21265         * threads.c: Freebsd pthread_t is a pointer
21266
21267 2002-10-03  Dick Porter  <dick@ximian.com>
21268
21269         * socket-io.c: Implemented GetHostName_internal
21270
21271 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21272
21273         * mono-config.c:
21274         (mono_config_parse_file): don't leak the text.
21275
21276 2002-10-02  Martin Baulig  <martin@gnome.org>
21277
21278         * debug-mono-symfile.c: Added support for methods.
21279
21280 2002-10-01  Martin Baulig  <martin@gnome.org>
21281
21282         * debug-mono-symfile.c: Don't emit methods and line numbers for
21283         the dynamic symbol file, just write the type table.  We can easily
21284         have an external helper program which creates a symbol file for an
21285         IL file.        
21286
21287 2002-10-01  Dick Porter  <dick@ximian.com>
21288
21289         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
21290         Only add the handle to the cleanup array when we're about to
21291         launch the thread.  Bug 31425 deadlocked when the test was run on
21292         mono under w32.
21293
21294 2002-10-01  Martin Baulig  <martin@gnome.org>
21295
21296         * debug-mono-symfile.c: Added support for properties.
21297
21298 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21299
21300         * reflection.c: unaligned store fix from Mark Crichton
21301         <crichton@gimp.org>.
21302
21303 2002-09-27  Martin Baulig  <martin@gnome.org>
21304
21305         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
21306         New interncall.
21307
21308 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21309
21310         * assembly.h, assembly.c: use a sane API to hook into the assembly
21311         loading process instead of a useless special-purpouse hack
21312         (ngen needs a hook, too, for example).
21313
21314 2002-09-27  Dick Porter  <dick@ximian.com>
21315
21316         * threads.c (mono_thread_init): Call GetCurrentProcess() so
21317         io-layer can set up some process handle info.  Not needed on w32,
21318         but doesn't hurt either.
21319
21320         * process.c: Pass the program name in the second parameter to
21321         CreateProcess, so the path is searched.  Include the working
21322         directory. Implemented process name, process enumeration, and some
21323         process detail internal calls.
21324         
21325         * icall.c: Added internal calls for process lookup, and some
21326         process details
21327
21328 2002-09-26  Martin Baulig  <martin@gnome.org>
21329
21330         * assembly.c (mono_install_open_assembly_hook): New global
21331         function to install a function to be invoked each time a new
21332         assembly is loaded.
21333         (mono_assembly_open): Run this callback function if set.
21334
21335         * debug-mono-symfile.c: Put back line numbers for the dynamic
21336         symbol file and also record the .il file as source file.  This
21337         allows us to install the temporary symbol file as `file.dbg' just
21338         like a compiler-generated one.
21339
21340 2002-09-26  Nick Zigarovich <nick@chemlab.org>
21341
21342         * Corrected typo in gc.c (BOHEM vs BOEHM).
21343
21344 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21345
21346         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
21347         GetProperties. Also avoid calling g_slist_length in GetProperties and
21348         GetMethods.
21349
21350 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21351
21352         * reflection.c: avoid unaligned stores (bug spotted by
21353         Mark Crichton  <crichton@gimp.org>).
21354
21355 2002-09-25  Martin Baulig  <martin@gnome.org>
21356
21357         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
21358         instead of guint64 for addresses and added prologue/epilogue info.
21359
21360 2002-09-25  Martin Baulig  <martin@gnome.org>
21361
21362         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
21363         store line number info.  For the dynamic symbol file, we only need
21364         to provide the JIT generated dynamic line number info for the dynamic
21365         symbol file.
21366
21367 2002-09-25  Martin Baulig  <martin@gnome.org>
21368
21369         * debug-mono-symfile.h: Incremented version number.
21370
21371 2002-09-24  Martin Baulig  <martin@gnome.org>
21372
21373         * class.c (mono_debugger_class_init_func): New global function
21374         pointer variable.
21375         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
21376         call it.
21377
21378         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
21379         function.  This is called via the mono_debugger_class_init_func
21380         hook to add all types to the dynamic type table.
21381         (ves_icall_MonoDebugger_GetType): New interncall to get a class
21382         from its metadata token.
21383
21384         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
21385         New interncall for the debugger.
21386
21387 2002-09-24  Nick Drochak <ndrochak@gol.com>
21388
21389         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
21390         before using it in case it is null.
21391         
21392 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21393
21394         * metadata.c: allow custom modifiers in local var signatures
21395         (bug spotted by Zoltan Varga).
21396
21397 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21398
21399         * class.c: deal with the <Module> class that may have a NULL vtable.
21400         Eliminate warnings.
21401
21402 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21403
21404         * image.c, image.h: more strong name helpers.
21405         * monosn.c: more work: convert pem keys to cryptoapi format.
21406
21407 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
21408
21409         * string-icalls.c: speedup IndexOf.
21410
21411 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21412
21413         * icall.c: updates from Zoltan.2.Varga@nokia.com.
21414
21415 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21416
21417         * icall.c: cleanup: use mono_object_domain ().
21418
21419 2002-09-23  Martin Baulig  <martin@gnome.org>
21420
21421         * debug-mono-symfile.c: Improved type support.
21422
21423 2002-09-22  Martin Baulig  <martin@gnome.org>
21424
21425         * debug-mono-symfile.c: Added support for reference types and strings.
21426
21427 2002-09-22  Martin Baulig  <martin@gnome.org>
21428
21429         * debug-mono-symfile.c: Started to work on the type table.
21430
21431 2002-09-21  Martin Baulig  <martin@gnome.org>
21432
21433         * debug-mono-symfile.c: Largely reworked the symbol table format.
21434         The symbol table is now incrementally updated each time a new
21435         method is added.  We're now also using our own magic and version
21436         so that you don't need to recompile all your classes if the
21437         dynamic table changes.
21438         (mono_debug_update_mono_symbol_file): Removed.
21439         (mono_debug_symfile_add_method): New function to add a method.
21440
21441 2002-09-21  Martin Baulig  <martin@gnome.org>
21442
21443         * icall.c
21444         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
21445         New interncall.
21446
21447         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
21448         New interncall to get a method from its metadata token.
21449
21450 2002-09-21  Martin Baulig  <martin@gnome.org>
21451
21452         * debug-mono-symfile.c: Create type table.
21453
21454 2002-09-20  Martin Baulig  <martin@gnome.org>
21455
21456         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
21457
21458 2002-09-20  Martin Baulig  <martin@gnome.org>
21459
21460         * debug-mono-symfile.c: Provide information about params and locals.
21461
21462 2002-09-20  Martin Baulig  <martin@gnome.org>
21463
21464         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
21465         New interncall.
21466
21467         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
21468         interncall to get a method from its metadata token.
21469
21470 2002-09-20  Martin Baulig  <martin@gnome.org>
21471
21472         * debug-mono-symfile.c: Added a few checks for method->header
21473         being non-NULL.  This should never happen, but for the moment
21474         let's use a g_warning() rather than a g_assert().
21475
21476 2002-09-19  Mark Crichton  <crichton@gimp.org>
21477
21478         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
21479         even if support for it isn't present.  Added an #ifdef to fix this.
21480
21481         * socket-io.c: Added checks back for Solaris support.
21482
21483 2002-09-19  Martin Baulig  <martin@gnome.org>
21484
21485         * debug-mono-symfile.c (read_string, write_string): Reflect latest
21486         changes in the symbol file format.
21487
21488 2002-09-18  Martin Baulig  <martin@gnome.org>
21489
21490         * debug-mono-symfile.c: Set version number to 21.
21491
21492 2002-09-18  Dick Porter  <dick@ximian.com>
21493
21494         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
21495         on netbsd.  Fixes bug 30051.
21496
21497 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21498
21499         * reflection.c:
21500         (set_version_from_string): little fix.
21501
21502 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21503
21504         * monosn.c, Makefile.am: added strong name utility.
21505         * reflection.h, reflection.c: implemented delayed signing,
21506         locale, version and hash id assembly attributes.
21507
21508 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
21509
21510         * loader.c, metadata.c: load param attributes in signatures.
21511
21512 2002-09-16  Martin Baulig  <martin@gnome.org>
21513
21514         * debug-mono-symfile.c: Added string table with all method names.
21515
21516 2002-09-14  Martin Baulig  <martin@gnome.org>
21517
21518         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
21519         fast method lookup.
21520
21521 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21522
21523         * reflection.c: record the public key token of referenced assemblies.
21524
21525 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21526
21527         * image.c, image.h: added functions to get the strong name and the
21528         public key of an assembly.
21529         * pedump.c: use them.
21530
21531 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
21532
21533         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
21534
21535 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
21536
21537         * marshal.c (mono_marshal_get_managed_wrapper): Added
21538         MONO_TYPE_BOOLEAN 
21539
21540 2002-09-11  Martin Baulig  <martin@gnome.org>
21541
21542         * gc.c: Call GC_unregister_disappearing_link() on all links when
21543         finalizing them, this is necessary to aviod a crash in boehm's
21544         finalize handler.
21545
21546 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21547
21548         * gc.c: handle GetTarget for finalized objects spotted and fixed by
21549         nick@chemlab.org.
21550
21551 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
21552
21553         * icall.c: implemented MonoType::Module.
21554         * reflection.c, reflection.h: mono_module_get_object () from
21555         Tomi Pakarinen <tomi.pakarinen@welho.com>.
21556
21557 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21558
21559         * icall.c: ignore overridden methods in GetMethods ().
21560         Fix for FieldInfo::SetValue().
21561         * object.c: handle float/double in runtime invoke.
21562
21563 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21564
21565         * object.c: allow a constructor to be called again on an object.
21566
21567 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21568
21569         * class.h, class.c: move field layout code to it's own function and
21570         export it. Get an interface id earlier. Move fields in MonoClass
21571         so they are more cache friendly and align the bitfields.
21572         * loader.c: temporary handle get_param_names() for a runtime method.
21573         * reflection.c, reflection.h: more code to handle runtime creation of
21574         types.
21575
21576 2002-09-09  Martin Baulig  <martin@gnome.org>
21577
21578         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
21579         signature with the pinvoke field being set for the actual call.
21580
21581 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21582
21583         * icall.c: removed some unused icalls. Start of map of glib charsets
21584         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
21585
21586 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21587
21588         * debug-helpers.c: break infinite loop (found and fixed by
21589         Holger Arnold <harnold@gmx.de>).
21590
21591 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21592
21593         * icall.c: target may be null in create_delegate.
21594
21595 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21596
21597         * marshal.c: handle a boolean return type.
21598
21599 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21600
21601         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
21602
21603 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21604
21605         * gc.c: fix weakreferences.
21606
21607 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
21608
21609         * icall.c: added icall to get default codepage.
21610
21611 2002-09-03  Dick Porter  <dick@ximian.com>
21612
21613         * threads.h: 
21614         * threads.c: Use MonoThread instead of MonoObject where
21615         apropriate.
21616
21617         Store running thread objects in a hash table, so that we have all
21618         the info to hand when waiting for them to finish
21619         (means we don't need OpenThread() any more, so mingw builds should
21620         be fully functional again.)
21621
21622         * verify.c:
21623         * object.h: Added thread ID to MonoThread
21624
21625 2002-09-03  Martin Baulig  <martin@gnome.org>
21626
21627         * icall.c (System.Reflection.Assembly::get_location): New interncall.
21628
21629 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21630
21631         * icall.c: fixed leak in get_temp_path. Thanks lupus.
21632
21633 2002-09-03  Martin Baulig  <martin@gnome.org>
21634
21635         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
21636         argument to store the end address of the disassembled instruction.
21637
21638         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
21639         here from debug-symfile.h.
21640         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
21641         JIT into this struct.
21642         (MonoSymbolFile): Added `char *image_file' field.
21643         (MonoDebugGetMethodFunc): Removed.
21644         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
21645         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
21646         (mono_debug_find_method): New method.
21647
21648         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
21649         create a full symbol file.
21650         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
21651         and static symbol files.
21652         (mono_debug_find_method): The symbol file keeps an internal method hash,
21653         call this to get a MonoDebugMethodInfo from a MonoMethod.
21654
21655         * debug-symfile.[ch]: Removed.
21656
21657 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
21658
21659         * image.c (do_mono_image_open): Remove linker version check.
21660
21661 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
21662
21663         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
21664         wrappers for instance methods.
21665         
21666 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21667
21668         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
21669
21670 2002-08-28  Dick Porter  <dick@ximian.com>
21671
21672         * Makefile.am: Export HOST_CC for w32 builds
21673
21674 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21675
21676         * file-io.c process.c: MonoString are null terminated, no
21677         need for mono_string_to_utf16() anymore.
21678
21679 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21680
21681         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
21682
21683 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
21684
21685         * icall.c, reflection.h: speedup System.MonoType.
21686
21687 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21688
21689         * reflection.c: allow null as the value of a string argument in
21690         custom attributes constructors.
21691
21692 2002-08-27  Martin Baulig  <martin@gnome.org>
21693
21694         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
21695         `trampoline_address' field.
21696
21697 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
21698
21699         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
21700         check (fixes bug #29486) 
21701
21702 2002-08-27  Martin Baulig  <martin@gnome.org>
21703
21704         * debug-mono-symfile.c: Changed the file format in a way that allows us
21705         open it read-only and to use a specially malloced area for all the
21706         dynamic data.  We can now also generate a symbol file on-the-fly if we're
21707         debugging IL code and there is no MCS generated symbol file for it.
21708
21709 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21710
21711         * object.c: added a define for a good string and array
21712         creation speedup (not enabled by default because we need to deal with
21713         the synch stuff).
21714
21715 2002-08-26  Martin Baulig  <martin@gnome.org>
21716
21717         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
21718         function to create a dynamic symbol file.  This is used by the
21719         debugger to create a symbol file for IL code on-the-fly.
21720
21721 2002-08-26  Martin Baulig  <martin@gnome.org>
21722
21723         * loader.c (mono_lookup_pinvoke_call): Include the error message
21724         from g_module_error() in the error message.
21725
21726 2002-08-24  Martin Baulig  <martin@gnome.org>
21727
21728         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
21729         function to update the symbol file.  The symbol file is mmap()ed
21730         writable, but private.  This allows us to install the symbol file
21731         together with the assembly.
21732
21733 2002-08-24  Martin Baulig  <martin@gnome.org>
21734
21735         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
21736         but they can read the new symbol file format which mcs is now creating.
21737
21738         * debug-symfile.c (mono_debug_find_source_location): Moved to
21739         debug-mono-symfile.c; this is now operating on the new symbol file.
21740
21741 2002-08-23  Martin Baulig  <martin@gnome.org>
21742
21743         * debug-helpers.c (mono_method_desc_from_method): New function to get
21744         a MonoMethodDesc from a MonoMethod.
21745
21746 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21747
21748         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
21749         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
21750
21751 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
21752
21753         * string-icalls.[ch]: make helper methods static.
21754
21755 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21756
21757         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
21758         types to it and to SetValueInternal.
21759
21760         * object.c: Moved handle_enum label to its proper place. This was the
21761         f... bug! ;-)
21762
21763         This time i compiled mcs and gtk-sharp and they both work.
21764
21765 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21766
21767         * icall.c: reverted partially my previous patch until 
21768         object.c:set_value handles enums correcly.
21769
21770 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21771
21772         * icall.c:
21773         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
21774         (ves_icall_System_Environment_get_MachineName): removed warning when
21775         compiling under cygwin.
21776
21777 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21778
21779         * object.c: fixed field_get_value() for reference types.
21780
21781 2002-08-22  Dick Porter  <dick@ximian.com>
21782
21783         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
21784         Don't free a buffer while it's still needed.  Patch from Jonathan
21785         Liger <Jonathan.liger@wanadoo.fr>
21786
21787 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
21788
21789         * icall.c (ves_icall_System_Environment_get_Platform): Add new
21790         internal call.
21791
21792 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
21793
21794         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
21795         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
21796
21797         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
21798         we call unmanaged code which throws exceptions.
21799
21800 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21801
21802         * appdomain.h: added per-domain entry_assembly.
21803         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
21804         arguments.
21805         * icall.c: Assembly::GetEntryAssembly icall.
21806         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
21807         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
21808
21809 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21810
21811         * appdomain.h, gc.c: added mono_domain_finalize ().
21812
21813 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21814
21815         * object.c:
21816         (mono_print_unhandled_exception): changed g_warning by g_printerr
21817         because g_log has a 1024 characters limit (yeah, i got a big stack
21818         trace). Don't print exception name, that should be in ToString 
21819         returned string.
21820
21821 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21822
21823         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
21824         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
21825
21826 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21827
21828         * object.c:
21829         (mono_print_unhandled_exception): after previous commit, i realized
21830         that MS calls ToString on the exception. I changed this function to
21831         do that. This way we get stack_trace for free.
21832
21833 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21834
21835         * object.c:
21836         (mono_print_unhandled_exception): invoke Message property instead of
21837         getting 'message' field from Exception. Don't allocate memory for
21838         'trace' and 'message' if not needed.
21839
21840 2002-08-18  Dick Porter  <dick@ximian.com>
21841
21842         * unicode.c: Fix asserts to match Encoder.cs checks
21843
21844 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21845
21846         * marshal.c: fix unaligned store issue and a few wrong
21847         opcode argument types.
21848
21849 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21850
21851         * icall.c: added GetUninitializedObjectInternal internal call.
21852
21853 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
21854
21855         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
21856         to the right domain.
21857
21858 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
21859
21860         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
21861
21862         * class.c (class_compute_field_layout): set blittable to false for Strings
21863
21864         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
21865
21866 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21867
21868         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
21869         first chunk of code to create types at runtime. Code to
21870         handle ReflectedType/DeclaringType. Make reflection handles
21871         domain specific.
21872
21873 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
21874
21875         * class.c: set correct name in arrays.
21876
21877 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
21878
21879         * appdomain.c (mono_domain_transfer_object): make it work with
21880         valuetypes. bug fixes.
21881
21882 2002-08-12  Dick Porter  <dick@ximian.com>
21883
21884         * object.h: Rename some parameters to avoid c++ keywords (Patch
21885         from Joseph Wenninger <kde@jowenn.at>)
21886
21887 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
21888
21889         * icall.c: added icall to implement Assembly.GetFile*.
21890
21891 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21892
21893         * reflection.h, reflection.c: code to embed managed resources.
21894
21895 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21896
21897         * class.c: move all the type size stuff into
21898         class_compute_field_layout().
21899
21900 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21901
21902         * class.c: ensure enums have always the correct instance size.
21903         * unicode.c: remove wrong assert.
21904
21905 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21906
21907         * assembly.c: fix mem corruption issue.
21908         * image.h, image.c: added mono_image_get_resource () to access
21909         managed resources.
21910         * icall.c: implemented Assembly.EntryPoint property and some
21911         Managed Resources related internalcalls.
21912
21913
21914 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21915
21916         * image.c, image.h: impemented mono_image_get_entry_point ().
21917         * appdomain.c: use mono_image_get_entry_point.
21918
21919 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21920
21921         * reflection.c: support the object type argument when loading
21922         custom attributes.
21923
21924 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
21925
21926         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
21927         String as return type.
21928
21929 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
21930
21931         * reflection.c: fix encoding of named args for custom attrs to match
21932         the ms implementation. Read them back when instantiating custom
21933         attributes.
21934
21935 2002-08-02  Radek Doulik  <rodo@ximian.com>
21936
21937         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
21938         by Dietmar as quick fix
21939         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
21940         16 as stack size, used on more places as quick fix before Dietmar
21941         will fix it properly
21942
21943 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21944
21945         * object.h, object.c: added accessors for fields and properties.
21946
21947 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21948
21949         * class.c, class.h: made mono_class_get_field_from_name ()
21950         loop on parent types.
21951         Added mono_class_get_property_from_name ().
21952
21953 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21954
21955         * class.c, class.h: move the code to setup the type vtable in its own
21956         function so that it can be reused also for types created at runtime.
21957         Eliminate the "class" identifier from the header file.
21958         * reflection.c: setup the vtable for enums so that we can create
21959         objects for use in SetConstant ().
21960
21961 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
21962
21963         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
21964         instead of the delegate itself as this pointer (bug #28383)
21965
21966 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
21967
21968         * marshal.c (mono_marshal_get_managed_wrapper): added return type
21969         conversions.
21970
21971 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21972
21973         * loader.c: don't set the pinvoke bit on icalls.
21974
21975 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
21976
21977         * debug-helpers.c (mono_method_full_name): only print a number to
21978         indicate wrapper type (so that the output is more readable in traces).
21979
21980 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
21981
21982         * class.c (mono_class_init): include method override patch from Paolo
21983
21984 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
21985
21986         * icall.c: fixed GetTypeCode().
21987
21988 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
21989
21990         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
21991         use real delegate invoke function to make it work with multicast
21992         delegates (fix bug# 28291).
21993
21994 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21995
21996         * object.c: load constant strings.
21997
21998 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21999
22000         * reflection.c: no magic numbers.
22001         * tabledefs.h: security action enum.
22002
22003 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22004
22005         * assembly.c: fix possible memory corruption.
22006
22007 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22008
22009         * reflection.h, reflection.c: added support for linking resources.
22010         * verify.c: check we have an updated corlib.
22011
22012 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
22013
22014         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
22015         string arrays.
22016         (mono_marshal_string_array): null terminate unmanaged string arrays.
22017         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
22018
22019 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22020
22021         * icall.c: Type.GetType () can now return also types from the
22022         calling assembly.
22023
22024 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22025
22026         * loader.h, loader.c: stack walking support.
22027         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
22028         GetCallingAssembly.
22029
22030 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
22031
22032         * marshal.c: added optimisations for blittable types 
22033
22034         * class.c (mono_array_class_get): do not set blittable attribute on arrays
22035         (mono_class_setup_mono_type): set blittable attribute for single
22036         and double.
22037
22038         * marshal.c (mono_string_utf8_to_builder): impl.
22039         (mono_string_builder_to_utf8): impl.
22040         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
22041
22042 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
22043
22044         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
22045         (mono_marshal_get_managed_wrapper): impl. byref types
22046
22047 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22048
22049         * icall.c:
22050         (search_method): don't display debug message. 
22051
22052 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
22053
22054         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
22055
22056 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22057
22058         * appdomain.c: set the missing filename when throwing exception.
22059
22060 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
22061
22062         * metadata.c (mono_type_size): code cleanup
22063         (mono_type_stack_size): removed some test code
22064
22065 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
22066
22067         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
22068         mono_get_exception_file_not_found now.
22069
22070         * exception.c (mono_exception_from_name_two_strings): New version
22071         that will call a constructor with two string arguments. 
22072         (mono_get_exception_file_not_found): New helper routine, used to
22073         report file-not-found errors.
22074
22075 2002-07-20  Dick Porter  <dick@ximian.com>
22076
22077         * process.h:
22078         * process.c: Pass file handles to CreateProcess
22079         
22080         * icall.c:
22081         * file-io.h:
22082         * file-io.c: Implemented CreatePipe
22083
22084 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
22085
22086         * metadata.c (mono_get_param_info): set alignment for value types
22087
22088 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22089
22090         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
22091         Constify mono_domain_assembly_open().
22092         * loader.c: handle null namespace in icalls.
22093
22094 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
22095
22096         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
22097         (emit_str_to_ptr_conv): marshal object as structs
22098
22099         * metadata.c (mono_type_to_unmanaged): marshal object as structs
22100
22101         * marshal.c (mono_marshal_get_runtime_invoke): support value types
22102
22103 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
22104
22105         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
22106         (mono_marshal_get_native_wrapper): we an now return value types
22107
22108 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22109
22110         * verify.c: more checks implemented.
22111
22112 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
22113
22114         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
22115         (fix bug #27695)
22116         (mono_marshal_get_native_wrapper): allow byref arguments
22117         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
22118         impl. PtrToStringXXX methods
22119         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
22120         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
22121         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
22122         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
22123         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
22124
22125 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22126
22127         * reflection.c: fix buglet in parsing an assembly name.
22128
22129 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
22130
22131         * marshal.c (emit_ptr_to_str_conv): first impl.
22132
22133 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22134
22135         * object.c, class.h: cache the vtable in the class as suggested by
22136         vargaz@freemail.hu (Zoltan Varga).
22137
22138 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22139
22140         * class.h, loader.c: added mono_field_from_token().
22141         * verify.c: first cut of type checking code.
22142
22143 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
22144
22145         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
22146
22147 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
22148
22149         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
22150         (fix bug #27782)
22151         (mono_marshal_get_remoting_invoke): impl.
22152         (mono_delegate_begin_invoke): impl.
22153         (mono_mb_emit_save_args): impl.
22154         (mono_delegate_end_invoke): impl.
22155         (mono_marshal_get_delegate_begin_invoke):
22156         (mono_marshal_get_delegate_end_invoke):
22157         (mono_marshal_get_delegate_invoke): generate a special name for
22158         those methods (including the signature) and associate them whith
22159         the delegate class. 
22160
22161 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
22162
22163         * reflection.[ch]: 
22164         (mono_reflection_type_from_name): now it has a MonoImage parameter
22165         which is used as the default image to search the type in. If the image
22166         is NULL or getting the type from it fails, it defaults to corlib.
22167
22168         * icall.c: changed 1 call to mono_reflection_type_from_name to match
22169         new parameter.
22170
22171 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22172
22173         * reflection.c: update the parameter table index.
22174
22175 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22176
22177         * domain.c: don't include the mark byte in the string hash.
22178
22179 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22180
22181         * icall.cs: icall for Type.GetTypeCode ().
22182         * verify: a couple of fixes and disabled local initialization checks.
22183
22184 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
22185
22186         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
22187
22188         * debug-helpers.c (mono_method_full_name): print the type of the
22189         runtime wrapper
22190
22191         * metadata.c (mono_signature_hash): a hash function for signatures
22192         (mono_signature_hash): better hash algorithm
22193
22194         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
22195
22196         * debug-helpers.c (mono_method_full_name): this can now generate
22197         method names with signatures
22198
22199         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
22200         method dont have this pointers.
22201
22202 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22203
22204         * reflection.c: fixup typebuilder tokens.
22205         * image.c: fix buglet.
22206         * marshal.h: remove whitespace.
22207         * metadata.h, metadata.c: reinstate code that was removed.
22208         * verify.c: handle catch directives and fix another couple of bugs.
22209
22210 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
22211
22212         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
22213         (mono_marshal_get_native_wrapper): make it comp. with the old code
22214         (mono_marshal_get_native_wrapper): support boolean
22215         (mono_marshal_get_managed_wrapper): support more types
22216
22217 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
22218
22219         * class.c (class_compute_field_layout): compute class->blittable attribute.
22220
22221 2002-07-09  Dick Porter  <dick@ximian.com>
22222
22223         * threads.c: Make the thread cleaning up cope with threads that
22224         call ExitThread()
22225
22226 2002-07-08  Radek Doulik  <rodo@ximian.com>
22227
22228         * reflection.c (method_encode_code): use non-translated values to
22229         compute finally_start, this fixes exception handling on ppc, yay!
22230
22231         * decimal.h (struct signscale): fix endianess
22232
22233 2002-07-07  Radek Doulik  <rodo@ximian.com>
22234
22235         * reflection.c: swap box_val and not val
22236
22237 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22238
22239         * reflection.c, reflection.h: handle full assembly info in type name.
22240         Handle Type arguments when loading custom attributes.
22241         * icall.c: updated to use new mono_reflection_type_from_name () method.
22242
22243 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22244
22245         * loader.c:
22246         (method_from_memberref): also print assembly name when method not found.
22247
22248 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22249
22250         * icall.c:
22251         (ves_icall_TypeGetProperties): fixed bug #27473. 
22252
22253 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22254
22255         * reflection.c: display image name and token when cannot find the
22256         .ctor for an attribute.
22257
22258 2002-07-05  Martin Baulig  <martin@gnome.org>
22259
22260         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
22261
22262 2002-07-04  Dick Porter  <dick@ximian.com>
22263
22264         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
22265         compile on mingw.  This will cause mingw builds to not wait for
22266         subthreads to terminate after the main thread does.  I've lodged a
22267         bug with the mingw developers for them to wrap OpenThread().
22268
22269 2002-07-03  Dick Porter  <dick@ximian.com>
22270
22271         * threads.c: Store thread IDs instead of handles, because
22272         GetCurrentThread() returns a pseudohandle and therefore stores
22273         useless values.  mono_thread_cleanup() continues checking the
22274         array of threads until it is empty, to cope with subthreads
22275         spawning new threads after the main thread has finished.
22276
22277         * profiler.h:
22278         * profiler.c:
22279         * profiler-private.h: Pass the thread ID to thread profiler
22280         functions, instead of a handle
22281
22282 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22283
22284         * verify.c: fixes to make it more usable.
22285         * pedump.c: added --verify code to verify IL code in an assembly.
22286
22287 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22288
22289         * reflection.c: turn errors into warnings to allow compiling corlib.
22290
22291 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
22292
22293         * reflection.c: add special cases to compile corlib.
22294
22295 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22296
22297         * reflection.c: handle properties with only a set method.
22298
22299 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22300
22301         * opcodes.h: add enum with opcodes in opval order.
22302
22303 2002-07-01  Dick Porter  <dick@ximian.com>
22304         
22305         * object.h:
22306         * object.c (mono_runtime_run_main): Removed unneeded argument
22307
22308 2002-06-28  Martin Baulig  <martin@gnome.org>
22309
22310         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
22311
22312 2002-06-27  Dick Porter  <dick@ximian.com>
22313
22314         * threads.c: Store the handle in both the parent thread and in the
22315         subthread, to minimise the time between starting a new thread and
22316         storing its ID.
22317
22318 2002-06-26  Dick Porter  <dick@ximian.com>
22319
22320         * appdomain.c (mono_runtime_cleanup): Close the socket library
22321         after all the threads have finished, not before
22322
22323 2002-06-26  Martin Baulig  <martin@gnome.org>
22324
22325         * debug-symfile.c (mono_debug_find_source_location): Added
22326         `guint32 *line_number' argument.  If it's not NULL, store the line number
22327         there and return the file name without the line number.
22328
22329 2002-06-25  Dick Porter  <dick@ximian.com>
22330
22331         * icall.c:
22332         * process.h:
22333         * process.c: Process forking and other support functions
22334
22335 2002-06-25  Dick Porter  <dick@ximian.com>
22336
22337         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
22338         things dont happen when the image is closed.
22339         (mono_image_lookup_resource): Walk the resource section looking
22340         for a particular entry
22341
22342         * cil-coff.h: PE resource section decoding
22343
22344 2002-06-25  Dick Porter  <dick@ximian.com>
22345         
22346         * assembly.h:
22347         * assembly.c: 
22348         (mono_assembly_foreach): Accessor functions to walk the list of
22349         loaded assemblies
22350         (mono_assembly_set_main):
22351         (mono_assembly_get_main): Process methods need to know which
22352         assembly is the "main" one
22353
22354         * object.c (mono_runtime_run_main): Record the main assembly
22355
22356         * debug-helpers.c: Fix typo
22357
22358 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
22359
22360         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
22361         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
22362
22363 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22364
22365         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
22366
22367 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
22368
22369         * image.c (do_mono_image_open): Initialize reference count,
22370         otherwise we leak the MonoImage.
22371
22372 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22373
22374         * reflection.c: small tweak to handle self-hosting.
22375
22376 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22377
22378         * reflection.c: fix type name parse code.
22379
22380 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22381
22382         * reflection.c: break out of the loop.
22383         * image.c: special case corlib.
22384
22385 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22386
22387         * reflection.c: add all the custom attrs at the end to ensure the
22388         ctors have been properly initialized when the attributes are defined
22389         in the current assembly.
22390
22391 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22392
22393         * reflection.c: handle correctly multiple-nested types.
22394
22395 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
22396
22397         * row-indexes.h: fix typos.
22398         * reflection.c: adjust for typos and fix method_def_or_ref
22399         encoding in MethodImpl table.
22400
22401 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22402
22403         * reflection.c: fix entry point patching (thanks Serge!).
22404
22405 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
22406
22407         * verify.c: add check for System.Exception
22408
22409 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22410
22411         * image.c, class.c: minifix for code just c&p'ed.
22412         * reflection.c: warning fix.
22413         * object.h, loader.h, domain.c: load also StringBuilder.
22414
22415 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22416
22417         * marshal.h, marshal.c: some support code to handle complex marshaling.
22418
22419 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22420
22421         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
22422         Better signatures with vtable error dump.
22423
22424 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
22425
22426         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
22427
22428 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
22429
22430         * icall.c (ves_icall_Type_GetField): impl.
22431
22432 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22433
22434         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
22435         to retrieve a marshal description blob for a field or param.
22436
22437 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22438
22439         * reflection.h, reflection.c: change order of nested type emission
22440         to avoid table corruption. The NestedTypes table is sorted.
22441         * icall.c: change order of GetConstructor results to workaround mcs bug.
22442
22443 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22444
22445         * reflection.h, reflection.c: handle field and param marshal
22446         information.
22447
22448 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22449
22450         * icall.c, marshal.c marshal.h: more Marshal class implementation.
22451
22452 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22453
22454         * reflection.c: fix call convention.
22455
22456 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22457
22458         * reflection.h, reflection.c: mono_image_get_memberref_token()
22459         takes a type instead of a class, now. Added
22460         mono_image_get_array_token() to create tokens for the special
22461         multi-dim array methods.
22462
22463 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22464
22465         * assembly.c: handle modules (no assembly table). Split
22466         loading references in its own function.
22467         * class.c: handle moduleref resolution scope.
22468         * image.c, image.h: cache module name in image.
22469
22470 2002-06-07  Martin Baulig  <martin@gnome.org>
22471
22472         * reflection.c (mono_image_get_type_info): Only add a class layout entry
22473         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
22474
22475 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22476
22477         * icall.c: more signature fixes that used uint instead of int.
22478
22479 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22480
22481         * reflection.c: fixed signature of field refs.
22482
22483 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22484
22485         * class.c, reflection.c: handle typerefs of nested types
22486         (both on read and when writing files).
22487
22488 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
22489
22490         * icall.c: fix method signatures that tried to workaround the previous
22491         typo, d'oh!
22492
22493 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22494
22495         * debug-helpers.c: fix typo.
22496
22497 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22498
22499         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
22500         rewrote the PE/COFF writing code (our programs are understood by the
22501         ms runtime, now).
22502
22503 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22504
22505         * gc.c, gc.h, icall.c: weakreference support.
22506
22507 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22508
22509         * Makefile.am, mono-config.c: use $(sysconfdir).
22510
22511 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22512
22513         * icall.c: changed default precision of Double.ToString() to 15.
22514         Fixed memory leak. Unified with Single.ToString.
22515
22516 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
22517
22518         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
22519
22520 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22521
22522         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
22523         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
22524         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
22525         and myself.
22526
22527 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22528
22529         * debug-symfile.c, sysmath.c: yet more compilation fixes.
22530
22531 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22532
22533         * reflection.c, socket-io.c: more compilation fixes.
22534
22535 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22536
22537         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
22538         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
22539         unicode.c: warning and compiler compatibility fixes.
22540
22541 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22542
22543         * class.h, metadata.c: fixed warnings/compilation errors.
22544
22545 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22546
22547         * Makefile.am, mono-config.c, mono-config.h: configuration file
22548         support routines.
22549         * loader.c, loader.h: make Dll mapping configurable at runtime in the
22550         config file. Export methods to insert and lookup mappings.
22551
22552 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22553
22554         * reflection.c: handle types and boxed objects in custom attr
22555         constructors.
22556
22557 2002-05-30  Martin Baulig  <martin@gnome.org>
22558
22559         * debug-symfile.c
22560         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
22561
22562 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
22563
22564         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
22565         to lookup the implmap row for a P/Invoke method.
22566         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
22567         P/Invoke method from the runtime on an as needed basis.
22568
22569 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
22570
22571         * metadata.c (mono_metadata_parse_signature): impl.
22572
22573 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22574
22575         * class.c: handle .pack directive.
22576
22577 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22578
22579         * object.c: initialize static fields with RVA data.
22580
22581 2002-05-25  Martin Baulig  <martin@gnome.org>
22582
22583         * debug-symfile.c
22584         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
22585
22586 2002-05-24  Martin Baulig  <martin@gnome.org>
22587
22588         * debug-symfile.c
22589         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
22590         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
22591         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
22592
22593 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22594
22595         * object.c: special case string ctros in invoke.
22596         * gc.c: silly whitespace changes.
22597
22598 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
22599
22600         * threadpool.[ch]: impl. a threadpool that can
22601         be used by mint and mono.
22602
22603 2002-05-22  Martin Baulig  <martin@gnome.org>
22604
22605         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
22606         The first argument is now a `MonoReflectionModuleBuilder *', the return
22607         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
22608         `methods' field to get the method builder.  The `token' argument is the
22609         unfixed token.
22610
22611         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
22612         invalid characters instead of g_assert_not_reached()ing.  This seems
22613         to be the behaviour of mscorlib.
22614
22615 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
22616
22617         * object.c (mono_runtime_invoke_array): applied patch from Rachel
22618         Hestilow to fix bug #25104
22619
22620 2002-05-21  Martin Baulig  <martin@gnome.org>
22621
22622         * debug-symfile.c (mono_debug_find_source_location): New function.
22623         Looks up an IL offset in the line number table and returns the source
22624         location as a string.
22625
22626 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22627
22628         * icall.c:
22629         (mono_double_ToStringImpl): changed %f by %g until we have something
22630         better.
22631
22632 2002-05-21  Nick Drochak  <ndrochak@gol.com>
22633
22634         * icall.c : Use different name for Math.Pow's icall.  Needed to check
22635         parameters first in C#.
22636
22637 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22638
22639         * icall.c, reflection.h: added icall to get info about an event.
22640
22641 2002-05-20  Radek Doulik  <rodo@ximian.com>
22642
22643         * object.c (mono_value_box): don't use memcpy for boxing on BIG
22644         endian
22645         (mono_value_box): don't use memcpy for small sizes on
22646         architectures with unaligned access
22647
22648 2002-05-20  Martin Baulig  <martin@gnome.org>
22649
22650         * reflection.c (mono_reflection_setup_internal_class): Don't crash
22651         if `tb->parent == NULL'.
22652         (mono_reflection_create_internal_class): New function.  This is
22653         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
22654         for enum types.
22655
22656         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
22657         New interncall.
22658
22659 2002-05-19  Martin Baulig  <martin@gnome.org>
22660
22661         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
22662         argument to get the length, don't default to the array length.
22663
22664 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
22665
22666         * assembly.c (mono_assembly_setrootdir): New function used to
22667         override the MONO_ASSEMBLIES directory.
22668
22669 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22670
22671         * icall.c: ValueType_GetHashCode() initialize local var.
22672
22673 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22674
22675         * reflection.c: sort custom attributes table.
22676
22677 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22678
22679         * reflection.c: support named args in custom attributes (write support).
22680
22681 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22682
22683         * reflection.c: fix finally position calculation.
22684
22685 2002-05-15  Radek Doulik  <rodo@ximian.com>
22686
22687         * reflection.c: fixed endianess at many places
22688
22689         * icall.c (ves_icall_InitializeArray): comment out debug msg
22690
22691 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
22692
22693         * object.c (mono_unhandled_exception): new function to handle
22694         unhandled exceptions.
22695         (mono_unhandled_exception): call the UnhandledException event.
22696         (mono_runtime_delegate_invoke): impl.
22697
22698 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
22699
22700         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
22701         returns the RVA, not the direct pointer to the data. Handle the case
22702         when the class size is fixed.
22703
22704 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22705
22706         * reflection.c: fix some endianess issues.
22707
22708 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
22709
22710         * object.c (mono_runtime_invoke): is now able to catch exceptions.
22711
22712         * threads.c (mono_thread_init): added a callback which is invoked
22713         at thread start.
22714
22715 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
22716         
22717         * icall.c: make GetHashCode return non-negative values.
22718
22719 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
22720
22721         * object.c, icall.c, gc.c: revert to address-based hashcode.
22722
22723 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
22724
22725         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
22726
22727 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22728
22729         * icall.c, class.c: special case <Module>.
22730
22731 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
22732
22733         * icall.c: fix bug in GetNow().
22734
22735 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
22736
22737         * object.c (mono_runtime_class_init): make sure that we call all
22738         static class constructors.
22739
22740 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22741
22742         * reflection.c: sort methodsemantics table.
22743
22744 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22745
22746         * reflection.h, reflection.c: honour init locals setting.
22747
22748 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
22749
22750         * icall.c: copied Double ToStringImpl for Single ToStringImpl
22751
22752 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22753
22754         * reflection.c: support ContructorBuilders in attribute blob creation.
22755
22756 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22757
22758         * reflection.c: some changes to build a binary that can be run
22759         directly in windows.
22760
22761 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
22762
22763         * loader.c: print a big message when an icall can't be found.
22764
22765 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22766
22767         * string-icalls.c: fix bug 24248.
22768
22769 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
22770
22771         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
22772         icall.c, reflection.h: separate assembly loading by pathname and by
22773         assembly name. Use the MONO_PATH env var to search for assemblies.
22774
22775 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22776
22777         * assembly.c, image.h: add some support for assemblies
22778         with multiple modules.
22779         * class.c, class.h: export mono_class_from_typeref().
22780         * loader.c: remove duplicated code and use mono_class_from_typeref(),
22781         instead.
22782
22783 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22784
22785         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
22786         documentation says (the ECMA one is correct).
22787
22788 2002-05-02  Dick Porter  <dick@ximian.com>
22789
22790         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
22791         Don't name the synchronisation mutex.
22792
22793 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
22794
22795         * rand.c
22796         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
22797         Make the prototypes match.
22798         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
22799         Same.
22800
22801         * icall.c
22802         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
22803         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
22804         all systems have tm.tm_zone, so use strftime() with %Z to print
22805         the timezone abreviation into a temp string.
22806
22807         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
22808         rather than mono_array_addr() on a MonoString on Big Endian
22809         machines.
22810
22811 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
22812
22813         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
22814         fix bug 24041
22815
22816 2002-04-30  Dick Porter  <dick@ximian.com>
22817
22818         * socket-io.c: Cope with SOCKET being an integer rather than a
22819         pointer now.
22820
22821         * threads.c: Added Thread_free_internal, to deal with thread
22822         handle cleanup.  Moved calls to handle_store() and handle_remove()
22823         to start_wrapper(), so each can only be called once.  Allocate
22824         synchronisation blocks with GC_malloc(), and use GC finalisation
22825         to close the handles.
22826
22827         * icall.c: added System.Threading.Thread::Thread_free_internal
22828
22829 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22830
22831         * icall.c: support Environment.Exit, CommandLineArgs().
22832
22833 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22834
22835         * object.c, object.h: added mono_runtime_run_main () and
22836         mono_runtime_get_main_args () for use in System.Environment.
22837
22838 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22839
22840         * gc.c: fix thinko, enable actual finalization since the jit is now
22841         fixed.
22842
22843 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22844
22845         * gc.c, object.c: take into account that an object may be offset wrt the address
22846         returned by GC_malloc().
22847
22848 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
22849
22850         * image.c: handle files without entries in the assembly table (modules).
22851
22852 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
22853
22854         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
22855         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
22856         allowed to be null when it's System.Object class setup.
22857
22858 2002-04-27  Martin Baulig  <martin@gnome.org>
22859
22860         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
22861         if `tb->parent == NULL' rather than crashing.
22862
22863 2002-04-28  Nick Drochak  <ndrochak@gol.com>
22864
22865         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
22866         calling acos() where asin() should have been called.
22867
22868 2002-04-26  Martin Baulig  <martin@gnome.org>
22869
22870         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
22871         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
22872         there's a subdirectory called `System', but we don't want to read that
22873         subdirectory as an assembly.
22874
22875 2002-04-25  Martin Baulig  <martin@gnome.org>
22876
22877         * debug-symfile.c: Reflect latest MonoString changes.
22878
22879 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22880
22881         * rand.c, rand.h: instance method icalls need to have an explicit
22882         this pointer as first argument in the C implementation.
22883
22884 2002-04-25  Nick Drochak <ndrochak@gol.com>
22885
22886         * icall.c: Fix typo in map for GetNonZeroBytes
22887
22888 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22889
22890         * string-icalls.c : String does now passes unit tests without any 
22891         errors, the following changes has been made:
22892         
22893         Implemented replace methods.
22894         Renaming of methods to (try) follow the standard.
22895         Fixed compare ordinal
22896         Made all memory allocated directly to function instead of via icall function.
22897         Small performance fix in is_in_array function
22898                         
22899  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
22900
22901         c (mono_string_Internal_ctor_charp_int_int):
22902         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
22903         sindex < 0, throw ArgumentOutOfRangeException instead of
22904         ArgumentNullException.
22905
22906         Added new check for length == 0, however
22907         I need to make it return String.Empty from the C code.
22908         
22909         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
22910         that calculate the length for us here.
22911         
22912         (mono_string_Internal_ctor_sbytep_int_int): Replaced
22913         mono_string_new_utf16 with mono_string_new, since value is utf8.
22914
22915 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22916
22917         * object.c: register the object for finalization if needed.
22918         Allocate one more char in the string for the terminating 0 char.
22919
22920 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22921
22922         * class.c, class.h, image.c: check if a type implemenst a destructor.
22923         Use the proper key for array class lookups.
22924         * icall.c: register the icalls in the System.GC class.
22925         * gc.c, gc.h: GC-related functions and icalls.
22926
22927 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22928
22929         * icall.c:
22930         * socket-io.c:
22931         * unicode.c: free some strings gotten from mono_string_to_utf8 and
22932         changed a couple of free () by g_free ().
22933
22934         * decimal.c: one-liner in the comments for decimal2string ().
22935
22936 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22937
22938         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
22939
22940 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22941
22942         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
22943         * object.c (mono_runtime_invoke_array) : handle null in params
22944
22945 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22946
22947         * string-icalls.c: fixed bug in split (one off bug)
22948
22949 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22950
22951         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
22952         * icalls.c: added String::Equals as internal method
22953
22954 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22955
22956         * threads.c: fixed bug in the double interlocked functions
22957
22958 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
22959
22960         * threads.c: implemented all of the new interlocked icalls.
22961         * string-icalls.c: fix a bug in insert.
22962         * icalls.c: added the icalls for interlocked, removed old string functions.
22963         
22964 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
22965
22966         * loader.c: fix off-by-one error when reading argument names.
22967
22968 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22969
22970         * profiler.c: win32 counter implementation (untested).
22971         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
22972         (the latter needs testing and more complete impl. from win32 folks).
22973
22974 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
22975
22976         * object.c: mono_array_new_full workaround mono_array_class_get
22977         problem.
22978
22979 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22980
22981         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
22982         * object.h (mono_string_chars): Changed casting type.
22983
22984 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22985
22986         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
22987                            method signatures to use gunichar2 instead of gint16.
22988
22989 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
22990
22991         * object.h, object.c: domain-specific versions of mono_object_new and
22992         mono_array_new.
22993
22994 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
22995
22996         * object.c: changed String layout
22997
22998         * string-icalls.c (mono_string_Internal_ctor_chara): added
22999         internal string constructors.
23000
23001 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
23002
23003         * threads.c: pass 'this' to the thread start routine.
23004
23005 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23006
23007         * string-icalls.c: fix IndexOf and LastIndexOf. Now
23008         InternalCompareStr don't call twice mono_string_cmp_char for the last
23009         character. Improved performance in mono_string_cmp_char.
23010
23011 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23012
23013         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
23014         code into its own library: libmonoruntime.
23015
23016 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
23017
23018         * object.h, object.c: changed array format so that szarrays do not
23019         require a bounds structure.
23020         * icall.c, appdomain.c: support for new szarray format.
23021
23022 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
23023
23024         * metadata.c: compare also the retuns type when comparing signatures:
23025         we didn't do this as an optimization since really overloaded methods
23026         must differ also in the arguments, but this doesn't work with
23027         low-level IL code (or when using explicit conversion operators: see
23028         bug#23498 for an example).
23029
23030 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23031
23032         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
23033
23034 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23035
23036         * icall.c: make MonoType::GetElementType its own icall.
23037
23038 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23039
23040         * icall.c: remove MonoMethod_get_Name().
23041         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
23042         object.
23043
23044 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23045
23046         * string-icalls.c: optimized a few methods.
23047
23048 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23049
23050         * icall.c: added all new string internal calls
23051         * string-icalls.c: added, new string internal call implementation.
23052         * object.c: added mono_string_new_size for allocating a string a size
23053
23054 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
23055
23056         * object.c (mono_object_isinst): use the same code as in the
23057         optimized x86 version.
23058
23059 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23060
23061         * profiler.c: TSC-based timer code (faster and more accurate).
23062         Not hooked up in configure, yet (set USE_X86TSC to 1).
23063
23064 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
23065
23066         * profiler.c, profiler.h: track time spent compiling methods.
23067         * threads.c: track thread creation/destruction.
23068
23069 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
23070
23071         * profiler.c, profiler.h, profiler-private.h: profiling interface
23072         and sample implementation. Moved here so that it can be used also by
23073         the jit.
23074
23075 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
23076
23077         * reflection.c, reflection.h: keep types and other handles separate in
23078         the hash tables for referred tokens. Add guid for modules.
23079
23080 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
23081
23082         * assembly.c: fix bugs found with valgrind.
23083         * metadata.h, metadata.c: added mono_metadata_guid_heap().
23084
23085 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
23086
23087         * threads: added icall support for getting current domain for
23088                    the thread.
23089  
23090 2002-04-13  Martin Baulig  <martin@gnome.org>
23091
23092         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
23093         (MonoDebugVarInfo): Added `index' field for register based addresses.
23094         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
23095         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
23096         `MonoDebugVarInfo *params' and `guint32 this_offset' with
23097         `MonoDebugVarInfo *this_var'.
23098
23099         * debug-symfile.c (relocate_variable): New static function to write
23100         a location description for a local variable or method parameter.
23101
23102 2002-04-12  Martin Baulig  <martin@gnome.org>
23103
23104         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
23105         stack offset and begin/end scope address of a local variable.
23106         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
23107         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
23108         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
23109
23110         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
23111         Added new relocation types for start/end scope of a local variable.
23112
23113 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23114
23115         * object.h: add mono_object_domain() macro.
23116         * reflection.c: handle typespecs.
23117         * icall.c: MonoMethod::get_Name() implementation.
23118
23119 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23120
23121         * icall.c: String::GetHashCode() icall implementation.
23122
23123 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23124
23125         * icall.c: String::IndexOfAny icall.
23126         * object.c, object.h: make array->max_length more useful.
23127         Intrduced mono_object_class() and mono_string_length() macros.
23128
23129 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23130
23131         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
23132         instead of g_unichar_isdigit.
23133
23134 2002-04-11  Nick Drochak  <ndrochak@gol.com>
23135
23136         * icall.c: Implement a simple Double.ToString().
23137
23138 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23139
23140         * appdomain.h: only io-layer.h is supposed to be included.
23141         * icall.c: explicitly import environ. Fix warning.
23142
23143 2002-04-10  Nick Drochak  <ndrochak@gol.com>
23144
23145         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
23146                 return true even if it's not Daylight Savings time.
23147                 Only return false for the case where the function isn't
23148                 implemented for a plaform (read Windows).
23149
23150 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23151
23152         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
23153         data with a mutex.
23154
23155 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
23156
23157         * mempool.c (mono_mempool_alloc): only use g_malloc when
23158         absolutely necessary.
23159
23160 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
23161
23162         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
23163
23164         * class.c (mono_class_vtable): use domain mempool to allocate vtable
23165         (mono_class_proxy_vtable): use domain mempool
23166
23167 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23168
23169         * appdomain.h, appdomain.c: split initialization that requires the
23170         execution engine support into mono_runtime_init().
23171
23172 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
23173
23174         * class.c (mono_class_init): don't include vtable inside MonoClass
23175         to save some memory, gather some statistics.
23176         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
23177
23178 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23179
23180         * icall.c: internalcall implementation for ValueType.Equals().
23181
23182 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
23183
23184         * object.c (mono_message_init): moved 
23185         (mono_runtime_exec_main): new arch. independent impl.
23186         (mono_runtime_invoke_array): new method - like
23187         mono_runtime_invoke, but you can pass an array of objects.
23188         (mono_remoting_invoke): new arch. independent impl.
23189         (mono_message_invoke): new arch. independent impl.
23190         (mono_runtime_class_init): new arch. independent impl.
23191         (mono_runtime_object_init): new arch. independent impl.
23192
23193 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23194
23195         * metadata.c, object.c, reflection.c: documented the exported
23196         functions.
23197
23198 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
23199
23200         * icall.c: simpler code to pass the assembly builder data to corlib.
23201         Implement GetNestedTypes() internalcall.
23202
23203 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23204
23205         * class.c: warn if a type can't be loaded.
23206
23207 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
23208
23209         * image.h: typedef MonoImageOpenStatus
23210         * types.h: removed unused file
23211         
23212 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
23213
23214         * icall.c: Enum_ToObject accepts enum value arguments.
23215
23216 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23217
23218         * class.c: move initialization of properties, events and nested
23219         classes, so that they happen for interfaces, too.
23220
23221 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23222
23223         * icall.c: cleanup some ugly casts in Array_SetValue*.
23224
23225 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23226
23227         * icall.c: the values array fro enums is of the correct type, now.
23228         Implement (correctly) getFullName instead of assQualifiedName for
23229         MonoType.
23230         * reflection.h, reflection.c: added mono_type_get_name ().
23231
23232 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23233
23234         * assembly.c, image.h: for each MonoImage, record from wich assembly
23235         it was loaded.
23236         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
23237         Make Type.Assembly work.
23238
23239 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
23240
23241         * debug-symfile.h: use char* instead of gpointer to avoid
23242         unnecessary casts.
23243
23244         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
23245
23246         * icall.c (ves_icall_InternalExecute): impl. FielSetter
23247         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
23248
23249 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
23250
23251         * icall.c (mono_message_init): impl. (code cleanup)
23252         (ves_icall_InternalExecute): impl. FieldGetter
23253
23254         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
23255         defined we call all (non-static)methods through the vtable. 
23256
23257 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
23258
23259         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
23260         finalizer even though the memory is still referenced (and the chunk of
23261         memory is not freed).
23262
23263 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
23264
23265         * assembly.c: fix brokeness.
23266
23267 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
23268
23269         * class.c: kill some warnings. Check explicit interface method
23270         implementation also without considering the namespace.
23271         Load also literal strings in static class data.
23272
23273 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
23274
23275         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
23276         (default_assembly_name_resolver): Make the resolver take the
23277         "base" directory where the assembly was originally defined, so we
23278         can load DLLs that are in the same directory as the assembly that
23279         is being referenced.
23280
23281 2002-03-28  Dick Porter  <dick@ximian.com>
23282
23283         * file-io.h: 
23284         * file-io.c:
23285         * socket-io.c: 
23286         * unicode.h: 
23287         * unicode.c: Warning cleanups
23288
23289 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
23290
23291         * object.h, reflection.h: use the correct type instead of MonoObject.
23292
23293 2002-03-28  Martin Baulig  <martin@gnome.org>
23294
23295         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
23296         (mono_debug_update_symbol_file): Initialize classes if necessary.
23297
23298 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23299
23300         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
23301         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
23302
23303 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
23304
23305         * assembly.h: fix function prototype.
23306         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
23307         * mono-endian.h: use const cast.
23308
23309 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
23310
23311         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
23312
23313 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23314
23315         * loader.c: don't assert when a typeref can't be loaded, give
23316         a chance to the runtime to trow an exception instead.
23317         * loader.h: fix warning.
23318
23319 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
23320
23321         * class.c (mono_class_proxy_vtable): added proxy support
23322
23323 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
23324
23325         * icall.c: removed last of PAL calls, added System.Environment
23326         * file-io.h, file-io.c: MonoIO implementation
23327         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
23328
23329 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23330
23331         * appdomain.c: do not use the byte marker in ldstr table lookup.
23332         * debug-helpers.c: allow two ':' to separate class and method name.
23333         * object.c: allocate arrays bounds with the GC, too.
23334         * verify: add a few more checks.
23335
23336 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
23337
23338         * reflection.c: output also literal strings. Allocate parameter data
23339         with GC_malloc() (thanks, Martin, for catching this!).
23340
23341 2002-03-26  Martin Baulig  <martin@gnome.org>
23342
23343         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
23344         include the `this' offset in the `param_offsets'.
23345
23346 2002-03-25  Martin Baulig  <martin@gnome.org>
23347
23348         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
23349         mono_debug_get_class() function to get the classes. Added new
23350         relocation types for arrays and strings.
23351         (mono_debug_get_class): New static function to search in all
23352         referenced assemblies for a metadata token.
23353
23354         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
23355
23356 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
23357
23358         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
23359         hold gc-allocated objects. Make the string heap a stream like the
23360         others. Removed duplicated code when writing stream info.
23361         Added asserts to catch possible buffer overflows. Set the sorted map
23362         for tables that need sorting. Added some documentation.
23363
23364 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
23365
23366         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
23367         for interned strings and vtables.
23368
23369 2002-03-24  Martin Baulig  <martin@gnome.org>
23370
23371         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
23372         it in the array since it was created with g_slist_prepend().
23373
23374 2002-03-24  Martin Baulig  <martin@gnome.org>
23375
23376         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
23377         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
23378         (mono_debug_method_from_token): Renamed to
23379         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
23380         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
23381
23382         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
23383         relocation types.
23384
23385         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
23386
23387 2002-03-24  Martin Baulig  <martin@gnome.org>
23388
23389         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
23390         (mono_debug_method_from_token): New func.
23391
23392         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
23393         New interncall, calls mono_debug_local_type_from_signature().
23394         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
23395         calls mono_debug_method_from_token().
23396
23397 2002-03-23  Martin Baulig  <martin@gnome.org>
23398
23399         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
23400         specifies the number of bytes to be converted, not the array size.
23401         Return the number of chars, not the number of bytes.
23402         (ves_icall_iconv_get_chars): The `byteCount' argument
23403         specifies the number of bytes to be converted, not the array size.
23404
23405 2002-03-23  Martin Baulig  <martin@gnome.org>
23406
23407         * reflection.h (MonoReflectionSigHelper): New type.
23408
23409         * reflection.c (mono_reflection_sighelper_get_signature_local),
23410         (mono_reflection_sighelper_get_signature_local): New functions.
23411
23412         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
23413         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
23414         interncalls.
23415
23416 2002-03-23  Martin Baulig  <martin@gnome.org>
23417
23418         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
23419         is_writeable is set.
23420         (mono_raw_buffer_update): New function to write the modified map
23421         back to disk.
23422
23423         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
23424
23425         * debug-symfile.c (mono_debug_update_symbol_file): Call
23426         mono_raw_buffer_update() when done writing.
23427
23428 2002-03-23  Martin Baulig  <martin@gnome.org>
23429
23430         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
23431
23432         * debug-symfile.c: Added support for arguments and local variables.
23433
23434 2002-03-23  Dick Porter  <dick@ximian.com>
23435
23436         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
23437         protected by ifdefs, hence breaking the w32 build.
23438
23439 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23440
23441         * object.c: implement is_interned() the right way.
23442
23443 2002-03-21  Martin Baulig  <martin@gnome.org>
23444
23445         * debug-symfile.[ch]: New files to handle debugging information
23446         files. There's also support to dynamically update these symbol
23447         files to include machine dependent information.
23448
23449 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
23450
23451         * threads.c (mono_thread_create): new function to create thread
23452         from C
23453
23454 2002-03-20  Martin Baulig  <martin@gnome.org>
23455
23456         * icall.c (ves_icall_InternalInvoke): Create a new object if the
23457         method is a constructor.
23458         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
23459         points to ves_icall_InternalInvoke().
23460
23461 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
23462
23463         * file-io.c: Flush shouldn't throw exceptions.
23464
23465 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
23466
23467         * file-io.c: FileStream flush support; FileSetLength now
23468         restores file pointer.
23469
23470 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23471
23472         * class.c: set image for pointer classes.
23473
23474 2002/03/19  Nick Drochak <ndrochak@gol.com>
23475
23476         * sysmath.c: Forgot one.
23477
23478 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
23479
23480         * sysmath.c: Avoid redefining existing names.
23481
23482 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
23483
23484         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
23485         handled by runtime as icall rather than dllimport from libm.so
23486         * file-io.c, file-io.h: fixed handle argument type.
23487
23488 2002-03-18  Dick Porter  <dick@ximian.com>
23489
23490         * reflection.c (mono_image_get_type_info): rename interface to
23491         iface, because of "#define interface struct" on windows.
23492
23493 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
23494
23495         * class.c, class.h: rename and export mono_ptr_class_get().
23496         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
23497         * reflection.c, reflection.h, icall.c: better/saner type name
23498         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
23499         method signatures.
23500
23501 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
23502
23503         * class.c (mono_class_init): removed hardcoded GHC_SLOT
23504
23505         * icall.c (ves_icall_InternalInvoke): impl.
23506
23507 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23508
23509         * reflection.c: output the interface map table, too.
23510
23511 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
23512
23513         * class.c (class_compute_field_layout): separate computation of 
23514         static field layout
23515
23516 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
23517
23518         * icall.c: added System.Buffer support.
23519         * file-io.c: moved file icalls from PAL to FileStream.
23520
23521 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
23522
23523         * icall.c (ves_icall_System_Object_GetHashCode): impl.
23524
23525 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
23526
23527         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
23528
23529 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23530
23531         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
23532
23533 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
23534
23535         * debug-helpers.{c,h}: moved here from monograph some useful functions
23536         to locate a method by name/signature in a class or image. Included
23537         also a small and flexible IL disassembler.
23538
23539 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23540
23541         * reflection.c: fixup tokens in methods with small header size, too.
23542
23543 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
23544
23545         * object.c (mono_string_to_utf8): remove assert(!error), instead
23546         print a warning. 
23547
23548 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
23549
23550         * icall.c: update to the new mono_Array_class_get interface.
23551
23552 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23553
23554         * appdomain.c, object.c: Boehm-GC enable.
23555         * icall.c: make get_data_chunk() support split data requests.
23556         Ensure a class is initialized in more cases. Return only the first
23557         property found in GetProperties() or the compiler gets confused. 
23558         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
23559         * reflection.h, reflection.c: add fixup mechanism for field and method
23560         tokens. Initialize assembly->typeref in a single place. Output
23561         properties after events. Support custom attributes for events, too.
23562         Typo fix for paramter custom attrs.
23563
23564 2002-03-07  Martin Baulig  <martin@gnome.org>
23565
23566         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
23567
23568 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
23569
23570         * class.c (mono_array_class_get): fix. for multi. dim. arrays
23571
23572 2002-03-06  Martin Baulig  <martin@gnome.org>
23573
23574         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
23575         non-zero lower bounds. See testcases #F10-#F13.
23576
23577 2002-03-05  Martin Baulig  <martin@gnome.org>
23578
23579         * exception.c (mono_get_exception_argument_out_of_range): New exception.
23580
23581         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
23582         ves_icall_System_Array_GetValue(), only calculate the absolute array position
23583         here.
23584         (ves_icall_System_Array_SetValue): Likewise.
23585         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
23586         as argument and does the actual work. This function is used when copying a
23587         multi-dimensional array.
23588         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
23589         now do all the widening conversions of value types.
23590         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
23591
23592 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23593
23594         * class.c: remove some magic numbers and use the smbolic names,
23595         instead. Added init_events() to load event info at class init time.
23596         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
23597         and mono_metadata_methods_from_event().
23598         * reflection.h, reflection.c: added support for writing out the evnets
23599         related information.
23600
23601 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23602
23603         * reflection.h, icall.c: use a different method (GetInterfaces)
23604         to gather interface info and add isbyref, isprimitive and
23605         ispointer to the ves_icall_get_type_info() return value.
23606
23607 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23608
23609         * class.h: stared adding support for events.
23610         * icall.c: split find_members implementation. Added debug icall to get
23611         the address of an object.
23612         * reflection.c: handle TypeBuilders in mono_type_get_object().
23613
23614 2002-03-01  Martin Baulig  <martin@gnome.org>
23615
23616         * icall.c (ves_icall_System_Array_GetLength): This must throw an
23617         ArgumentOutOfRangeException(), not an ArgumentException().
23618         (ves_icall_System_Array_GetLowerBound): Likewise.
23619         (ves_icall_System_Array_GetValue): Improved argument checking.
23620         (ves_icall_System_Array_SetValue): Improved argument checking.
23621
23622 2002-03-01  Martin Baulig  <martin@gnome.org>
23623
23624         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
23625         called with invalid arguments rather than just dying with g_assert().
23626         (ves_icall_System_Array_SetValue): Likewise.
23627         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
23628         raise a NotImplementedException instead.
23629         (ves_icall_System_Array_GetLength): Added argument checking.
23630         (ves_icall_System_Array_GetLowerBound): Added argument checking.
23631
23632 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
23633
23634         * object.h (mono_assert): new macros mono_assert and
23635         mono_assert_not_reached
23636
23637 2002-02-28  Martin Baulig  <martin@gnome.org>
23638
23639         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
23640         and "System::String::IsInterned" to "System::String::_IsInterned".
23641
23642 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
23643
23644         * icall.c: remove hacks for typebuilder. Added icall to create a
23645         modified type from a tybebuilder.
23646         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
23647         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
23648         to create a backing MonoClass for a TypeBuilder.
23649
23650 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23651
23652         * class.c, class.h: more refactoring of class init.
23653         Export mono_class_setup_mono_type() and mono_class_setup_parent().
23654
23655 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
23656
23657         * marshal.c, marshal.h: start of marshaling interface.
23658
23659 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
23660
23661         * icall.c: fix order in assembly qualified name icall.
23662
23663 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
23664
23665         * class.c: do not free str, since we store it in the hash table.
23666         * reflection.h: add label field to MonoILExceptionInfo.
23667         * reflection.c: handle references to more than one assembly. Handle
23668         case when there isn't a module created in the assembly.
23669
23670 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23671
23672         * class.c: Fix typo. Start refactoring of class init code.
23673
23674 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23675
23676         * appdomain.c: exit with 1 on error.
23677         * class.c: we already have the name in MonoClassField.
23678         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
23679         MonoStreamHeader instead of an offset of image->raw_metadata.
23680
23681 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
23682
23683         * appdomain.c (mono_init): Be even more descriptive about the error.
23684
23685 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
23686
23687         * appdomain.c: give the user an informative message when corlib can't
23688         be loaded.
23689
23690 2002-02-26  Martin Baulig  <martin@gnome.org>
23691
23692         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
23693         New icall to get the time zone data.
23694
23695 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23696
23697         * reflection.c: set virtual and raw size of section correctly.
23698         * threads.c: transfer domain information to newly created threads.
23699
23700 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
23701
23702         * class.c: when instancing a class in a domain, load the default
23703         vaules for static fields from the constant table. Fix System.Enum to
23704         not be an enum.
23705         * icall.c: implement Object::GetType() internalcall. Implemented
23706         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
23707         Fixed checking of binding flags in find_members().
23708         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
23709         * reflection.c: handle enumerations when writing to the constant
23710         table. Use a different object cache for types.
23711
23712
23713 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
23714
23715         * object.c (mono_object_isinst): fix for arrays
23716
23717         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
23718
23719 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
23720
23721         * object.c: don't use mprotect ()  and fix intern pool hash table
23722         lookup for big endian systems.
23723
23724 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23725
23726         * icall.c: change type_is_subtype_of () signature.
23727
23728 2002-02-21  Mark Crichton  <crichton@gimp.org>
23729
23730         * rand.c, rand.h: Added random number generator for
23731         System.Security.Cryptography classes.
23732
23733         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
23734
23735         * icall.c: Added System.Security.Cryptography calls.
23736
23737 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
23738
23739         * class.c, icall.c, metadata.c: better support for pointer types.
23740         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
23741         * reflection.c: Add support for getting custom attrs for properties
23742         and simplify some code.
23743
23744 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23745
23746         * icall.c: change getToken () and add custom attribute GetBlob()helper
23747         method.
23748         * reflection.h: add custom attrs array to the reflection builder structures.
23749         * reflection.c: encode and emit custom attributes for all the relevant
23750         reflection objects. Cache fieldref and methodref tokens. Change
23751         mono_image_create_token() interface to take a MonoDynamicAssembly.
23752         More complete custom attributes decoder. Load custom attributes for
23753         Assembly, Field, Method and Constructor objects, too. Make the
23754         returned array an Attribute[] one, not object[]. Added
23755         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
23756         custom attribute constructor.
23757
23758 2002-02-20  Dick Porter  <dick@ximian.com>
23759
23760         * icall.c:
23761         * rawbuffer.c:
23762         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
23763         problem code out for now).
23764
23765 2002-02-19  Radek Doulik  <rodo@ximian.com>
23766
23767         * object.c (mono_ldstr): use hash table to avoid multiple swapping
23768
23769 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
23770
23771         * icall.c: register the GetCustomAttributes method.
23772         * object.c, object.h: add mono_string_new_len ().
23773         * reflection.h, reflection.c: added mono_runtime_invoke(),
23774         mono_install_runtime_invoke(). Added
23775         mono_reflection_get_custom_attrs () to load custom attributes and
23776         create the attribute objects.
23777
23778 2002-02-19  Dick Porter  <dick@ximian.com>
23779         * threads-dummy-types.c:
23780         * threads-dummy-types.h:
23781         * threads-dummy.c:
23782         * threads-dummy.h:
23783         * threads-pthread-types.c:
23784         * threads-pthread-types.h:
23785         * threads-pthread.c:
23786         * threads-pthread.h:  Deleted obsolete files
23787
23788 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
23789
23790         * class.c (mono_class_vtable): runtime init the class when we
23791         allocate static class data.
23792
23793         * icall.c (ves_icall_System_Array_SetValue): check for null values.
23794
23795         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
23796         and String - but we will need generic marshalling support in the
23797         future. 
23798         (mono_init): set the domain name in a ms compatible way
23799
23800         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
23801         String[].
23802
23803 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
23804
23805         * object.c (mono_array_clone): use alloca() instead of g_malloc  
23806         for sizes
23807
23808         * appdomain.c (mono_domain_unload): impl.
23809
23810 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
23811
23812         * appdomain.c, object.c: fix intern pool implementation.
23813         * class.c: fix alignment code.
23814
23815 2002-02-16  Radek Doulik  <rodo@ximian.com>
23816
23817         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
23818         and s2 > s1, just copy lower bytes to be compatible with little
23819         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
23820         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
23821
23822         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
23823         force big_endian to be 1 for big endian machines 
23824         (ves_icall_iconv_new_decoder): ditto
23825
23826 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
23827
23828         * socket-io.c (convert_sockopt_level_and_name): If the system
23829         doesn't define SOL_IP or SOL_TCP, get them by hand using
23830         getprotobyname() and caching the values (because this could be a
23831         slow operation).
23832         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
23833         Use the appropriate struct when the system does support it. Ie,
23834         not all systems have struct ip_mreqn so use struct ip_mreq when
23835         appropriate.
23836
23837 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
23838
23839         * reflection.c: handle finally clauses.
23840
23841 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
23842
23843         * socket-io.c: use g_snprintf() instead of snprintf.
23844
23845 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
23846
23847         * reflection.c (mono_param_get_objects): Cast second argument to
23848         mono_method_get_param_names to a const char** to silence the
23849         compiler warning.
23850
23851         * appdomain.c (mono_domain_assembly_open): Put parens around the
23852         truth statement in the for-loop.
23853
23854         * unicode.c (iconv_convert): Got rid of a compiler warning about
23855         int i being unused when the system has a new iconv.
23856         (iconv_get_length): Same.
23857
23858         * image.c (load_class_names): Cast the second argument to
23859         g_hash_table_insert() to char* to hush compiler warnings about the
23860         arg being a const.
23861         (mono_image_open): Same here.
23862
23863         * socket-io.c: Don't conditionally include sys/filio.h or
23864         sys/sockio.h here anymore since we now get them from
23865         io-layer/io-layer.h
23866         (inet_pton): If the system doesn't support inet_aton, implement
23867         using inet_addr and also #define INADDR_NONE if it isn't defined
23868         by the system.
23869
23870 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
23871
23872         * metadata.c, metadata.h: added function to get packing and size info
23873         of a typedef.
23874         * reflection.h, reflection.c: handle field RVA data. Save info about
23875         the table layout if needed. Assign typedef indexes to all the types
23876         before dumping the info about them to avoid forward reference problems.
23877
23878 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
23879
23880         * socket-io.c (convert_sockopt_level_and_name): ifdef
23881         SO_ACCEPTCONN because it is not defined on my system (old debian)
23882
23883 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23884
23885         * opcode.c: use stddef.h to get NULL.
23886
23887 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
23888
23889         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
23890         for FIONBIO, FIONREAD and SIOCATMARK.
23891         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
23892         define INADDR_NONE and besides, inet_addr() is deprecated and
23893         should not be used. Use inet_pton() instead - it also has the
23894         added bonus that it can easily handle IPv6 addresses as well.
23895         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
23896
23897 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23898
23899         * decimal.c: remove _MSC_VER conditional.
23900
23901 2002-02-13  Dick Porter  <dick@ximian.com>
23902
23903         * socket-io.c: 
23904         * icall.c: Internal calls for Blocking, Select, Shutdown,
23905         GetSocketOption and SetSocketOption
23906
23907 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23908
23909         * assembly.cs: better resolver: use it instead of some kludgy
23910         code.
23911
23912 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
23913
23914         * reflection.c: the best way to speed-up the compiler is to avoid
23915         infinite loops.
23916
23917 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
23918
23919         * class.c (mono_class_vtable): changed the object layout
23920         (obj->vtable->class). 
23921         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
23922
23923 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23924
23925         * assembly.c: look for assemblies in the assembly dir, too.
23926
23927 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23928
23929         * class.c: fix thinko in mono_class_from_type().
23930
23931 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23932
23933         * exception.h, exception.c: added TypeLoadException.
23934         * object.h, object.c: added mono_array_clone ().
23935         * icall.c: handle throwOnError in AssemblyGetType().
23936         Added Array.Clone().
23937         * opcode.h, opcode.c: use a single value for the opcode val.
23938         Compile fix for non-gcc compilers.
23939
23940 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
23941
23942         * opcodes.c, opcodes.h: export interesting info about opcodes.
23943
23944 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
23945
23946         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
23947         icalls. 
23948
23949         * class.c (class_compute_field_layout): set element_class for enums
23950         (mono_class_create_from_typedef): set element_class for normal classes
23951
23952         * icall.c (ves_icall_System_Enum_get_value): impl.
23953
23954         * class.c (mono_class_create_from_typedef): do not set valuetype
23955         flag for System.ValueType and System.Enum
23956
23957 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
23958
23959         * unicode.c (iconv_convert): fix big endian problem.
23960
23961 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
23962
23963         * class.c: add asserts if we are ever going to scribble over memory.
23964         * socket-io.c: not all systems have AF_IRDA defined.
23965
23966 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
23967
23968         * class.c (class_compute_field_layout): do not consider static
23969         fields to compute alignment
23970
23971 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
23972
23973         * appdomain.c (mono_appdomain_get): impl.
23974         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
23975
23976 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
23977
23978         * icall.c: ignore "file://" prefix when loading an assembly.
23979
23980 2002-01-23  Dick Porter  <dick@ximian.com>
23981
23982         * socket-io.c:
23983         * icall.c:
23984         * Makefile.am: Added socket support
23985
23986 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
23987
23988         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
23989         code back.  This should return the assemblies that are loaded by
23990         the runtime on behalf of an application domain. 
23991
23992         The current implementation is still broken, it just returns every
23993         assembly loaded, but until we get real applications domain this
23994         will do.
23995
23996 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
23997
23998         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
23999         AppDomain object.
24000
24001 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
24002
24003         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
24004         the mono_class_from_name lookup.
24005         (ves_icall_get_parameter_info): ditto.
24006         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
24007         method.
24008         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
24009
24010 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
24011
24012         * class.c: load also nested classes on class init.
24013         System.ValueType instance methods gets passed boxed
24014         values, unless methods in derived classed that get a pointer to the
24015         data.
24016         * icall.c: use better name parsing code in GetType().
24017         * image.c, image.h: add mono_image_loaded ().
24018         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
24019         * reflection.c, reflection.h: added mono_reflection_parse_type().
24020
24021 2002-01-22  Veronica De Santis <veron78@interfree.it>
24022
24023         * icall.c : Added mapping of internal calls for Manual and Auto reset events
24024         * threads.c : Added the implementation of internal calls for events
24025         * threads.h : Added prototypes of internal calls for events
24026         
24027 2002-01-21  Radek Doulik  <rodo@ximian.com>
24028
24029         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
24030
24031 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
24032
24033         * class.c (mono_class_init): set min_align to 1 (instead of 0)
24034         (mono_class_value_size): use min_align
24035
24036 2002-01-20  Dick Porter  <dick@ximian.com>
24037
24038         * threads.h:
24039         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
24040         so it compiles on w32.
24041
24042 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
24043
24044         * metadata.c (mono_type_stack_size): impl.
24045
24046         * class.c (mono_class_get_field): impl. memberref token
24047
24048 2002-01-16 Veronica De Santis <veron78@@interfree.it>
24049
24050         * icall.h : Added the internal calls mapping for CreateMutex_internal
24051                     and ReleaseMutex_internal.
24052         * threads.h : Added the prototype of mutexes internal calls.
24053         * threads.c : Added the implementations of mutexes internal calls.
24054
24055 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
24056
24057         * metaparse.h: removed unused file.
24058         * reflection.c, reflection.h: added stream_data_align () function 
24059         to align data in streams and keep stream aligned. Add support for
24060         exception support in method headers.
24061
24062 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
24063
24064         * unicode.c: make iconv_convert () return the number of bytess written
24065         in the output buffer.
24066
24067 2002-01-15  Dick Porter  <dick@ximian.com>
24068         * threads.c: Make the runtime's idea of infinite timeouts coincide
24069         with the class library's
24070
24071         Fix a particularly egregious bug in mono_thread_cleanup(). That
24072         code was so utterly bogus it must have been written on a Monday.
24073
24074 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
24075
24076         * reflection.h: add subtypes field to TypeBuilder.
24077         * reflection.c: encode constants for literal fields.
24078         Handle subtypes. Fix user string token (and add a zero byte)
24079         at the end.
24080         
24081 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
24082
24083         * class.c (mono_class_init): bug fix: assign slot numbers for
24084         abstract methods.
24085
24086 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24087
24088         * reflection.c: don't try to output a code RVA for abstract methods.
24089         Small fixes for method header format. Output parameter info to the
24090         ParamDef table. Save method overriding info to MethodImpl table.
24091         Fix property support. Allow typedef.extends to be a type in the
24092         building assembly.
24093         * verify.c: fix off-by-one error.
24094
24095 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
24096
24097         * class.c: fix mono_class_from_mono_type () for szarray types.
24098         Remove unused cache check in mono_class_from_type_spec().
24099         * icall.c: *type_from_name () functions handle simple arrays and byref.
24100         * reflection.c: handle byref and szarray types. Handle methods without
24101         body (gets P/Invoke compilation working). Handle types and fields in
24102         get_token ().
24103         * reflection.h: add rank to MonoTypeInfo.
24104
24105 2002-01-10  Dick Porter  <dick@ximian.com>
24106
24107         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
24108         internal calls
24109
24110 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
24111
24112         * icall.c: initialize class in type_from_handle ().
24113         Loop also in parent classes for get_method ().
24114         * reflection.c: properly encode class and valuetype types.
24115         Start on encoding TypeBuilder types. Handle fieldrefs.
24116         Use correct length when registering a user string.
24117         Handle ConstructorBuilder and MonoMethod in get_token ().
24118         Make mono_type_get_object () aware of cached types.
24119         * object.c: back out change to mono_string_new ().
24120
24121 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
24122         * object.c: mono_string_new should return a NULL when the string 
24123         passed in is NULL -- not try to deference it.
24124         
24125 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
24126
24127         * icall.c: hack to make IsSubType work for TypeBuilders.
24128         * reflection.c: emit constructors before methods.
24129         Retrieve param names in mono_param_get_objects().
24130
24131 2002/01/05  Nick Drochak  <ndrochak@gol.com>
24132
24133         * Makefile.am: fix list of headers and sources so automake 1.5
24134         doesn't complain. Removed \# at end of list.
24135
24136 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
24137
24138         * reflection.c: get token for a method ref. Set return type of
24139         constructor to void.
24140         * loader.c: debug message.
24141         * class.c: typo fix.
24142
24143 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
24144
24145         * icall.c: fix array init with rank > 1. FindMembers
24146         loops in parent class as well.
24147         * image.c: do not insert nested types in name cache.
24148         * reflection.c: warning fix.
24149         * reflection.h: add override method (for interface impl).
24150
24151 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
24152
24153         * metadata.c: fix customattr decoding.
24154
24155 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
24156
24157         * rawbuffer.cs: Added native Win32 implementation, avoids using
24158         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
24159
24160 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
24161
24162         * class.c: make the low-level routines handle the cache.
24163
24164 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
24165
24166         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
24167
24168 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
24169
24170         * class.c: fix mono_array_element_size() for objects.
24171         * class.h, class.c: add properties to MonoClass and load them
24172         at init time.
24173         * icall.c: check with isinst() when assigning a value to an array
24174         instead of requiring the classes to match exactly.
24175         Implemented icall for System.Type::GetType().
24176         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
24177         enums. Handle bindingflags when looking for methods and fields.
24178         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
24179         and mono_metadata_methods_from_property().
24180         * reflection.h, reflection.c: added structures for propreties,
24181         parameters and enums. Implemented mono_property_get_object() and
24182         mono_param_get_objects().
24183
24184 2001-12-18  Dick Porter  <dick@ximian.com>
24185
24186         * file-io.c: Use mono_string_to_utf16() instead of
24187         mono_string_chars()
24188
24189         * object.c: Added mono_string_to_utf16(), which copies the non
24190         NULL-terminated MonoString into a new double-null-terminated
24191         buffer.
24192
24193 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
24194
24195         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
24196
24197 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
24198
24199         * file-io.c: raise exceptions if handle is invalid.
24200
24201 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
24202
24203         * assembly.c: yet another check for mscorlib.
24204         * class.c, class.h: load nesting info for classes.
24205         * icall.c: many new functions to support the Reflection classes.
24206         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
24207         * reflection.h, reflection.c: mono_image_create_token(),
24208         mono_assembly_get_object(), mono_type_get_object(),
24209         mono_method_get_object(), mono_field_get_object(): methods to return
24210         objects that parallel the C representation of assemblies, types,
24211         methods, fields.
24212
24213 2001-12-11  Dick Porter  <dick@ximian.com>
24214
24215         * icall.c:
24216         * file-io.c: Internal calls for file IO.
24217
24218 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
24219
24220         * tabledefs.h: missing FileAttributes.
24221         * verify.h, verify.c: use is_valid_string () to simplify and check for
24222         valid strings more correctly. Fix warnings and speeling.
24223         Check more tables: Filed, File, ModuleRef, StandAloneSig.
24224         Check code: branches, maxstack, method calls.
24225
24226 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
24227
24228         * object.c (mono_object_allocate): removed static, so that the jit
24229         can allocate value types.
24230
24231         * icall.c (ves_icall_System_DateTime_GetNow): impl.
24232
24233 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24234
24235         * class.c: init enum types right away and register the
24236         token->MonoClass map in mono_class_create_from_typedef ().
24237         * verify.h, verify.c: first cut of the verifier.
24238         * pedump.c: add --verify switch to verify metadata tables.
24239         * tabledefs.h: add some missing enums.
24240
24241 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
24242
24243         * class.c (mono_install_runtime_class_init): impl.
24244         (mono_class_init): renamed mono_class_metadata_init to
24245         mono_class_init, also removed the metadata_inited flag
24246
24247         * object.c (mono_object_isinst): use faster algorithm
24248
24249 2001-11-30  Radek Doulik  <rodo@ximian.com>
24250
24251         * mono-endian.h: reverted last change
24252         added function prototypes
24253
24254         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
24255         add mono-endian.c back
24256
24257         * mono-endian.c: returned back, as Paolo pointed out, it's needed
24258         for unaligned access, I've mistaked it with endianess. I am
24259         sorry.
24260         (mono_read16): fix reverted endianess
24261         (mono_read64): ditto
24262         (mono_read32): ditto
24263
24264 2001-11-30  Dick Porter  <dick@ximian.com>
24265
24266         * exception.c: Implement mono_exception_from_name()
24267
24268 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24269
24270         * metadata.h, metadata.c: remove params_size and locals_size and their
24271         calculation from the metadata code: they are only usefult to the
24272         interp.
24273
24274 2001-11-29  Radek Doulik  <rodo@ximian.com>
24275
24276         * object.c (mono_ldstr): swap bytes here, it's probably not the
24277         best place, but works for me now, I'll redo it once I know mono
24278         better, also note that I add PROT_WRITE and don't reset back, also
24279         note that it's only affects big endians, so x86 should be OK
24280
24281         * mono-endian.h (read16): use just glib macros for both endians
24282
24283         * mono-endian.c: removed as glib macros are used in in
24284         mono-endian.h so we don't need to care about endianess for read
24285         macros as glib does that for us already
24286
24287 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
24288
24289         * class.h, class.h: take minimum alignment into consideration so
24290         that the fields of a class remain aligned also when in an array.
24291
24292 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24293
24294         * loader.h, loader.c: add mono_method_get_param_names().
24295         * class.c: 0-init class fields.
24296
24297 2001-11-26  Dick Porter  <dick@ximian.com>
24298
24299         * icall.c:
24300         * threads-types.h:
24301         * threads.c: New file that handles System.Threading on all platforms
24302
24303         * object.c: 
24304         * object.h: Remove the synchronisation struct from MonoObject,
24305         replace it with a pointer that gets initialised on demand
24306
24307         * Makefile.am: Replace all the system-specific threading code with
24308         a single file that uses the new wrapper library
24309
24310 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
24311
24312         * class.c, class.h: add mono_install_trampoline() so that the runtime
24313         can register a function to create a trampoline: removes the ugly
24314         requirement that a runtime needed to export arch_create_jit_trampoline.
24315         * object.h, object.c: added mono_install_handler() so that the runtime
24316         can install an handler for exceptions generated in C code (with
24317         mono_raise_exception()). Added C struct for System.Delegate.
24318         * pedump.c: removed arch_create_jit_trampoline.
24319         * reflection.c: some cleanups to allow registering user strings and
24320         later getting a token for methodrefs and fieldrefs before the assembly
24321         is built.
24322         * row-indexes.h: updates and fixes from the new ECMA specs.
24323
24324 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
24325
24326         * class.h, class.c: add enum_basetype field to MonoClass.
24327         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
24328         to get index in the constant table reated to a field, param or
24329         property.
24330         * reflection.h, reflection.c: handle constructors. Set public-key and
24331         version number of the built assembly to 0.
24332         * row-indexes.h: update from new ECMA spec.
24333
24334 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24335
24336         * class.h, class.c: add a max_interface_id to MonoClass.
24337         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
24338         since it's used to do that. Added mono_type_type_from_obj().
24339         Make GetType() return NULL instead of segfaulting if the type was not
24340         found. Handle simple arrays in assQualifiedName.
24341         * object.h: add a struct to represent an Exception.
24342         * reflection.c: output call convention in method signature.
24343         Add code to support P/Invoke methods and fixed offsets for fields.
24344
24345 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
24346
24347         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
24348         the value.
24349         * icall.c: use mono_array_addr instead of array->vector: fixes the
24350         reflection image writing.
24351         * reflection.c: init call convention byte to 0 in method signature.
24352         Encode the property signature. Don't output property-related methods
24353         twice. Really process the properties for a type (don't cast a field to
24354         a property, my mom always told me that).
24355         Fix 64 bit issues in pointer alignment in a different and more
24356         readable way.
24357
24358 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
24359
24360         * loader.h: Removed type class from MonoDefaults, added monotype
24361
24362         * loader.c: Loaded MonoType, removed loading of Type
24363
24364         * icall.c (my_mono_new_object): Now returns a System.MonoType,
24365         and fills in System.Type._impl with a RuntimeTypeHandle rather
24366         than the actual MonoClass *
24367
24368         (ves_icall_type_from_handle): change from type_class to
24369         monotype_class
24370
24371         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
24372         implemented
24373
24374         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
24375         implemented
24376
24377         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
24378
24379         (ves_icall_System_Reflection_Assembly_GetType): implemented
24380
24381         (ves_icall_System_MonoType_assQualifiedName): implemented
24382
24383         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
24384
24385 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
24386
24387         * assembly.c (mono_assembly_open): Implement a cache for the
24388         assemblies. 
24389
24390         (mono_assembly_close): only destroy the assembly when the last
24391         reference is gone.
24392         
24393 2001-11-09  Dick Porter  <dick@ximian.com>
24394
24395         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
24396
24397 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
24398
24399         * class.c (mono_class_metadata_init): bug fix: compute the right slot
24400
24401 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24402
24403         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
24404         from Martin Weindel.
24405         * object.h: add mono_string_chars ().
24406
24407 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
24408
24409         * reflection.c (build_compressed_metadata): Eliminates warnings
24410         and uses 64-bit clean code.
24411
24412         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
24413         (mono_type_equal): Change signature to eliminate warnings.
24414
24415 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24416
24417         * icall.c, loader.c: remove the internalcall array constructors.
24418         Changes to match the new MonoArray structure.
24419         * object.h, object.c: an array object doesn't allocate an extra
24420         vector. Add mono_array_new_full () to create jagged arrays easily.
24421
24422 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24423
24424         * metadata.h, metadata.c: add mono_metadata_field_info () to
24425         retreive all the info about a field from vairous tables.
24426         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
24427         * class.h, class.c: augment MonoClassField with more info.
24428         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
24429         policy and load a field's RVA if needed.
24430
24431 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
24432
24433         * class.c (mono_class_metadata_init): create a trampoline for all
24434         virtual functions instead of actually compiling them.
24435
24436 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
24437
24438         * class.h, class.c: include name in MonoClassField.
24439         * class.c: fix fundamental type of System.Object and System.String.
24440         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
24441         tokens in ldtoken.
24442         * icall.c: remove internalcalls for the Reflection stuff that is now
24443         done in C# code.
24444         * loader.c: mono_field_from_memberref () implementation.
24445         * mono-endian.c: thinko (s/struct/union/g).
24446         * object.c, object.h: make the mono_string_* prototypes actually use
24447         MonoString instead of MonoObject.
24448         * reflection.c, reflection.h: updates for changes in the reflection
24449         code in corlib: we use C structures that map to the actual C# classes.
24450         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
24451         fat method header if needed and use the info from the ILGenerator for
24452         methods. Handle fields in types. Misc fixes.
24453
24454 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
24455
24456         * class.c (mono_class_metadata_init): bug fix: always allocate
24457         space for static class data
24458
24459 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
24460
24461         * class.c (mono_compute_relative_numbering): use relative
24462         numbering to support fast runtime type checks.
24463
24464 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
24465
24466         * class.c (mono_class_create_from_typeref): added debugging output
24467         to print class name when MonoDummy is returned instead of real class
24468
24469 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
24470
24471         * class.c (mono_class_metadata_init): interface offset table now
24472         contains pointers into the vtable - this is more efficient for the jit
24473
24474 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
24475
24476         * class.c (mono_class_metadata_init): use a temporary vtable (the
24477         old algorithm only worked for the interpreter, but not for the jit)
24478
24479 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
24480
24481         * loader.c (method_from_memberref): use mono_class_get to get the
24482         class of an array instead of using System.Array directly.
24483         (mono_get_method): also add MEMBERREF methods to the method cache
24484         which usefull for arrays.
24485
24486 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
24487
24488         * pedump.c (arch_compile_method): added to compute vtable entry
24489
24490         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
24491         number of interfaces.
24492         
24493         * class.h: merged MonoArrayClass into MonoClass
24494
24495         * class.c (mono_class_create_from_typedef): compute the vtable size and
24496         allocate space to include the vtable inside MonoClass
24497         (mono_class_metadata_init): initialize the vtable
24498
24499 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
24500
24501         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
24502         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
24503         * image.c: endian fixes by Laurent Rioux.
24504         * object.h, object.c: rename MonoStringObject to MonoString and
24505         MonoArrayObject to MonoArray. Change some function names to conform to
24506         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
24507         guint16* as first argument, so don't use char*.
24508         Provide macros to do the interesting things on arrays in a portable way.
24509         * threads-pthread.c: updates for the API changes and #include <sched.h>
24510         (required for sched_yield()).
24511         * icall.c: updates for the API changes above.
24512         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
24513         platforms that need them.
24514
24515 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24516
24517         * class.c: set the correct type for all the fundamental
24518         type when loading the class.
24519
24520 2001-10-05  Dick Porter  <dick@ximian.com>
24521
24522         * threads-pthread.c (pthread_mutex_timedlock): Simple
24523         compatibility version for C libraries that lack this call.
24524
24525 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24526
24527         * class.c: MonoTypes stored in MonoClass are stored as
24528         fundamental MonoTypes when the class represents a
24529         fundamental type (System.Int32, ...).
24530         The TypeHandle return by ldtoken is a MonoType*.
24531         * icall.c: ves_icall_get_data_chunk () write out all the
24532         PE/COFF stuff. Implement ves_icall_define_method (),
24533         ves_icall_set_method_body (), ves_icall_type_from_handle ().
24534         * image.c: properly skip unknown streams.
24535         * loader.h, loader.c: add type_class to mono_defaults.
24536         * metadata.c, metadata.h: export compute_size () as
24537         mono_metadata_compute_size () with a better interface.
24538         Typo and C&P fixes.
24539         * pedump.c: don't try to print the entry point RVA if there is no entry point.
24540         * reflection.c, reflection.h: many cleanups, fixes, output method
24541         signatures and headers, typedef and typeref info, compress the metadata
24542         tables, output all the heap streams, cli header etc.
24543         * row-indexes.h: typo fixes.
24544
24545 2001-10-04  Dick Porter  <dick@ximian.com>
24546
24547         * object.h: Add a synchronisation mutex struct to MonoObject
24548
24549         * object.c (mono_new_object): Initialise the object
24550         synchronisation mutexes
24551
24552         * icall.c: System.Threading.Monitor internal calls
24553         
24554         * threads-pthread.h:
24555         * threads-pthread.c: System.Threading.Monitor internal calls
24556
24557         * threads-types.h: New file, includes the system-specific thread
24558         structures
24559         
24560         * threads-pthread-types.h:
24561         * threads-pthread-types.c: New files, handle pthread-specific
24562         synchronisation types
24563
24564         * threads-dummy-types.h: 
24565         * threads-dummy-types.c: New files of dummy support for
24566         thread-specific types
24567
24568         * metadata.c:
24569         * image.c:
24570         * pedump.c: include mono-endian.h not endian.h
24571         
24572         * Makefile.am: More threads files.
24573         Name mono-endian.h not endian.h
24574
24575 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
24576
24577         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
24578         stuff and implement a few more bits.
24579         * icall.c: a field needs to be dereferenced twice. Do not use the same
24580         name for two variables in the same scope.
24581         * image.c, image.h: cleanups.
24582
24583 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
24584
24585         * class.c (mono_class_metadata_init): bug fix: compute the right size
24586
24587 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
24588
24589         * icall.c: implemented some of the Reflection internalcalls.
24590         * image.c, image.h: start writing out the PE/COFF image.
24591         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
24592         that does the reverse than decode_blob_size ().
24593         * object.c: use mono_metadata_encode_value (). Move here
24594         temporary implementation of mono_string_to_utf8 ().
24595         * rawbuffer.c: make malloc_map static.
24596
24597 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24598
24599         * metadata.c: fix type comparison for arrays.
24600         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
24601         Added a couple of new classes to monodefaults.
24602         * icall.c: added a couple of Reflection-related internalcalls.
24603         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
24604         Added a byval_arg MonoType to MonoClass.
24605
24606 2001-09-28  Dick Porter  <dick@ximian.com>
24607
24608         * icall.c:
24609         * threads-pthread.h: 
24610         * threads-pthread.c: Implemented internal calls for
24611         LocalDataStoreSlot operations.  Applied mutexes around all shared
24612         data.  Reworked the thread creation and Start() operations to
24613         avoid a race condition.
24614         
24615         * threads-dummy.h:
24616         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
24617
24618 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
24619
24620         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
24621
24622 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
24623
24624         * class.c, loader.c: warn and return NULL instead of erroring out.
24625         * icall.c: added System.AppDomain::getCurDomain().
24626         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
24627
24628 2001-09-25  Dick Porter  <dick@ximian.com>
24629
24630         * threads-pthread.h:
24631         * threads-pthread.c: Implemented timed thread joining and added
24632         System.Threading.Thread::Join_internal internal call
24633
24634         * icall.c: Added System.Threading.Thread::Join_internal internal call
24635
24636         * threads-dummy.h:
24637         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
24638
24639 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
24640
24641         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
24642         mono_string_intern () to implement the semantics of the ldstr opcode
24643         and the interning of System.Strings.
24644         * icall.c: provide hooks to make String::IsIntern and String::Intern
24645         internalcalls.
24646
24647 2001-09-23  Dick Porter  <dick@ximian.com>
24648
24649         * threads-dummy.c: 
24650         * threads-dummy.h: New files of dummy threading routines
24651
24652         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
24653         support code based on system specifics
24654
24655         Rename PTHREAD_LIBS to THREAD_LIBS
24656         
24657 2001-09-23  Dick Porter  <dick@ximian.com>
24658
24659         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
24660         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
24661         internal calls.
24662         (mono_thread_init): Set up a Thread object instance to return when
24663         the main thread calls Thread.CurrentThread
24664         (mono_thread_cleanup): Wait for all subthreads to exit
24665
24666         * icall.c: New internal calls for System.Threading.Thread::Sleep
24667         (including Schedule) and CurrentThread
24668
24669         * threads.h: New file, to insulate thread-specific stuff from the
24670         rest of the code
24671
24672 2001-09-21  Dick Porter  <dick@ximian.com>
24673
24674         * threads-pthread.h: 
24675         * threads-pthread.c: New file, for handling pthreads-style
24676         threading support.  Start() now starts a new thread and executes
24677         the ThreadStart delegate instance.
24678
24679         * icall.c: Added the internalcall for
24680         System.Threading.Thread::Start_internal
24681
24682         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
24683
24684 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
24685
24686         * loader.c: work around the different signatures for delegates
24687         constructors csc generates in compiled code vs the ones compiled in mscorlib.
24688
24689 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
24690
24691         * class.h, class.c: add mono_class_get_field_from_name ().
24692         * *: Fix C comments and other ANSI C issues.
24693
24694 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
24695
24696         * endian.h, assembly.c: fix some endianness issues.
24697
24698 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
24699
24700         * loader.h, load.c: add delegate_class to mono_defaults.
24701         Handle runtime provided methods in mono_get_method ().
24702
24703 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
24704
24705         * loader.c (mono_get_method): use pinvoke for internal call
24706
24707         * icall.c: use pinvoke for internal call
24708
24709         * loader.c (method_from_memberref): set the method name
24710
24711 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
24712
24713         * metadata.c: help the compiler generate better code for
24714         mono_class_from_mono_type ().
24715
24716 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
24717
24718         * class.c (mono_class_metadata_init): delayed computing of the
24719         class size to mono_class_metadata_init ()
24720
24721 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
24722
24723         * class.c, class.h: add an interfaces member to MonoClass.
24724         * image.c, image.h: add assembly_name field to MonoImage
24725         from the assembly table.
24726         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
24727
24728 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24729
24730         * class.c: Handle Array in mono_class_from_mono_type ().
24731         * metadata.c, pedump.c: some endian fixes.
24732
24733 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24734
24735         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
24736         * metadata.c: fix small problem introduced with the latest commit.
24737
24738 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
24739
24740         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
24741         We don't need a MonoMetadata pointer anymore to compare signatures in
24742         mono_metadata_signature_equal (), update callers.
24743         Reduced memory usage an number of allocations for MonoMethodHeader and
24744         MonoMethodSignature.
24745
24746 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
24747
24748         * metadata.c: added compare for szarray.
24749
24750 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
24751
24752         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
24753         and add a couple more types to it and mono_defaults. Give an hint on
24754         classes that need implementing in our corlib and are referenced
24755         in mscorlib.
24756
24757 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
24758
24759         * class.h, class.c: keep track if a class is also an Enum.
24760         * loader.c: Implement a couple more types for use in libffi
24761         marshalling. Gives better diagnostics when failing to dlopen
24762         a library. Set method->klass for P/Invoke methods, too.
24763
24764 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
24765
24766         * class.c, class.h: add a MonoType this_arg to MonoClass that
24767         represents a pointer to an object of the class' type that
24768         can be used by the interpreter and later the type cache.
24769         Add best guess alignment info for valuetype objects.
24770
24771 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
24772
24773         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
24774         into MonoType: one less level of indirection and allocation and
24775         simplifies quite a bit of code. Added cache for MonoTypes that are
24776         used frequently, so that we don't need to allocate them all the time.
24777
24778 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
24779
24780         * class.c (mono_class_create_from_typedef): System.Enum is also a
24781         value type, although it does not derive from System.ValueType
24782         (maybe a bug in the ms compiler?)
24783
24784         * metadata.c (mono_type_size): return the right size for value types
24785
24786         * loader.c (mono_get_method): only initialize method header if not abstract
24787
24788         * class.c (mono_class_from_mono_type): use mono_default values. 
24789
24790 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
24791
24792         * *: use MonoClass pointers instead of <type_tokens>
24793         
24794         * class.h: new flag: metadata_inited.
24795
24796         * class.c (mono_class_metadata_init): impl.
24797         (mono_class_instance_size): impl.
24798         (mono_class_data_size): impl.
24799
24800 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24801
24802         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
24803         MonoClass now has the name and name_space fields. 
24804         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
24805         mono_get_method () takes and optional MonoClass as argument.
24806         Removed mono_typedef_from_name() and added mono_class_token_from_name()
24807         instead that takes advantage of a map from class names to typedef
24808         tokens in MonoImage.
24809
24810 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
24811
24812         * metadata.c: zero is not a valid alignment boundary.
24813         Merge MONO_TYPE_VOID in default decoding code.
24814
24815 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
24816
24817         * image.h: merged MonoMetadata into MonoImage
24818
24819         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
24820         identify the type of elements.
24821
24822 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
24823
24824         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
24825         * cil-coff.h: split MonoMSDOSHeader and add size info.
24826         * image.c: add some consistency checks.
24827         * metadata.c: fix row size computation: one programmer
24828         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
24829         add explanation for the locator routine.
24830         Fix decoding of size in method header.
24831         
24832 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
24833
24834         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
24835         (g_concat_dir_and_file): Bring g_concat_dir_and_file
24836         function from gnome-libs.  This uses the right path separator
24837         based on the OS, and also works around a bug in some systems where
24838         a double slash is not allowed. 
24839         (default_assembly_name_resolver): Use g_concat_dir_and_file
24840         (mono_assembly_open): ditto.
24841
24842 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
24843
24844         * metadata.c (mono_metadata_signature_equal): impl.
24845
24846         * *: void is now a realy MonoType (instead of using NULL)
24847         
24848         * metadata.c (do_mono_metadata_parse_type): use
24849         mono_metadata_parse_type to parse void value.
24850
24851 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
24852
24853         * metadata.c, metadata.h: in the signature and method header store
24854         only the space required for holding the loca vars and incoming arguments.
24855
24856 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
24857
24858         * metadata.c (do_mono_metadata_parse_type): treat void like any
24859         other type (instead of assigning NULL);
24860
24861 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
24862
24863         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
24864
24865 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
24866
24867         * image.c (do_mono_image_open): added a cache for arrays.
24868
24869 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24870
24871         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
24872         decode a single column from a row in a metadata table and changes
24873         to take advantage of it in the typedef locator (gives a nice speed up).
24874         Store offset info for function params.
24875
24876 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
24877
24878         * image.h (MONO_IMAGE_IS_CORLIB): removed 
24879
24880 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
24881
24882         * assembly.c: how could mono_assembly_close () had ever worked?
24883         * metadata.c, metadata.h: provide offset info for local vars.
24884         Implement mono_type_size () to take care of alignment as well
24885         as size (it was mono_field_type_size in cli/class.c before).
24886
24887 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
24888
24889         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
24890
24891         * assembly.h (CORLIB_NAME): set to corlib.dll
24892
24893         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
24894
24895 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24896
24897         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
24898         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
24899         tokentype.h: massive namespace cleanup.
24900
24901 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24902
24903         * metadata.h, metadata.c: decode exception clauses when parsing method header.
24904
24905 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
24906
24907         * metadata.c (mono_metadata_free_type): added check for type !=
24908         NULL (void) before calling mono_metadata_free_type()
24909
24910 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
24911
24912         * metadata.h, row_indexes.h: added header with enumerations to use
24913         to index in the columns from tables in metadata and to decode coded
24914         tokens: we should start using this instead of embedding magic numbers
24915         all over the code.
24916
24917 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
24918
24919         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
24920         Move metadata_t info from cli_image_info_t to MonoImage, where
24921         it's easily accessible. Changed all the uses accordingly.
24922         Added the method and class caches to MonoImage.
24923         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
24924         and mono_metadata_decode_value () signature to be more consistent
24925         with the other parse functions (and simplify code). Taken advantage
24926         of zero-length array allocation with GCC. Removed reduntant (and
24927         wrong) MonoFieldType struct and use MonoParam instead. Changed
24928         mono_metadata_parse_field_type () to use common code for parsing.
24929         Added mono_metadata_typedef_from_field () and
24930         mono_metadata_typedef_from_method () to lookup a typedef index from a
24931         field or method token.
24932         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
24933
24934 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
24935
24936         * metadata.c (mono_metadata_parse_field_type): Implement. 
24937         (do_mono_metadata_parse_type): Split engine from
24938         mono_metadata_parse_type, so that we can create smaller structures
24939         for things that just have one pointer to the MonoType (look at
24940         the MonoFieldType)
24941
24942 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
24943
24944         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
24945         as Jan Gray found out, it is incorrect. 
24946
24947 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
24948
24949         * assembly.c: Implement asssembly loading.  This loads an image
24950         and loads all the referenced assemblies.  Come to think of it, we
24951         could always do lazy loading of the assemblies. 
24952
24953         * image.c (mono_image_open): Keep loaded images in a hashtable.
24954
24955         * image.h (MonoImage): Add reference count.
24956
24957 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
24958
24959         * assembly.c (mono_assembly_open): Keep track of the file name in
24960         case the assembly has no ASSEMBLY table.
24961
24962         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
24963         from get.c here.
24964
24965 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
24966
24967         * metadata.c, metadata.h: decode local vars in method header
24968         parse function. Change callers accordingly.
24969
24970 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
24971
24972         * metadata.h, cil-coff.h: protect against multiple inclusion.
24973         Added some new structures to hold information decoded from metadata:
24974         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
24975         and relevant decoding/free functions.
24976         * metadata.c: implement decoding functions. Add warning for out of bounds
24977         index in mono_metadata_locate(). Implement mono_get_method () to retreive
24978         all the info about a method signature and invocation. Remove check on
24979         uninitialized local var in parse_mh() and fix memory leak.
24980
24981 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
24982
24983         * metadata.h: More macros.
24984
24985         * tokentype.h: New file.
24986
24987 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
24988
24989         * assembly.c: added a consistency check and initialize
24990         some structures with g_new0().
24991         * metadata.c: fixed a couple more bugs in table size computation
24992         and add other checks for out-of bound access to metadata.
24993
24994 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
24995
24996         * metatada.c: fix bugs computing table sizes. Spew a
24997         warning when index in string heap is out of bounds.
24998
24999 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
25000
25001         * metadata.h: Add a couple of macros to manipulate tokens. 
25002
25003 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
25004
25005         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
25006         cli_section_tables).
25007
25008 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
25009
25010         * metadata.c (mono_metadata_user_string): New function, provides
25011         access to the UserString heap. 
25012
25013 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
25014
25015         * metadata.c: Add inline documentation.
25016
25017 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
25018
25019         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
25020         files. 
25021
25022 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
25023
25024         * typeattr.h: New file, TypeAttribute flags. 
25025
25026 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
25027
25028         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
25029         mono_assembly_ensure_section): Section loading code.
25030         (load_section_tables): Load the sections.
25031
25032         * mono/metadata/metadata.c (mono_metadata_locate_token,
25033         mono_metadata_locate): Functions to locate the information
25034         definition given a token or a table and an index.
25035         (mono_metadata_compute_table_bases): New.
25036         (compute_size): New function to compute the sizes of the various
25037         tables.
25038
25039         * mono/metadata/metadata.h: Finish listing the different index
25040         types. 
25041
25042         * mono/metadata/pedump.c: Improve to dump new information.
25043
25044 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
25045
25046         * mono/metadata/metadata.c: Entered all the tables matching
25047         Beta2. 
25048
25049         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
25050
25051
25052