1 2008-03-06 Zoltan Varga <vargaz@gmail.com>
3 * assembly.c (build_assembly_name): Fix a warning.
5 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
7 * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
8 the called function takes an object type argument. Fixes storing or
9 valuetypes across remoting as well as reducing memory usage.
10 * image.c, metadata-internals.h: remove now unused ldfld_remote and
11 stfld_remote wrapper caches.
13 2008-03-06 Zoltan Varga <vargaz@gmail.com>
15 * icall.c (mono_lookup_internal_call): Update the exception message when an icall
18 * reflection.c (mono_image_register_token): New helper function to save
19 a token->object mapping.
21 * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
24 * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
25 one dimension arrays. Fixes #367670.
26 (mono_reflection_get_type_internal): Ditto.
28 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
30 * marshal.c: mono_load_remote_field_new() always returns object.
31 so use the proper signature (fixes bug #366445).
33 2008-03-04 Zoltan Varga <vargaz@gmail.com>
35 * class-internals.h (MonoMethod): Remove unused uses_this flag,
36 add an 'inline_failure' flag instead.
38 2008-03-04 Mark Probst <mark.probst@gmail.com>
40 * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
41 with a new structure, MonoGenericJitInfo, in the MonoJitInfo. It
42 contains the location of "this", used for exception handling.
44 2008-03-04 Zoltan Varga <vargaz@gmail.com>
46 * class.c (mono_class_layout_fields): Set the min alignment of small structs to
47 their size on all platforms for perf reasons.
49 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
51 * reflection.h: Move mono_reflection_is_valid_dynamic_token to
54 * object-internal.h: Same.
56 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
58 * reflection.h: Fix the build I just broke.
60 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
62 * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
63 Test if a token is valid, this remove explicit usage of
64 MonoDynamicImage::tokens from the verifier code.
66 * reflection.h: Added mono_reflection_is_valid_dynamic_token.
68 * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
69 instead of direct access to MonoDynamicImage::tokens.
71 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
73 * verify.c (token_bounds_check): Fix the build I just broke.
75 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
77 * verify.c (token_bounds_check): Fix bounds check for dynamic images.
79 * verify.c (verifier_load_method): Fixed the errors message.
81 * verify.c (mono_method_verify): Fixed a debug message.
83 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
85 * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
86 mono-perfcounters.h, class-internals.h: support for predefined
87 writable counters, query of categories and counters, bugfixes.
89 2008-02-28 Rodrigo Kumpera <rkumpera@novell.com>
91 * verify.c (do_refanytype): Verify the refanytype opcode.
93 * verify.c (mono_method_verify): Use do_refanytype.
95 2008-02-28 Rodrigo Kumpera <rkumpera@novell.com>
97 * verify.c (do_mkrefany): Verify the mkrefany opcode.
99 * verify.c (mono_method_verify): Use do_mkrefany.
101 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
103 * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
104 mono-perfcounters.c, mono-perfcounters.h: basic performance counter
107 2008-02-27 Zoltan Varga <vargaz@gmail.com>
109 * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
110 the type load exception.
112 2008-02-27 Rodrigo Kumpera <rkumpera@novell.com>
114 * verify.c: Added a few FIXME for method signatures
116 * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
117 of mono_method_get_signature and get vararg call working. Removed unused
118 checks for return value.
120 * verify.c (do_refanyval): Verify the refanyval opcode.
122 * verify.c (mono_method_verify): Implemented verification of arglist and
125 2008-02-27 Zoltan Varga <vargaz@gmail.com>
127 * class.c (mono_class_setup_methods): Move the check for synchronized methods on
130 * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
131 it works for AOT as well.
133 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
135 * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
136 with mono_msec_ticks () which is monotonic and doesn't cause bugs when
137 the system time is adjusted.
139 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
141 * icall.c, icall-def.h: use the new time functions (fixes the
142 non-monotonic behaviour of TickCount).
144 2008-02-26 Zoltan Varga <vargaz@gmail.com>
146 * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
149 * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
150 cattr is not finished yet.
152 2008-02-25 Rodrigo Kumpera <rkumpera@novell.com>
154 * verify.c: Proper token validation for field, method and type.
156 2008-02-25 Rodrigo Kumpera <rkumpera@novell.com>
158 * loader.c (field_from_memberref): Generate a loader error if the type is not found.
160 * loader.c (method_from_memberref): Generate type load error instead of method missing
161 if the type is not found.
163 2008-02-23 Zoltan Varga <vargaz@gmail.com>
165 * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
166 some of the conversions caused the generation of a marshal directive exception.
168 2008-02-21 Rodrigo Kumpera <rkumpera@novell.com>
170 verify.c: Report which exception should be thrown by the JIT.
171 Added a lot of FIXME notes.
173 2008-02-22 Mark Probst <mark.probst@gmail.com>
175 * generic-sharing.c: Runtime generic context slots are not
176 instantiated on init anymore. Instead, provide function to do the
177 instantiating on demand.
179 * class-internals.h: Added vtable to runtime generic context.
180 Macros for encoding direct and indirect slot offsets in one
183 2008-02-21 Mark Probst <mark.probst@gmail.com>
185 * object.c, generic-sharing.c: Moved some generic sharing code
186 from object.c to generic-sharing.c.
188 * generic-sharing.c: Added support for extensible runtime generic
191 * metadata-internals.h: Two new hash tables in MonoImage for
192 extensible runtime generic context support.
194 * domain.c: Unregister generic vtables upon domain unloading.
196 * image.c: Destroy new hash tables upon image unloading.
198 * metadata.c: Unregister generic subclasses upon image unloading.
200 * class-internals.h: New data structure for runtime generic
201 context template. New fields in the runtime generic context for
204 * Makefile.am: Added generic-sharing.c.
206 2008-02-21 Rodrigo Kumpera <rkumpera@novell.com>
208 icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
209 there is a pending loader exception, raise it.
211 icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken):
214 icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken):
219 2008-02-20 Zoltan Varga <vargaz@gmail.com>
221 * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
223 * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
225 * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
226 ref-only requests for compatibility with MS.
228 2008-02-20 Raja R Harinath <harinath@hurrynot.org>
230 * reflection.c (mono_custom_attrs_from_method): Don't silently
231 return an empty list for generic method instances.
232 (mono_custom_attrs_from_param): Likewise.
234 2008-02-20 Rodrigo Kumpera <rkumpera@novell.com>
235 Raja R Harinath <harinath@hurrynot.org>
238 * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
239 * class.c (mono_class_inflate_generic_method_full): Initialize it
240 when a fully-open method is instantiated.
241 * metadata.c (inflated_method_equal, inflated_method_hash): Update
243 * reflection.c (inflate_mono_method): Don't create a temporary context.
245 2008-02-20 Raja R Harinath <harinath@hurrynot.org>
247 * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
248 Compute correct value, to prepare for imethod->reflection_info going away.
250 2008-02-19 Zoltan Varga <vargaz@gmail.com>
252 * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
254 2008-02-18 Rodrigo Kumpera <rkumpera@novell.com>
256 * verify.c: Implement skip visibility flag.
258 2008-02-18 Rodrigo Kumpera <rkumpera@novell.com>
260 * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
261 which contains an extra field to tell the kind of exception that should be thrown.
263 * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
265 2008-02-17 Raja R Harinath <harinath@hurrynot.org>
267 * loader.c (mono_method_get_param_names): Initialize 'klass' after
270 2008-02-11 Zoltan Varga <vargaz@gmail.com>
272 * class.c (mono_class_layout_fields): Set class->min_align for classes using
273 explicit layout as well. Fixes #360375.
275 2008-02-11 Geoff Norton <gnorton@novell.com>
277 * loader.c: Guard and dereference against inflated generic methods
279 2008-02-10 Gert Driesen <drieseng@users.sourceforge.net>
281 * class.c: Include Retargetable spec in assembly name.
282 * assembly.c: Always include PublicKeyToken spec in assembly name
283 (with value "null" if assembly is not signed), and include
285 * icall-def.h: Added icall for Assembly.get_fullname.
286 * icall.c: Added icall returning the fullname of an assembly.
288 2008-02-09 Zoltan Varga <vargaz@gmail.com>
290 * class.c (mono_class_setup_vtable_general): Add a missing call to
291 mono_class_setup_methods () which is needed in the AOT case.
293 2008-02-08 Rodrigo Kumpera <rkumpera@novell.com>
295 * verify.c (mono_type_get_stack_name): Added. Return the name for the
296 stack type of the given MonoType.
298 * verify.c (verify_type_compatibility_full): Handle the void type.
300 * verify.c (is_compatible_boxed_valuetype): Changed to fit the
301 way stack merging works.
303 * verify.c (store_local): Improved verification message.
305 * verify.c (do_branch_op): If the merging is invalid, the method
306 is unverifiable and not invalid. Improved error message.
308 * verify.c (merge_stacks): Properly merge a boxed valuetype and
309 a reference type diferent than System.Object. Improved error
312 2008-02-07 Rodrigo Kumpera <rkumpera@novell.com>
314 * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
316 * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
317 type of an enum even if the argument is byref.
319 * verify.c: Replace all explicit uses of enumtype and enum_basetype
320 to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
322 * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
324 *verify.c (verify_type_compatibility_full): Make enum types
325 compatible with their base types.
327 * verify.c (is_compatible_boxed_valuetype): Added. Check if both
328 types are compatible for the special case of a boxed valuetype and
331 * verify.c (verify_stack_type_compatibility): The function
332 is_compatible_boxed_valuetype was extracted from here.
334 * verify.c (push_arg): Only set ctx->has_this_store if the method
337 * verify.c (do_ldelem): Fixed a typo in an error message and added
338 strict check for mixing int32 and native int as the array type
341 * verify.c (merge_stacks): Consider boxed valuetypes in the
342 compatibility checks.
344 2008-02-07 Massimiliano Mantione <massi@ximian.com>
345 * profiler.h: (MonoGCEvent): Added start-stop the world events.
347 2008-02-06 Massimiliano Mantione <massi@ximian.com>
348 *class.c: use_new_interface_vtable_code: renamed the env var to have
349 a "MONO_" prefix, and fix the logic to enable it by default.
351 2008-02-06 Massimiliano Mantione <massi@ximian.com>
353 mono_class_setup_vtable_general: rewrote the way in which interface
354 methods are added to vtables. Makes bug-77127.exe pass, and hopefully
355 makes the code more maintainable.
356 For now the old code is still there, and can be activated setting
357 the env var "USE_NEW_INTERFACE_VTABLE_CODE".
359 2008-02-06 Rodrigo Kumpera <rkumpera@novell.com>
361 * verify.c: guarded some debug functions around and #ifdef.
363 * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
365 2008-02-06 Zoltan Varga <vargaz@gmail.com>
367 * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
368 changes for now since they seem to break too many things.
370 2008-02-05 Mark Probst <mark.probst@gmail.com>
372 * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
373 mono_marshal_find_nonzero_bit_offset): Added macro and function
374 for finding the byte- and bit-offset of a bitfield within a
377 2008-02-05 Zoltan Varga <vargaz@gmail.com>
379 * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
380 (mono_marshal_get_struct_to_ptr): Ditto.
382 * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of
385 2008-02-03 Zoltan Varga <vargaz@gmail.com>
387 * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
388 between methods for non-corlib types.
390 2008-02-02 Geoff Norton <gnorton@novell.com>
392 * loader.c (mono_method_get_param_names): Populate the parameter name for
393 generic parameters as well. (Fixes #342536)
395 2008-01-31 Rodrigo Kumpera <rkumpera@novell.com>
397 * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
399 * verify.c (do_invoke_method): Fix for calling with byref structs.
401 * verify.c (do_cast): push a boxed value type based on the type token and not
404 2008-01-31 William Holmes <billholmes54@gmail.com>
406 * process.c (process_module_string_read): Check the size returned form
407 VerQueryValue to avoid out of memory exception.
409 2008-01-30 Zoltan Varga <vargaz@gmail.com>
411 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
412 Handle properly modules which are not in the moduleref table. Fixes
415 2008-01-29 Zoltan Varga <vargaz@gmail.com>
417 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
418 the dynamic case which is now in managed code.
419 (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
421 * marshal.c (mono_string_to_bstr): Fix a warning.
422 (init_com_provider_ms): Ditto.
424 * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
426 * exception.c (mono_get_exception_out_of_memory): New helper function.
428 2008-01-28 Jonathan Chambers <joncham@gmail.com>
430 * marshal.c: Add support for BSTR marshalling
431 using other COM systems.
433 Code is contributed under MIT/X11 license.
435 2008-01-28 Rodrigo Kumpera <rkumpera@novell.com>
437 * object.c (mono_runtime_invoke_array): reverted previous
438 commit as it breaks the build.
440 2008-01-28 Rodrigo Kumpera <rkumpera@novell.com>
442 * object.c (mono_runtime_invoke_array): Verify arguments for
443 invalid types. Fixes #348522.
445 2008-01-28 Rodrigo Kumpera <rkumpera@novell.com>
447 * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
448 non-final virtual calls using call.
450 * verify.c (do_invoke): fixed some TODOs.
452 * verify.c (push_arg): set has_this_store for "ldarga 0".
454 2008-01-27 Zoltan Varga <vargaz@gmail.com>
456 * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
457 which belong to an inflated class. Fixes #356531.
459 2008-01-26 Robert Jordan <robertj@gmx.net>
461 * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
462 which resort to FindFirstFile when a certain error condition
463 (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
464 Code is contributed under MIT/X11 license.
466 2008-01-24 Jonathan Chambers <joncham@gmail.com>
468 * marshal.c (emit_marshal_string): Fix out string marshalling
469 to use specified encoding. Fixes #323900.
471 Code is contributed under MIT/X11 license.
473 2008-01-24 Raja R Harinath <harinath@hurrynot.org>
475 * class.c (mono_class_inflate_generic_method_full): Don't modify
476 iresult->context after cache check.
478 2008-01-23 Zoltan Varga <vargaz@gmail.com>
480 * class.c (mono_class_inflate_generic_method_full): Change the
481 struct assignments to memcpy for better visibility and add some comments.
483 2008-01-23 Dick Porter <dick@ximian.com>
485 * threads.c (mono_threads_set_shutting_down): Simplify shutdown
486 procedure, and make it work on windows.
488 2008-01-22 Zoltan Varga <vargaz@gmail.com>
490 * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
491 a MonoReflectionTypeBuilder since it is always of that type.
493 * reflection.c (mono_type_get_object): Remove an unneccesary check.
495 * reflection.c (mono_generic_class_get_object): Simplify this a bit.
497 * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
499 * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
501 * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
503 * reflection.c (mono_reflection_create_runtime_class): Remove already created
504 instantiations from the type cache.
506 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
508 * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
510 * verify.c (do_unbox_value): push a controled mutability managed pointer.
512 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
514 * verify.c (do_ldstr): added, verifies if the #US token is valid.
516 * verify.c (mono_method_verify): removed old TODO
518 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
520 * verify.c (do_newobj): add visibility check.
522 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
524 * verify.c (do_load_function_ptr): add visibility check.
526 2008-01-21 Massimiliano Mantione <massi@ximian.com>
528 mono_generic_class_get_class: hook profiler events.
529 mono_field_get_offset: added to support heap-shot in the new profiler.
530 *class.h: exported mono_field_get_offset.
532 mono_reflection_setup_internal_class: hook profiler events.
534 2008-01-20 Zoltan Varga <vargaz@gmail.com>
536 * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions'
537 argument here too and use it to avoid checking for pending exceptions if
540 2008-01-20 Gert Driesen <drieseng@users.sourceforge.net>
542 * assembly.c (build_assembly_name): add arg for passing the assembly
543 flags. Do not consider a PublicKey with value "null" valid.
544 (mono_assembly_name_parse_full): added boolean argument that will be
545 set if the assembly name contains a PublicKeyToken spec. Added support
546 for the Retargetable spec for which only Yes or No are allowed as valid
547 value. Consider assembly name invalid if Retargetable spec is set, but
548 either version, culture or public key (token) are not specified.
549 * metadata-internals.h: sync signature of mono_assembly_name_parse_full
550 with implementation in assembly.c.
551 * icall.c (fill_reflection_assembly_name): also copy assembly flags
552 from MonoAssemblyName.
553 (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
554 introduced argument for mono_assembly_name_parse_full to know if the
555 assembly name has a PublicKeyToken spec, and if it has instruct
556 fill_reflection_assembly_name to use default value for keyToken (if
557 PublicKeyToken is null).
559 2008-01-18 Rodrigo Kumpera <rkumpera@novell.com>
561 * verify.c (mono_method_verify): fixed ovf ops with
562 float values. They are unverifiable now.
564 2008-01-18 Rodrigo Kumpera <rkumpera@novell.com>
566 * class.c (set_failure_from_loader_error): add BadImageException to the
567 list of exceptions that can cause a type to fail to load.
569 * class.c (mono_class_get_exception_for_failure): same.
571 2008-01-17 Rodrigo Kumpera <rkumpera@novell.com>
573 * verify.c (in_any_exception_block): added, check if offset
574 is part of any exception handling clause.
576 * verify.c (get_stack_type): added VAR and MVAR types.
578 * verify.c (do_stobj): better error messages.
580 * verify.c (do_cpobj): added, check cpobj.
582 * verify.c (do_initobj): added, check initobj.
584 * verify.c (do_sizeof): added, check sizeof.
586 * verify.c (do_localloc): added, check localloc.
588 * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
590 2008-01-17 Zoltan Varga <vargaz@gmail.com>
592 * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
593 save_lmf/restore_lmf opcodes.
595 * threads.c (mono_threads_install_notify_pending_exc): New function to
596 install a callback notifying the JIT there is a pending exception on a thread.
597 (mono_thread_request_interruption): Call the new callback.
598 (mono_thread_get_and_clear_pending_exception): New function to return the
599 exception pending on a thread.
601 * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
602 to turn off checking for pending exceptions.
603 (mono_marshal_get_native_wrapper): Ditto.
605 2008-01-16 Zoltan Varga <vargaz@gmail.com>
607 * threads-types.h: Get rid of the unnecessary extern declarations.
609 2008-01-16 Gert Driesen <drieseng@users.sourceforge.net>
611 * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
612 return field from parent class if not private.
613 (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
614 returns fields from parent class if they are not private.
615 (method_nonpublic): added function to determine if a given method
616 should be considered non-public. Returns false for private methods
617 on parent class, and internal methods from parent on the 1.0 profile.
618 (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
619 use method_nonpublic function to determine whether method should be
621 (property_accessor_public): use newly introduced method_nonpublic
622 function to determine whether accessor is non-public.
623 (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
624 event from parent class if not private. Only return static event if
625 Static flag is set, and only return static event from parent class if
626 FlattenHierarchy flag is set.
627 (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
628 include non-private events from parent class.
630 2008-01-16 Zoltan Varga <vargaz@gmail.com>
632 * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
635 2008-01-16 Wade Berrier <wberrier@novell.com>
637 * security.c: Add assembly.h header to appease some warnings
639 2008-01-16 Dick Porter <dick@ximian.com>
641 * process.c (process_module_string_read): Remove trailing null
644 2008-01-16 Mark Probst <mark.probst@gmail.com>
646 * class-internals.h: A new data structure describing the layout of
647 a runtime generic context (MonoRuntimeGenericContextTemplate).
649 * metadata-internals.h: Added a hash table to MonoDomain that maps
650 from open generic classes to their runtime generic context
653 * object.c: Building of the runtime generic context, including
654 proper handling of generic type arguments of superclasses.
655 Building of the runtime generic context according to the template.
657 2008-01-15 Zoltan Varga <vargaz@gmail.com>
659 * class.c (mono_class_setup_fields): Set field.count for generic instances.
662 * image.c (do_mono_image_open): Pass TRUE as last_exists to
663 mono_portability_find_file (). Fixes #325466.
664 (mono_image_get_public_key): Fix a warning.
666 2008-01-14 Zoltan Varga <vargaz@gmail.com>
668 * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
670 (mono_class_from_name_case): Ditto.
672 2008-01-13 Eyal Alaluf <eyala@mainsoft.com>
674 * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
675 common storage for the tables used in the System/NumberFormatter class.
677 2008-01-13 Zoltan Varga <vargaz@gmail.com>
679 * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
681 2008-01-11 Rodrigo Kumpera <rkumpera@novell.com>
683 * verify.c (get_boxable_mono_type): check if the token is valid.
685 * verify.c (set_stack_value): changed to add an error if an
686 invalid type is set on stack. Changed all callers due to signature change.
688 * verify.c (do_stobj): implement stobj validation.
690 2008-01-11 Zoltan Varga <vargaz@gmail.com>
692 * reflection.c (reflection_methodbuilder_to_mono_method): No need to
693 set container->is_method, it was set earlier.
695 * metadata.c (type_in_image): Handle MVARs which belong to not finished
698 * reflection.c (mono_reflection_initialize_generic_parameter): Set
699 is_method of the generic container to TRUE for methods.
701 2008-01-10 Zoltan Varga <vargaz@gmail.com>
703 * metadata.c (type_in_image): Handle type parameters properly.
705 * class-internals.h (MonoGenericParam): Add an 'image' argument to track
706 memory ownership of this structure.
708 2008-01-10 Rodrigo Kumpera <rkumpera@novell.com>
710 * verify.c (get_boxable_mono_type): make typedref types been just
711 unverifiable. check for void type.
713 * verify.c (do_unbox_any): added, verify opcode unbox.any.
715 * verify.c (do_load_function_ptr): accept method spec tokens.
717 2008-01-10 Zoltan Varga <vargaz@gmail.com>
719 * marshal.c (mono_class_native_size): Always set *align even if this is called
722 2008-01-09 Zoltan Varga <vargaz@gmail.com>
724 * verify.c (mono_verify_corlib): Remove this as it was not used and was
727 2008-01-09 Rodrigo Kumpera <rkumpera@novell.com>
729 * verify.c: removed some old unused tables. A huge bunch of small fixes
730 to things found while testing the verifier with mono basic.
732 * verify.c (dump_stack_value): dump null literal flag to.
734 * verify.c (verify_type_compatibility_full): fix comparison
735 for types that have a generic super type.
737 * verify.c (verify_stack_type_compatibility): fix compatibility
738 between null literals and reference types. fix compatibility between
739 boxed valuetypes and object. fix corner case test for enums.
741 * verify.c (do_cmp_op): proper verification of cgt.un in case
744 * verify.c (do_invoke_method): fix error message.
746 * verify.c (do_store_indirect
748 * verify.c (check_is_valid_type_for_field_ops): proper verification
749 of managed pointers to valuetypes and boxed valuetypes. proper verification
752 * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
753 allow token to be a reference type.
755 * verify.c (do_cast): proper handling of boxes valuetypes.
757 * verify.c (do_stelem): proper handling of storing a boxed valuetype
760 * verify.c (mono_method_verify): pass the opcode to do_cmp_op
761 to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
762 fixed the decoding of unbox_any
764 2008-01-08 Zoltan Varga <vargaz@gmail.com>
766 * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
768 2008-01-08 Rodrigo Kumpera <rkumpera@novell.com>
770 * verify.c (do_newobj): do delegate verification.
772 * verify.c (verify_delegate_compatibility): perform delegate
775 * verify.c (verify_ldftn_delegate): perform tests related to
778 * verify.c (mono_delegate_signature_equal): perform the
779 slightly diferent signature comparison required by delegates.
781 * metadata.c (mono_metadata_type_equal_full): added and exported
782 as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
783 allows signature only comparison.
785 * metadata-internal.h (mono_metadata_type_equal_full): added and exported
788 2008-01-07 Rodrigo Kumpera <rkumpera@novell.com>
790 * verify.c: added a bunch of stack_slot_* functions to
791 make access to stack slot type easier. This is required to
792 allow optional flags, like null literal, boxed value and
794 All access paths to IlStackDesc::stype have been changed
795 to use these new funcions.
796 Removed a bunch of unused functions and cleared all warnings.
797 This patch introduces the usage of the this pointer and
800 2008-01-07 Zoltan Varga <vargaz@gmail.com>
802 * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
804 2008-01-06 Zoltan Varga <vargaz@gmail.com>
806 * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
807 match managed version.
809 * appdomain.c: Bump corlib version.
811 * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
814 2008-01-06 Gert Driesen <drieseng@users.sourceforge.net>
816 * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
817 Set public key token to zero-length byte array if assembly is not
820 2008-01-05 Zoltan Varga <vargaz@gmail.com>
822 * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
823 writing a vtype array elem.
825 2007-01-05 Gert Driesen <drieseng@users.sourceforge.net>
827 * assembly.c (build_assembly_name): return FALSE if length of token is
828 not 16 (if not "null").
829 (mono_assembly_name_parse_full): return FALSE if value of version,
830 culture, token or key is 0.
831 * icall.c (fill_reflection_assembly_name): add boolean arguments to
832 specify whether public key and public key token must be set to default
833 value (zero-length byte array) if not available. Set versioncompat to
834 SameMachine. If public key is available or the default is set, then
836 (ves_icall_System_Reflection_Assembly_FillName): if no public key
837 is available, use empty byte array as default value. On the 2.0
838 profile, use default value for public key token if not set.
839 (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
840 profile, use default value for public key if not set. On the 2.0
841 profile, use default value for public key token if not set.
842 (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
843 default values for public key and public key token.
845 2008-01-05 Zoltan Varga <vargaz@gmail.com>
847 * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
848 field to keep it in synch with the managed object.
850 * marshal.c (emit_marshal_object): Add support for byref marshalling of
851 delegates. Fixes #351520.
853 * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
854 contains defined memory.
856 * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
858 * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
860 * sgen-gc.c (check_consistency): New helper function to do a consistency check
861 of the GC data structures.
863 * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
865 * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
867 * object.c (mono_array_full_copy): Fix detection of whenever to use a write
869 (mono_array_clone_in_domain): Ditto.
870 (mono_array_clone_in_domain): Ditto.
872 * threads.c (start_wrapper): Register the thread start argument as a GC root.
873 (cache_culture): Use a write barrier.
875 * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
876 (ves_icall_get_property_info): Ditto.
878 * object.h (MONO_STRUCT_SETREF): New macro.
880 * class-internals.h (MonoStats): Add some GC statistics.
882 * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
884 2008-01-04 Andreas Faerber <andreas.faerber@web.de>
886 * exception.c (mono_exception_from_name_two_strings):
887 Break from loop after method is found.
889 2008-01-04 Dick Porter <dick@ximian.com>
891 * process.c (process_module_string_read): Rename variable to
892 reflect correct usage, after fixing bug 345972.
894 2008-01-03 Rodrigo Kumpera <rkumpera@novell.com>
896 * verify.c (mono_type_create_fnptr_from_mono_method):
897 created a MonoType function pointer instance to be used during
898 verification. The verifier releases this memory at end.
900 * verify.c (mono_method_is_constructor): extracted repeated
901 checks for constructor into a single class.
903 * verify.c (do_push_field): use new extracted method
904 for constructor check.
906 * verify.c (do_newobj): same.
908 * verify.c (do_ldftn): renamed to do_load_function_ptr
909 and make it verify ldvirtftn too.
911 * verify.c (mono_method_verify: proper verification
912 of ldvirtftn. release created MonoMethod instances.
914 2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
916 * verify.c (token_bounds_check): added.
918 * verify.c (do_ldftn): added.
920 * verify.c (mono_method_verify): proper verificartion of ldftn.
922 2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
924 * metadata.c (mono_metadata_decode_row): Assert if index is bigger
925 than the table row count. It's the resposibility of the caller to
926 make the bounds check and raise the correct error.
928 * metadata.c (mono_metadata_decode_row_col): Same.
930 * loader.c (mono_get_method_from_token): perform bounds check
931 on token for methoddef table.
933 2007-12-29 Miguel de Icaza <miguel@novell.com>
936 (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
937 assert into a negative result, the managed code already coped with
940 Some folks on Windows reported this error.
942 2007-12-28 Gert Driesen <drieseng@users.sourceforge.net>
944 * appdomain.c: Bump corlib version.
946 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
947 CultureInfo.CreateCulture to create CultureInfo for name.
948 (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
949 create CultureInfo for name. Fixes bug #347174.
951 2007-12-27 Rodrigo Kumpera <rkumpera@novell.com>
953 * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
956 * verify.c (is_valid_branch_instruction): allow branching to the
957 first instruction of the protected block.
959 * verify.c (is_valid_cmp_branch_instruction): same.
961 * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
962 avoid double initialization.
964 * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
965 detect which cases the eval stack should just be copied.
967 * verify.c (mono_method_verify): check if the eval stack
968 is empty when entering a protected block.
970 2007-12-27 Rodrigo Kumpera <rkumpera@novell.com>
972 * verify.c: added is_clause_in_range, is_clause_inside_range,
973 is_clause_nested and verify_clause_relationship. They perform
974 the verifications stated in P1 12.4.2.7.
976 * verify.c (mono_method_verify): remove some unused variables,
977 add the new exception clause checks, add instruction border
978 checks for protected block start/end, improved some error
979 messages and fixed a bug in the way invalid instruction access
982 2007-12-26 Zoltan Varga <vargaz@gmail.com>
984 * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
985 from GC 7.0 if available.
987 * object.c: Remove an unused define.
989 * object.c (mono_class_compute_gc_descriptor): Fix a warning.
991 * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
993 * null-gc.c (mono_gc_make_descr_for_array): Implement.
995 * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
997 * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
998 to take the same arguments as the other make_descr functions.
1000 * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
1002 * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
1005 * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
1008 * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc ()
1011 * boehm-gc.c (mono_gc_register_root): Fix a warning.
1013 * null-gc.c (mono_gc_register_root): Fix a warning.
1015 * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
1017 * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
1018 (mono_gc_base_init): Call GC_init ().
1020 * null-gc.c: Define mono_gc_register_root () as a no-op.
1022 * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
1024 2007-12-24 Rodrigo Kumpera <rkumpera@novell.com>
1026 * verify.c: add prototype for merge_stacks at top
1028 * verify.c (do_switch): added.
1030 * verify.c (merge_stacks): on some cases the stack merging
1031 was not happening properly. Unequal stack sizes at merge
1032 points should be invalid.
1034 * verify.c (mono_method_verify): added more debug info on stack state.
1035 verify switch properly.
1037 2007-12-24 Zoltan Varga <vargaz@gmail.com>
1039 * method-builder.h: New file, moved the mono_mb_ declarations here from
1042 * boehm-gc.c marshal.c: Include method-builder.h.
1044 * marshal.c: Use mono_mb_emit_branch_label () in a few places.
1046 * marshal.c: Remove some code which is now in method-builder.c.
1048 2007-12-23 Zoltan Varga <vargaz@gmail.com>
1050 * method-builder.c: New file, extraction of the method builder functionality
1053 * marshal.c: Move the mb functions into method-builder.c.
1055 * marshal.h marshal.c: Export some mono_mb_... functions.
1057 * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
1059 * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
1062 * class.c (mono_class_get_full): Check the token type in the dynamic case.
1064 * loader.c (mono_field_from_token): Ditto.
1066 * loader.c (mono_get_method_from_token): Change the check so it checks memberref
1069 * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
1072 * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
1073 a helper function for setting it.
1075 * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
1078 * assembly.c: Significally simplify code now that referenced assemblies are
1079 loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
1081 * threads.h: Don't include the internal threads-types.h header file. Fixes
1084 2007-12-21 Rodrigo Kumpera <rkumpera@novell.com>
1086 * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
1087 instructions that were target of branches or are at protected block boundaries.
1089 * verify.c (in_same_block): handle filter clauses.
1091 * verify.c (is_valid_branch_instruction): added. checks the target of
1092 instructions br or brtrue/false.
1094 * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
1095 binary branch instructions such as beq and bge.
1097 * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
1098 and made it pin the instruction as been part of the exception block.
1100 * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
1103 * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
1106 * verify.c (do_ret): ret from a protected block is unverifiable and
1109 * verify.c (do_static_branch): verify br and br.s instructions.
1111 * verify.c (merge_stacks): add extra param to support detection
1112 of branches in the middle of instructions.
1114 * verify.c (mono_method_verify): verify branches and exception blocks
1115 that target the middle of instructions. Proper verification of br and br.s.
1117 2007-12-21 Zoltan Varga <vargaz@gmail.com>
1119 * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
1120 skip_visibility field.
1121 (reflection_methodbuilder_from_dynamic_method): Ditto.
1123 * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
1124 registrations. Fixes #348193.
1126 * threads.h: Move the internal mono_thread_get_pending_exception () to
1127 threads-types.h and rename it to mono_thread_get_undeniable_exception ().
1129 2007-12-20 Zoltan Varga <vargaz@gmail.com>
1131 * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
1132 icall registration. Fixes #348193.
1134 * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
1135 for corlib classes into object. Fixes #349621.
1137 2007-12-20 Gert Driesen <drieseng@users.sourceforge.net>
1139 * icall.c (property_accessor_nonpublic): new function to determine
1140 whether an accessor allows a property to be considered non-public.
1141 Returns false for private accessor(s) from parent class, and internal
1142 accessor(s) from parent on 2.0 profile (and higher).
1143 (ves_icall_Type_GetPropertiesByName): Use newly introduced function
1144 to determine whether property should be included if NonPublic flag
1145 is set. Fixes bug #349078.
1147 2007-12-20 Rodrigo Kumpera <rkumpera@novell.com>
1149 * verify.c (init_stack_with_value): added.
1151 * verify.c (mono_method_verify): extracted common
1152 code for exception initialization into init_stack_with_value.
1154 * verify.c (mono_method_verify): initialize the exception
1155 for handler clauses as well.
1157 * verify.c (mono_method_verify): fix the exception clause
1158 ordering rules, it should use handler end offset and not
1161 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
1163 * rawbuffer.c: remove useless warning.
1165 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
1167 * threads.h, threads-types.h: move functions to the correct header
1170 2007-12-19 Rodrigo Kumpera <rkumpera@novell.com>
1172 * verify.c (mono_method_verify): proper verification
1173 of exception handling clauses ranges and fallthru in
1174 and out of protected blocks.
1176 2007-12-19 Rodrigo Kumpera <rkumpera@novell.com>
1178 * verify.c (mono_method_verify): fixed compilation issue.
1180 2007-12-19 Rodrigo Kumpera <rkumpera@novell.com>
1182 * verify.c (mono_method_verify): a printf slipped in, changed
1183 to use verifier debug macro.
1185 2007-12-18 Rodrigo Kumpera <rkumpera@novell.com>
1187 * verify.c (is_correct_leave): check for filter clauses.
1189 * verify.c (do_filter): added.
1191 * verify.c (mono_method_verify): property verification of leave.
1194 2007-12-18 Mark Probst <mark.probst@gmail.com>
1196 * threads.c: Disable calls to _wapi_thread_signal_self() to fix
1197 Win32 build, until we figure out how to do the proper thing on
1200 2007-12-17 Zoltan Varga <vargaz@gmail.com>
1202 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
1203 by the previous patch.
1205 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
1206 the assembly resolve handler for refonly assemblies.
1208 2007-12-17 Mark Probst <mark.probst@gmail.com>
1210 * threads.c, thread-types.h, icall.c: New shutdown safeguards.
1211 Make sure only one thread is allowed to commence shutdown, and
1212 don't allow new threads to be started once shutdown is in
1215 2007-12-14 Rodrigo Kumpera <rkumpera@novell.com>
1217 * verify.c (is_correct_endfilter): added.
1219 * verify.c (is_unverifiable_endfilter): added.
1221 * verify.c (do_endfilter): added.
1223 * verify.c (mono_method_verify): property verification of endfilter
1224 and fixed a corner case or endfinally.
1226 2007-12-13 Rodrigo Kumpera <rkumpera@novell.com>
1228 * verify.h: new flags to support fail fast of unverifiable code and
1229 do non-strict verification. Non-strict verification is required to
1230 have MS runtime compatibility. There are a huge amount of unverifiable
1231 code that it accepts as verifiable. The strict mode verifies the code
1233 Non-strict mode will be required in cases where code needs to be
1234 accepted as verifiable but fails under strict mode.
1236 * pedump.c: added support to fail fast and non-strict verification.
1238 * verify.c: added support for both fail fast and non-strict verification.
1240 2007-12-12 Rodrigo Kumpera <rkumpera@novell.com>
1242 * verify.c (is_correct_endfinally): added.
1244 * verify.c (mono_method_verify): property verification of endfinally.
1246 2007-12-11 Rodrigo Kumpera <rkumpera@novell.com>
1248 * verify.c (in_any_block): check for filter clauses.
1250 * verify.c (is_correct_rethrow): added.
1252 * verify.c (mono_method_verify): property verification of rethrow.
1254 * metadata.h: added MONO_OFFSET_IN_FILTER macro.
1256 2007-12-11 Rodrigo Kumpera <rkumpera@novell.com>
1258 * verify.c (do_throw): added.
1260 * verify.c (mono_method_verify): property verification of throw
1262 2007-12-11 Zoltan Varga <vargaz@gmail.com>
1264 * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
1265 assemblies. Fixes #346425.
1267 2007-12-10 Zoltan Varga <vargaz@gmail.com>
1269 * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
1272 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
1274 * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
1275 prevent asserts when this is called with a token which might not be valid.
1277 * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
1278 lookup_dynamic_token_class with valid_token == FALSE.
1280 * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
1282 * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
1284 * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1286 2007-12-10 Mark Probst <mark.probst@gmail.com>
1288 * gc.c: Don't delay threadpool thread finalization unless Mono is
1291 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1293 * threads.c: turn an assert into a non-fatal warning.
1295 2007-12-09 Robert Jordan <robertj@gmx.net>
1297 * icall.c (GetVirtualMethod): Add missing argument validation.
1299 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
1301 * verify.c (do_cast): added.
1303 * verify.c (mono_method_verify): property verification of castclass and isinst.
1306 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
1308 * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
1310 * verify.c (do_stelem): added.
1312 * verify.c (mono_method_verify): property verification of stelem.X.
1314 2007-12-07 Mark Probst <mark.probst@gmail.com>
1316 * class.c, class-internals.h: Introduce an environment variable
1317 (MONO_GENERIC_SHARING) through which the extent of generic code
1318 sharing can be controlled (share all classes, share only corlib
1319 classes, or share nothing).
1321 * object.c: Only create runtime generic context for classes for
1322 which sharing is enabled.
1324 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
1326 * verify.c (do_ldelem): refactor it to work with ldelem.any.
1328 * verify.c (mono_method_verify): property verification of ldelem.any.
1330 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
1332 * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
1333 added ldelem.X opcodes.
1335 * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
1337 * verify.c: proper verification of ldelem.X
1339 2007-12-06 Zoltan Varga <vargaz@gmail.com>
1341 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
1343 2007-12-05 Rodrigo Kumpera <rkumpera@novell.com>
1345 * verify.c (mono_method_verify): null literal requires special handling,
1346 the value pushed on stack need to be flagged as so.
1348 * verify.c (do_ldelema): Verify ldelema properly.
1350 2007-12-05 Rodrigo Kumpera <rkumpera@novell.com>
1352 * verify.c: Verify ldlen properly.
1354 2007-12-05 Zoltan Varga <vargaz@gmail.com>
1356 * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
1357 to the target object's type. Fixes #346160.
1359 2007-12-05 Dick Porter <dick@ximian.com>
1361 * threadpool.c (socket_io_add_poll): Asynchronous connect() on
1362 Solaris needs the same workaround as BSD-derived systems. Fixes
1363 bug 323524, patch by Burkhard Linke
1364 <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
1366 2007-12-04 Gert Driesen <drieseng@users.sourceforge.net>
1368 * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
1369 handle to use when error dialog is shown; otherwise, update mask
1370 to show no error dialog when an error occurs.
1372 2007-12-03 Zoltan Varga <vargaz@gmail.com>
1374 * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
1376 * class.c (mono_class_get_field_default_value): New helper function to initialize
1377 field->def_type and field->data.
1379 2007-11-30 Zoltan Varga <vargaz@gmail.com>
1381 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
1384 * object.c (mono_runtime_create_delegate_trampoline): New helper function.
1386 * marshal.c: Avoid depending on delegate->method_info being set.
1388 * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
1390 * object.c (mono_delegate_ctor): Set delegate->method.
1392 * object-internals.h (struct _MonoDelegate): Add 'method' field.
1394 * appdomain.c: Bump corlib version.
1396 2007-11-27 Raja R Harinath <harinath@gmail.com>
1398 * metadata.c (mono_generic_inst_equal_full): Short-circuit
1399 equality check if we're comparing canonicalized MonoGenericInsts.
1401 2007-11-23 Zoltan Varga <vargaz@gmail.com>
1403 * class.c (generic_array_methods): Call mono_class_setup_methods () before
1404 accessing class->methods.
1406 2007-11-22 Dick Porter <dick@ximian.com>
1408 * threads.c: Ensure that the synch_cs is set before trying to use
1411 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
1413 * profiler.c: r89126 broke the statistial profiler, unbreak.
1415 2007-11-22 Martin Baulig <martin@ximian.com>
1417 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
1420 (mono_debug_debugger_version): Bump to 3.
1421 (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
1422 -> mono_debugger_class_initialized().
1424 * mono-debug-debugger.c
1425 (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
1428 (mono_debugger_start_class_init_func): Removed.
1429 (mono_debugger_class_loaded_methods_func): Added.
1430 (mono_class_setup_methods): Call it here.
1432 2007-11-22 Martin Baulig <martin@ximian.com>
1435 (mono_debug_add_delegate_trampoline): New public method.
1436 (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
1439 (MonoSymbolTable): Added `global_data_table'.
1440 (MonoDebuggerTypeKind): Removed.
1442 2007-11-21 Zoltan Varga <vargaz@gmail.com>
1444 * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
1447 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1449 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1451 * object.c: some fields don't have a valid rva: ignore them (bug #343083).
1453 2007-11-20 Martin Baulig <martin@ximian.com>
1455 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
1457 * mono-debug-debugger.c
1458 (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
1459 (mono_debugger_remove_breakpoint): Likewise.
1460 (mono_debugger_check_breakpoints): Likewise.
1461 (mono_debugger_register_class_init_callback): New public method.
1462 (mono_debugger_remove_class_init_callback): Likewise.
1463 (mono_debugger_add_type): Likewise.
1465 * mono-debug-debugger.h
1466 (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
1468 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
1470 * class.c: more interface implementations needed for the
1471 array enumerator (fixes bug #341112).
1473 2007-11-18 Gert Driesen <drieseng@users.sourceforge.net>
1475 * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
1476 fix ParamName of ArgumentNullExceptions.
1478 2007-11-17 Miguel de Icaza <miguel@novell.com>
1480 * reflection.c (mono_reflection_encode_sighelper): Generate the
1481 modopts and modreqs. I have a useless test that crashes monodis,
1482 but that shows the code working.
1484 2007-11-17 Zoltan Varga <vargaz@gmail.com>
1486 * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
1487 (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
1489 2007-11-15 Dick Porter <dick@ximian.com>
1491 * threads.c (ves_icall_System_Threading_Thread_Join_internal):
1492 When joining a thread, it's the thread that's calling Join that
1493 gets WaitSleepJoin state not the target. Fixes the standalone
1494 test case in bug 334740, and hopefully the whole bug too.
1496 2007-11-15 Dick Porter <dick@ximian.com>
1498 * process.c: Read file version info from the files pointed at by
1499 process modules, not the current process. Fixes bug 315969.
1501 Use windows typedef names in some places to fix warnings on the
1504 2007-11-15 Mark Probst <mark.probst@gmail.com>
1506 * image.c, metadata-internals.h: Added a generic_class_cache hash
1507 to MonoImage for looking up generic classes when sharing generics.
1509 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1511 * sgen-gc.c: warning cleanups.
1513 2007-11-15 Zoltan Varga <vargaz@gmail.com>
1515 * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
1516 inherited properties.
1518 2007-11-14 Mark Probst <mark.probst@gmail.com>
1520 * object.c, class-internals.h: Added more information to the
1521 runtime generic context.
1523 2007-11-13 Zoltan Varga <vargaz@gmail.com>
1525 * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
1526 instead of just the target method. Generalize the abstract method handling to
1527 handle any non-static method.
1529 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1530 mono_marshal_get_delegate_invoke () signature change.
1532 2007-11-13 Mark Probst <mark.probst@gmail.com>
1534 * class.c, class-internals.h: Made
1535 mono_type_get_basic_type_from_generic () public. Fixed member
1536 access check for shared generics.
1538 * loader.c: Don't insert field into field cache if it's part of a
1539 non-inflated generic class.
1541 * domain.c, domain-internals.h: The generic sharing context is now
1542 part of the jit info data structure. Added two accessor
1545 2007-11-12 Zoltan Varga <vargaz@gmail.com>
1547 * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
1548 the array Get/Set/Address methods, since the JIT inlines them.
1550 * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
1552 * image.c (mono_image_close): Free runtime_invoke_direct_cache.
1553 (mono_image_init): Initialize runtime_invoke_direct_cache.
1555 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1556 mono_marshal_get_delegate_invoke signature change.
1558 * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
1559 an additional argument. Add support for invoking abstract methods.
1561 * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
1563 * image.c (mono_image_close): Free delegate_abstract_invoke_cache.
1565 2007-11-09 Mark Probst <mark.probst@gmail.com>
1567 * class.c: Do field layout for open generic classes as well.
1569 2007-11-09 Mark Probst <mark.probst@gmail.com>
1571 * gc.c, gc-internal.h: Don't finalize threadpool threads with
1572 other objects, because the threadpool is still around. Put them
1573 in a list instead and after finalizing all other objects in the
1574 root domain shut down the thread pool and then finalize the
1575 threads. Fixes bug #337383.
1577 * threads.c, thread-types.h: New mono_thread_create_internal()
1578 function for marking a thread with the threadpool flag before it
1579 started. Set synch_cs to NULL after freeing it.
1581 * threadpool.c: Mark threadpool threads before they start.
1583 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1585 * reflection.h, reflection.c: don't export random functions
1586 and lazy load dbnull and missing objects.
1588 2007-11-07 Jonathan Chambers <joncham@gmail.com>
1590 * class.c: Initialize COM types if COM interfaces
1591 are present (not just COM classes).
1593 Code is contributed under MIT/X11 license.
1595 2007-11-07 Massimiliano Mantione <massi@ximian.com>
1597 create_dynamic_mono_image: hook module profiler events (dynamic case).
1598 mono_image_basic_init: hook assembly profiler events (dynamic case).
1600 2007-11-07 Massimiliano Mantione <massi@ximian.com>
1602 simple_appdomain_unload: completely terminate the profiler
1603 instead of only processing the statistical samples.
1604 simple_shutdown: make sure this is really called exactly once,
1605 even in multithreaded applications, and always listen to
1607 * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
1608 here, the "[un]load" functions will do it.
1609 Fixes bugs #333791 and #325261.
1611 2007-11-07 Geoff Norton <gnorton@novell.com>
1613 * socket-io.c: Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
1614 rather than depend on __APPLE__.
1616 2007-11-07 Mark Probst <mark.probst@gmail.com>
1618 * icall.c: Safety checks in InitializeArray. Fixes bug #324535.
1620 2007-11-06 Sebastien Pouliot <sebastien@ximian.com>
1622 * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
1623 UTF16 MonoString. Fix the crash from bug #335488
1625 2007-11-06 Sebastien Pouliot <sebastien@ximian.com>
1627 * marshal.c: Correct (for non-Win32 OS) length != size in
1628 mono_string_from_bstr. Fix #339530.
1630 2007-11-06 Geoff Norton <gnorton@novell.com>
1632 * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
1635 2007-11-05 Kornél Pál <kornelpal@gmail.com>
1637 * process.c: Added run-time GetProcessId API detection for Windows.
1639 2007-11-04 Miguel de Icaza <miguel@novell.com>
1641 * reflection.c (mono_param_get_objects): If a parameter has the
1642 attribute [System.Runtime.InteropServices.Optional] we should
1643 set the DefaultValue of the ParameterInfo to be
1644 System.Reflection.Missing instead of DBNull.
1648 (mono_get_reflection_missing_object): New method,
1649 returns the System.Reflection.Missing.Value singleton instance.
1651 2007-11-03 Atsushi Enomoto <atsushi@ximian.com>
1653 * culture-info-table.h : regenerated.
1655 2007-11-02 Jonathan Chambers <joncham@gmail.com>
1657 * icall.c: Use GetEnvironmentStrings on windows
1658 so we are using the same environment block as
1659 GetEnvironmentVariable/SetEnvironmentVariable. Fixes
1662 Code is contributed under MIT/X11 license.
1664 2007-10-31 Martin Baulig <martin@ximian.com>
1666 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
1668 * mono-debug-debugger.h
1669 (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
1671 2007-10-30 Zoltan Varga <vargaz@gmail.com>
1673 * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated
1676 2007-10-30 Atsushi Enomoto <atsushi@ximian.com>
1678 * culture-info-table.h : regenerated.
1680 2007-10-30 Robert Jordan <robertj@gmx.net>
1682 * icall-def.h, icall.c:
1683 Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
1685 Code is contributed under MIT/X11 license.
1687 2007-10-29 Zoltan Varga <vargaz@gmail.com>
1689 * class.c (mono_class_setup_vtable): Find the inflated methods in the
1690 inflated class instead of inflating them again.
1692 * class.c (mono_class_setup_vtable): Inflate the override methods in the
1695 * class.c (mono_generic_class_get_class): Set klass->property.count as well.
1696 Call setup_supertypes () after klass->parent is set.
1697 (mono_class_setup_properties): Enable this to work on dynamic generic classes.
1699 * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
1700 for inflated instances of not yet created dynamic generic classes.
1701 (ctorbuilder_to_mono_method): Handle the case when this is called multiple
1702 times from inflated_method.
1703 (methodbuilder_to_mono_method): Ditto.
1705 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1707 * gc.c: code cleanup and removed old untested option of not creating the
1710 2007-10-29 Zoltan Varga <vargaz@gmail.com>
1712 * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
1713 creating a jump trampoline for dynamic methods.
1715 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
1717 * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
1718 generic TypeBuilders when called from another method of the same type (bug #335131).
1721 2007-10-27 Zoltan Varga <vargaz@gmail.com>
1723 * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
1724 doesn't seem to work perfectly.
1726 * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
1727 called multiple times.
1728 (methodbuilder_to_mono_method): Ditto.
1729 (resolve_object): Inflate FieldBuilder's.
1731 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1733 * string-icalls.c, string-icalls.h, appdomain.c: patch from
1734 Tyler Larson <mono-devel@tlarson.com> to fix the handling of
1735 RemoveEmptyEntries in the string.Split implementation (bug #322375).
1737 2007-10-26 Dick Porter <dick@ximian.com>
1739 * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
1740 Thread initialisation changes
1742 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
1744 * verify.c: fix compatibility check between arrays and System.Array
1746 2007-10-26 Zoltan Varga <vargaz@gmail.com>
1748 * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
1751 2007-10-25 Zoltan Varga <vargaz@gmail.com>
1753 * object.c (mono_value_box): Use typed allocation here.
1755 2007-10-23 Zoltan Varga <vargaz@gmail.com>
1757 * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
1758 trampoline instead of compiling the method right away.
1760 * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
1762 2007-10-21 Zoltan Varga <vargaz@gmail.com>
1764 * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
1765 related fields for dynamic classes. Fixes #334493.
1767 2007-10-20 Zoltan Varga <vargaz@gmail.com>
1769 * class.c (mono_generic_class_get_class): Set klass->field.count as well.
1771 * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
1773 * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
1774 (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
1776 * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
1778 * reflection.c (create_generic_typespec): Initialize klass->generic_container
1780 (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
1782 2007-10-18 Jonathan Chambers <joncham@gmail.com>
1784 * marshal.c: Use correct key when removing item
1787 Code is contributed under MIT/X11 license.
1789 2007-10-17 William Holmes <billholmes54@gmail.com>
1791 *marshal.c: Adding a case to marshal booleans to U1
1793 Code is contributed under MIT/X11 license.
1795 2007-10-18 Zoltan Varga <vargaz@gmail.com>
1797 * class.c (mono_class_from_name): Search the modules compromising dynamic
1798 assemblies. Fixes #331601.
1800 2007-10-16 Zoltan Varga <vargaz@gmail.com>
1802 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
1803 exception if the type name contains an assembly component. Fixes #334203.
1805 * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
1806 modules inside dynamic assemblies. Fixes #334200.
1808 * reflection.c: Set image->public_key and image->public_key_length;
1810 * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
1813 * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.
1815 2007-10-16 Mark Probst <mark.probst@gmail.com>
1817 * metadata.c: Implemented correct comparing of generic classes.
1818 An inflated generic class can be equal to a non-inflated one if it
1819 is inflated with generic type variables as type arguments. Fixes
1822 2007-10-15 Dick Porter <dick@ximian.com>
1824 * monitor.c (mono_monitor_try_enter_internal): Set thread state to
1825 WaitSleepJoin while it is waiting to acquire a lock. Fixes bug
1828 * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
1829 instead of a monitor lock. This means that monitor_try_enter and
1830 co can set the thread state safely.
1831 (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
1832 thread_interrupt_requested, so interrupt actually works.
1834 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
1835 ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
1836 state accessor function
1838 2007-10-15 Martin Baulig <martin@ximian.com>
1841 (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
1842 the debugger with the current runtime.
1844 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
1846 * object.c, object-internals.h: added the ability to set a single
1847 trampoline for all the slots in a vtable.
1849 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1851 * marshal.c: deal with a possible race condition during multicast
1852 delegate invocation.
1854 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1856 * class.c: ensure value type methods don't have the synchronized
1859 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
1861 * string-icalls.c, string-icalls.h: reverted unapproved patch that
1864 2007-10-11 Joel Reed <joelwreed@comcast.com>
1866 * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
1867 to take an options parameter so that empty entries can be removed during
1868 the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
1870 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
1872 * marshal.c: make sure we don't store the signature from a dynamic
1873 method into the runtime invoke cache (bug #327189).
1875 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1877 * marshal.c: make sure the wrapper methods are properly initialized.
1879 2007-10-11 Mark Probst <mark.probst@gmail.com>
1881 * metadata.c, metadata-internals.h: Generalized
1882 mono_type_stack_size() to mono_type_stack_size_internal() which
1883 takes an additional argument specifying whether it allows open
1886 2007-10-10 Rodrigo Kumpera <rkumpera@novell.com>
1888 * verify.c (do_invoke_method): handle typedbyref params
1889 correctly and check for unverifiable return values.
1891 * verify.c (do_newobj): fix a warning.
1893 2007-10-09 Rodrigo Kumpera <rkumpera@novell.com>
1895 * verify.c: don't tread typedbyref as allways unverifable,
1896 so uses, like (ld/st)loc.0 are valid. verify for the cases
1897 that it matters, like boxing related operations.
1899 2007-10-09 Rodrigo Kumpera <rkumpera@novell.com>
1901 * verify.c: add verification of the newobj opcode. verification
1902 of delegate instantation still missing due ldftn and virldftn not
1903 pushing the function type on stack
1905 2007-10-08 Mark Probst <mark.probst@gmail.com>
1907 * class-internals.h: Runtime generic context data structure
1910 * object.c: Initialization of runtime generic context at runtime
1911 vtable creation time.
1913 2007-10-08 Massimiliano Mantione <massi@ximian.com>
1914 * class.c (mono_class_create_from_typedef,
1915 mono_class_from_generic_parameter, mono_ptr_class_get,
1916 mono_fnptr_class_get, mono_bounded_array_class_get)
1917 * domain.c (mono_domain_create, mono_domain_free)
1918 * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
1919 * image.c (do_mono_image_load, mono_image_close):
1920 Hooked up load-unload profiler events.
1922 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
1924 * domain.c: track statistics about the actual amount of native code
1927 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
1929 * class.c: the valuetype enumerators don't have the additional
1930 supertypes interfaces.
1932 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1934 * class.c: need more interfaces setup for the IEnumerator<T>
1935 object created for arrays (tests/ienumerator-interfaces.2.cs).
1937 2007-10-05 Zoltan Varga <vargaz@gmail.com>
1939 * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
1941 2007-10-05 Alp Toker <alp@atoker.com>
1943 * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1944 rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1947 2007-10-04 Rodrigo Kumpera <rkumpera@novell.com>
1949 * verify.c (verify_type_compatibility_full): verification of
1950 compatibility improved, validates correctly non-strict checks between
1951 native int and I4 types different than (unsigned)int32.
1953 * verify.c (do_store_indirect): added, do all verification of
1956 * verify.c (get_load_indirect_mono_type): renamed to
1957 get_indirect_op_mono_type, as it now returns the MonoType for
1958 ldind.X and stind.X opcodes.
1960 2007-10-04 Rodrigo Kumpera <rkumpera@novell.com>
1962 * reflection.c: Fix the encoding of generic type definition for
1965 * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
1966 mono_image_typedef_or_ref but allows to specify if typespec lookups should
1967 be made. Typespec check is done prior to typeref cache lookup.
1969 * reflection.c (mono_image_typedef_or_ref): now just delegate to
1970 mono_image_typedef_or_ref_full.
1972 * reflection.c (encode_generic_class): encode the generic class
1973 directly instead of calling encode_type.
1975 * reflection.c (encode_type): encode the generic type definition
1976 MonoClass as a generic instantiation.
1978 * reflection.c (create_typespec): cache typespec tokens in
1979 the assembly->typespec cache. Don't create typespec for a generic
1980 instance MonoClass. Create typespec for the generic type defintion.
1982 * reflection.c (create_generic_typespec): encode the generic
1983 class directly instead of calling encode_type.
1985 * reflection.c (mono_image_create_token): encode the generic
1986 type definition not using a typespec for MonoType instances.
1989 2007-10-04 Raja R Harinath <rharinath@novell.com>
1992 * class.c (mono_image_init_name_cache): Don't return nested
1993 'protected internal' classes.
1994 (mono_class_from_name_case): Likewise.
1996 2007-10-04 Atsushi Enomoto <atsushi@ximian.com>
1998 * icall-def.h, icall.c : get_bundled_machine_config() is now the
1999 common function used by both DefaultConfig in System.dll and
2000 InternalConfigurationHost in System.Configuration.dll.
2002 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2004 * class.c: automatically add to vectors only a few essential explicit
2005 generic interfaces. The rest of the interfaces that arrays should
2006 provide are currently implicitly added (but still not lazily, see the
2007 design in the discussion of bug#325495 for the details of what is
2008 needed for that). Additionally, implicit interfaces are assigned the
2009 same vtable slot as the explicit interfaces (as they are compatible):
2010 this enables huge memory savings since we don't need to instantiate
2011 as many memthods and as large vtables anymore. Also, Since
2012 GetEnumerator<T> returns an instance of a type that is required to
2013 support a similarly large set of interfaces as arrays, we add
2014 implicit interfaces and interface offset sharing support to those
2015 types, too. This change adds all the required interfaces so that
2016 the anonarray.cs test case in the bug report works (we don't add
2017 all the interfaces to arrays of arrays 3-level deep and more because
2018 of the memory requirements explained in the bug and since they are much
2019 less common: the lazy-loading support will enabled them to work, too).
2021 2007-10-02 Rodrigo Kumpera <rkumpera@novell.com>
2023 * verify.c (merge_stacks): major clean up, all type compatibility
2024 checks are done by verify_type_compatibility. This fix my earlier lack
2025 of understanding of the CLR type system and merge_stacks no longer looks
2028 * verify.c: fixed some bad spelling.
2030 2007-10-02 Rodrigo Kumpera <rkumpera@novell.com>
2032 * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
2033 a given stack slock.
2035 * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
2036 verify_type_compatibility_full. This removed a near indentical function and fixed
2037 handling of Int32 and IntPtr across all opcodes.
2039 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2041 * class.c: only vectors have the additional generic interfaces.
2043 2007-10-01 Jonathan Chambers <joncham@gmail.com>
2045 * mono-config.c: Use g_strcasecmp instead of
2046 strcasecmp like everywhere else to fix
2047 compilation with MSVC.
2049 Code is contributed under MIT/X11 license.
2051 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2053 * object.c, object-internals.h: refactored the IMT code to enable
2054 building a single slot at a time and lazily creating the IMT trampolines
2057 2007-09-29 Zoltan Varga <vargaz@gmail.com>
2059 * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
2061 * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
2064 2007-09-29 Raja R Harinath <harinath@gmail.com>
2066 * loader.c (method_from_methodspec): Rearrange to avoid
2067 un-necessary exposition. Don't assert out if the method's
2068 declaring type is a generic type definition.
2070 2007-09-28 Martin Baulig <martin@ximian.com>
2072 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
2074 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
2076 * class-internals.h: optimize field layout of MonoClass to
2077 requires less cachelines at runtime and save a few bytes on 64 bit
2080 2007-09-28 Jb Evain <jbevain@novell.com>
2082 * reflection.c: when encoding type names in custom attributes,
2083 if the type is a closed generic type, its generic arguments
2084 have to be serialized as AssemblyQualifiedName, so that when
2085 they are deserialized, it's possible to re-create them properly.
2089 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2091 * object.c, class-internals.h: added delegate-creation counter.
2093 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
2095 * class.c: cleanup of the code that synthetizes interfaces for
2096 arrays in 2.0: saves quit a bit of corlib mempool memory.
2097 Code to fix bug #325495 ifdeffed out for now until the issues
2098 with memory usage and O(n^2) behaviour are fixed.
2100 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2102 * marshal.c: when possible, do not duplicate the name of the methods
2103 in the method builder and in the generated MonoMethod.
2105 2007-09-27 Rodrigo Kumpera <rkumpera@novell.com>
2106 * verify.c: added support for type checking ldind_* opcodes.
2108 2007-09-27 Rodrigo Kumpera <rkumpera@novell.com>
2110 * class-internals.h (struct _MonoGenericClass): new field is_tb_open
2111 which is used to distinguish the fully open instantiation of a TypeBuilder
2112 with the rest. This temporary hack is required to restore the property that
2113 the fully open instantiation is the same type of the generic type definition.
2115 * class-internals.h (mono_generic_class_is_generic_type_definition):
2116 new function as part of the internal API.
2118 * class.c (inflate_generic_type): return NULL when the generic inst is
2119 fully open. The fully open generic type is now the same as the generic type
2120 definition for non TypeBuilder types.
2122 * class.c (mono_generic_class_get_class): removed assert since it is
2123 no longer valid, gklass->cached_class can point to the generic type definition.
2125 * class.c (mono_generic_class_is_generic_type_definition): new.
2127 * metadata.c (mono_generic_class_hash): added is_tb_open field
2128 to the hash calculation.
2130 * metadata.c (free_generic_class): if the generic class is associated
2131 with the generic type definition, its field will come from the mempool and
2134 * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
2135 new, this function identifies the corner case of a TypeBuilder fully open
2138 * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
2139 for lookup. Set gclass->cached_class to be the container class in case of
2140 the fully open instantiation of non TypeBuilder types.
2142 * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
2143 to compare generic classes.
2145 * reflection.c (method_encode_methodspec): remove assert that
2148 * reflection.c (mono_reflection_generic_class_initialize): add
2149 an aditional assert to ensure the proper type is used.
2151 2007-09-26 Rodrigo Kumpera <rkumpera@novell.com>
2153 * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
2156 2007-09-25 Rodrigo Kumpera <rkumpera@novell.com>
2158 * verify.c (push_arg): Fixed support for ldarga
2159 * verify.c (set_stack_value): Removed superfluous parameter, fixed the
2160 MonoType used as first arg in case of instance calls.
2162 2007-09-25 Rodrigo Kumpera <rkumpera@novell.com>
2164 * verify.c: Support for verifying VAR and MVAR types,
2166 2007-09-25 Zoltan Varga <vargaz@gmail.com>
2168 * icall.c (ves_icall_get_property_info): Set the reflected type of the
2169 accessors correctly.
2171 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
2173 * threads.c: support OSX and other systems in
2174 mono_thread_get_stack_bounds (bug #328026).
2176 2007-09-25 Martin Baulig <martin@ximian.com>
2179 (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
2181 2007-09-24 Martin Baulig <martin@ximian.com>
2184 (MonoDebugClassEntry): Moved the definition of this struct into
2185 mono-debug.c to make it private.
2188 (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
2189 type table per symbol file, we don't need to store the symfile id
2192 2007-09-24 Martin Baulig <martin@ximian.com>
2194 Create one type table per symbol file, since a `MonoClass *' gets
2195 invalid when its image is unloaded.
2197 * mono-debug.h (MonoSymbolTable): Removed `type_table'.
2198 (MonoDebugHandle): Added `type_table'.
2200 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
2202 * mempool.c, mempool.h: added mono_mempool_new_size () API
2203 to be able to specify a smaller initial size for the pool.
2204 Adjusted the code to slowly increase pool size before using
2205 the previous default size.
2206 * image.c: use a small initial size for image mempools.
2208 2007-09-23 Zoltan Varga <vargaz@gmail.com>
2210 * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
2213 * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal):
2214 Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
2216 2007-09-22 Zoltan Varga <vargaz@gmail.com>
2218 * metadata.c (mono_type_create_from_typespec): Remove an invalid
2219 free. Fixes #327438.
2221 2007-09-21 Raja R Harinath <harinath@gmail.com>
2223 * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
2224 generic instantiations, etc.
2225 <MONO_TYPE_ARRAY>: Likewise.
2227 2007-09-21 Martin Baulig <martin@ximian.com>
2229 * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
2230 these structs were never defined.
2231 (MonoDebugHandle): Removed the `_priv' field, it was never used.
2233 2007-09-21 Martin Baulig <martin@ximian.com>
2235 * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
2237 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
2239 * image.c: removed the guid hash tables: we can get the same info
2240 without the additional memory usage hit (partially fixes also bug #327052).
2242 2007-09-10 Massimiliano Mantione <massi@ximian.com>
2244 * profiler.h, profiler-private.h, profiler.c: add a new profiler
2245 event to handle unloading methods. After the event is called, the
2246 corresponding MonoMethod* must be considered invalid.
2247 * loader.c (mono_free_method): call the new mono_profiler_method_free
2250 2007-09-20 Mark Probst <mark.probst@gmail.com>
2252 * domain-internals.h: New flag in MonoJitInfo which marks shared
2253 generic methods. New hash table (shared_generics_hash) in
2254 MonoDomain to keep track of shared generic methods. Prototypes
2255 for functions to register and lookup shared generic methods.
2257 * domain.c: Support for registering and looking up shared generic
2258 methods via a hash table (shared_generics_hash) in MonoDomain.
2260 * class-internals.h: New exception to signal failure of shared
2261 compilation of a generic method. New counters for generics
2262 sharing in MonoStats.
2264 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
2266 * image.c, metadata-internals.h: don't keep a file descriptor open
2267 for loaded assemblies (bug#325988).
2269 2007-09-19 Raja R Harinath <rharinath@novell.com>
2271 * metadata.c (signature_in_image): New. Carve out of type_in_image.
2272 (ginst_in_image, gclass_in_image): Simplify. Change signature to
2273 use the corresponding datatypes.
2274 (type_in_image): Update to changes.
2275 (CleanForImageUserData): Simplify.
2276 (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
2277 Avoid quadratic behaviour in handling the "stolen" list by
2278 separating the filter predicate out, and by prepending the stolen
2279 items rather than appending them.
2280 (steal_ginst_in_image): Likewise.
2281 (mono_metadata_clean_for_image): Update to changes.
2283 2007-09-19 Martin Baulig <martin@ximian.com>
2285 * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
2287 2007-09-19 Martin Baulig <martin@ximian.com>
2289 * mono-debug.c (mono_debug_cleanup): Don't call
2290 mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
2292 2007-09-19 Raja R Harinath <harinath@gmail.com>
2294 Fix crash on 'make run-test' in mcs/errors
2295 * metadata.c (type_in_image): New. Carve out of ginst_in_image.
2296 Avoid more potential allocations in mono_class_from_mono_type.
2297 (ginst_in_image): Update to changes.
2298 (gclass_in_image): Rearrange slightly.
2300 2007-09-18 Zoltan Varga <vargaz@gmail.com>
2302 * class.c (mono_class_init): Move the code that sets up class->methods to
2303 mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
2305 * metadata.c (mono_metadata_get_inflated_signature): New function to return a
2306 canonical instance of an inflated generic signature.
2307 (mono_type_create_from_typespec): Remove an invalid free.
2309 * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.
2311 2007-09-18 Marek Habersack <mhabersack@novell.com>
2313 * domain-internals.h: added a declaration of the
2314 mono_assembly_load_full_nosearch internal function.
2316 * assembly.c (mono_assembly_load_with_partial_name): use
2317 mono_try_assembly_resolve return value properly.
2318 (mono_assembly_load_full_nosearch): copied the function body from
2319 mono_assembly_load_full, without the code to invoke assembly
2321 (mono_assembly_load_full): calls the above new function and if the
2322 assembly is not resolved, invokes the search hooks.
2324 * appdomain.c (mono_runtime_init): restore the global postload
2325 assembly search handlers.
2327 2007-09-18 Zoltan Varga <vargaz@gmail.com>
2329 * class.c (mono_class_init): Make sure class->methods and class->properties
2330 are never NULL in the generics case.
2332 * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
2334 2007-09-17 Zoltan Varga <vargaz@gmail.com>
2336 * metadata.c (free_generic_class): Disable some code to fix the build.
2338 * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
2340 * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
2341 from the image mempool.
2343 * metadata.c (free_generic_class): Free more data from the inflated class.
2345 * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
2347 * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
2349 (mono_type_create_from_typespec): Ditto.
2351 * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
2352 MonoImage to the caller.
2353 (mono_init_internal): Save the opened image in a global variable.
2354 (mono_cleanup): Close the image opened in get_runtimes_from_exe.
2356 * reflection.c (resolve_object): Fix a leak.
2358 * metadata.c: Fix the freeing of data in the generics caches.
2360 * metadata.c (free_generic_inst): Comment this out to fix the build.
2361 (free_generic_class): Ditto.
2363 * metadata.c: Free cached generic methods, instantinations and classes when
2364 they are removed from the caches.
2365 (mono_metadata_free_type): Free the type itself.
2367 * class.c: Free the result of mono_class_inflate_generic_type () in a few
2370 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2372 * boehm-gc.c: restrict managed allocs to __thread supporting
2375 2007-09-16 Zoltan Varga <vargaz@gmail.com>
2377 * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
2378 (mono_generic_class_get_class): Fix a leak.
2380 * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
2381 mono_metadata_free_type ().
2382 (mono_metadata_inflate_generic_inst): Fix a leak.
2384 2007-09-14 Zoltan Varga <vargaz@gmail.com>
2386 * mono-debug.c (free_header_data): Fix a leak missed earlier.
2388 * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
2391 * mono-debug.c (mono_debug_close_image): Fix call to
2392 g_hash_table_remove ().
2394 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2396 * icall-def.h: redirect all the string ctor to the managed
2397 CreateString () methods.
2398 * string-icalls.c, string-icalls.h: removed dead code for string
2401 2007-09-14 Zoltan Varga <vargaz@gmail.com>
2403 * mono-debug.c: Fix memory leaks.
2405 2007-09-14 Jonathan Chambers <joncham@gmail.com>
2407 * threads-types.h: Implement mono_hazard_pointer_set and
2408 mono_hazard_pointer_clear macros using do/while(0) to fix
2409 compilation with MSVC.
2411 Code is contributed under MIT/X11 license.
2413 2007-09-14 Zoltan Varga <vargaz@gmail.com>
2415 * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
2416 -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
2418 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2420 * icall-def.h, string-icalls.c: get rid of old, no longer used, string
2423 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2425 * boehm-gc.c, gc-internal.h, object.c: allow strings to be
2426 managed-code allocated as well.
2428 2007-09-13 Zoltan Varga <vargaz@gmail.com>
2430 * class.c (mono_class_is_assignable_from): Add support for generic variance.
2432 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
2434 * boehm-gc.c: fixed the build after the AOT changes.
2436 2007-09-13 Zoltan Varga <vargaz@gmail.com>
2438 * wrapper-types.h: Add an ALLOC wrapper type.
2440 * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
2441 reference managed allocator methods.
2443 2007-09-12 Marek Safar <marek.safar@gmail.com>
2445 * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
2446 of Type array and not MonoType, a fix suggested by Hari.
2448 2007-09-12 Jonathan Chambers <joncham@gmail.com>
2450 * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
2451 and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
2453 Code is contributed under MIT/X11 license.
2455 2007-09-10 Massimiliano Mantione <massi@ximian.com>
2457 * domain.c, object.c, mono-config.c, object-internals.h: Fixed #82416.
2459 2007-09-12 Marek Habersack <mhabersack@novell.com>
2461 * image.c (do_mono_image_open): if assembly file fails to open and
2462 MONO_IOMAP is in effect, try to find the path in a
2463 case-insensitive way.
2465 * appdomain.c (mono_runtime_init): do not install postload hooks -
2466 tests show that MS.NET doesn't use anything of that sort to
2467 trigger the AppDomain.AssemblyResolve event.
2468 (mono_try_assembly_resolve): renamed from try_assembly_resolve and
2470 (mono_runtime_init): init portability helpers here.
2472 * assembly.c (mono_assembly_load_with_partial_name): if other
2473 attempts fail, trigger the AppDomain.AssemblyResolve event handler
2474 to resolve the assembly.
2476 * domain-internals.h: added mono_try_assembly_resolve and marked
2479 2007-09-11 Jb Evain <jbevain@novell.com>
2481 * object-internals.h (MonoReflectionDynamicMethod): add
2482 a `MonoReflectionType *owner` field. The owner is used
2484 (mono_reflection_create_dynamic_method): use the owner of the dynamic
2485 method as the class declaring the dynamic method.
2486 (reflection_methodbuilder_from_dynamic_method): copy the owner of the
2487 dynamic method to the declaring type of the methodbuilder.
2489 2007-09-11 Mark Probst <mark.probst@gmail.com>
2491 * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
2492 rules for calling methods via reflection.
2494 2007-09-11 Zoltan Varga <vargaz@gmail.com>
2496 * reflection.c (resolve_object): Add support for MonoGenericClass.
2499 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
2501 * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
2502 provide a managed method that does fast allocations without needing
2503 a managed->unmanaged transition. Boehm GC implementation currently
2504 enabled for ptrfree objects on sane architectures.
2506 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2508 * marshal.c, marshal.h: exported a couple of useful functions and
2509 added mono_mb_get_label () to easily handle backward branches.
2511 2007-09-10 Zoltan Varga <vargaz@gmail.com>
2513 * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
2515 2007-09-10 Massimiliano Mantione <massi@ximian.com>
2517 * loader.c (find_method): Fixed the regression introduced while
2520 2007-09-09 Zoltan Varga <vargaz@gmail.com>
2522 * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
2525 * class.c loader.c metadata.c object.c class-internals.h object-internals.h
2526 icall.c reflection.c: Pass a MonoGenericContext argument to
2527 mono_lookup_dynamic_token ().
2529 * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
2532 2007-09-09 Robert Jordan <robertj@gmx.net>
2534 * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
2535 for generic methods.
2537 * object.c (mono_object_get_virtual_method): Handle generic methods.
2540 Code is contributed under MIT/X11 license.
2542 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
2544 * image.c: fix locking in mono_image_load_file_for_image ().
2546 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
2548 * reflection.c, icall.c, icall-def.h: the methodinfos name field is
2549 used only as a cache: added an icall to fill it.
2551 2007-09-16 Rodrigo Kumpera <rkumpera@novell.com>
2553 * reflection.h: exposed mono_reflection_free_type_info
2554 * reflection.c (mono_reflection_get_type_internal): type_args is always freed
2555 since mono_reflection_bind_generic_parameters makes a copy of it.
2556 * reflection.c (free_type_info): subinfos should be freed.
2557 * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and
2559 * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
2560 replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
2561 this fixes #82695 and #81726.
2564 2007-09-03 Atsushi Enomoto <atsushi@ximian.com>
2566 * process.h, process.c: added support for user profile/info in
2567 ProcessStartInfo. For now only Windows works.
2569 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2571 * metadata.c: consider the generic arguments when comparing
2572 signatures (bug #82614).
2574 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2576 * cil-coff.h, image.c: updated assembly loader to cope with the
2577 PE32+ 64 bit file format.
2579 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2581 * assembly.c, class.c, domain.c, loader.c: remove useless
2582 inclusion of cil-coff.h.
2584 2007-08-29 Jonathan Chambers <joncham@gmail.com>
2586 * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
2587 if interface is marked with CoClassAttribute.
2589 Code is contributed under MIT/X11 license.
2591 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2593 * sgen-gc.c: ensure no object from the to space is copied again or finalized
2594 if it's seen twice in major collections.
2596 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2598 * sgen-gc.c: big objects are not copied to the gray area, but they
2599 need to be considered for scanning, too, if they are brought alive
2600 by an object ready for finalizations or a survived one.
2602 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2604 * sgen-gc.c: properly account the number of disappearing links when
2607 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2609 * sgen-gc.c: share the code to scan the registered roots between the
2610 different types of collections.
2612 2007-08-28 Zoltan Varga <vargaz@gmail.com>
2614 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
2616 2007-08-28 Zoltan Varga <vargaz@gmail.com>
2618 * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
2619 class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
2621 2007-08-28 Mark Probst <mark.probst@gmail.com>
2623 * security-manager.c (mono_security_manager_get_methods):
2624 LinkDemandSecurityException now has 2 arguments instead of 3.
2626 2007-08-27 Zoltan Varga <vargaz@gmail.com>
2628 * class.c (mono_class_layout_fields): Only do the struct alignment hack on
2629 platforms which need it.
2631 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2633 * sgen-gc.c: unregister thread data structures with a pthread_key_t
2636 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2638 * threads.c: free the thread static data on thread exit.
2640 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
2642 * class.c: walk the hierarchy to find the generic definition for
2643 a class (fixes runtime part of bug #82498).
2645 2007-08-24 Zoltan Varga <vargaz@gmail.com>
2647 * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
2650 * image.c (mono_image_close): Here. Hopefully fixes #82510.
2652 2007-08-24 Mark Probst <mark.probst@gmail.com>
2654 * monodiet.c (handle_cattrs): Fixed a custom attr leak.
2656 2007-08-24 Robert Jordan <robertj@gmx.net>
2658 * appdomain.c: don't perform the ':'->';' substitution on Win32.
2660 2007-08-24 Jb Evain <jbevain@novell.com>
2662 * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
2665 2007-08-24 Mark Probst <mark.probst@gmail.com>
2667 * threads.c: Make sure a thread gets cleaned up only once. Fixes
2670 2007-08-24 Zoltan Varga <vargaz@gmail.com>
2672 * assembly.c: Fix a warning.
2674 2007-08-23 Marek Habersack <mhabersack@novell.com>
2676 * appdomain.c: parse the <runtime> section looking for the probing
2677 element with the 'privatePath' attribute, which sets additional
2678 directories in which the runtime should look for assemblies.
2680 2007-08-23 Robert Jordan <robertj@gmx.net>
2682 * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
2685 2007-08-23 Martin Baulig <martin@ximian.com>
2687 * mono-debug.[ch]: Rename mono_debug_init_corlib() into
2688 _mono_debug_init_corlib() and remove it from the header file.
2690 2007-08-23 Martin Baulig <martin@ximian.com>
2692 * mono-debug-debugger.c
2693 (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
2694 don't notify the debugger about it.
2696 * mono-debug-debugger.h
2697 (MonoDebuggerEvent): Removed `THREAD_ABORT'.
2699 2007-08-23 Robert Jordan <robertj@gmx.net>
2701 * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
2702 Code is contributed under MIT/X11 license.
2704 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2706 * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
2708 2007-08-22 Martin Baulig <martin@ximian.com>
2710 * mono-debug.c: Store debugging info on a per-domain basis and
2711 free it on domain unload. Add support for unloading symbol files.
2714 (MonoDebugList): New typedef.
2716 - add `data_tables and `type_table'.
2717 - replace 'symbol_files' and `num_symbol_files' with a
2719 (mono_debug_data_table): Removed.
2720 (mono_debug_list_add): New public function.
2721 (mono_debug_list_remove): New public function.
2722 (mono_debug_init_1): Renamed into mono_debug_init_corlib().
2723 (mono_debug_init_2_memory): Renamed into
2724 mono_debug_open_image_from_memory().
2725 (mono_debug_close_image): New public function.
2726 (mono_debug_domain_create): Likewise.
2727 (mono_debug_domain_unload): Likewise.
2728 (MONO_DEBUGGER_VERSION): Bump to 60.
2730 * mono-debug-debugger.h
2731 (MonoDebuggerEvent):
2732 - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
2733 - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
2734 - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
2735 - rename `THREAD_CREATED' and `THREAD_EXITED' into
2736 `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
2737 - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
2739 (mono_debugger_add_symbol_file): Removed.
2740 (mono_debugger_add_type): Removed.
2741 (mono_debugger_lookup_type): Removed.
2742 (mono_debugger_lookup_assembly): Removed.
2745 (mono_domain_create): Call mono_debug_domain_create().
2746 (mono_init_internal): Call mono_debug_init_corlib().
2749 (mono_assembly_close): Call mono_debug_close_image().
2751 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
2753 * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
2756 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
2758 * sgen-gc.c: ensure section->pin_queue_end is initialized
2759 correctly when non pinning objects in the section have been found.
2761 2007-08-22 Marek Habersack <mhabersack@novell.com>
2763 * appdomain.c (set_domain_search_path): cope with PrivateBinPath
2764 containing a list of directories separated by ':'. MSDN docs say
2765 the directories should be separated with ';'. Part of a bugfix for
2768 2007-08-21 Rodrigo Kumpera <rkumpera@novell.com>
2770 * class.c (mono_type_retrieve_from_typespec) : fixed the return type
2771 it should MonoType and not MonoClass.
2773 2007-08-21 Atsushi Enomoto <atsushi@ximian.com>
2775 * culture-info-table.h : regenerated.
2777 2007-08-20 William Holmes <billholmes54@gmail.com>
2779 *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
2780 to call ReplaceFile Kernel32 on windows or in io-layer.
2781 *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
2782 *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
2783 as an internal call.
2785 Code is contributed under MIT/X11 license.
2787 2007-08-20 Jb Evain <jbevain@novell.com>
2789 * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
2790 and MONO_EXCEPTION_FIELD_ACCESS.
2792 * debug-helpers.[c|h]: new mono_field_full_name function.
2794 2007-08-20 Mark Probst <mark.probst@gmail.com>
2796 * class.c: Removed class_security_level() and moved it to
2797 security-core-clr.c.
2799 * security-core-clr.c, security-core-clr.h: class_security_level()
2800 is now public and renamed to mono_security_core_clr_class_level().
2801 It also looks for security attributes in the classes a class is
2804 2007-08-20 Mark Probst <mark.probst@gmail.com>
2806 * security-core-clr.c, security-core-clr.h: CoreCLR security
2809 * Makefile.am: Added security-core-clr.[ch].
2811 * security-manager.c, security-manager.h: Functions and enum for
2812 setting and getting the security mode.
2814 * class.c: CoreCLR security checks.
2816 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
2818 * icall-def.h, process.c, process.h: implemented icall to get
2819 user/system processor times.
2821 2007-08-17 Mark Probst <mark.probst@gmail.com>
2823 * domain.c, threads.c, class-internals.h, domain-internals.h: New
2824 reader-lock-free jit_info_table.
2826 2007-08-17 Zoltan Varga <vargaz@gmail.com>
2828 * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
2830 * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.
2832 * object-internals.h (MonoException): Add missing _data member.
2834 2007-08-08 Massimiliano Mantione <massi@ximian.com>
2836 * loader.c (find_method, find_method_in_class): Fixed bug #81466,
2837 checking that only methods with matching qname or fqname are picked
2838 from implemented interfaces.
2840 2007-08-16 Rodrigo Kumpera <rkumpera@novell.com>
2842 * verify.c (do_newarr):added, do type verification of
2843 newarr ops, push the right value on the eval stack.
2844 * verify.c (mono_method_verify): use do_newarr
2847 2007-08-16 Rodrigo Kumpera <rkumpera@novell.com>
2849 * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
2850 factored the common code into get_boxable_mono_type, which
2851 is now using mono_type_get_full, this fixed byref related tests.
2853 2007-08-16 Rodrigo Kumpera <rkumpera@novell.com>
2855 * class.c: added mono_type_get_full, this function has the same
2856 behavior of mono_class_get_full but the returned MonoType has
2857 all metadata of the associated token in case of a typespec token.
2858 * class.c: added mono_type_retrieve_from_typespec, used by
2859 mono_type_get_full to retrieve the token type.
2860 * class.c (mono_class_create_from_typespec): changed to use
2861 mono_type_retrieve_from_typespec.
2862 * class.c (mono_ldtoken): changed to use mono_type_get_full
2863 for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
2864 * class-internals.h: exported mono_type_get_full for internal use.
2866 2007-08-16 Jb Evain <jbevain@novell.com>
2868 * domain.c (supported_runtimes): add entry for
2869 the 'moonlight' runtime version.
2871 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
2873 * verify.c (mono_method_verify): small typo sliped in.
2875 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
2877 * verify.c (do_unbox_value): added, do type verification of
2879 * verify.c (mono_method_verify): use do_unbox_value
2882 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
2884 * verify.c (dump_stack_value): fixed typo, was printing string
2885 instead of object on stack.
2886 * verify.c (do_box_value): moved the byref check up as it leads
2887 to invalid code and should be done earlier.
2888 * verify.c: improved error messages for and ldobj
2890 2007-08-15 William Holmes <billholmes54@gmail.com>
2892 * marshal.c (emit_marshal_custom): Omit the call to
2893 marshal_native_to_managed when calling native to managed
2894 and the argument is specified as an out argument.
2896 Code is contributed under MIT/X11 license.
2898 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
2900 * verify.c: fixed the type checks for generics, function pointers and vectors.
2901 Added type verification for ldobj and ldtoken. The verifier
2902 would segfault if header or signature of a method contained references
2903 to non-existant types.
2905 2007-08-15 Jonathan Chambers <joncham@gmail.com>
2907 * marshal.c (cominterop_get_ccw): Patch from
2908 Bill Holmes to no walk up interface hierarchy.
2909 All parent methods should be present in the interface for COM.
2911 Code is contributed under MIT/X11 license.
2913 2007-08-15 Jonathan Chambers <joncham@gmail.com>
2915 * marshal.c (emit_marshal_com_interface): Patch from
2916 Bill Holmes to handle COM Interfaces as return values
2917 for native->managed calls.
2919 Code is contributed under MIT/X11 license.
2921 2007-08-14 Jonathan Chambers <joncham@gmail.com>
2923 * marshal.c (cominterop_get_idispatch_for_object): Implement
2924 for runtime callable wrappers.
2926 Code is contributed under MIT/X11 license.
2928 2007-08-13 Rodrigo Kumpera <rkumpera@novell.com>
2930 * pedump.c (main): changed from mono_init to mono_init_from_assembly
2931 so 2.0 types are accessible
2934 2007-08-13 Miguel de Icaza <miguel@novell.com>
2936 * domain.c (mono_init_internal): Call mono_assembly_load_friends
2937 once we load mscorlib. Due to the order in which we initialize,
2938 the mono_assembly_load_full routine that loads mscorlib did not
2939 load friends. We now load it once we load the
2940 mono_defaults.internals_visible_class class.
2942 * assembly.c: Expose the mono_load_friend_assemblies method.
2944 2007-08-11 Rodrigo Kumpera <rkumpera@novell.com>
2946 * verify.c: improved the handling of boxing, better
2947 type checking for unary ops and conversion. Fix bug
2948 regarding managed pointer compatibility checking
2950 2007-08-11 Zoltan Varga <vargaz@gmail.com>
2952 * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
2954 * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
2956 2007-08-09 Raja R Harinath <rharinath@novell.com>
2958 * reflection.c (dup_type): Remove.
2959 * class.c (dup_type): Remove.
2960 (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
2961 instead of the dodgy 'dup_type'.
2962 (inflate_generic_type): Likewise. Fix the VAR/MVAR cases to
2963 handle the case where 'dup_type' needed the second argument.
2965 2007-08-08 Zoltan Varga <vargaz@gmail.com>
2967 * domain.c: Fix a warning.
2969 2007-08-08 Massimiliano Mantione <massi@ximian.com>
2971 * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
2972 checking that methods with the same fqname are not overridden
2973 with a method from an ancestor.
2975 2007-08-07 Zoltan Varga <vargaz@gmail.com>
2977 * threads.c (free_thread_static_data_helper): Avoid a crash if
2978 thread->static_data is not yet set.
2980 2007-08-07 Jonathan Chambers <joncham@gmail.com>
2982 * marshal.c: Use correct image when emitting
2983 native wrapper for COM calls.
2985 Code is contributed under MIT/X11 license.
2987 2007-08-07 Atsushi Enomoto <atsushi@ximian.com>
2989 * icall-def.h, security.c, security.h :
2990 added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
2992 2007-08-07 Martin Baulig <martin@ximian.com>
2994 * mono-debug-debugger.h
2995 (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
2997 * domain.c (mono_domain_free): Call
2998 `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
3000 2007-08-06 Rodrigo Kumpera <rkumpera@novell.com>
3002 * verify.c (check_underflow, check_overflow): error message now returns IL offset
3003 * verify.c (in_same_block): code should test if either offset is inside the clauses
3004 * verify.c (mono_method_verify): push the exception into the eval stack of exception
3007 2007-08-03 Zoltan Varga <vargaz@gmail.com>
3009 * image.c (mono_image_close): Fix a leak.
3011 * object.c (mono_runtime_invoke_array): Avoid using alloca.
3013 * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.
3015 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
3017 * domain.c, threads.c, threads-types.h: fix memory retention issue
3018 with thread static variables not being cleared on domain unload.
3019 Reuse thread static slots after domain unload.
3021 2007-08-03 Zoltan Varga <vargaz@gmail.com>
3023 * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
3026 * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
3027 now done in mono_runtime_invoke_array.
3029 * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the
3030 receiver is a nullable type.
3032 * class.c (mono_class_is_assignable_from): Handle the case when klass is a
3035 2007-08-03 Jonathan Chambers <joncham@gmail.com>
3037 * marshal.c: Implement COM Objects as return type for
3038 managed->unmanaged calls. Added Release calls for COM Object
3039 out/return values in managed->unmanaged calls.
3041 Code is contributed under MIT/X11 license.
3043 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
3045 * threads.h, threads-type.h: move the hazard pointer declarations
3046 to the private header.
3048 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
3050 * file-io.c, appdomain.c: memory leak fixes.
3052 2007-08-02 Dick Porter <dick@ximian.com>
3055 (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
3056 SO_REUSEADDR setting into io-layer/sockets.c.
3058 2007-08-01 Zoltan Varga <vargaz@gmail.com>
3060 * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
3061 from Object when called on a generic parameter. Fixes #82211.
3063 2007-08-01 Dick Porter <dick@ximian.com>
3065 * file-io.c (convert_share): Test FileShare values bit-by-bit.
3066 Fixes bug 79250 yet again.
3068 2007-07-30 Martin Baulig <martin@ximian.com>
3070 Merged the `debugger-dublin' branch.
3073 (MonoDebugDataTable): New typedef.
3074 (MonoDebugMethodAddressList): New typedef.
3075 (MonoDebugWrapperData): Removed.
3076 (MonoDebugSymbolTable): Removed `current_data_table',
3077 `current_data_table_size', `current_data_table_offset'.
3078 (MonoDebugDataItemType): Moved into mono-debug.c.
3079 (MonoDebugMethodJitInfo): Remove `address'.
3080 (mono_debug_data_table): New global variable.
3081 (mono_debug_lookup_method_addresses): New public function.
3082 (mono_debug_find_method): Take a `MonoMethod *', not a
3083 `MonoDebugMethodInfo *'.
3085 * mono-debug.c: Drop support for the old symbol tables.
3087 2007-06-28 Martin Baulig <martin@ximian.com>
3089 * mono-debug.c (mono_debug_debugger_version): New public variable.
3091 2007-07-31 William Holmes <billholmes54@gmail.com>
3093 * metadata.c Changed mono_type_create_from_typespec to not insert
3094 the type into the hash map until after
3095 do_mono_metadata_parse_type has completed.
3097 Code is contributed under MIT/X11 license.
3099 2007-07-31 Zoltan Varga <vargaz@gmail.com>
3101 * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
3102 generic parameter. Fixes #82211.
3104 2007-07-27 Jb Evain <jbevain@novell.com>
3106 * pedump.c (dump_metadata, dump_metadata_header): dump
3107 versions contained in the metadata header.
3109 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3111 * threads.c: register small_id_table with the GC.
3113 2007-07-27 Mark Probst <mark.probst@gmail.com>
3115 * threads.c, threads.h, class-internals.h, object-internals.h:
3116 Hazard pointers, to be used by lock-free parallel algorithms.
3118 2007-07-26 Dick Porter <dick@ximian.com>
3120 * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
3121 routine on non-windows platforms, as I've not managed to think of
3122 a non-kludgy way of doing this. Finishes off bug 78739.
3124 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
3126 * object.c: properly setup interface_bitmap in proxy vtables.
3128 2007-07-25 Marek Habersack <mhabersack@novell.com>
3130 * appdomain.c (get_shadow_assembly_location): do not use TickCount
3131 to create unique shadow copy target directories, use the domain's
3132 serial number instead. Each domain gets a unique target directory
3135 * domain.c (mono_domain_create): added code to increment domain
3136 shadow copy serial number and cache the value in the current
3139 * domain-internals.h (struct _MonoDomain): added a new field -
3140 shadow_serial to hold the serial number used in generation of
3141 shadow-copy directories. This is to make sure that the directory
3142 name is unique for each and every domain created. We avoid a race
3143 condition with overriding assemblies already in use by other app
3146 2007-07-24 Rodrigo Kumpera <rkumpera@novell.com>
3148 * class.c (mono_bounded_array_class_get): fixed memory leak when
3149 binding generic parameters.
3151 2007-07-24 Raja R Harinath <rharinath@novell.com>
3153 * metadata.c (do_mono_metadata_parse_generic_class): Use
3154 mono_metadata_lookup_generic_class. Don't g_assert on a metadata
3157 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
3159 * loader.c, class-internals.h, reflection.c: removed the per-method
3160 generics hashtable: we use the global one through the call of
3161 mono_class_inflate_generic_method ().
3163 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
3165 * class.c, metadata.c, class-internals.h: introduce yet another
3166 generics global cache for inflated methods (fixes 98% of the perf
3167 issue in bug #81806).
3169 2007-07-23 Raja R Harinath <rharinath@novell.com>
3171 Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
3172 * metadata.c (mono_metadata_lookup_generic_inst): Kill.
3173 (mono_metadata_get_generic_inst): New. Given a list of MonoType*,
3174 return a MonoGenericInst containing (a copy) of those types.
3175 (mono_metadata_inflate_generic_inst): Update to changes.
3176 (mono_metadata_parse_generic_inst): Likewise.
3177 (mono_get_shared_generic_inst): Likewise.
3178 * reflection.c (mono_class_bind_generic_parameters): Likewise.
3179 (mono_reflection_bind_generic_method_parameters): Likewise.
3180 * metadata-internals.h: Likewise.
3181 * icall.c (free_generic_context): Kill.
3182 (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
3184 * reflection.c (reflection_methodbuilder_to_mono_method): Use
3185 mono_metadata_type_dup.
3186 * marshal.c (mono_mb_create_method): Likewise.
3188 * metadata.c (mono_metadata_type_dup): Rename from
3189 mono_metadata_type_dup_mp. Take an optional mempool instead of a
3190 MonoImage. Handle a few more cases, esp. when no mempool is given.
3191 * marshal.c, metadata-internals.h: Update to changes.
3193 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3195 * class.c: fixed a small leak for array classes and removed warning.
3197 2007-07-22 Zoltan Varga <vargaz@gmail.com>
3199 * loader.c (mono_method_get_param_token): Make this work on generic methods.
3200 Return 0x8000000 for return parameters. Fixes #82161.
3202 2007-07-21 Marek Habersack <grendello@gmail.com>
3204 * appdomain.c (get_shadow_assembly_location): append the current
3205 ticks value to the path. Avoids overwriting the same assemblies by
3206 several threads at the same time.
3208 2007-07-20 Atsushi Enomoto <atsushi@ximian.com>
3209 and Raja R Harinath <rharinath@novell.com>
3211 * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3213 (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
3214 property for testing if a method is a generic method definition.
3216 2007-07-20 Atsushi Enomoto <atsushi@ximian.com>
3218 * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
3220 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3222 * verify.c: used function from private branch, reverted to the one in class.h
3224 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3226 * verify.c: a typo slipped in and the code wont compile
3228 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3230 * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
3231 disabled box instruction as it is doing the wrong thing
3232 improved stack dump messages, now it is easier to debug type related issues
3235 2007-07-19 Juraj Skripsky <js@hotfeet.ch>
3237 * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak.
3239 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3241 * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from
3242 TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
3243 grouped with class and valuetype. This change will simply
3244 the code as it should be handled just like unmanaged pointers.
3246 2007-07-19 Mark Probst <mark.probst@gmail.com>
3248 * class.c (concat_two_strings_with_zero): Fixed a silly bug.
3250 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3252 * verify.c: several stack merge issues fixed, reference comparisons now
3253 check the type size. strict type check now works correctly.
3254 added more uses of IS_MANAGED_POINTER macro.
3255 fixed issues pointed by running the test suite against .net.
3258 2007-07-19 Mark Probst <mark.probst@gmail.com>
3260 * class.c, loader.c, class-internals.h: Removed the
3261 MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
3264 * icall.c: Better error checking in some internal reflection
3267 2007-07-18 William Holmes <billholmes54@gmail.com>
3269 * filewatcher.c : removed unused variable 'filename' in
3270 ves_icall_System_IO_FSW_SupportsFSW
3272 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
3274 * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
3277 2007-07-15 Zoltan Varga <vargaz@gmail.com>
3279 * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
3281 * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
3283 2007-07-14 Zoltan Varga <vargaz@gmail.com>
3285 * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken):
3286 Implement generics support.
3287 (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3289 * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
3290 type_args and method_args arguments.
3291 (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
3292 (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3293 (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
3295 2007-07-13 Rodrigo Kumpera <rkumpera@novell.com>
3297 * reflection.c: patch from Thong Nguyen to fix atribute resolution.
3298 It adds a rootimage parameter to mono_reflection_get_type_internal,
3299 adds new function mono_reflection_get_type_with_rootimage and use
3300 the rootimage to resolve the types instead of the current image
3302 2007-07-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
3304 * culture-info-table.h: Forgot to update after r78304.
3306 2007-07-13 Raja R Harinath <rharinath@novell.com>
3308 * class.c (mono_class_is_open_constructed_type)
3309 <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
3311 2007-07-12 Rodrigo Kumpera <rkumpera@novell.com>
3313 * class.c (mono_bounded_array_class_get): method fails if used with
3314 an incomplete TypeBuilder enum (no basetype field), fixed it by
3315 avoiding calculating the size for such array as it cannot be instantiated.
3318 2007-07-12 Raja R Harinath <rharinath@novell.com>
3320 * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
3322 * metadata.c, reflection.c: Update to changes.
3324 2007-07-11 Rodrigo Kumpera <rkumpera@novell.com>
3326 * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
3327 mono_class_is_valid_enum, they are used to valide a enum when loading.
3328 * reflection.c: used new functions to throw TypeLoadException when and
3329 invalid enum is build with TypeBuilder. Fixes #82018
3331 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
3333 * object.c: forgot commit of mono_class_setup_methods () to access
3335 * object-internals.h: added a few more handy fields to
3338 2007-07-11 Zoltan Varga <vargaz@gmail.com>
3340 * object.c (build_imt): Call mono_class_setup_methods () before accessing
3343 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
3345 * class-internals.h, object-internals.h, object.c: IMT-based
3346 interface invocation core from Massimiliano Mantione
3347 (massi@ximian.com) with a reworked arch-specific interface,
3348 bsearch implementation and a few bugfixes and memory savings by me.
3350 2007-07-10 Rodrigo Kumpera <rkumpera@novell.com>
3352 * class.c (mono_class_create_from_typedef): mono would segfault if
3353 an enum did not have a __value field. It now throws a TypeLoadException
3354 for such cases. Fix bug #82022
3356 2007-07-10 Zoltan Varga <vargaz@gmail.com>
3358 * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
3360 2007-07-09 Mark Probst <mark.probst@gmail.com>
3362 * class.c (mono_class_init): If a class is already inited but has
3363 an exception_type set, return FALSE, not TRUE. Fixes: 82050.
3365 2007-07-09 Mark Probst <mark.probst@gmail.com>
3367 * class.c: Properly handle the case of an unimplemented interface
3368 method. Fixes: 81673.
3370 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
3372 * class-internals.h, object.c: cleanup patch from massi: use
3373 MonoVTable->interface_bitmap since the vtable interfaces offset array
3376 2007-07-10 Zoltan Varga <vargaz@gmail.com>
3378 * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
3379 GetMDStreamVersion icall instead.
3381 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
3383 * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
3384 not use mono_dl_build_path() with a full library name: makes
3385 fallbacks to libgaim and libfam work.
3387 2007-07-06 William Holmes <billholmes54@gmail.com>
3389 * assembly.c: Added a continue statement in probe_for_partial_name when
3390 parse_assembly_directory_name fails. Fixes : 82002
3392 2007-07-06 Rodrigo Kumpera <rkumpera@novell.com>
3394 * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
3395 and added a verification for TYPEDBYREF.
3396 * verify.c (verify_stack_type_compatibility): fix handling of byref types,
3397 make native int interchangeable with int32 and some small cleanup and formating.
3398 * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
3399 handle byref of byref.
3400 * verify.c (push_local): handle byref of byref.
3401 * verify.c (do_binop): invalid mix of values is unverifiable
3402 * verify.c (do_invoke_method): fixed the handling of bad params on stack and
3403 added visibility checks
3404 * verify.c (field related method): added visibility checks
3405 * verify.c (do_push_field): cannot take the address of a temporary valuetype field
3407 2007-07-06 Zoltan Varga <vargaz@gmail.com>
3409 * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
3412 2007-07-05 Zoltan Varga <vargaz@gmail.com>
3414 * profiler.c (mono_profiler_load): Fix an off-by-one error.
3416 * marshal.c (emit_marshal_string): When returning a string from managed code,
3417 allways make a copy even for unicode strings. Fixes #81990.
3419 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
3421 * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
3422 of byref generic inst types (bug #81997).
3424 2007-07-03 Rodrigo Kumpera <rkumpera@novell.com>
3426 * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
3427 * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
3429 2007-07-02 Zoltan Varga <vargaz@gmail.com>
3431 * marshal.c (emit_marshal_string): Add support for unicode strings in
3432 MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
3434 2007-07-02 Rodrigo Kumpera <rkumpera@novell.com>
3436 * verify.c: field load/store are now verified, missing only access checks now
3438 2007-06-28 Martin Baulig <martin@ximian.com>
3440 * mono-debug.c (mono_debug_debugger_version): New public variable.
3442 2007-06-24 Gert Driesen <drieseng@users.sourceforge.net>
3444 * locales.c: When constructing DateTimeFormat or NumberFormat for
3445 MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
3446 MonoCultureInfo contructed from the current locale is always
3447 read-only and has UseUserOverride set to true. All MonoCultureInfo
3448 instances returned for GetCultures have both IsReadOnly and
3449 UseUserOverride set to true. Fixes part of bug #81930.
3451 2007-06-22 Jonathan Chambers <joncham@gmail.com>
3453 * icall-def.h: Update System.__ComObject icalls
3454 * marshal.c: Avoid managed transition (and object creation)
3455 when looking up COM interface in RCW.
3458 Code is contributed under MIT/X11 license.
3460 2007-06-22 Zoltan Varga <vargaz@gmail.com>
3462 * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
3463 to avoid crashes during assembly unloading.
3465 2007-06-22 Raja R Harinath <rharinath@novell.com>
3467 Fix MethodInfo.IsGenericMethodDefinition
3468 * reflection.c (mono_reflection_bind_generic_method_parameters):
3469 Rearrange code to ensure we always uses a generic method definition.
3470 * class.c (mono_class_inflate_generic_method_full): Set
3471 'generic_container' field only for generic method definitions.
3472 * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3473 Use presense of 'generic_container' field as indication of being a
3474 generic method definition.
3476 2007-06-21 Zoltan Varga <vargaz@gmail.com>
3478 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3480 * object-internals.h: Reflect changes in the layout of the managed Delegate
3483 * object-internals.h reflection.c icall-def.h: Applied patch from Robert
3484 Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
3485 runtime memory used by the dynamic method. Fixes #77146.
3487 2007-06-21 Dick Porter <dick@ximian.com>
3490 * file-io.c (convert_share): Cope with FileShare.Delete. Patch
3491 from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
3494 2007-06-21 Raja R Harinath <rharinath@novell.com>
3496 * reflection.c (method_encode_methodspec): Add a tripwire.
3497 * class.c (inflate_generic_type): The fully open generic type is
3498 not the same as the generic type definition.
3500 2007-06-21 Martin Baulig <martin@ximian.com>
3502 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
3504 * mono-debug-debugger.h
3505 (MonoDebuggerBreakpointInfo): Removed.
3506 (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
3507 (mono_debugger_remove_breakpoint): Likewise.
3508 (mono_debugger_breakpoint_callback): Likewise.
3509 (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
3511 2007-06-21 Raja R Harinath <rharinath@novell.com>
3513 * metadata.c (mono_metadata_lookup_generic_class): The fully open
3514 generic type is not the same as the generic type definition.
3515 * class.c (mono_generic_class_get_class): Likewise.
3517 2007-06-20 Geoff Norton <gnorton@customerdna.com>
3519 * icall.c: The second argument to
3520 System.Reflection.MethodBase.GetMethodFromHandleInternalType
3521 is a MonoType not a MonoClass.
3523 2007-06-20 Rodrigo Kumpera <kumpera@gmail.com>
3525 * verify.c: support for function pointers in the verifier
3527 2007-06-20 Rodrigo Kumpera <kumpera@gmail.com>
3529 * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
3531 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
3533 * assembly.c: removed Mono.Data.SqliteClient from the list of
3534 forward-compatible assemblies as it breaks the ABI (bug #81899).
3536 2007-06-19 Raja R Harinath <rharinath@novell.com>
3538 * metadata.c (mono_metadata_lookup_generic_class): Protect cache
3539 lookup/update with the loader lock.
3540 * reflection.c (mono_class_bind_generic_parameters): No need to
3541 protect mono_metadata_lookup_* with the loader lock.
3542 * class.c (inflate_generic_type): Likewise.
3544 * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
3545 on a generic instantiated type.
3547 2007-06-18 Rodrigo Kumpera <kumpera@gmail.com>
3549 *verify.c: produce meanfull error messages on verification error
3550 *verify.c: fixed some cases of verification errors reported as validation errors
3551 *pedump.c: fixed the error name array, now it shows validation errors properly
3552 *verify.h: fixed the contant that should be used for verification errors
3554 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
3556 * metadata.c, image.c, metadata-internals.h: part of the fixes needed
3557 for bug #77596, 81858 and 80743 (generics data structures on domain
3560 2007-06-15 Raja R Harinath <rharinath@novell.com>
3562 Avoid allocating 'MonoGenericContext' on the heap.
3563 * class-internals (_MonoMethodInflated::context): Make field
3564 inline, not a pointer.
3565 * loader.c (method_from_methodspec): Allocate 'new_context' on the
3566 stack. Use the context embedded within the inflated method as the
3567 hash key, rather than 'new_context'.
3568 * class.c (inflate_generic_context): Simplify. Return a struct
3569 rather than allocating on the heap.
3570 (mono_class_inflate_generic_method_full): Update to changes. Now,
3571 doesn't salt away a copy of the context -- simplifying the
3572 lifetime rules of a 'MonoGenericContext *'.
3573 (mono_method_get_context): Return pointer to embedded context.
3574 (setup_generic_array_ifaces): Allocate temporary context on stack.
3575 * reflection.c (inflate_mono_method): Likewise.
3576 (mono_reflection_bind_generic_method_parameters): Likewise.
3577 Use the context embedded within the inflated method as the hash key.
3579 Avoid a source of allocation of 'MonoGenericContext'.
3580 * class-internals.h (_MonoGenericClass::context): Combine 'inst'
3581 and 'cached_context' fields into embedded 'MonoGenericContext' field.
3582 * class.c: Update to changes.
3583 (mono_generic_class_get_context): Simplify drastically. Now just
3584 returns a pointer to the field.
3585 * metadata-internals.h (mono_metadata_generic_context_hash): Mark
3586 argument as a const pointer.
3587 (mono_metadata_generic_context_equal): Likewise.
3588 * metadata.c, loader.c, icall.c, reflection.c, verify.c:
3591 2007-06-14 Rodrigo Kumpera <kumpera@gmail.com>
3593 * verify.c improved the handling of brtrue/brfalse, factored out common code
3595 2007-06-14 Raja R Harinath <rharinath@novell.com>
3597 Kill MonoGenericMethod.
3598 * class-internals.h (MonoGenericContext::method_inst): Rename from
3599 'gmethod' and convert to a MonoGenericInst.
3600 (MonoGenericMethod): Remove.
3601 * metadata.h (MonoGenericMethod): Note that the name is obsolete.
3602 * loader.c (method_from_methodspec): Update to changes. Use a
3603 MonoGenericContext as the key to the hashtable.
3604 * metadata.c (mono_metadata_generic_context_equal): Rename from
3605 'mono_metadata_generic_method_equal' and take MonoGenericContext.
3606 (mono_metadata_generic_context_hash): Likewise from
3607 'mono_metadata_generic_method_hash'. Change hash function.
3608 (mono_metadata_load_generic_params): Update to changes.
3609 (mono_get_shared_generic_method): Remove.
3610 * metadata-internals.h (mono_get_shared_generic_method): Remove.
3611 * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
3612 (inflate_generic_context): Likewise.
3613 (mono_class_inflate_generic_method_full): Likewise.
3614 (setup_generic_array_ifaces): Likewise.
3615 (mono_class_create_from_typespec): Likewise.
3616 * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
3617 (method_encode_methodspec): Update callsite.
3618 (reflection_methodbuilder_to_mono_method): Update to changes.
3619 (mono_reflection_bind_generic_method_parameters): Likewise. Use a
3620 MonoGenericContext as the key to the hashtable.
3621 (inflate_mono_method): Update to changes.
3623 * class-internals.h (MonoGenericMethod::container): Remove.
3624 * class.c, loader.c, metadata.c, reflection.c: Update to changes.
3626 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
3628 * profiler-private.h, profiler.c, profiler.h: added API to profile
3631 2007-06-13 Rodrigo Kumpera <kumpera@gmail.com>
3633 * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments
3635 2007-06-13 Rodrigo Kumpera <kumpera@gmail.com>
3637 * verify.c: method invocation is now validated, now we verify parameter types on stack.
3638 Fixed overflow and underflow not aborting the verification process.
3640 2007-06-13 Mark Probst <mark.probst@gmail.com>
3642 * class-internals.h (MonoStats): Added stats entries for dynamic
3645 2007-06-12 Zoltan Varga <vargaz@gmail.com>
3647 * loader.c (mono_free_method): Free header->locals and header->clauses.
3649 * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
3652 * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
3654 * class.c (setup_interface_offsets): Allocate memory from the image mempool.
3656 2007-06-12 Raja R Harinath <rharinath@novell.com>
3658 * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
3661 2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
3663 *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
3665 2007-06-11 Raja R Harinath <harinath@gmail.com>
3667 MonoGenericMethod on a diet
3668 * class-internals.h (_MonoMethodInflated::reflection_info): Move
3670 (_MonoGenericMethod::reflection_info): ... from here.
3671 * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
3673 * reflection.c (inflate_mono_method): Likewise.
3674 (mono_reflection_bind_generic_method_parameters): Likewise.
3676 2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
3678 *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
3679 *verify.c: factored long ldarg forms to share code with short forms
3681 2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
3683 *verify.c: fixed code formating factored some duplicate code
3686 *verify.h: fixed binary incompatibility introduced earlier
3688 *pedump.c: fixed formating
3690 2007-06-11 Raja R Harinath <harinath@gmail.com>
3692 Fix assertion when disassembling Mono.C5.dll
3693 * loader.c (method_from_methodspec): Avoid inflating a method
3694 twice with the same context. If the methodref is inflated, use
3695 the declaring method instead.
3697 * class.c (mono_class_from_generic_parameter): Fix case similar to
3698 bug #81830 handled below, but for method containers.
3700 2007-06-10 Raja R Harinath <harinath@gmail.com>
3702 * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
3703 get_shared_generic_class. Directly inflate the instance.
3704 [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
3705 (inflate_generic_class): Delete.
3706 (get_shared_generic_class): Delete. Move setting of
3707 'cached_class' and 'cached_context' ...
3708 * metadata.c (mono_metadata_lookup_generic_class): ... here.
3710 * metadata.c (mono_metadata_lookup_generic_class): Change
3711 signature to take the components of a MonoGenericClass rather than
3712 an allocated MonoGenericClass. Change semantics to be intern-like.
3713 * reflection.c (mono_class_bind_generic_parameters): Update to
3714 changes. Make locking region tighter.
3715 * class.c (inflate_generic_class): Update to changes.
3716 (get_shared_generic_class): Likewise.
3717 * metadata-internals.h: Likewise.
3719 * reflection.c (mono_class_bind_generic_parameters): Take and
3720 return a MonoClass*, not a MonoType*. Add 'is_dynamic' parameter.
3721 (mono_reflection_bind_generic_parameters): Use
3722 'mono_class_bind_generic_parameters' rather than duplicate the code.
3723 * class.c (mono_bounded_array_class_get): Update to changes.
3724 * object-internals.h: Likewise.
3726 * reflection.c (mono_class_bind_generic_parameters): Only support
3727 parameterizing generic type definitions. Remove support for other
3730 2007-06-08 Zoltan Varga <vargaz@gmail.com>
3732 * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
3734 * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
3735 in the dynamic case.
3737 2007-06-08 Gert Driesen <drieseng@users.sourceforge.net>
3739 * threads.c: When cleaning up thread, reset the Background bit.
3742 2007-06-08 Jonathan Chambers <joncham@gmail.com>
3744 * metadata.c: Move variable declarations to top of scope.
3745 * verify.c: Move variable declarations to top of scope.
3747 Code is contributed under MIT/X11 license.
3749 2007-06-08 Raja R Harinath <rharinath@novell.com>
3751 * reflection.c (mono_class_bind_generic_parameters): Replace
3752 open-coded loop with mono_metadata_inflate_generic_inst.
3754 * class.c (get_shared_generic_class): Don't call
3755 mono_get_shared_generic_inst. Use the container's own
3758 * metadata.c (mono_metadata_load_generic_params): Move
3759 initialization of 'context' field here from ...
3760 * class.c (mono_class_create_from_typedef): ... here, and ...
3761 * loader.c (mono_get_method_from_token): ... here.
3763 * class.c (get_shared_generic_class): Rename from
3764 mono_get_shared_generic_class and make static.
3765 (mono_get_shared_generic_inst): Move to metadata.c.
3766 * loader.c (mono_get_shared_generic_method): Likewise.
3767 * class-internals.h, metadata-internals.h: Update to changes.
3770 * class.c (mono_class_from_generic_parameter): Don't assume a
3771 generic container owner exists. Generic containers from monodis
3774 2007-06-06 Rodrigo Kumpera <kumpera@gmail.com>
3776 * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
3777 * verify.h: new typedefs to returns the non-verifiable status
3778 * verify.c: initial implementation of generics, stack merging and object compatibility check
3780 2007-06-06 Mark Probst <mark.probst@gmail.com>
3782 * class.c, image.c, class-internals.h (MonoImage): class_cache is
3783 a MonoInternalHashTable again (fixed bug in internal hash table
3786 2007-06-06 Mark Probst <mark.probst@gmail.com>
3788 * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
3789 MonoInternalHashTable again (fixed bug in internal hash table
3792 2007-06-06 Mark Probst <mark.probst@gmail.com>
3794 * class.c, image.c, class-internals.h, domain.c,
3795 domain-internals.h (MonoImage): Reverting MonoInternalHashTable
3796 changes. Have to figure out what makes them break the SWF
3799 2007-06-04 Mark Probst <mark.probst@gmail.com>
3801 * class.c, image.c, class-internals.h (MonoImage): class_cache is
3802 a MonoInternalHashTable now.
3804 2007-06-04 Mark Probst <mark.probst@gmail.com>
3806 * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
3807 MonoInternalHashTable now.
3809 2007-05-31 Zoltan Varga <vargaz@gmail.com>
3811 * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
3814 * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
3816 * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
3817 dependent trampoline.
3819 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3821 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
3823 2007-05-29 Robert Jordan <robertj@gmx.net>
3825 * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
3827 2007-05-28 Zoltan Varga <vargaz@gmail.com>
3829 * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
3831 2007-05-25 Jonathan Chambers <joncham@gmail.com>
3833 * marshal.c: Fix interface lookup loops for
3834 cominterop_get_com_slot_for_method and
3835 cominterop_get_method_interface. Only need to lookup
3836 if type is a class, else use interface type method is on.
3838 Code is contributed under MIT/X11 license.
3840 2007-05-25 Sebastien Pouliot <sebastien@ximian.com>
3842 * reflection.c: HasSecurity can be present even if no specially
3843 encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
3844 SecurityAttribute). Fix CAS regression tests on buildbot.
3846 2007-05-24 Jonathan Chambers <joncham@gmail.com>
3848 * appdomain.c: Add configure checks for header files.
3849 * image.c: Add configure checks for header files.
3850 * file-io.c: Add configure checks for header files.
3851 * debug-mono-symfile.c: Add configure checks for header files.
3852 * threadpool.c: Add configure checks for header files.
3853 * console-io.c: Add configure checks for header files.
3854 * profiler.c: Add configure checks for header files.
3855 * rawbuffer.c: Add configure checks for header files.
3856 * icall.c: Add configure checks for header files.
3857 * rand.c: Add configure checks for header files.
3858 * socket-io.c: Add configure checks for header files.
3860 Code is contributed under MIT/X11 license.
3862 2007-05-24 Zoltan Varga <vargaz@gmail.com>
3864 * reflection.c (mono_custom_attrs_from_builders): Remove the
3865 assertion as it breaks the build.
3867 * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
3869 * reflection.c (lookup_custom_attr): Make a copy here too.
3871 * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
3874 * class.c (mono_class_init): Avoid accessing the metadata in dynamic
3877 * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
3880 2007-05-22 Zoltan Varga <vargaz@gmail.com>
3882 * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
3883 (load_cattr_value): Ditto.
3885 2007-05-20 Zoltan Varga <vargaz@gmail.com>
3887 * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
3889 2007-05-19 Gert Driesen <drieseng@users.sourceforge.net>
3891 * threads.c: In "start_wrapper", set apartment_state to MTA if
3892 apartment_state is Unknown and we're running on 2.0 profile or
3894 * object.c: In "mono_runtime_exec_main", if STAThread is not applied
3895 to main method, then set apartment_state to Unknown on 1.0 profile,
3896 and MTA on 2.0 profile.
3898 2007-05-16 Jb Evain <jb@nurv.fr>
3900 * class-internals.h (MonoDefaults): Add an attribute_class and
3901 customattribute_data_class.
3902 * domain.c (mono_init_internal): Populate them.
3903 * reflection.c: Use them to remove duplicates. Make a vew
3904 MonoClass variables `static'.
3906 2007-05-15 Massimiliano Mantione <massi@ximian.com>
3908 * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
3909 step in implementing IMT, so that all isinst checks now can go
3911 This was needed because vtables for TransparentProxy need to look
3912 like the vtable of the "target" class, so they need to point to
3913 its interface bitmap directly.
3915 * object.c: inside "mono_class_create_runtime_vtable" and
3916 "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
3918 2007-05-15 Atsushi Enomoto <atsushi@ximian.com>
3920 * object-internals.h
3921 culture-info.h : added territory field in MonoCulture and
3922 CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
3923 * locales.c : fill territory field above too.
3924 * culture-info-table.h : regenerated.
3926 2007-05-12 Zoltan Varga <vargaz@gmail.com>
3928 * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
3931 2007-05-11 Jonathan Chambers <joncham@gmail.com>
3933 * object.c: Always initialize apartment, even if
3934 there is no custom attributes on entry point.
3936 Code is contributed under MIT/X11 license.
3938 2007-05-10 Jonathan Chambers <joncham@gmail.com>
3940 * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
3941 * metadata.c: If no encoding is set, check for unicode
3944 Code is contributed under MIT/X11 license.
3946 2007-05-09 Jonathan Chambers <joncham@gmail.com>
3948 * threads.c: Handle if mono_thread_current returns NULL
3950 Code is contributed under MIT/X11 license.
3952 2007-05-09 Jonathan Chambers <joncham@gmail.com>
3954 * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
3955 in start_wrapper. Added mono_thread_init_apartment_state and
3956 mono_thread_cleanup_apartment_state.
3957 * object.c: Initialize thread apartment state on main thread
3958 by checking for STAThreadAttribute on entry point.
3959 * object-internals.h: Add apartment_state field to MonoThread.
3960 * threads-types.h: Add unmanaged definition of
3961 System.Threading.ApartmentState, MonoThreadApartmentState.
3963 Code is contributed under MIT/X11 license.
3965 2007-05-08 Jonathan Chambers <joncham@gmail.com>
3967 * class.c: Fix windows build.
3968 * class-internals.h: Fix windows build.
3970 Code is contributed under MIT/X11 license.
3972 2007-05-08 Robert Jordan <robertj@gmx.net>
3974 * process.c (CreateProcess_internal):
3975 Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
3976 .CreateNoWindow was specified. Fixes #81496.
3978 2007-05-08 Massimiliano Mantione <massi@ximian.com>
3980 * class-internals.h: Removed "MonoClass.interface_offsets" as a first
3981 step in implementing IMT, replaced it with two compact arrays
3982 (interfaces_packed and interface_offsets_packed) and a bitmap that
3983 is used for isinst checks (interface_bitmap).
3985 * class.c: (compare_interface_ids): compare function to pass to
3986 bsearch when looking for an interface with a given id.
3987 (mono_class_interface_offset): reimplemented using bsearch on
3988 interfaces_packed, getting the offset from interface_offsets_packed.
3989 (print_implemented_interfaces): utility debugging function.
3990 (setup_interface_offsets): reworked to initialize interfaces_packed,
3991 interface_offsets_packed and interface_bitmap.
3993 * object.c: replaced all accesses to "MonoClass.interface_offsets"
3994 with uses of interfaces_packed and interface_offsets_packed.
3996 2007-05-08 Massimiliano Mantione <massi@ximian.com>
3998 * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
3999 mono_class_interface_offset prototype to wrap all accesses to
4000 "MonoClass.interface_offsets".
4002 * class.c: Implemented mono_class_interface_offset, and wrapped all
4003 accesses to "MonoClass.interface_offsets".
4005 * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
4006 "MonoClass.interface_offsets".
4008 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
4010 * icall.c, icall-def.h: implemented new GetFieldFromHandle and
4011 GetMethodFromHandle overloads (bug #78637).
4013 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
4015 * assembly.c: parse ProcessorArchitecture in assembly name and ignore
4016 it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
4018 2007-05-01 Zoltan Varga <vargaz@gmail.com>
4020 * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
4023 * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
4025 (mono_custom_attrs_from_index): Ditto.
4027 * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes.
4030 2007-04-30 Zoltan Varga <vargaz@gmail.com>
4032 * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
4033 is now allocated from a mempool.
4035 2007-04-28 Zoltan Varga <vargaz@gmail.com>
4037 * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
4038 caller holds threads_lock, leading to deadlocks. Fixes #81476.
4040 2007-04-26 Zoltan Varga <vargaz@gmail.com>
4042 * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
4043 mono_loader_clear_error () too late. Fixes #81463.
4045 2007-04-26 Atsushi Enomoto <atsushi@ximian.com>
4047 * culture-info-table.h : regenerated.
4049 2007-04-25 Zoltan Varga <vargaz@gmail.com>
4051 * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
4054 2007-04-25 Dick Porter <dick@ximian.com>
4056 * Makefile.am: Put the mingw enforced-optimisation back into the
4057 PLATFORM_WIN32 section.
4059 2007-04-24 Zoltan Varga <vargaz@gmail.com>
4061 * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
4064 * image.c (mono_image_load_module): New API function to load a module reference.
4066 * image.c (load_modules): Load modules lazily. Fixes #80812.
4068 * class.c (mono_class_from_typeref): Use mono_image_load_module.
4070 * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
4072 * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this
4073 to mono_image_load_module_dynamic.
4075 2007-04-23 Jonathan Chambers <joncham@gmail.com>
4077 * marshal.c: Fix calling convention for CCW on non-windows
4078 platforms. STDCALL on windows, CDECL everywhere else to work
4079 with XPCOM and MainWin COM.
4081 Code is contributed under MIT/X11 license.
4083 2007-04-23 Martin Baulig <martin@ximian.com>
4088 (method_from_memberref): Added `gboolean *used_context' argument.
4089 (mono_get_method_from_token): Likewise.
4090 (mono_get_method_full): Don't insert the method in the cache when
4091 `used_context' is true.
4093 2007-04-23 Raja R Harinath <rharinath@novell.com>
4095 * monodiet.c (add_types_from_method): Fix "wrong type" warning.
4097 * reflection.c (mono_reflection_bind_generic_parameters): Don't
4098 create new MonoTypes for returned types.
4099 * class.c (mono_generic_class_get_class): Export mono-internal.
4100 * class-internals.h: Update to changes.
4102 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
4104 * threadpool.c, threadpool.h, icall-def.h: patch from
4105 Robert Jordan to implemnt ThreadPool.SetMaxThreads.
4107 2007-04-18 Zoltan Varga <vargaz@gmail.com>
4109 * threads.c (mono_thread_get_stack_bounds): Fix windows build.
4111 * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
4113 * threads.c (mono_thread_get_stack_bounds): New helper function.
4115 * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
4116 Correctly compute stack bounds when attaching. Fixes #81394.
4118 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
4120 * reflection.c: fix handling of doubles in custom attributes
4121 for the arm-fpa format (bug #81368).
4123 2007-04-18 Raja R Harinath <rharinath@novell.com>
4125 * reflection.c (assembly_add_win32_resources): Mildly relax an
4126 bounds check to let the end pointer point just past the end of the
4127 allocated buffer. (may fix #81384)
4129 2007-04-17 Atsushi Enomoto <atsushi@ximian.com>
4131 * culture-info-table.h : regenerated.
4133 2007-04-07 Zoltan Varga <vargaz@gmail.com>
4135 * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
4136 the thread is aborted early.
4138 2007-04-05 Dick Porter <dick@ximian.com>
4140 * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
4141 FindFirstFile()/FindNextFile() to find entries. This lets the
4142 io-layer versions use MONO_IOMAP compatibility helpers. Fixes bug
4145 * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
4147 ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
4149 2007-04-04 Martin Baulig <martin@ximian.com>
4152 (mono_method_desc_full_match): Add support for nested classes.
4154 2007-04-02 Zoltan Varga <vargaz@gmail.com>
4156 * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
4158 2007-04-01 Zoltan Varga <vargaz@gmail.com>
4160 * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
4161 waiting for too many threads.
4163 2007-03-28 Sebastien Pouliot <sebastien@ximian.com>
4165 * environment.c: Fix return value check on uname so we can get the
4166 executing version on Solaris operating systems.
4168 2007-03-28 Jb Evain <jbevain@gmail.com>
4170 * class.c (mono_type_get_name_recurse): Complete the
4171 fix for the creation of assembly qualified names for
4172 pointer types. Fixes #81208.
4174 2007-03-27 Dick Porter <dick@ximian.com>
4176 * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
4177 of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
4181 (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
4182 the value of ReleaseMutex().
4184 2007-03-27 Dick Porter <dick@ximian.com>
4186 * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
4187 in little-endian order, not network endian, so must be converted
4188 to host endian here. Fixes bug 80593.
4190 2007-03-22 Jb Evain <jbevain@gmail.com>
4192 * class.c (mono_type_get_name_recurse): Fix the creation of assembly
4193 qualified names for pointer types. Fixes #81208.
4195 2007-03-21 Jonathan Chambers <joncham@gmail.com>
4197 * marshal.c: Add support for PreserveSigAttribute.
4199 Code is contributed under MIT/X11 license.
4201 2007-03-14 Zoltan Varga <vargaz@gmail.com>
4203 * process.c: Fix endianness issues. Fixes #81126.
4205 * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
4206 multiple circular calls made from the same DynamicMethod work. Fixes #81141.
4208 * image.c (mono_image_lookup_resource): Make this work on big-endian
4209 machines.Change API contract so the caller needs to free the return value.
4211 * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
4214 2007-03-14 Martin Baulig <martin@ximian.com>
4216 * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
4217 mono_type_get_desc() as well.
4219 2007-03-13 Jonathan Chambers <joncham@gmail.com>
4221 * icall.c: Fix environ access in VS.
4223 2007-03-13 Alp Toker <alp@atoker.com>
4225 * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
4226 rather than the underlying type. Based on a patch by Ben Maurer. Fixes
4229 2007-03-12 Zoltan Varga <vargaz@gmail.com>
4231 * reflection.c (mono_reflection_create_dynamic_method): Add support for
4232 circular references among dynamic methods. Fixes #81091.
4234 * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
4236 2007-03-09 Martin Baulig <martin@ximian.com>
4238 * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
4240 2007-03-09 Jonathan Chambers <joncham@gmail.com>
4242 * appdomain.c: Fix shadow copy on Windows. Use g_snprintf instead
4243 of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.
4245 Code is contributed under MIT/X11 license.
4247 2007-03-09 Gert Driesen <drieseng@users.souceforge.net>
4249 * loader.c: Reapply patch for bug #79424.
4251 2007-03-06 Zoltan Varga <vargaz@gmail.com>
4253 * metadata.c (mono_type_to_unmanaged): Only convert object to
4254 MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
4256 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
4258 * class-internals.h, class.c, metadata.c, reflection.c: removed unused
4259 (and incorrectly set) is_reference field from MonoGenericInst.
4261 2007-03-06 Zoltan Varga <vargaz@gmail.com>
4263 * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
4266 * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
4268 * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
4270 2007-03-05 Miguel de Icaza <miguel@novell.com>
4272 * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
4273 FileOptions.1 value to mean "temporary", map that to
4274 FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
4278 2007-03-03 Marek Habersack <mhabersack@novell.com>
4280 * appdomain.c: implement MS .Net style shadow copying. Copies of
4281 the assemblies are made in a subdirectory of the dynamic base
4282 directory, the assembly names are preserved.
4283 Copy .mdb and .config files along with the assemblies being shadowed.
4285 2007-02-28 Zoltan Varga <vargaz@gmail.com>
4287 * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
4288 (emit_marshal_handleref): Ditto.
4290 * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
4291 on Visual C++. Fixes #80671.
4293 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
4295 * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
4296 for clone operations.
4298 2007-02-28 Zoltan Varga <vargaz@gmail.com>
4300 * marshal.c: Fix warnings.
4302 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
4304 * loader.c: allow case-insensitive matching of the dll name
4305 in dllmap handling when prefixed with "i:".
4307 2007-02-20 Jonathan Chambers <joncham@gmail.com>
4309 * threads.c: Fix #ifdef for dummy_apc function for VS.
4311 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
4313 * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
4315 2007-02-19 Massimiliano Mantione <massi@ximian.com>
4316 * class.c (mono_class_setup_vtable_general): Fix bug 75903,
4317 giving precedence to the methods with a fully qualified name
4318 (InterfaceName.MethodName) when building the interface sections
4321 2007-02-16 Dick Porter <dick@ximian.com>
4323 * threadpool.c (append_job): Fix fast-path array handling, so it's
4324 less likely the array will grow exponentially when the load is
4327 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4329 * metadata-internals.h, loader.c: fix dllmap lookup order
4330 for non-function maps, too, and prepare for fallback code.
4332 2007-02-12 Robert Jordan <robertj@gmx.net>
4334 * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
4335 to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
4336 and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
4337 GlobalFree. Fixes a part of bug #77075.
4339 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
4341 * loader.c: implemented typedef parent in field memberref.
4343 2007-02-11 Jonathan Chambers <joncham@gmail.com>
4345 * marshal.c: Fix warnings and remember to call Release on
4348 Code is contributed under MIT/X11 license.
4350 2007-02-10 Miguel de Icaza <miguel@novell.com>
4352 * class-internals.h: Add MonoHandleRef definition, and
4353 handleref_class to mono_defaults.
4355 * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
4356 structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
4358 * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
4359 (do nothing on this stage)
4360 (emit_object_to_ptr_conv): Extract the handle from the HandleRef.
4361 (emit_marshal_handleref): New method, used for argument handling
4364 2007-02-08 Jonathan Chambers <joncham@gmail.com>
4366 * class.c (mono_class_setup_parent): Lazily init com types.
4367 * domain.c (mono_init_internal, mono_init_com_types): Lazily
4369 * object.c (mono_remote_class_vtable): Lazily init com types.
4370 * class-internals.h: Add iunknown and idispatch to MonoDefaults.
4371 * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
4372 * domain-internals.h: Expose mono_init_com_types.
4373 * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
4374 * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
4375 Add support for COM Callable Wrapper marshalling.
4376 * marshal.h: Add icall definitions.
4377 * gc.c: Handle freeing of CCWs in finalizer code.
4379 Code is contributed under MIT/X11 license.
4381 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
4383 * reflection.c: changed all the signature encoding code to use
4384 a variable-sized buffer.
4386 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4388 * marshal.c: locking fixes: never take the loader lock
4389 or other runtime locks when holding the marshal lock
4392 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
4394 * marshal.c: make the delegate function pointer mapping
4395 work for the moving GC.
4397 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
4399 * marshal.c: fix from Robert Jordan (robertj@gmx.net)
4402 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4404 * image.h, loader.c, metadata-internals.h: use mono-dl instead of
4407 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
4409 * threadpool.c: made the code moving-GC safe.
4411 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
4413 * assembly.c, boehm-gc.c, class-internals.h, class.c,
4414 debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
4415 monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
4417 * reflection.c: warning cleanup, some threading and moving GC fixes.
4419 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
4421 * class.c, loader.c: create the needed Set/Get/Address array methods
4422 as well as the .ctors in mono_class_init (), fixes bug #80567.
4424 2007-01-24 Zoltan Varga <vargaz@gmail.com>
4426 * class.c (mono_class_layout_fields): When force-aligning a field, make sure
4427 we doesn't decrease its alignment. Should fix the sparc build.
4429 2007-01-24 Dick Porter <dick@ximian.com>
4432 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4433 Create the returned object if we need to ignore an unsupported
4434 socket option. Fixes a segfault reported by Atsushi.
4436 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
4438 * class.c, object.c: restrict GC-tracked fields to
4439 UIntPtr fields used inside corlib, so we provide better
4440 type info to the GC and also allow broken packing as in
4443 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
4445 * sgen-gc.c: removed duplicated function.
4447 2007-01-19 Miguel de Icaza <miguel@novell.com>
4449 * socket-io.c (convert_sockopt_level_and_name): return -2 as a
4450 value that means that the value is not supported, but that we
4451 should not return a failure, but instead report this as a
4452 successful operation.
4454 2007-01-19 Raja R Harinath <rharinath@novell.com>
4456 Fix tests/bug79956.2.il
4457 * class.c (mono_type_get_underlying_type): Handle genericinst enums.
4458 (mono_generic_class_get_class): If the generic definition in an
4459 enum, copy over other fields related to it.
4461 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
4463 * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
4464 genericinst enums (bug #79215).
4466 2007-01-17 Massimiliano Mantione <massi@ximian.com>
4467 * class.c: Fix bug 80307.
4469 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
4471 * image.c: if the file table is not present, try to load
4472 all the modules, since we don't have info about them
4473 having or not metadata (bug #80517).
4474 * assembly.c: allow mono_assembly_load_references () to
4475 work for netmodules.
4477 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4479 * image.c, metadata-internals.h, object.c: execute module
4480 cctors when running on the 2 runtime if present (bug #80487).
4482 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
4484 * icall.c: optimized InitializeArray() on bigendian.
4486 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
4488 * icall.c: fix for the broken ARM FPA double format.
4490 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
4492 * icall.c: handle endian issues for r4 and r8 types, too, in
4493 the InitializeArray() icall.
4495 2007-01-15 Miguel de Icaza <miguel@novell.com>
4497 * loader.c (mono_loader_error_prepare_exception): Clear the error
4498 once we have extracted the information from it, do this before we
4499 call into the JIT's class loading mechanisms.
4501 * object.c (mono_class_create_runtime_vtable): Do not clear the
4502 loader error before calling mono_class_get_exception_for_failure
4503 as the loader error is needed inside
4504 mono_class_get_exception_for_failure to throw the error (thinko).
4508 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
4510 * reflection.c: align fields rva data so it's faster to load at
4513 2007-01-12 Raja R Harinath <rharinath@novell.com>
4515 Prepare to simplify GenericMethod handling.
4516 * class-internals.h (mono_method_get_context): New accessor function.
4517 * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
4518 rather than directly accessing '->context' field.
4520 * class-internals.h (_MonoGenericParam.method): Move ...
4521 (_MonoGenericContainer): ... here. Add into union with klass field.
4522 * class.c, icall.c, loader.c, metadata.c, reflection.c:
4525 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
4527 * Makefile.am, class-internals.h, debug-helpers.c: consolidate
4528 the wrapper type enum and reduce relocations.
4530 2007-01-12 Raja R Harinath <rharinath@novell.com>
4532 * reflection.c (inflate_mono_method): Reuse method instantiation
4533 from the generic method, if available.
4535 2007-01-11 Jonathan Chambers <joncham@gmail.com>
4537 * marshal.c (emit_marshal_variant): Fix conv_arg
4538 type in last commit, based on whether parameter is byref.
4540 2007-01-11 Jonathan Chambers <joncham@gmail.com>
4542 * marshal.c (emit_marshal_variant): Handle unmanaged->managed
4544 (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
4545 MONO_TYPE_OBJECT back for VARIANT support.
4547 2007-01-11 Jonathan Chambers <joncham@gmail.com>
4549 * marshal.c, marshal.h, icall-def.h: Implement
4550 Marshal.ReAllocCoTaskMem.
4552 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
4554 * marshal.c: memory retention fixes: use the proper
4555 image cache for runtime_invoke method lookups.
4557 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
4559 * mempool.c: added code to help debug mempool allocations.
4561 2007-01-11 Dick Porter <dick@ximian.com>
4563 * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
4564 support (experimenting with faking it with IP_MTU_DISCOVER for
4565 systems that don't have IP_DONTFRAGMENT.)
4566 (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
4569 * icall-def.h: new System.Net.Sockets.Disconnect icall.
4571 * socket-io.h: Add new fields to MonoSocketAsyncResult
4572 corresponding to the new ones in Socket.cs.
4574 2007-01-11 Raja R Harinath <rharinath@novell.com>
4576 Fix IronPython regression mentioned in #80249
4577 * metadata.c (do_mono_metadata_parse_generic_class): Clear
4578 'cached_context' field, since it may have been initialized as a
4579 side-effect of metadata parsing.
4581 * class-internals.h (_MonoGenericClass.is_inflated): Remove.
4582 (_MonoGenericClass.cached_class): Move here and rename from lone
4583 remaining field of ...
4584 (_MonoInflatedGenericClass): ... this. Remove.
4585 * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
4588 Fix mcs/tests/test-128.cs regression.
4589 * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
4590 2007-01-10 change below.
4591 [MONO_TYPE_OBJECT]: Recurse into array case.
4593 2007-01-11 Raja R Harinath <harinath@gmail.com>
4595 * class-internals.h (mono_get_inflated_generic_class): Remove.
4596 * class.c (mono_get_inflated_generic_class): Remove.
4597 (mono_generic_class_get_class): Rename from
4598 mono_class_create_generic.
4599 (mono_class_from_mono_type) [GENERICINST]: Use it.
4600 * reflection.c, metadata.c: Update to changes. Use
4601 'mono_class_from_mono_type'.
4603 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
4605 * reflection.c: use passed type when encoding an array element
4606 in custom attributes (patch from David Mitchell, dmitchell@logos.com).
4608 2007-01-09 Robert Jordan <robertj@gmx.net>
4610 * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
4611 result arguments (someDelegate.EndInvoke (unrelatedAres)).
4614 2007-01-09 Raja R Harinath <rharinath@novell.com>
4616 * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
4618 * object.c (set_value): Avoid aliasing between type->data.klass
4619 and type->data.generic_class.
4621 * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
4623 2007-01-08 Raja R Harinath <rharinath@novell.com>
4625 * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
4626 between type->data.klass and type->data.generic_class.
4628 2007-01-08 Lluis Sanchez <lluis@ximian.com>
4630 * marshal.c: In MS.NET, StringBuilder objects are not copied by
4631 value in out parameters.
4633 2007-01-08 Raja R Harinath <rharinath@novell.com>
4635 Simplify invariant for MonoGenericClass::klass field.
4636 * class.c (mono_class_create_generic): Verify 'klass' is null.
4637 * metadata.c (do_mono_metadata_parse_generic_class): Don't
4638 initialize 'klass' field.
4640 2007-01-05 Raja R Harinath <rharinath@novell.com>
4642 Ongoing work to avoid redundant data and simplify invariants.
4643 * class-internals.h (_MonoGenericMethod.class_inst): Rename from
4644 'generic_class', and change type to a GenericInst.
4645 (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
4646 * class.c, loader.c, metadata.c, reflection.c: Update to changes.
4648 2007-01-05 Atsushi Enomoto <atsushi@ximian.com>
4650 * class.c : skip io-layer under PLATFORM_WIN32.
4652 2007-01-03 Tor Lillqvist <tml@novell.com>
4654 Fix #80305: In a bundled executable, look in the bundled exe
4655 assembly to determine the runtime version. Add the possibility to
4656 bundle also the machine.config file.
4658 * assembly.c (mono_assembly_open_from_bundle): Make
4659 non-static. Allow being called even if we have no bundled
4660 assemblies, and return NULL right away in that case.
4662 * domain-internals.h: Declare mono_assembly_open_from_bundle()
4665 * domain.c (app_config_parse): Take an assembly exe file name as
4666 parameter instead of a config file name. Check for a bundled
4667 config file for that assembly by calling
4668 mono_config_string_for_assembly_file() (see below) before looking
4669 for one in the file system.
4670 (get_runtimes_from_exe): Corrsponding change to call of
4672 (get_runtimes_from_exe): Check for bundled assembly exe file first
4673 by calling mono_assembly_open_from_bundle(). If no bundled
4674 assembly exe file is found, call mono_image_open() as before to
4675 look it up in the file system.
4677 * mono-config.c: Add variable bundled_machinec_onfig.
4678 (mono_config_string_for_assembly_file): New function.
4679 (mono_config_for_assembly): Move code snippet that looks for a
4680 bundled assembly .config file into the above new function. Call
4682 (mono_register_machine_config, mono_get_machine_config): New
4683 functions to set and retrieve
4685 * assembly.h: Declare mono_register_machine_config().
4687 * mono-config.h: Declare mono_get_machine_config() and
4688 mono_config_string_for_assembly_file().
4690 * icall.c: No declaration of environ necessary on Win32. It is
4691 declared (as a macro expanding to a function call) in stdlib.h.
4692 (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
4693 New internal mono function. Returns the value of
4694 mono_get_machine_config() as a Mono string.
4696 * icall-def.h: Add get_bundled_machine_config().
4698 2007-01-04 Raja R Harinath <rharinath@novell.com>
4700 Remove redundant field
4701 * class-internals.h (_MonoGenericContext.container): Remove field.
4702 * loader.c (mono_method_get_signature_full): Don't parse a
4703 "container" for a signature parse when the signature is inflated
4705 (method_from_methodspec): Likewise, for a generic_inst.
4706 * class.c, metadata.c, reflection.c: Update to changes.
4708 2006-01-04 Raja R Harinath <rharinath@novell.com>
4710 * class-internals.h (_MonoGenericClass): Rename 'context' field to
4711 'cached_context', and change semantics -- it starts off NULL, and
4712 is initialized on demand.
4713 * class.c (mono_generic_class_get_context): New accessor to
4714 replace 'context' field accesses.
4715 (mono_class_get_context): New helper.
4716 (*): Update to changes.
4717 * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
4719 2007-01-03 Miguel de Icaza <miguel@novell.com>
4721 * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
4722 before the memcpy. Fixes Marshal2 regression.
4724 2007-01-02 Jb Evain <jbevain@gmail.com>
4726 * blob.h: add a MONO_TYPE_ENUM definition
4727 * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
4728 fix the encoding of arrays of enums in custom attributes.
4732 2007-01-01 Miguel de Icaza <miguel@novell.com>
4734 * marshal.c (mono_string_to_byvalwstr): Fix this routine. The
4735 string is null terminated, but only cut the string short if it
4736 overflows the buffer.
4738 (mono_string_to_byvalstr): Also fix this routine. The code here
4739 was not properly terminating a string (it was only terminated
4740 because of the previous catch-all memset).
4742 I left the memset, because I do not know if applications expect
4743 the runtime to clear this region.
4747 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
4748 Clear the error before returning to unmanaged code to prevent the
4749 runtime from being confused later on (fixes 80420).
4750 (ves_icall_type_from_name): Always call mono_loader_clear_error
4751 after parsing a type that could have failed.
4752 (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
4754 * loader.c (mono_loader_clear_error): Fix indentation.
4756 2006-12-28 Martin Baulig <martin@ximian.com>
4758 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
4760 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
4762 * reflection.c: patch from Rolf Bjarne Kvinge to fix
4763 getting a token for an EnumBuilder.
4765 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4767 * reflection.c: be more careful in case resource generation
4768 fails to create the data array.
4770 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
4772 * sgen-gc.c: write barrier for clone and fix unregister handles.
4774 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
4776 * reflection.c: some fixes needed in the generics code for the moving GC.
4778 2006-12-22 Robert Jordan <robertj@gmx.net>
4780 * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
4781 account. Fixes bug #80299.
4783 2006-12-21 Raja R Harinath <rharinath@novell.com>
4785 Fix WaitHandle usage in delegates.
4786 * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
4787 * object.c (mono_wait_handle_new): Use the property set method to
4788 initialize the handle.
4789 (mono_wait_handle_get_handle): New.
4790 * threadpool.c (mono_async_invoke): Use it.
4791 * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
4793 (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
4795 2006-12-21 Jonathan Chambers <joncham@gmail.com>
4797 * marshal.c (emit_marshal): Call emit_marshal_variant and
4798 emit_marshal_com_interface when applicable.
4799 (emit_marshal_variant, emit_marshal_com_interface): Add
4800 methods for this case and remove if's from emit_marshal_object.
4802 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
4804 * filewatcher.c: updated to use the mono-dl API instead of gmodule.
4806 2006-12-19 Jonathan Chambers <joncham@gmail.com>
4808 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
4809 ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
4810 and GlobalFree on Windows. Remove FIXME.
4812 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
4814 * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
4815 implementation for managed objects.
4817 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
4819 * object.c: implemented code to be used for checking
4820 that no reference field overlaps with non-references.
4822 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4824 * threadpool.c: fix queue code to be compatible with the
4827 2006-12-18 Miguel de Icaza <miguel@novell.com>
4829 * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
4830 in structures by throwing ArgumentNullException.
4832 (emit_marshal_safehandle): Also when they are null parameters.
4834 (emit_marshal_safehandle): Add support for ref
4835 SafeHandles parameters
4837 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4839 * profiler.c: updated to use the mono-dl API instead of
4842 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4844 * profiler.c: updated to use the mono-dl dynamic loading
4845 API instead of gmodule.
4847 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
4849 * profiler.c: use readlink, older versions of glib don't have
4850 g_file_read_link ().
4852 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4854 * profiler.c: try to detect the path to mono if libc fails to provide
4855 a useful name (bug #80286).
4857 2006-12-16 Raja R Harinath <rharinath@novell.com>
4860 * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
4861 instance, use the generic type definition instead.
4862 (ves_icall_Type_GetNestedTypes): Likewise.
4863 * class.c (mono_class_create_generic): Always set the
4864 nested_classes of a generic instance to NULL, even if the generic
4865 type definition has nested types.
4867 2006-12-15 Jonathan Chambers <joncham@gmail.com>
4869 * marshal.c (mono_string_from_bstr): Revert previous Windows change
4872 2006-12-15 Miguel de Icaza <miguel@novell.com>
4874 * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
4875 my arguments were in the wrong order. I also fixed the Windows
4876 version which seems to have had the same issue.
4878 (mono_free_bstr): On Unix, this is g_free.
4879 (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
4880 conversions (for the tests in corlib to pass).
4882 2006-12-14 Miguel de Icaza <miguel@novell.com>
4884 * marshal.c (emit_ptr_to_object_conv): For now, ignore
4885 MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
4886 exception if a ref SafeHandle in a struct has changed).
4888 (emit_struct_conv): Do not perform layout checks for classes
4889 derived from SafeHandle, as those are specially handled.
4891 (emit_object_to_ptr_conv): Add support for
4892 MONO_MARSHAL_CONV_SAFEHANDLE conversion.
4894 (emit_marshal_safehandle): Implement conversion of return values
4895 of safehandles (MARSHAL_ACTION_CONV_RESULT).
4897 * threads.c: WaitHandle now is compiled with two different handles
4898 "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
4901 (ves_icall_System_Threading_WaitHandle_WaitAll_internal)
4902 (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
4903 these routines to cope with both kinds of fields.
4905 2006-12-12 Miguel de Icaza <miguel@novell.com>
4907 * metadata.c (mono_type_to_unmanaged): Handle the case where
4908 type->data.klass is a SafeHandle, and in that case, return the
4909 size of a pointer (MONO_NATIVE_INT) and set the conversion to be
4910 MONO_MARSHAL_CONV_SAFEHANDLE.
4912 2006-12-11 Miguel de Icaza <miguel@novell.com>
4914 * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
4915 MONO_TYPE_OBJECT cases and check for a SafeHandle here before
4916 calling emit_marshal_object.
4918 (emit_marshal_safehandle): Implement marshalling of
4919 SafeHandle parameters (no ref support yet).
4921 (MarshalAction): Document the defines as I implement
4922 them for SafeHandle.
4924 (emit_marshal_object): indentation police.
4926 * class-internals.h: Define MonoSafeHandle.
4927 Add safehandle_class to MonoDefaults type.
4929 * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
4930 list of classes to check for fields.
4932 * domain.c (mono_init_internal): Add SafeHandle to the list of
4933 mono_defaults loaded.
4935 2006-12-15 Raja R Harinath <rharinath@novell.com>
4938 * reflection.c (mono_reflection_bind_generic_parameters): If the
4939 generic type definition is a type builder, ensure that it is fully
4940 initialized before instantiating it. Kill some dead code.
4942 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
4944 * object.c: clear the loader_error () before loading
4945 more metadata stuff (bug #80258).
4947 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
4949 * icall.c, icall-defs.h: type modifiers icalls for
4950 parameters and properties.
4952 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
4954 * object.c, icall.c: fixed warnings.
4956 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
4958 * marshal.c: fixed a couple of leaks and coding style in a few places.
4960 2006-12-08 Dick Porter <dick@ximian.com>
4962 * process.c: Cope with NULL ProcessStartInfo arguments on windows
4963 too. Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
4966 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4968 * process.c: ProcessStartInfo may have only filename set and
4969 arguments can be NULL.
4971 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4973 * icall.c: fix leak found by Robert Jordan.
4975 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
4977 * marshal.c, marshal.h: generate managed method to access an element
4978 of a multi-dimensional array.
4980 2006-11-30 Paolo Molaro (lupus@ximian.com)
4982 * metadata.c, marshal.c: locking fixes when writing to image->mempool.
4984 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4986 * icall.c: back out GetFields () fix until the serialization code is
4987 fixed to not depend on the incorrect behaviour.
4989 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
4991 * profiler.c: provide defaults if none are set.
4993 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
4995 * Makefile.am, attrdefs.h: new public header file with
4996 constants for attributes for use by embedders.
4998 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
5000 * icall.c: GetFields () fix for bug #80064.
5002 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
5004 * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
5005 removed long unused icalls.
5007 2006-11-27 Jonathan Chambers <joncham@gmail.com>
5010 (mono_marshal_emit_managed_wrapper): Level of indirection for
5011 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
5012 can be generated without a delegate class.
5013 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
5015 Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5017 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5019 * console-io.c: add the 'signal' call removed by mistake. Fixes bug
5022 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5024 * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
5025 icall-def.h: added icalls needed by System.GC.
5027 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
5029 * loader.c: ensure the class in catch clauses is handled
5030 correctly for generics methods (fixes bug#79980).
5032 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
5034 * monitor.h, monitor.c: added mono_locks_dump () function
5035 to help debug deadlocks involving managed locks.
5037 2006-11-13 Dick Porter <dick@ximian.com>
5039 * file-io.c (get_file_attributes): If the file is a symlink try
5040 and get the stat data for the target, but also add the
5041 FILE_ATTRIBUTE_REPARSE_POINT flag. This is an attempt to follow
5042 the specs for the windows symlink support, but will probably have
5043 to be reworked when I have test data from a vista machine. Fixes
5046 2006-11-13 Dick Porter <dick@ximian.com>
5048 * gc.c (mono_domain_finalize):
5049 * marshal.c (mono_delegate_begin_invoke):
5050 * threadpool.c (socket_io_init, mono_thread_pool_init)
5051 (mono_thread_pool_finish):
5052 * monitor.c (mono_monitor_try_enter_internal):
5053 * threads.c (mono_thread_resume, mono_thread_init)
5054 (mono_thread_suspend_all_other_threads)
5055 (mono_thread_execute_interruption):
5056 * appdomain.c (mono_domain_unload): Check for NULL error returns
5057 from CreateThread(), CreateEvent() and CreateSemaphore(). See bug
5060 2006-11-11 Miguel de Icaza <miguel@novell.com>
5063 (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
5064 Only close the handle if the value of the handle is not
5065 INVALID_HANDLE_VALUE. This just makes the process a bit more
5068 Improvement for #75733, so that we do not run into this problem.
5071 * assembly.c (check_path_env, check_extra_gac_path_env): Do not
5072 include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
5073 internal variables. Fixes #79462
5076 2006-11-09 Dick Porter <dick@ximian.com>
5078 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5079 Use poll() not select(). Fixes bug 79397.
5081 2006-11-09 Raja R Harinath <rharinath@novell.com>
5084 * assembly.c (mono_assembly_load_from_full): Check that the given
5085 image has an assembly manifest.
5087 2006-11-09 Ankit Jain <jankit@novell.com>
5089 * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
5090 (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
5091 (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
5093 2006-11-07 Dick Porter <dick@ximian.com>
5095 * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5096 Put the old resolver behaviour back for pre-2.0 profiles.
5098 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5100 * threadpool.c: precise GC and locking fixes.
5102 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
5104 * class.c: don't load types that have an explicit unaligned
5105 managed reference. Provide better info in the TypeLoad exception.
5106 Part of the fix for bug #79744.
5107 * object.c: use the correct check for class type load issues.
5109 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5111 * class.c: enforce alignment of fields with managed references
5112 even when Pack=1 is forced by the user (bug #77788).
5114 2006-11-03 Dick Porter <dick@ximian.com>
5116 * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5117 If the address reverse lookup fails, return it as the hostname
5118 anyway. Fixes bug 79721.
5120 2006-11-03 Dick Porter <dick@ximian.com>
5122 * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
5123 Fix build on Windows.
5125 2006-11-02 Dick Porter <dick@ximian.com>
5128 * object-internals.h:
5129 * exception.c (mono_get_exception_thread_interrupted):
5130 * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
5133 * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
5134 Check for pending Thread.Interrupt.
5136 2006-10-27 Massimiliano Mantione <massi@ximian.com>
5137 * loader.c: Fixed bug 79684.
5139 2006-10-27 Dick Porter <dick@ximian.com>
5141 * file-io.c (get_file_attributes): Force symlinks to directories
5142 to be returned as a regular file. Fixes bug 79733.
5143 2006-10-26 Dick Porter <dick@ximian.com>
5145 * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
5146 CreateFile to open a directory then we need to set the
5147 FILE_FLAG_BACKUP_SEMANTICS flag. Fixes bug 75285.
5149 2006-10-23 Zoltan Varga <vargaz@gmail.com>
5151 * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
5154 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5156 * sgengc.c: small cleanup of timer code.
5158 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
5160 * sgen-gc.c: fix some warnings and start adding support for
5161 complete object removal on domain unload.
5163 2006-10-22 Gert Driesen <drieseng@users.sourceforge.net>
5165 * assembly.c: build_assembly_name should not consider a version
5166 number without build or revision number invalid. Fixes bug #79715.
5168 2006-10-18 Jonathan Chambers <joncham@gmail.com>
5170 * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
5171 call kernel32 function OutputDebugString directly.
5173 Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5175 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
5177 * reflection.c: small cleanup, using a function to insert a MonoString
5180 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
5182 * reflection.c: moving GC fixes.
5184 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
5186 * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
5187 all the objects with finalizers belonging to an unloading appdomain.
5189 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
5191 * sgen-gc.c: added ability to allocate even when the nursery is fully
5192 pinned and fixed a couple of bugs.
5194 2006-10-15 Zoltan Varga <vargaz@gmail.com>
5196 * threads.h: Revert the last change for now.
5198 * threads.h (mono_thread_get_pending_exception): Rename this to
5199 mono_thread_get_undeniable_exception ().
5201 2006-10-15 Gert Driesen <drieseng@users.sourceforge.net>
5203 * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
5204 BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
5205 when fname does not refer to valid assembly. This result in a more
5206 meaningful error message.
5207 * exception.c: added mono_get_exception_bad_image_format2 which
5208 constructs a BadImageFormatException using the ctor taking a custom
5209 message and the file name. Passing in a NULL msg results in a default
5211 * exception.h: define mono_get_exception_bad_image_format2 function.
5212 * icall.c: in InternalGetAssemblyName, throw BadImageFormatException
5213 when file name pointed to an invalid IL image. Use
5214 mono_get_exception_file_not_found2 to construct FileNotFoundException,
5215 as this results in a more meaningful error message.
5217 2006-10-15 Zoltan Varga <vargaz@gmail.com>
5219 * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
5222 2006-10-12 Zoltan Varga <vargaz@gmail.com>
5224 * metadata.c (mono_type_size): Change the align parameter to guint32 for
5225 consistency with the other _size functions.
5226 (mono_type_stack_size): Ditto.
5228 * class.c object.c icall.c: Fix warnings caused by the above change.
5230 * class.c (mono_class_get_method_from_name_flags): Fix a typo.
5232 * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
5234 * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
5236 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
5238 * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
5239 process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
5240 socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
5241 threadpool.h, threads-types.h: mark more internal functions.
5243 2006-10-11 Dick Porter <dick@ximian.com>
5245 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5246 Fix typo spotted by Robert Jordan in bug 79352 (though I can't
5247 reproduce the bug even before applying the fix.)
5249 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
5251 * reflection.c: allow retrieving attributes for arguments in generic
5252 methods (bug #79241).
5254 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
5256 * debug-mono-symfile.c: properly check fopen () result (found by
5259 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
5261 * reflection.c: make error message clearer and fixed two
5262 issuelets found by Coverity.
5264 2006-10-10 Zoltan Varga <vargaz@gmail.com>
5266 * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
5268 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
5270 * object-internals.h, gc-internal.h, profiler-private.h:
5271 mark internal functions.
5273 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
5275 * reflection.c: put data in the text section.
5276 * icall.c: recognize more types in type_from_typename ().
5277 * process.c, marshal.c: added some GC FIXMEs.
5279 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5281 * loader.c: check for NULL before initializing.
5283 2006-10-09 Zoltan Varga <vargaz@gmail.com>
5285 * gc.c (finalizer_thread): Use a non-alertable wait here.
5287 * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
5288 until the correct solution is found.
5290 2006-10-06 Zoltan Varga <vargaz@gmail.com>
5292 * reflection.c (mono_module_get_object): Avoid an assert when operating on
5293 modules with no metadata. Fixes #79596.
5295 * image.c (load_metadata_ptrs): Put back the error message when
5296 the #- heap is encountered since the support is not complete yet.
5298 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5300 * gc.c: do not allow the user to SuppressFinalize () a
5301 delegate because it would leak the trampoline if present.
5303 2006-10-06 Zoltan Varga <vargaz@gmail.com>
5305 * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
5308 2006-10-05 Zoltan Varga <vargaz@gmail.com>
5310 * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
5312 * metadata.c (mono_metadata_get_param_attrs): Ditto.
5314 * row-indexes.h: Add definitions for *Ptr tables.
5316 * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
5318 * metadata.c (mono_metadata_translate_token_index): New helper function to
5319 translate table indexes used in uncompressed metadata.
5320 (mono_metadata_decode_table_row): Ditto.
5321 (mono_metadata_decode_table_row_col): Ditto.
5323 * metadata.c: Add table schema for *Ptr tables.
5325 * class.c loader.c: Use the new helper function to access the affected metadata
5328 * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
5331 2006-10-04 Zoltan Varga <vargaz@gmail.com>
5333 * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
5334 sequences which can be unbounded in size. Fixes #79583.
5336 2006-10-02 Zoltan Varga <vargaz@gmail.com>
5338 * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
5339 static initialization.
5341 * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
5343 * class-internals.h (MonoVTable): Add an 'init_failed' flag.
5345 * domain.c (mono_domain_free): Free up type_init_exception_hash.
5347 * object.c (mono_runtime_class_init): Implement correct semantics when a static
5348 ctor fails, i.e. throw the same exception on subsequent accesses.
5350 2006-09-0 Jonathan Chambers <joncham@gmail.com>
5352 * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
5353 * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
5354 Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
5355 Handle marshalling of interfaces and VARIANTs contained in structs.
5357 Code is contributed under MIT/X11 license.
5359 2006-09-30 Zoltan Varga <vargaz@gmail.com>
5361 * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
5363 * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
5366 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5368 * console-io.c: ignore previous SIGINT handler.
5370 2006-09-27 Zoltan Varga <vargaz@gmail.com>
5372 * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual
5373 (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
5374 #79460, #79461, #79485.
5376 * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
5378 * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
5381 2006-09-26 Zoltan Varga <vargaz@gmail.com>
5383 * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
5384 could be generated from it.
5386 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
5388 * rand.c: fix read loop to correctly handle EINTR.
5390 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5392 * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
5393 internal calls are defined to keep methods closer to the declaring
5394 type and allow a significant reduction in runtime relocations and
5397 2006-09-21 Gert Driesen <drieseng@users.sourceforge.net>
5399 * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
5400 exception message to have FileNotFoundException use the default
5401 assembly load error message. Fixes bug #79426.
5402 * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
5404 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5406 * threadpool.c: (start_thread_or_queue) use the root domain when
5407 creating the thread instead of the async object one.
5409 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
5411 * class.c, object.c, class-internals.h, reflection.c:
5412 for arrays, store element_size inside MonoClass (speedup
5413 for array object creation).
5415 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
5417 * icall.c: fixed CodeBase to use the file name and not the module
5420 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5422 * mono-debug.c, mono-debug.h: export find_method as
5423 mono_debug_find_method ().
5425 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5427 * debug-helpers.c, class-internals.h: added a few functions useful
5428 when debugging under gdb.
5430 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5432 * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
5433 characters that need special handling.
5435 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
5437 * mono-config.c: make the os/cpu specification more flexible,
5438 allowing lists and negation.
5440 2006-09-18 Jonathan Chambers <joncham@gmail.com>
5442 * marshal.c: COM Interop fixes. Handle case where method->klass.
5443 is interface. Handle BSTR/MonoString when null. Use CDECL as
5444 calling convention on non-windows platforms. This is for
5445 compatibility with XPCOM and MainWin COM.
5447 Code is contributed under MIT/X11 license.
5450 2006-09-18 Zoltan Varga <vargaz@gmail.com>
5452 * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
5453 correctly. Fixes #79217.
5455 * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
5457 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
5459 * mono-config.c: allow both an os and cpu attribute for dllmap
5460 and dllentry elemnets to enable a single config file to be used
5461 for multiple architectures.
5463 2006-09-18 Gert Driesen <drieseng@users.sourceforge.net>
5465 * loader.c: MonoLoaderError was cleared too soon on load failure.
5468 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
5470 * icall.c: use the defining class vtable when accessing a
5471 static field, not a pobblibly derived class.
5473 2006-09-17 Zoltan Varga <vargaz@gmail.com>
5475 * icall.c string-icalls.c: Remove references to unicode.h.
5477 * unicode.h unicode.c Makefile.am: Remove these unused source files.
5479 * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
5481 * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument,
5482 indicating the image where custom marshaller types should be looked up.
5483 (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
5484 custom marshallers, instead of corlib. Fixes #79425.
5486 2006-09-14 Zoltan Varga <vargaz@gmail.com>
5488 * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
5490 2006-09-14 Jonathan Chambers <joncham@gmail.com>
5492 * environment.c (ves_icall_System_Environment_get_ProcessorCount):
5493 Implement Environment.ProcessorCount.
5495 * environment.h (ves_icall_System_Environment_get_ProcessorCount):
5496 Implement Environment.ProcessorCount.
5499 Add Environment.ProcessorCount icall.
5501 Patch by Jason McFall.
5503 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5505 * assembly.c: don't append .exe/.dll when the filename already contains
5506 one of those extensions.
5508 2006-09-12 Martin Baulig <martin@ximian.com>
5510 * class.c (mono_bounded_array_class_get): Also add `IList<object>'
5511 to array interfaces.
5513 2006-09-11 Martin Baulig <martin@ximian.com>
5515 * reflection.c (mono_image_build_metadata): Create the
5516 MethodImpl's after emitting all types and methods, so we don't
5517 need another fixup pass for them.
5519 2006-09-11 Zoltan Varga <vargaz@gmail.com>
5521 * class.c (mono_class_from_name_case): Fix regression introduced by the last
5524 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
5526 * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
5529 2006-09-10 Zoltan Varga <vargaz@gmail.com>
5531 * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
5532 args is not set. Fixes #78926.
5534 2006-09-08 Zoltan Varga <vargaz@gmail.com>
5536 * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
5538 * image.c (load_class_names): Move this to class.c, and rename it to
5539 'mono_image_init_name_cache'.
5540 (load_modules): Fix a warning.
5542 * class.c icall.c image.c: Initialize image->name_cache lazily.
5544 * class-internals.h (MonoGetClassFromName): New hook function to find a class based
5545 on its name using information in the AOT file.
5547 * class.c (mono_class_from_name): Use the new hook function.
5549 2006-09-06 Zoltan Varga <vargaz@gmail.com>
5551 * reflection.c (mono_param_get_objects): Handle enum default parameter values
5554 * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
5557 2006-09-06 Martin Baulig <martin@ximian.com>
5559 * icall.c (mono_lookup_internal_call): Small fix.
5561 2006-09-05 Raja R Harinath <rharinath@novell.com>
5563 * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
5566 2006-09-04 Sebastien Pouliot <sebastien@ximian.com>
5568 * debug-mono-symfile.c: Fix *some* memory leaks that happens only
5569 when --debug is specified.
5571 2006-09-04 Zoltan Varga <vargaz@gmail.com>
5573 * class.c (setup_generic_array_ifaces): Fix a warning.
5575 2006-09-04 Miguel de Icaza <miguel@novell.com>
5577 * Temporarily remove the patch to assemly.c that checks the
5578 assembly versions as it breaks our gacutil.
5580 2006-09-03 Zoltan Varga <vargaz@gmail.com>
5582 * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
5584 * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
5587 * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
5588 created using the default ctor. Fixes #79152.
5589 (mono_string_builder_to_utf16): Ditto.
5591 2006-09-01 Martin Baulig <martin@ximian.com>
5593 Fix handling of the generic array interfaces.
5596 (MonoDefaults): Removed `generic_array_class' and added
5597 `generic_ilist' class.
5600 (mono_bounded_array_class_get): Add the new generic array interfaces.
5601 (setup_generic_array_ifaces): New static method; create vtable
5602 entries for each method in the generic array interfaces.
5605 (select_container): Allow "parent-less" generic methods.
5608 (mono_marshal_get_generic_array_helper): New public method.
5611 (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
5612 Renamed into ves_icall_System_Array_GetGenericValueImpl() and
5613 moved the interncall into System.Array.
5615 2006-09-01 Raja R Harinath <rharinath@novell.com>
5617 A few more cases of avoiding work on types with ->byref set.
5618 Has the real fix for #79238
5619 * icall.c (is_generic_parameter): New helper.
5620 (ves_icall_Type_GetGenericParameterPosition): Use it.
5621 (ves_icall_Type_GetGenericParameterAttributes): Likewise.
5622 (ves_icall_MonoType_get_IsGenericParameter): Likewise.
5623 (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5624 (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
5626 (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
5628 (ves_icall_Type_get_IsGenericInstance): Likewise.
5629 (ves_icall_Type_get_IsGenericType): Likewise.
5631 2006-09-01 Zoltan Varga <vargaz@gmail.com>
5633 * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
5636 * mempool.h (mono_mempool_get_allocated): New helper function.
5638 * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
5641 * mempool.c: Fix warnings and the calculation of stats.
5643 * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
5645 * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
5647 * loader.c (mono_get_method_from_token): Update method_count stat.
5649 * class-internals.h (MonoStats): Add some stats.
5651 2006-08-31 Robert Jordan <robertj@gmx.net>
5653 * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
5654 with managed variants.
5655 All code is contributed under the MIT/X11 license.
5657 2006-08-31 Zoltan Varga <vargaz@gmail.com>
5659 * reflection.c (reflection_methodbuilder_to_mono_method): Set
5660 method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
5662 * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
5664 * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
5665 with cycles in classes.
5667 * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
5669 * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is
5670 missing a [MarshalAs] directive. Fixes #79203.
5672 * marshal.c (mono_marshal_load_type_info): Fix a race in initializing
5673 klass->marshal_info. Fixes #79217.
5675 2006-08-30 Martin Baulig <martin@ximian.com>
5677 Committing a patch from Joachim Ante <joe@otee.dk>:
5678 Add support for binary data symbol stores.
5680 * debug-mono-symfile.c
5681 (mono_debug_open_mono_symbol_file): Renamed into
5682 mono_debug_open_mono_symbols() and added `raw_contents' and `size'
5686 (mono_debug_open_image): Added `raw_contents' and `size' args.
5687 (mono_debug_init_2_memory): New public function.
5689 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
5691 * icall.c: handle TypedReference in GetTypeCode (bug #79150).
5693 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5695 * appdomain.c: implement support for ShadowCopyFiles.
5697 2006-08-22 Sebastien Pouliot <sebastien@ximian.com>
5699 * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
5700 when value is NULL (and should remove CID #51).
5702 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5704 * image.c: moved 2 functions to ../utils.
5706 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
5708 * gc.c: cope with the target object of a GC handle being NULL
5711 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
5713 * class.c: recursively check parent's explicit implementations
5714 of interface methods (fixes bug #79125).
5716 2006-08-19 Miguel de Icaza <miguel@novell.com>
5718 * filewatcher.c: Avoid warnings when building, do not redefine
5719 constants that are defined.
5723 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5725 * image.c: don't fail when the link points to an absolute path.
5727 2006-08-18 Sebastien Pouliot <sebastien@ximian.com>
5729 * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
5732 2006-08-17 Miguel de Icaza <miguel@novell.com>
5734 * image.c (full_path): A new method used to obtain the actual path
5735 of an assembly even in the presence of symbolic links.
5737 This is necessary for the case where we are running a binary that
5738 has been GACed, but we are using the "published" path name
5739 ($prefix/mono/1.0/blah.exe) which happens to point to the real
5742 This was the source of the failure for the `xsp' command with the
5743 recent AppDomain changes, as far as the runtime was concerned,
5744 there were two different assemblies: $prefix/mono/1.0/blah.exe and
5745 $prefix/mono/gac/blah/version/blah.exe.
5747 (do_mono_image_open): use full path
5749 2006-08-17 Zoltan Varga <vargaz@gmail.com>
5751 * object.c (mono_class_create_runtime_vtable): Add a FIXME.
5753 2006-08-17 Sebastien Pouliot <sebastien@ximian.com>
5755 * marshal.c: Fix mono_marshal_check_domain_image if an invalid
5756 domain_id is supplied. Fix CID #241 and corlib's unit tests.
5758 2006-08-17 Zoltan Varga <vargaz@gmail.com>
5760 * class.c (mono_class_layout_fields): Set min_align to a bigger value for
5761 small structures. Fixes #78990.
5763 2006-08-17 Zoltan Varga <vargaz@gmail.com>
5765 * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
5767 * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
5769 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5772 * marshal.c: don't load all the assemblies from a domain into newly
5773 created ones. The new domains might have different rules and load
5774 assemblies from different locations. Fixes bug #76757.
5776 Patch by Lluis. Conflicts resolved by Brian Crowell.
5778 2006-08-16 Alp Toker <alp@atoker.com>
5780 * socket-io.c: First half of the fix for #79084.
5781 Set sa_size to the length of the content, not that of the struct.
5782 Don't add NULL suffix to the content, this should be done in
5783 managed code if needed.
5785 2006-08-14 Raja R Harinath <rharinath@novell.com>
5788 * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
5789 mono_metadata_parse_type returns NULL.
5791 2006-08-13 Atsushi Enomoto <atsushi@ximian.com>
5793 * normalization-tables.h : new file for string normalization data.
5794 * locales.c, locales.h, icall.c :
5795 added load_normalization_resource() for string normalization,
5797 * Makefile.am : added normalization-tables.h to the sources.
5799 2006-08-13 Zoltan Varga <vargaz@gmail.com>
5801 * marshal.c: Add more helper functions to reduce code duplication and use them
5804 2006-08-12 Zoltan Varga <vargaz@gmail.com>
5806 * marshal.c: Fix non-x86 stdcall warnings.
5808 * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use
5811 2006-08-11 Jonathan Chambers <joncham@gmail.com>
5813 * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
5814 type check on multi-dimensional arrays. Fixes #79000.
5816 2006-08-10 Jonathan Chambers <joncham@gmail.com>
5818 * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
5819 * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
5820 to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
5821 * class-internals.h: add is_com_object to class structure.
5822 * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
5823 null checks to COM object marshalling. Fix .ctor call on RCW.
5824 * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
5826 All code is contributed under the MIT/X11 license.
5828 2006-08-09 Dick Porter <dick@ximian.com>
5830 * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
5831 racing mono_monitor_allocator_lock() somewhere, so don't delete
5832 the critical section for now. Found by running and exiting
5835 2006-08-10 Zoltan Varga <vargaz@gmail.com>
5837 * marshal.c (cominterop_get_native_wrapper): Fix a warning.
5838 (ves_icall_System_ComObject_FindInterface): Ditto.
5839 (ves_icall_System_ComObject_CacheInterface): Ditto.
5841 * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
5842 (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
5844 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5846 * threadpool.c: treat pipes from process asynchronous reads as sockets
5847 when reading from them, so we get select/poll or epoll to wait for
5850 2006-08-07 Sebastien Pouliot <sebatien@ximian.com>
5852 * loader.c: Fix a typo (CID #233) in the null check.
5854 2006-08-07 Zoltan Varga <vargaz@gmail.com>
5856 * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
5857 Hopefully fixes #78949.
5859 * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from
5860 Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
5861 bytes. Fixes #78972.
5863 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5865 * filewatcher.c: we need to set errno here.
5867 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5869 * filewatcher.c: let Win32Exception get the error value.
5871 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5873 * filewatcher.c: translate errno into win32 errors for Win32Exception
5874 to know what happened.
5876 2006-08-01 Zoltan Varga <vargaz@gmail.com>
5878 * threadpool.c: Fix more warnings.
5880 * assembly.c (search_loaded): Fix warnings.
5882 * threadpool.c (mono_thread_pool_finish): Fix warnings.
5883 (mono_async_invoke): Ditto.
5885 2006-07-28 Jonathan Chambers <joncham@gmail.com>
5887 * object.c (mono_remote_class_vtable): Need to create proxy vtable
5888 entries for __ComObject type in addition to ComImport types.
5889 * marshal.c: Added support for marshalling COM RCWs. Fixed warning
5892 All code is contributed under the MIT/X11 license.
5894 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5896 * image.c: avoid tentative loading of modulerefs that contain
5897 no metadata (P/Invoke library names).
5899 2006-07-28 Dick Porter <dick@ximian.com>
5901 * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
5902 mono_loader_lock() somewhere, so don't delete the critical section
5903 for now. Found by running and exiting monodevelop.
5905 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5907 * filewatcher.c: define the inotify syscalls when we're building on
5908 linux and have sys/syscall.h. The build system might not have support
5909 for inotify but the target system might have it.
5911 2006-07-26 Miguel de Icaza <miguel@novell.com>
5913 * domain.c: Documentation updates.
5915 * loader.c (mono_free_method): Do not release the method
5916 information if we are being profiled, as profilers will use this
5917 information at shut down to present some data to the user.
5919 This is needed so that the profiler does not crash, as the
5920 profiler tends to keep MonoMethods around, and they might become
5921 invalid if we free these.
5923 (mono_get_method_constrained): Return the original CIL stream
5924 method as well, so verification can be performed against it.
5926 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5928 * filewatcher.[ch]: support for inotify file system watcher.
5929 * icall.c: add new internal calls for the inotify file system watcher.
5931 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5933 * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
5936 2006-07-20 Dick Porter <dick@ximian.com>
5938 * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
5941 2006-07-20 Dick Porter <dick@ximian.com>
5943 * threads.c (start_wrapper): Do the thread cleanup while we still
5944 hold a reference to its object. Fixes bug 78123.
5946 2006-07-18 Kornél Pál <kornelpal@gmail.com>
5948 * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
5949 * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
5950 "managed-to-managed".
5951 * icall.c: Redirect string constructors that take sbyte* to
5952 ves_icall_System_String_ctor_RedirectToCreateString.
5953 * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
5954 to CreateString () methods with matching signature.
5955 * reflection.c: Use original security informations for
5956 MONO_WRAPPER_MANAGED_TO_MANAGED.
5957 * security-manager.c: Use original security informations for
5958 MONO_WRAPPER_MANAGED_TO_MANAGED.
5959 * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
5960 that is a placeholder and only its address should be used.
5961 * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
5962 that is a placeholder and only its address should be used.
5964 2006-07-15 Jonathan Chambers <joncham@gmail.com>
5966 Begin implementing COM Interop.
5967 * appdomain.c: Increment corlib version.
5968 * class.c: Set ComImport classes' parent to __ComObject.
5969 * loader.c: Mark cominterop methods as such.
5970 * domain.c: Add __ComObject class to MonoDefaults structure.
5971 * image.c: Add 2 hashtables to the image for COM Interop related methods
5972 * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
5973 using the mempool allocator
5975 * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
5976 * metadata.h: Added cominterop field to _MonoMethodSignature struct and
5977 declaration for mono_metadata_type_dup_mp.
5979 * debug-helpers.c: Added strings for two additional wrapper types
5980 * object.c: Create proxy objects for ComImport classes
5981 * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
5982 and added __ComObject class to MonoDefaults structure.
5984 * object-internals.h: Finish MonoRealProxy definition, and add definition of
5985 MonoComInteropProxy and MonoComObject.
5987 * marshal.c: Added support for COM Interop
5988 (signature_cominterop): Converts managed signature to corresponding
5989 unmanaged COM signature.
5990 (cominterop_get_function_pointer): gets unmanaged function pointer via
5992 (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
5993 (cominterop_get_method_interface): returns interface type that method is defined on
5994 (mono_mb_emit_cominterop_call): emits native call to function pointer
5996 (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
5997 that matches signature of unmanaged function.
5998 (cominterop_get_native_wrapper): wrapper around adjusted method call.
5999 (cominterop_get_invoke): forwards call from proxy to __ComObject
6000 (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef
6001 (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface
6002 (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release
6004 * marshal.h: Added Marshal icall declarations.
6005 * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
6006 so we can access them in finalizer
6008 2006-07-14 Dick Porter <dick@ximian.com>
6010 * object.c (mono_type_initialization_cleanup): Fix a race
6011 condition by temporarily commenting out the critical section
6014 2006-07-14 Zoltan Varga <vargaz@gmail.com>
6016 * reflection.c (create_custom_attr): Fix some warnings.
6017 (create_custom_attr_data): Ditto.
6018 (typebuilder_setup_properties): Save custom attrs for properties in dynamic
6019 types. Fixes #78855.
6021 2006-07-11 Zoltan Varga <vargaz@gmail.com>
6023 * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
6025 * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
6027 2006-07-08 Zoltan Varga <vargaz@gmail.com>
6029 * reflection.c (resolve_object): Add support for DynamicMethod.
6031 * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
6032 Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
6034 2006-07-06 Sebastien Pouliot <sebastien@ximian.com>
6036 * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal
6037 don't leak GPtrArray's pdata has we have no use (nor free) for it.
6039 2006-07-01 Zoltan Varga <vargaz@gmail.com>
6041 * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
6044 2006-06-30 Raja R Harinath <rharinath@novell.com>
6046 * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
6047 slightly: remove a shadow local variable.
6049 2006-06-29 Raja R Harinath <rharinath@novell.com>
6051 * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
6052 definition that introduces the virtual function slot.
6053 Also fix Coverity #105.
6055 2006-06-29 Zoltan Varga <vargaz@gmail.com>
6057 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
6058 for dynamic assemblies. Fixes #78724.
6060 2006-06-28 Zoltan Varga <vargaz@gmail.com>
6062 * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
6065 2006-06-21 Martin Baulig <martin@ximian.com>
6068 (method_encode_clauses): Don't assert on `ex_info->handlers' here;
6071 2006-06-21 Zoltan Varga <vargaz@gmail.com>
6073 * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
6075 2006-06-20 Raja R Harinath <rharinath@novell.com>
6077 Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
6079 * class.c (mono_class_create_from_typespec): Add 'context' argument.
6080 Inflate result if necessary.
6081 (mono_class_get_full): Remove old version. Rename from
6082 'mono_class_get' and add 'context' argument. Pass it to
6083 ..._create_from_typespec.
6084 (mono_class_get): New. Simple wrapper to mono_class_get_full.
6085 (mono_ldtoken): Revert change below.
6087 2006-06-20 Martin Baulig <martin@ximian.com>
6089 * class.c (mono_ldtoken): Don't pass the generic context to
6090 mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF. Fixes #78053.
6092 2006-06-15 Zoltan Varga <vargaz@gmail.com>
6094 * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
6095 and later freeing it. Fixes #78638.
6097 2006-06-15 Miguel de Icaza <miguel@novell.com>
6099 * icall.c (mono_class_get_throw): Revert over-zealous error
6100 throwing, the caller for mono_class_get_throw will cope with
6101 errors when classes are not properly initialized already.
6103 The code still copes with loader exceptions though.
6105 Fixes the regression in reftype1 and reftype3 from the CAS tests.
6107 2006-06-14 Miguel de Icaza <miguel@novell.com>
6109 Fixes the `make run1' version of RuntimeAbort (to be commited,
6110 source is in Bugzilla).
6112 * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
6113 FALSE on class loading failure instead of returning true.
6115 * class.c (mono_class_create_from_typedef): It is possible for
6116 mono_metadata_interfaces_from_typedef_full to fail if a class is
6117 not found, cope with this.
6120 2006-06-14 Dick Porter <dick@ximian.com>
6123 * process.c: Fix a bunch of signed/unsigned warnings from gcc
6126 2006-06-12 Atsushi Enomoto <atsushi@ximian.com>
6128 * culture-info-table.h : oops, forgot to make it nsync with r61548.
6130 2006-06-09 Jonathan Chambers <jonathan.chambers@ansys.com>
6132 * icall.c: Another fix for building mono in Visual Studio.
6134 2006-06-09 Jonathan Chambers <jonathan.chambers@ansys.com>
6136 * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
6138 2006-06-09 Martin Baulig <martin@ximian.com>
6140 * debug-mono-symfile.c: Put this back and really fix it this
6141 time. Sorry for all the trouble.
6143 2006-06-08 Zoltan Varga <vargaz@gmail.com>
6145 * icall.c (mono_class_get_throw): Fix a warning.
6146 (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw
6147 ReflectionTypeLoadException if needed. Fixes #78606.
6149 * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
6150 (mono_class_init): Ditto.
6152 * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
6153 ref_only exceptions.
6154 (mono_loader_clear_error): Make this work even if there is no error.
6156 2006-06-08 Jonathan Chambers <jonathan.chambers@ansys.com>
6158 * object-internals.h marshal.c marshal.h icall.c: Implement method
6159 Marshal.GetComSlotForMethodInfo using internal call.
6161 2006-06-07 Zoltan Varga <vargaz@gmail.com>
6163 * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
6164 a function for signalling it.
6166 * class.c (mono_class_from_typeref): Use the new kind of loader error when
6167 a referenced assembly is not found.
6169 * loader.c (mono_loader_error_prepare_exception): Add support for
6170 LOADER_ERROR_ASSEMBLY. Fix formatting.
6172 2006-06-05 Jonathan Chambers <jonathan.chambers@ansys.com>
6174 * domain.c appdomain.c class-internals.h marshal.c: Add support
6175 for VARIANT marshalling on windows and increment corlib version
6176 since Variant struct was added.
6178 2006-06-03 Miguel de Icaza <miguel@novell.com>
6180 * debug-mono-symfile.c: Revert Martin's previous patch which broke
6181 stack trace line information:
6183 (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
6184 (Martin) when looking up B which is between A and C, return A not C.
6188 Thanks to Alexander Olk for tracking this down.
6190 2006-06-02 Zoltan Varga <vargaz@gmail.com>
6192 * marshal.c (mono_marshal_set_last_error_windows): Fix build.
6194 * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
6195 avoid clobbering its value.
6196 (mono_string_to_lpstr): Fix a warning on windows.
6198 2006-05-31 Zoltan Varga <vargaz@gmail.com>
6200 * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
6202 * reflection.c loader.c: Removed references to 'dummy' flag.
6204 * loader.c (mono_loader_error_prepare_exception): Fix a warning.
6206 * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
6207 it gets GC tracking.
6209 * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
6212 * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
6214 * marshal.c threadpool.c: Update callers of mono_async_result_new.
6216 * appdomain.c: Bump corlib version.
6218 2006-05-30 Zoltan Varga <vargaz@gmail.com>
6220 * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6221 CEE_STIND_REF when working with object references.
6223 2006-05-31 Zoltan Varga <vargaz@gmail.com>
6225 * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
6228 2006-05-30 Miguel de Icaza <miguel@novell.com>
6230 * loader.c (method_from_memberref): Fix argument value for
6231 mono_loader_set_error_method_load (I was passing the MonoClass
6232 instead of the class name char *).
6234 2006-05-30 Zoltan Varga <vargaz@gmail.com>
6236 * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6237 CEE_STIND_REF when working with object references.
6239 2006-05-30 Martin Baulig <martin@ximian.com>
6241 * mono-debug.c (mono_debug_print_stack_frame): Reverted the
6242 mono_method_full_name() change and replace the ':' with a '.'
6245 2006-05-30 Martin Baulig <martin@ximian.com>
6247 * debug-mono-symfile.c
6248 (mono_debug_symfile_lookup_location): Fix the algorithm:
6249 when looking up B which is between A and C, return A not C.
6251 2006-05-29 Martin Baulig <martin@ximian.com>
6254 (MonoDebugMethodInfo): Make the typedef public.
6255 (MonoDebugSourceLocation): New public struct.
6258 (mono_debug_source_location_from_address): Removed.
6259 (mono_debug_source_location_from_il_offset): Removed.
6260 (mono_debug_il_offset_from_address): Removed.
6261 (mono_debug_address_from_il_offset): Removed.
6262 (mono_debug_lookup_method): New public function.
6263 (mono_debug_lookup_source_location): New public function; replaces
6264 the old mono_debug_source_location_from_*() functions; see the
6265 inline documentation.
6266 (mono_debug_free_source_location): New public function.
6267 (mono_debug_print_stack_frame): New public function; see the
6268 inline documentation.
6270 * debug-mono-symfile.c
6271 (mono_debug_find_source_location): Renamed into
6272 mono_debug_symfile_lookup_location(); only take a
6273 `MonoDebugMethodInfo *' and an `offset' argument; added inline
6275 (mono_debug_find_method): Renamed into
6276 mono_debug_symfile_lookup_method().
6278 2006-05-27 Zoltan Varga <vargaz@gmail.com>
6280 * assembly.c (mono_assembly_open_full): Dont overwrite the status
6281 returned by mono_image_open_full ().
6283 * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
6284 MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
6287 * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
6290 2006-05-27 Miguel de Icaza <miguel@novell.com>
6292 * class.c (mono_class_from_typeref): handle missing images
6293 earlier, deals with bug #78418. Refactor code;
6295 Fix a warning introduced in my previous commit (some stale code
6296 from before I revisited my patch).
6298 * class.c (mono_class_create_from_typedef): On failure, remove the
6299 class from the MonoImage->class_cache as the class is not
6300 initialized; Fixes the leak pointed out by Paolo.
6302 2006-05-25 Dick Porter <dick@ximian.com>
6304 * threads.c (mono_thread_cleanup): Build fix. Comment out the
6305 DeleteCriticalSections until I figure out which one may still be
6306 sometimes locked when mono_thread_cleanup is called.
6308 2006-05-24 Dick Porter <dick@ximian.com>
6310 * threads.c (mono_thread_cleanup): Move the threading cleanup out
6311 of mono_thread_manage and back into its own function, so it can be
6312 called after the finalizer thread has finished.
6314 * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
6316 2006-05-24 Zoltan Varga <vargaz@gmail.com>
6318 * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
6321 * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
6322 with non-blittable elements.
6323 (emit_object_to_ptr_conv): Ditto. Fixes #78492.
6325 2006-05-24 Martin Baulig <martin@ximian.com>
6327 * mono-debug-debugger.h (MonoDebuggerEvent): Added
6328 `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.
6330 * mono-debug-debugger.c (mono_debugger_cleanup): Send a
6331 `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
6332 `mono_debugger_event_handler' to NULL.
6334 2006-05-24 Martin Baulig <martin@ximian.com>
6336 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
6338 2006-05-24 Martin Baulig <martin@ximian.com>
6340 * mono-debug-debugger.h
6341 (mono_debugger_create_notification_function): Added
6342 `MonoCodeManager *' argument.
6344 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
6346 * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
6348 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
6350 * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
6351 * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
6354 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
6356 * icall.c: precise GC support: objects can't be stored in unmanaged
6357 memory anymore, even if they are kept alive by other references: since
6358 they can move the GC needs to be able to always find them.
6360 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
6362 * object.c: precise GC support for static fields. Support
6363 for moving GCs: write barriers and pinned allocation for interned
6366 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
6368 * domain.c, domain-internals.h: precise GC support for the MonoDomain
6371 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
6373 * class.c, gc.c: sgen and precise GC updates.
6375 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
6377 * marshal.h, marshal.c: added write barrier wrapper and precise type
6380 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
6382 * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
6385 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
6387 * reflection.c: precise and sgen GC updates.
6389 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
6391 * debug-helpers.c, class-internals.h: added write barrier wrapper type.
6393 2006-05-22 Zoltan Varga <vargaz@gmail.com>
6395 * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
6397 2006-05-20 Zoltan Varga <vargaz@gmail.com>
6399 * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
6400 MONO_TYPE_OBJECT. Fixes #78462.
6402 2006-05-18 Zoltan Varga <vargaz@gmail.com>
6404 * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct
6405 and blittable types.
6407 2006-05-17 Miguel de Icaza <miguel@novell.com>
6409 * class.c (mono_class_get_exception_for_failure): Implement parts
6410 of a TODO: if the loader error is set (instead of the class
6411 error), we return a Loader exception that can be properly thrown
6414 This was exposed by some Winforms 2.0 code that I tried to run
6415 (Atsushi pointed me to it).
6417 2006-05-17 Zoltan Varga <vargaz@gmail.com>
6419 * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
6420 uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
6422 * marshal.c (emit_marshal_vtype): Add limited support for
6423 UnmanagedType.LPStruct. Fixes #78427.
6425 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure):
6426 Applied a patch from kangaroo to fix #77523.
6428 2006-05-17 Martin Baulig <martin@ximian.com>
6431 (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
6432 (debugger_thread_created): Removed.
6433 (debugger_thread_exited): Removed.
6435 2006-05-15 Zoltan Varga <vargaz@gmail.com>
6437 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6439 * object-internals.h (MonoReflectionResource): Sync with managed version.
6441 2006-05-12 Wade Berrier <wberrier@novell.com>
6443 * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
6445 2006-05-12 Zoltan Varga <vargaz@gmail.com>
6447 * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
6448 functions try to allocate from the image mempool.
6450 2006-05-12 Dick Porter <dick@ximian.com>
6452 * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
6454 2006-05-12 Lluis Sanchez <lluis@ximian.com>
6456 * object.c: The FieldGetter and FieldSetter methods require the full
6457 name of the class, not only the name. Fixes bug #78277.
6459 2006-05-11 Miguel de Icaza <miguel@novell.com>
6461 * loader.c (method_from_memberref): Do not pass the NULL klass to
6462 mono_loader_set_error_() methods. Pass the non-NULL value
6465 2006-05-11 Zoltan Varga <vargaz@gmail.com>
6467 * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
6468 (mono_assembly_close): Null out assembly->image->references after freeing it.
6470 * image.c (mono_image_close): Free image->references.
6472 * reflection.c (mono_image_basic_init): Fix a small memory leak.
6474 2006-05-10 Sebastien Pouliot <sebastien@ximian.com>
6476 * marshal.c: In function mono_mb_add_local don't use the mb pointer
6477 before checking if it's NULL (g_assert).
6479 2006-05-10 Martin Baulig <martin@ximian.com>
6481 * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
6482 I thought I already killed that two months ago, but now it somehow reappeared.
6484 2006-05-10 Martin Baulig <martin@ximian.com>
6486 * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
6488 2006-05-10 Zoltan Varga <vargaz@gmail.com>
6490 * reflection.c: Allocate memory for dynamically created methods in the image
6493 2006-05-10 Sebastien Pouliot <sebastien@ximian.com>
6495 * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions,
6496 don't use the ad pointer before checking if it's NULL (g_assert).
6498 2006-05-09 Zoltan Varga <vargaz@gmail.com>
6500 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
6501 a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
6503 * marshal.c: Allocate all signatures from mempools.
6505 * marshal.c: Allocate some more signatures from mempools.
6507 2006-05-09 Miguel de Icaza <miguel@novell.com>
6509 * object.c (mono_load_remote_field): The code used to provide a
6510 temporary variable for returning results if the user did not
6511 provide a result pointer. But our temporary variable was allocted
6514 Fix calling code to always pass a result area. Coverity ID 103.
6516 2006-05-06 Zoltan Varga <vargaz@gmail.com>
6518 * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
6519 value, not the old. Fixes #78312.
6520 (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
6522 * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
6523 (mono_ptr_class_get): Ditto. Also change the cache from a global one to a
6526 * assembly.c (mono_assembly_close): Free image->references.
6528 * assembly.c (mono_assembly_names_equal): Fix a warning.
6529 (mono_assemblies_cleanup): Cleanup more global data.
6531 * metadata-internals.h (MonoImage): Add 'ptr_cache'.
6533 * image.c (mono_image_close): Free up the contents of 'array_cache', free up
6534 ptr_cache and image->modules.
6536 * image.c (mono_image_init): Allocate array_cache lazily.
6538 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6540 * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
6541 behavior was changed recently and has bad side effects.
6543 2006-05-05 Zoltan Varga <vargaz@gmail.com>
6545 * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
6547 * assembly.c (mono_assembly_close): Remove a debug printf.
6549 * profiler.c (create_profiler): Use mono_aligned_addr_hash.
6551 * metadata-internals.h image.c assembly.c: Change the reference counting scheme
6552 to also allow for temporary references between mono_image_open ()/close ().
6554 * domain.c (get_runtimes_from_exe): Add a FIXME.
6556 2006-05-04 Zoltan Varga <vargaz@gmail.com>
6558 * marshal.c: Fix support for dynamic methods.
6560 * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
6562 * marshal.c (mono_marshal_cleanup): New cleanup function.
6564 * marshal.c: Rewrite the wrapper code to allocate most of its memory from the
6567 * class.c (mono_class_init): Fix leaking class->nested_classes.
6569 * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
6571 * image.c (mono_image_init): Initialize the new cashes.
6573 * image.c (mono_image_close): Destroy the new cashes.
6575 * marshal.c: Get rid of most of the static caches in favor of per-image caches.
6577 * mempool.c (mono_mempool_strdup): New helper function.
6579 * class-internals.h: Add prototype for mono_loader_unlock ().
6581 * domain.c (mono_jit_info_table_find): Fix a warning.
6582 (mono_debugger_check_runtime_version): Ditto.
6584 * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h
6585 class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
6586 functions to these modules.
6588 * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
6591 * marshal.c (mono_free_bstr): Fix a warning.
6593 * assembly.c (mono_assembly_open_full): Fix another small leak.
6595 * object.c: Fix some unload leaks in the remoting code.
6597 * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
6600 * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
6602 * reflection.c: Fix some unload leaks in dynamic assemblies.
6604 2006-05-02 Jonathan Chambers <jonathan.chambers@ansys.com>
6606 * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
6607 * marshal.h: Add BSTR support on Win32
6608 * icall.c: Add BSTR icalls
6609 * metadata.h: Add BSTR enums
6611 2006-04-28 Miguel de Icaza <miguel@novell.com>
6613 Work to catch the crash from #76795 and turn it into an
6614 exception. As I stubbed out pieces of the VisualBasic support,
6615 I found a number of places where the code was failing and I added
6616 checks to those places.
6618 * metadata.c (do_mono_metadata_parse_generic_class): Make this
6619 function return a status code. If we fail to parse the signature
6620 from mono_metadata_parse_generic_inst, return FALSE.
6622 * loader.c (mono_get_method_from_token): If we fail to load the
6623 method (mono_class_get) return NULL.
6625 * (method_from_memberref): Return NULL if we are unable to parse
6626 the method signature
6628 (mono_loader_error_prepare_exception): Since we now use the
6629 loader_error flag internally to stop processing, and obtaining
6630 exceptions that might be thrown will walk this code path the
6631 proper way of going from a MonoLoaderError into a
6632 MonoException was convoluted. This new routine encapsulates the
6633 process of turning the error into an exception and *clearing* the
6636 2006-04-27 Miguel de Icaza <miguel@novell.com>
6638 Work to catch the crashes from 75075 (cope in Assembly.GetTypes
6639 with missing assemblies), and to cope with:
6641 * Missing fieldref from a non-existing assembly.
6642 * Missing methodref from a non-existing assembly.
6644 The first batch of work to address *some* of the issues from 76661.
6646 * object.c (mono_class_create_runtime_vtable): If we fail to
6647 initialize the class raise the exception here.
6649 * metadata.c (mono_class_get_overrides_full): If any methods fail
6650 to load return the failure to the caller.
6652 * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
6653 flagging assemblies that failed to load.
6655 Do not crash if we are unable to load the assembly.
6657 (mono_assembly_close): Do nothing with REFERENCE_MISSING
6660 * loader.c (mono_loader_set_error_type_load): Change the
6661 convention to always pass unallocated strings, so we make our own
6662 copies (I know our own code had duplicated strings before, but
6663 this keeps the normal conventions).
6664 (method_from_memberref): Call mono_loader_set_error_method_load
6665 for all possible failures of loading the class.
6666 Remove assert, turn into a loader error.
6668 (mono_loader_error_to_exception): Move this routine from mini
6669 (mini_loader_error_to_exception) there was no need to have that in
6672 * class.c (mono_class_from_typeref): If we were not able to load
6673 the assembly with mono_assembly_load_reference, call the
6674 mono_loader_set_error_type_load to register the problem.
6676 (mono_class_setup_fields): If we fail to load the type from
6677 mono_metadata_parse_type_full, call mono_class_set_failure and
6678 break from the loop.
6680 If class->exception_type is set, we do not layout the fields as
6681 that might crash the runtime, and instead return (from breaking
6682 from the previous loop).
6684 (mono_class_setup_vtable): This now returns a boolean indicating
6685 whether the table was properly setup. The decision is driven by
6686 mono_class_get_overrides_full which might run into non-existing
6689 (mono_class_init): Returns TRUE on success or FALSE if there was a
6690 problem in loading the type (incorrect assemblies, missing
6691 assemblies, methods, etc).
6693 When we call mono_class_setup_fields we also check for a potential
6694 error inside this call (either a class exception or a general
6697 (mono_class_create_from_typedef): If the parent fails to load
6698 (calling mono_class_get_full) return NULL.
6702 calls to mono_metadata_parse_type_full should be checked
6703 everywhere and set the mono_class_set_failure
6704 (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
6706 The current patch checks the places where my manually constructed
6707 tests show the errors are showing up, but we should do it
6712 mono_class_init return values should be tested everywhere, like
6713 the previous case this is something that we should audit
6714 everywhere and not only on the cases exposed by the tests I
6717 2006-04-26 Miguel de Icaza <miguel@novell.com>
6719 * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
6720 boolean parameter and instead pass the information on `options'
6721 parameter (FileOptions).
6723 * icall.c: Register the new signature for MonoIO.Open.
6725 * debug-helpers.c (dis_one): Trying to understand how coverity
6726 works. Fix Run 5, item 78.
6728 2006-04-26 Dick Porter <dick@ximian.com>
6730 * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
6733 2006-04-25 Martin Baulig <martin@ximian.com>
6735 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
6737 * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
6738 debugger_thread_created().
6739 (debugger_gc_push_all_stacks): Don't handle the main thread in any
6741 (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
6742 (mono_debugger_finalize_threads): New function; undo the effects
6743 of mono_debugger_init_threads().
6744 (mono_debugger_create_all_threads): Removed.
6746 2006-04-24 Zoltan Varga <vargaz@gmail.com>
6748 * image.c (mono_image_close): Tidy up trace messages.
6750 * assembly.c (mono_assembly_close): Ditto.
6752 * assembly.c (mono_assembly_close): Clear out image->assembly so the image
6753 no longer references an already freed assembly. Fixes #78168.
6755 2006-04-21 Dick Porter <dick@ximian.com>
6757 * threads.c (mono_thread_detach): Fix reference counting when
6760 2006-04-21 Zoltan Varga <vargaz@gmail.com>
6762 * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
6765 2006-04-19 Zoltan Varga <vargaz@gmail.com>
6767 * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
6768 (mono_type_to_stind): Ditto.
6770 * marshal.c: Use the new helper functions to simplify code.
6772 * image.c (mono_image_close): Add some code for help debug assembly unloading
6775 * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
6778 * assembly.c (mono_assembly_open_full): Invoke the load hook when the
6779 assembly was already loaded in another appdomain. Fixes #78083.
6781 2006-04-13 Zoltan Varga <vargaz@gmail.com>
6783 * assembly.c (mono_assembly_load_reference): Increase the refcount of the
6784 referenced assemblies.
6785 (mono_assembly_close): Decrease the refcount of the referenced assemblies.
6787 * domain.c (mono_domain_free): Add a trace message.
6789 * appdomain.c (add_assemblies_to_domain): Ditto.
6791 * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
6794 2006-04-12 Zoltan Varga <vargaz@gmail.com>
6796 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
6798 2006-04-12 Martin Baulig <martin@ximian.com>
6800 * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
6801 `USE_INCLUDED_LIBGC'.
6803 2006-04-12 Zoltan Varga <vargaz@gmail.com>
6805 * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
6806 the patch contains ../ and a small directory name later. Hopefully fixes
6809 2006-04-10 Martin Baulig <martin@ximian.com>
6811 Clean up the debugger's thread-handling code.
6813 The debugger's thread-handling code has been moved from
6814 ../mini/debug-debugger.c to threads.c. We now iterate directly
6815 over the `threads' hash, keep track of exiting threads and also
6818 We can now debug XSP and XSP based applications with the debugger.
6820 * object-internals.h (MonoThread): Added `gpointer end_stack'.
6823 (MonoThreadCallbacks): Removed; this was only used by the debugger.
6824 (mono_install_thread_callbacks): Likewise.
6826 * threads.c (mono_thread_callbacks): Removed.
6827 (debugger_thread_created, debugger_thread_exited): New static functions.
6828 (start_wrapper): Call debugger_thread_created().
6829 (thread_cleanup): Call debugger_thread_exited().
6830 (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
6831 (mono_debugger_init_threads): New public function.
6832 (debugger_thread_vtable): Moved here from debug-debugger.c; we now
6833 iterate directly over the `threads' hash and also use proper locking.
6835 * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
6837 * mono-debug-debugger.h
6838 (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
6840 2006-04-10 Zoltan Varga <vargaz@gmail.com>
6842 * reflection.c (encode_cattr_value): Fix handling of parameter type=object,
6843 argument type=array. Fixes #78057.
6845 2006-04-10 Atsushi Enomoto <atsushi@ximian.com>
6847 * culture-info-table.h : regenerated. Fixed bug #69652.
6849 2006-04-07 Zoltan Varga <vargaz@gmail.com>
6851 * loader.c metadata.c: Reapply a variant r59116.
6853 * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
6855 * class.c (mono_class_setup_interface_offsets): New internal function.
6857 * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
6858 interfaces too. Fixes #77398.
6860 * reflection.c (encode_cattr_value): Add support for
6861 parameter type=object, argument type=array.
6862 (load_cattr_value): Ditto. Fixes #77916.
6864 * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
6865 (emit_ptr_to_object_conv): Ditto. Fixes #77960.
6867 * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
6868 a byval char array and CharSet is Ansi.
6870 * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
6872 2006-04-06 Zoltan Varga <vargaz@gmail.com>
6874 * metadata.c: Add some locking comments.
6876 * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
6878 (mono_metadata_free_method_signature): Don't free the signature itself.
6880 * loader.c (mono_free_method): Don't free the signature in non-dynamic methods.
6882 * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
6883 reference the same MonoImage.
6884 (mono_assembly_load_from_full): Add an assert.
6886 2006-04-05 Zoltan Varga <vargaz@gmail.com>
6888 * image.c (mono_image_close): Don't put the image we are about to free into the
6889 loaded_images_guid_hash.
6891 * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
6892 to reduce code duplication.
6894 * marshal.c: Register the native functions called by this module as icalls, to
6895 somewhat centralize the creation of MonoMethodSignature's.
6897 * loader.c (mono_method_signature): Add a cache for method signatures.
6899 * metadata.c (mono_metadata_get_param_attrs): New helper function to return
6900 the parameter attributes of a method.
6901 (mono_metadata_parse_method_signature_full): Refactored the computation of
6902 parameter attributes into a separate function. Also avoid one allocation in
6905 * assembly.c (mono_assembly_close): Ditto.
6907 * image.c (mono_image_close): Log trace messages with INFO level.
6909 * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
6911 * image.c reflection.c: Correct reference counting of image modules.
6913 * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
6914 of this function from the image mempool.
6916 (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
6917 to allow more cached types to be used.
6919 * mono-debug.c (mono_debug_add_method): Appled patch from
6920 David S. Miller <davem@sunset.davemloft.net>: Access
6921 minfo->lexical_blocks[] entry elements using read32().
6923 2006-04-04 Zoltan Varga <vargaz@gmail.com>
6925 * loader.c (mono_free_method): No longer free the method header for non-dynamic
6926 methods as it is allocated from the mempool.
6928 * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
6931 * metadata-internals.h: Add comments describing the reference counting scheme
6932 used for MonoImage and MonoAssembly.
6934 * image.c assembly.c reflection.c: Rework reference counting of images and
6935 assemblies so they are freed when the runtime is shut down. Free some
6936 additional memory structures when an image is unloaded.
6938 2006-04-03 Zoltan Varga <vargaz@gmail.com>
6940 * class.c loader.c reflection.c: Allocate more data structures in
6943 2006-03-31 Miguel de Icaza <miguel@novell.com>
6946 (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
6947 build on pre glib 2.4 systems.
6949 2006-03-31 Zoltan Varga <vargaz@gmail.com>
6951 * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
6953 * icall.c: Fix some warnings.
6955 2006-03-29 Atsushi Enomoto <atsushi@ximian.com>
6957 * culture-info-table.h : regenerated.
6959 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
6961 * threads.c, object-internals.h, verify.c: changed the culture caching
6962 code to use a normal MonoArray for storage so the GC can keep track of
6963 them easily. Fixed bits of the cache logic, too and simplified the
6966 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
6968 * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
6969 thread for non-Boehm GCs.
6971 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
6973 * domain.c, object.c, domain-internals.h: reduce the amount of memory
6974 needed to keep track of the data for static fields.
6976 2006-03-29 Raja R Harinath <rharinath@novell.com>
6979 * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
6980 for interface classes. Use 'num_methods' instead.
6981 (ves_icall_Type_GetPropertiesByName): Likewise. Setup vtable
6982 before using '->vtable_size' field.
6984 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
6986 * domain.c, object.c, domain-internals.h: proxy_vtable_hash
6987 doesn't contain managed pointers, so use a normal hashtable.
6989 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
6991 * reflection.c, class-internals.h, domain.c: fixed handling of types
6992 used as values for objects in custom attributes (bug #77915):
6994 2006-03-24 Martin Baulig <martin@ximian.com>
6996 * class.c (mono_class_setup_fields): Added support for generic
6997 instances; fixes #77580.
6999 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7001 * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
7003 2006-03-24 Dick Porter <dick@ximian.com>
7005 * file-io.c (get_file_attributes): More stat macro breakage.
7008 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
7010 * profiler.c: added the file=filename option in the default profiler
7011 to output the profile data to filename.
7013 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7015 * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
7018 2006-03-22 Martin Baulig <martin@ximian.com>
7020 * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
7021 allocated `MonoClassField *' in `fb->handle'.
7023 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
7025 * class.c, image.c, metadata-internals.h: implemented new mechanism to
7026 allocate interface ID to save memory and allow better ID reuse on
7027 appdomain unload. setup_generic_vtable () removal from Martin.
7029 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7031 * object.h, appdomain.c, domain.c, exception.c, icall.c,
7032 locales.c, marshal.c, object.c, reflection.c, threadpool.c,
7033 threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
7034 write barriers for reference stores with managed objects accessed with
7035 C structures in the runtime and in embedding programs.
7037 2006-03-20 Raja R Harinath <rharinath@novell.com>
7039 * icall.c (ves_icall_Type_GetInterfaces): Avoid using
7040 'interface_id' and 'max_interface_id' fields of MonoClasses
7041 representing open generic types.
7043 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
7045 * object.h, object.c, icall.c: added functions to deal with
7046 storing valuetypes that contain references in managed objects.
7047 * reflection.c, string-icalls.c, threads.c, marshal.c: small
7048 fixes and comments around uses of mono_array_addr ().
7050 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
7052 * object.h, icall.c, monitor.c: object.GetHashCode ()
7053 implementation that supports the moving garbage collector.
7055 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
7057 * icall.c, threads-types.h, threads.c: implemented finalizer for
7060 2006-03-15 Zoltan Varga <vargaz@gmail.com>
7062 * metadata.c (mono_type_size): Add a fixme.
7063 (mono_type_stack_size): Ditto.
7065 * object-internals.h (MonoReflectionAssemblyBuilder): Added
7066 'type_forwarders' field.
7068 * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
7069 attribute from net 2.0.
7071 * object.c (mono_vtable_get_static_field_data): Moved this to object.c
7074 * class.c (mono_class_setup_fields): Fix a warning.
7076 * class.c (mono_class_from_name): Add support for assemblyref entries
7077 in the EXPORTEDTYPE table.
7079 * reflection.c: Add support for handling type forwarders under net 2.0.
7081 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7083 2006-03-14 Zoltan Varga <vargaz@gmail.com>
7085 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
7086 overwriting entries in ModuleBuild->types, also clean up the code
7087 a little. Fixes #77774.
7089 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
7091 * domain.c, assembly.c, metadata-internals.h, class-internals.h:
7092 load friend assembly info when present.
7094 2006-03-14 Raja R Harinath <rharinath@novell.com>
7096 Fix crasher on gtest-158.cs.
7097 * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
7098 the return value if the MonoClass we want is yet in an
7100 * class.c (mono_class_create_from_typedef): Add an comment
7101 explaining an order dependency between mono_class_setup_parent and
7102 mono_class_setup_mono_type.
7104 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
7106 * class.c: documentation updates and events bug fix.
7108 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
7110 * class.c: some cleanup, locking fixes.
7112 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
7114 * class.c: fix the generics code to setup nested
7115 type info to the instantiated type (bug #77770).
7117 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
7119 * marshal.c: fixed a few type correctness issues.
7121 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7123 * loader.c: the Set/Get/Addrtess array methods should be public.
7125 2006-03-11 Zoltan Varga <vargaz@gmail.com>
7127 * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
7129 * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
7132 2006-03-10 Zoltan Varga <vargaz@gmail.com>
7134 * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
7136 * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
7138 * mempool.c (mono_mempool_alloc): Speed this up a bit.
7139 (mono_mempool_alloc0): Ditto.
7141 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7144 (create_object_from_sockaddr): it was allocating 4 extra bytes
7145 for the AF_UNIX data. Fixes bug #77747.
7147 2006-03-09 Zoltan Varga <vargaz@gmail.com>
7149 * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
7151 2006-03-09 Dick Porter <dick@ximian.com>
7153 * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
7154 Fixes bug 76966 again.
7156 2006-03-07 Peter Dennis Bartok <pbartok@novell.com>
7158 * verify.c (dtfinfo_fields): Updated to match new (serializable) field
7160 * appdomain.c: Bumped corlib version to 48 (due to r57532)
7162 2006-03-07 Martin Baulig <martin@ximian.com>
7165 (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
7167 2006-03-07 Martin Baulig <martin@ximian.com>
7170 (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
7171 regression introduced in r56970; see gtest-252.cs.
7173 * loader.c (mono_get_method_constrained): Correctly handle generic
7174 methods; see gtest-253.cs.
7176 2006-03-04 Zoltan Varga <vargaz@gmail.com>
7178 * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
7180 2006-03-04 Martin Baulig <martin@ximian.com>
7182 * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
7183 compute the parent type at runtime, just like we're already doing
7187 (mono_reflection_bind_generic_parameters): Don't compute the
7188 parent type anymore.
7190 * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
7192 2006-03-04 Martin Baulig <martin@ximian.com>
7194 * mono-debug-debugger.h
7195 (mono_debugger_create_notification_function): Allocate memory at
7196 runtime and return a pointer to it.
7198 2006-03-03 Zoltan Varga <vargaz@gmail.com>
7200 * assembly.c: Fix windows build.
7202 * assembly.c: Fix build.
7204 * assembly.c: Move the contents of os/{unix,win32}/util.c to this file.
7206 * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
7208 2006-03-03 Dick Porter <dick@ximian.com>
7211 (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
7212 Check parameters before dereferencing them. Fixes Aaron's part of
7215 2006-03-03 Raja R Harinath <rharinath@novell.com>
7217 Fix performance regression.
7218 * loader.c (find_method_in_class): Add 'from_class' argument.
7219 Rename 'klass' argument to 'in_class'. The signature is compared
7220 against the method in 'in_class', and the corresponding method is
7221 returned from 'from_class'.
7222 (find_method): Walk both 'in_class' and 'from_class' in parallel.
7223 (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
7224 type definition and generic instantiation in parallel.
7225 (mono_get_method_constrained): Update to changes.
7227 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
7229 * threads.c: make sure the domain is correct, too when doing
7230 mono_thread_attach ().
7232 2006-03-01 Zoltan Varga <vargaz@gmail.com>
7234 * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
7235 windows. Fixes #77683.
7237 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
7239 * object.h, *: introduced specific way to set elements of an array
7240 of references to be used as write barrier. Still need to audit the
7241 uses of mono_array_addr.
7243 2006-03-01 Miguel de Icaza <miguel@novell.com>
7245 * object-internals.h: New field to cache the assmebly name, patch
7246 from Tambet Ingo (tambet@ximian.com)
7248 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7250 * decimal.h, class-internals.h, metadata-internals.h,
7251 file-io.h: mark a few function declarations as internal, to
7252 reduce the number of PLT entries.
7254 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7256 * file-io.c: fix typo in warning message.
7258 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
7260 * loader.c: on unix, lookup the "*A" version of a function
7261 if charset is auto as a second option before failing.
7263 2006-02-28 Raja R Harinath <rharinath@novell.com>
7265 * class.h (mono_class_inflate_generic_method): Revert to two
7267 * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
7268 (mono_class_inflate_generic_method_full): Add.
7269 * class.c (mono_class_inflate_generic_method_full): Rename from
7270 'mono_class_inflate_generic_method'. Don't set 'inflated' field.
7271 (mono_class_inflate_generic_method): New. Wrapper around ..._full.
7272 * loader.c, reflection.c: Update to changes.
7274 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
7276 * icall.c: const fixes and small improvements.
7278 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7280 * threadpool.c: for asynchronous connect(), enable the same workaround
7281 for BSD 6 as for the Mac. Fixes bug #77637.
7283 2006-02-24 Zoltan Varga <vargaz@gmail.com>
7285 * marshal.c (mono_marshal_free_asany): Fix handling of blittable
7286 formatted classes. Fixes #77524.
7288 2006-02-24 Raja R Harinath <rharinath@novell.com>
7290 * class.c (inflate_generic_type): Add a couple more
7291 micro-optimizations.
7292 (inflate_generic_context): Don't use the 'gmethod' from
7294 (mono_class_inflate_generic_method): If the method has generic
7295 parameters, but the passed-in context doesn't have a 'gmethod',
7296 create one. Use the possibly simplified generic instantiation
7297 from the declaring class instead of the one passed in.
7299 2006-02-24 Raja R Harinath <harinath@gmail.com>
7301 Make generic method signature and method header handling lazy.
7302 * class.c (mono_class_inflate_generic_signature): Move to loader.c.
7303 (inflate_generic_header): Likewise.
7304 (mono_class_inflate_generic_method): Rewrite. Add a 'klass_hint'
7305 parameter to avoid inflating types.
7306 (mono_get_inflated_method): Empty out.
7307 * class.h (mono_class_inflate_generic_method): Update to changes.
7308 * loader.c (mono_get_method_from_token): Don't parse signature for
7309 generic methods, nor methods of generic classes.
7310 (mono_method_signature): Rename from 'mono_method_signature'.
7311 Inflate signature on demand.
7312 (mono_method_get_header): Inflate method header on demand.
7313 * reflection.c: Update to changes.
7315 2006-02-23 Raja R Harinath <rharinath@novell.com>
7317 * metadata.c (mono_metadata_inflate_generic_inst): If the
7318 instantiation is closed, don't bother expanding it in the new
7320 * class.c (inflate_generic_class): If the generic instantiation
7321 doesn't change after inflation, return the argument itself.
7322 (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
7324 (inflate_generic_context): If neither the generic class nor the
7325 generic method instantiations change, return the original context.
7326 * reflection.c (mono_method_get_object): Do
7327 'mono_get_inflated_method' before accessing the ->klass field.
7328 (inflate_mono_method): Don't create a MonoGenericMethod unless
7330 (inflate_method): Don't pass a constructed type as the declaring
7331 type of a methodbuilder.
7333 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
7335 * object.c: fix memory overwrite.
7337 2006-02-22 Dick Porter <dick@ximian.com>
7339 * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
7340 it doesn't work any more.
7341 (mono_threads_request_thread_dump): Fix unused variable warnings.
7343 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7345 * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
7346 mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
7347 the public header file.
7349 2006-02-21 Zoltan Varga <vargaz@gmail.com>
7351 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
7353 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
7355 * class-internals.h, object.c: reduce the size of MonoVTable
7356 and store the interface_offsets array at negative offsets.
7358 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
7360 * metadata.c: tweak table descriptors data structures to reduce
7361 size and runtime relocations.
7363 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7365 * marshal.c: fix some types and opcodes to be type-safe
7366 in marshaling wrappers.
7368 2006-02-21 Ankit Jain <jankit@novell.com>
7370 * metadata.h (mono_metadata_decode_signed_value): Add declaration.
7372 2006-02-21 Raja R Harinath <rharinath@novell.com>
7374 * metadata.c (get_constraints): Relax debugging checks for monodis.
7376 2006-02-21 Ankit Jain <jankit@novell.com>
7378 * metadata.c (mono_metadata_load_generic_params): Move the code
7379 checking for ambiguous generic params from here to mono/dis/get.c
7380 * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
7382 2006-02-21 Raja R Harinath <harinath@gmail.com>
7384 Fix assertion triggered when compiling nemerle.
7385 * class.c (mono_get_shared_generic_inst): Rename from
7386 get_shared_inst and make non-static.
7387 * loader.c (mono_get_shared_generic_method): New. Used to create
7388 the MonoGenericContext-equivalent of a MonoGenericContainer.
7389 (mono_get_method_from_token): Initialize the 'context' field of
7390 the created MonoGenericContainer.
7391 * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
7392 * metadata.c (get_constraints): Add sanity check.
7393 * class-internals.h: Add new internal methods.
7395 * reflection.c (verify_safe_for_managed_space): New sanity check.
7396 Currently checks that owner-less generic parameters aren't allowed
7398 (mono_type_get_object): Use it.
7399 * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
7400 that are now in mono_type_get_object.
7401 (ves_icall_MonoMethod_GetGenericArguments): Likewise.
7403 2006-02-19 Raja R Harinath <harinath@gmail.com>
7405 * metadata.c (mono_type_create_from_typespec): Rename from
7406 mono_type_create_from_typespec_full. Remove MonoGenericContainer*
7407 argument and caching of types in the generic container.
7408 (unwrap_arrays, find_generic_param): Remove.
7409 * metadata-internals.h: Update.
7410 * class-internals.h (_MonoGenericContainer): Remove 'types' field.
7412 2006-02-18 Zoltan Varga <vargaz@gmail.com>
7414 * class.c (mono_class_get_exception_for_failure): Fix a warning.
7416 * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
7417 return values. Fixes #77581.
7419 * class.c (mono_fnptr_class_get): Switch name and name_space.
7421 * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
7422 classes and add support for [In, Out] attributes.
7423 (mono_marshal_free_asany): Ditto. Fixes #77524.
7425 2006-02-18 Raja R Harinath <harinath@gmail.com>
7427 * class.c (mono_class_from_generic_parameter): Make more robust to
7428 incomplete MonoGenericContainers from monodis.
7430 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7432 * class-internals.h: added some more exception types.
7433 * class.c, metadata.c: added a few checks to handle missing
7436 2006-02-17 Raja R Harinath <rharinath@novell.com>
7438 Use owner-less generic-params some more.
7439 * class.c (my_mono_class_from_generic_parameter): Remove.
7440 (mono_class_from_generic_parameter): Handle null image,
7441 param->name and param->owner.
7442 (mono_class_from_mono_type): Update.
7443 (mono_class_create_from_typespec): Remove 'container' parameter.
7444 If that parameter is non-null, the result is always inflated by
7445 'mono_class_get_full' anyway.
7446 (mono_class_get): Rename from _mono_class_get. Remove 'container'
7448 (mono_class_get_full): Update.
7450 * class.c (inflate_generic_type) [GENERICINST]: If the generic
7451 instance is not open, don't bother inflating.
7452 (mono_class_setup_fields): Hoist some loop-invariants. Don't
7453 parse metadata for inflated classes.
7454 (_mono_class_get): Change GenericContext* parameter to
7456 (mono_class_create_from_typespec): Likewise. Simplify, and
7457 implement trivially. All the cases are handled in
7458 mono_class_from_mono_type. Don't inflate returned class.
7459 (mono_class_get_full): Delegate GENERICINST optimization to
7460 inflate_generic_type.
7461 (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
7463 2006-02-16 Dick Porter <dick@ximian.com>
7465 * socket-io.c (create_object_from_sockaddr): Fix typo.
7466 (create_sockaddr_from_object): Check array lengths before
7467 potentially accessing items off the end.
7468 (ves_icall_System_Net_Sockets_Socket_Receive_internal)
7469 (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
7470 (ves_icall_System_Net_Sockets_Socket_Send_internal)
7471 (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
7472 length checks to avoid wraparound overflows.
7473 (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
7474 contents of the array of sockets
7475 (hostent_to_IPHostEntry2)
7476 (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
7477 Check return value of inet_ntop ().
7478 (addrinfo_to_IPHostEntry): Fix typo
7480 2006-02-16 Raja R Harinath <rharinath@novell.com>
7482 Type metadata parsing doesn't use generic-instantiation information.
7483 * metadata.c (mono_metadata_parse_array_full): Change
7484 MonoGenericContext* parameter to MonoGenericContainer*.
7485 (mono_metadata_parse_type_full): Likewise.
7486 (mono_type_create_from_typespec_full): Likewise.
7487 (mono_metadata_parse_mh_full): Likewise.
7488 (mono_metadata_parse_generic_inst): Likewise.
7489 (do_mono_metadata_parse_generic_class): Likewise.
7490 (do_mono_metadata_parse_type): Likewise.
7491 * metadata-internals.h: Update to changes.
7492 * class.c (mono_class_find_enum_basetype): Likewise.
7493 (mono_class_setup_fields): Likewise.
7494 (mono_class_create_from_typespec): Likewise.
7495 * loader.c (method_from_methodspec): Likewise.
7496 (mono_get_method_from_token): Likewise.
7497 (mono_method_get_header): Likewise.
7499 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7501 * marshal.c: handle additional GENERICINST case (patch from
7502 Thong Nguyen <tum@veridicus.com>).
7503 Fix a few cases where LDIND_I/STIND_I was used for references.
7505 2006-02-16 Raja R Harinath <rharinath@novell.com>
7507 * reflection.c (mono_reflection_get_token): Remove unused variable.
7509 2006-02-16 Martin Baulig <martin@ximian.com>
7511 * reflection.c (mono_reflection_get_token): Add support for fields
7512 in instantiated generic types.
7515 (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
7517 2006-02-15 Martin Baulig <martin@ximian.com>
7520 (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
7521 (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
7522 (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
7523 (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
7525 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
7527 * class.c, metadata.c, metadata.h, object.c, icall.c,
7528 marshal.c: changed mono_type_get_underlying_type () to do
7529 the sensible thing and introduced mono_type_generic_inst_is_valuetype().
7530 Fixed handling of instantiated generic valuetypes (bug #75479).
7532 2006-02-15 Raja R Harinath <rharinath@novell.com>
7534 * metadata.c (mono_metadata_decode_signed_value): Simplify.
7535 Delegate to mono_metadata_decode_value, and work on the returned value.
7537 * icall.c (ves_icall_MonoType_GetGenericArguments):
7538 Add consistency check here too.
7540 2006-02-15 Ankit Jain <jankit@novell.com>
7542 * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
7545 2006-02-15 Ankit Jain <jankit@novell.com>
7547 * metadata.c (mono_metadata_decode_signed_value): New function to decode
7548 signed values, used only for representing lower bounds of arrays.
7549 (mono_metadata_parse_array_full): Use new
7550 mono_metadata_decode_signed_value to decode lower bounds.
7552 2006-02-14 Martin Baulig <martin@ximian.com>
7555 (mono_reflection_get_token): Support "MonoGenericMethod" and
7556 "MonoGenericCMethod" and allow generic instances / methods.
7558 2006-02-11 Zoltan Varga <vargaz@gmail.com>
7560 * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
7561 to obtain the terminal size using an ioctl.
7563 * object.c (mono_nullable_init): Revert this as nullable reference
7564 types are not valid.
7565 (mono_nullable_box): Ditto.
7567 2006-02-09 Dick Porter <dick@ximian.com>
7569 * threads.c (mono_thread_detach): Drop a reference to the thread
7572 2006-02-09 Zoltan Varga <vargaz@gmail.com>
7574 * object.c (mono_nullable_init): Handle nullable reference types.
7575 (mono_nullable_box): Ditto. Fixes #77446.
7577 2006-02-07 Martin Baulig <martin@ximian.com>
7579 * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
7581 2006-02-07 Ankit Jain <jankit@novell.com>
7583 * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
7584 * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
7585 (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
7586 (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
7587 (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
7588 (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
7590 2006-02-02 Zoltan Varga <vargaz@gmail.com>
7592 * class.c (mono_class_create_generic): Set type_token as well.
7594 * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
7597 2006-02-02 Martin Baulig <martin@ximian.com>
7599 * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
7600 has never been used so far.
7602 2006-02-02 Martin Baulig <martin@ximian.com>
7604 * mono-debug-debugger.h: Changed comment at the top of this file;
7605 the header is not installed, but it's safe to #include it from
7608 * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
7609 * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
7611 2006-02-02 Martin Baulig <martin@ximian.com>
7614 (MonoSymbolTable): Removed the `metadata_info' field.
7617 (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
7619 * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7620 (mono_debugger_add_builtin_types): Removed.
7621 (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
7622 (mono_debugger_create_notification_function): We now operate on a
7623 pre-allocated area; take a `gpointer' and return `void'.
7625 * mono-debug-debugger.c
7626 (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
7627 (mono_debugger_add_builtin_types): Removed.
7629 2006-02-02 Martin Baulig <martin@ximian.com>
7631 * threads.c (mono_debugger_create_all_threads): New public method.
7633 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7635 * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
7636 breaks on several platforms.
7638 2006-02-01 Sebastien Pouliot <sebastien@ximian.com>
7640 * assembly.c: the VS.NET build doesn't supply default values for
7641 MONO_ASSEMBLIES and MONO_CFG_DIR.
7643 2006-02-01 Zoltan Varga <vargaz@gmail.com>
7645 * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
7648 * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
7650 * loader.c (method_from_memberref): Fix a warning.
7652 * metadata.c (mono_metadata_load_generic_params): Fix a warning.
7654 * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
7655 with explicit layout. Fixes #77433.
7657 2006-01-31 Zoltan Varga <vargaz@gmail.com>
7659 * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure
7660 max_interface_id is initialized before using it. Fixes #77398.
7661 (ves_icall_Type_GetInterfaces): Ditto.
7663 2006-01-30 Raja R Harinath <rharinath@novell.com>
7665 * metadata.c (mono_metadata_parse_method_signature_full): Don't
7666 allocate memory for parameter attributes when parsing memberref
7668 * loader.c (mono_loader_set_error_method_load): Don't warn.
7669 (method_from_memberref): Ensure MissingMethodException gets thrown
7670 if method is not found. Make warning more informative.
7672 2006-01-29 Raja R Harinath <harinath@gmail.com>
7675 * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
7676 return true if is byref.
7677 (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
7678 (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
7679 (ves_icall_MonoType_get_DeclaringMethod): Likewise.
7681 2006-01-27 Raja R Harinath <rharinath@novell.com>
7683 Fix tests/find-method.2.il
7684 * loader.c (find_method, find_method_in_class): Remove is_inflated
7685 argument. Revert 2006-01-18 change.
7686 (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
7687 is generic, search for method in its generic definition.
7688 * class.c (mono_class_setup_vtable_general): Print generic
7689 arguments of generic types in debugging printf.
7691 2006-01-26 Zoltan Varga <vargaz@gmail.com>
7693 * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
7695 * threads.c (mono_threads_request_thread_dump): New helper function.
7697 2006-01-25 Raja R Harinath <rharinath@novell.com>
7699 * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
7701 2006-01-25 Ankit Jain <jankit@novell.com>
7703 * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
7704 move definition to ..
7705 * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
7707 2006-01-25 Ankit Jain <jankit@novell.com>
7708 Raja R Harinath <rharinath@novell.com>
7710 * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
7711 * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
7714 2006-01-25 Martin Baulig <martin@ximian.com>
7716 * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
7717 `MonoDebuggerThread' into debug-debugger.c.
7719 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
7721 * profiler.c: fix printing of data.
7723 2006-01-24 Atsushi Enomoto <atsushi@ximian.com>
7725 * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
7726 invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
7728 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
7730 * object.c: fix deadlock related to string interning.
7732 2006-01-23 Martin Baulig <martin@ximian.com>
7734 * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7736 * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
7738 2006-01-23 Martin Baulig <martin@ximian.com>
7740 * mono-debug.h: Moved the prototypes of some functions which are
7741 used by the JIT here from mono-debug-debugger.h.
7743 2006-01-21 Martin Baulig <martin@ximian.com>
7745 * Makefile.am: Don't install mono-debug-debugger.h.
7747 2006-01-21 Martin Baulig <martin@ximian.com>
7749 * mono-debug-debugger.h: Enforce the private status of this header
7750 file and removed unneccessary #include's in metadata/*.c and mini/*.c.
7751 Moved some stuff from mono-debugger-jit-wrapper.h here.
7753 2006-01-20 Raja R Harinath <rharinath@novell.com>
7755 * class.c (mono_class_from_typeref): Add a sanity test to help
7756 catch lack of assembly load/search hooks.
7758 2006-01-19 Zoltan Varga <vargaz@gmail.com>
7760 * marshal.c (emit_struct_conv): Relax the fields with same offset
7761 check even more. Fixes #77230.
7763 2006-01-18 Martin Baulig <martin@ximian.com>
7765 * loader.c (find_method_in_class): Added `gboolean is_inflated'
7766 argument; if false, we compare the uninstantiated signatures.
7767 (method_from_memberref): Compare the uninstantiated signatures;
7770 2006-01-18 Robert Jordan <robertj@gmx.net>
7772 * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
7773 Clear the weak link. Fixes bug #77170.
7775 * gc.c (mono_gchandle_free):
7776 Reflect *-gc.c changes (tiny optimization).
7778 2006-01-18 Zoltan Varga <vargaz@gmail.com>
7780 * metadata.c (mono_metadata_signature_dup): Applied patch from
7781 Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
7784 2006-01-17 Zoltan Varga <vargaz@gmail.com>
7786 * marshal.c (emit_struct_conv): Allow fields with the same offset when
7787 marshalling from native to managed code. Fixes #77230.
7789 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7791 * threadpool.c: fix problem (Mac only) when more than one asynchronous
7792 connect. Fixes bug #77020.
7794 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
7796 * class.c: fixed id assignement for nested interfaces (bug #77275).
7797 Added also better info for --print-vtable debugging.
7799 2006-01-12 Martin Baulig <martin@ximian.com>
7801 * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
7802 interfaces on-the-fly; fixes #76625.
7805 (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
7806 don't need that anymore.
7808 2006-01-12 Miguel de Icaza <miguel@novell.com>
7811 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
7812 To avoid initing the nested_classes when not needed I turned the
7813 PeerCredData as a toplevel internal class, as it has to be shared
7816 Fixes the CASA issue.
7818 2006-01-11 Ben Maurer <bmaurer@andrew.cmu.edu>
7820 * domain.c: Accessors for MonoJitInfo
7822 * profiler-private.h: Add jitinfo to the end jit hook
7824 * profiler.[ch]: Define new hooks, called after jitting which give
7825 the MonoJitInfo that was compiled
7827 2006-01-10 Martin Baulig <martin@ximian.com>
7829 * class.c (mono_class_setup_events): Add support for generic
7830 classes; fixes #76440.
7832 2006-01-06 Raja R Harinath <rharinath@novell.com>
7835 * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
7836 on passed-in method.
7838 2006-01-03 Zoltan Varga <vargaz@gmail.com>
7840 * object.c (mono_runtime_invoke_array): Add Nullable support.
7842 * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
7844 2006-01-03 Sebastien Pouliot <sebastien@ximian.com>
7846 * file-io.c: Don't consider sockets as directory and avoid an endless
7847 loop. Fix bug #76966.
7849 2006-01-03 Zoltan Varga <vargaz@gmail.com>
7851 * object.c (mono_nullable_init): New helper function.
7852 (mono_nullable_box): Ditto.
7854 * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
7856 * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
7858 * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
7860 2006-01-02 Zoltan Varga <vargaz@gmail.com>
7862 * class.c (mono_class_is_assignable_from): Make T assignable to
7865 2005-12-23 Sebastien Pouliot <sebastien@ximian.com>
7867 * appdomain.c: Bump corlib version to 46.
7868 * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
7869 serialization purpose) and changed ves_icall_System_Reflection_
7870 Assembly_get_code_base signature to accept a boolean (to escape, or
7871 not, the assembly code base).
7873 2005-12-23 Dick Porter <dick@ximian.com>
7877 * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
7878 CreateEvent icall now returns "created" boolean parameter.
7880 2005-12-22 Zoltan Varga <vargaz@gmail.com>
7882 * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
7885 * reflection.c (mono_custom_attrs_construct_by_type): Handle the case
7886 when attr_klass is an interface. Fixes #77045.
7888 2005-12-20 Zoltan Varga <vargaz@gmail.com>
7890 * marshal.c (emit_struct_conv): Fix previous patch.
7892 * marshal.c (emit_struct_conv): Add a check for fields with the same
7895 2005-12-20 Raja R Harinath <rharinath@novell.com>
7897 Fix regression in Mono.C5.
7898 * class.c (mono_class_create_generic): If 'klass' is an interface
7899 set up the interface offsets.
7900 (mono_class_is_assignable_from): Don't throw away generic arguments.
7902 2005-12-19 Raja R Harinath <rharinath@novell.com>
7904 * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
7907 2005-12-15 Raja R Harinath <rharinath@novell.com>
7909 * metadata.c (mono_metadata_parse_method_signature_full): Remove a
7911 (do_mono_metadata_parse_generic_class): Don't pass the current
7912 generic context when parsing the type being instantiated: it
7913 cannot use it, anyway.
7915 * loader.c (method_from_memberref): Don't inflate a signature if
7916 it doesn't contain any type parameters.
7918 2005-12-15 Zoltan Varga <vargaz@gmail.com>
7920 * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
7922 2005-12-14 Martin Baulig <martin@ximian.com>
7925 (mono_type_get_name_recurse): Don't return null for type
7926 parameters and open generic classes.
7927 (mono_class_setup_methods): Don't exclude generic instances.
7928 (mono_get_unique_iid): Use different IDs for different
7929 instantiations of the same generic type.
7930 (mono_class_setup_vtable): Only use setup_generic_vtable() for
7931 open generic instances; create a normal vtable for closed generic
7933 (mono_class_setup_vtable_general): We're now also called for
7934 closed generic instances.
7937 (mono_reflection_bind_generic_parameters): Correctly use
7938 mono_metadata_lookup_generic_inst() everywhere.
7940 2005-12-14 Zoltan Varga <vargaz@gmail.com>
7942 * object.c (mono_class_create_runtime_vtable): Call
7943 mono_class_setup_vtable ().
7945 * reflection.c (mono_reflection_get_dynamic_overrides): New helper
7947 (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
7950 * loader.c (mono_loader_set_error_type_load): Print the type load
7951 warnings to the console so they are more visible to the user.
7952 (mono_loader_set_error_method_load): Ditto.
7954 * reflection.c (ensure_runtime_vtable): Revert the last change as it
7957 * reflection.c (ensure_runtime_vtable): Fix build.
7959 * reflection.c (ensure_runtime_vtable): Disable an optimization which
7960 doesn't work in all cases.
7962 2005-12-13 Zoltan Varga <vargaz@gmail.com>
7964 * object.c (mono_array_new_full): Treat a single dimensional array
7965 with 0 lower bounds as an szarray. Fixes #76973.
7967 * reflection.c (custom_attr_visible): Really fix this.
7969 2005-12-12 Zoltan Varga <vargaz@gmail.com>
7971 * reflection.c (custom_attr_visible): Allow nested public attributes
7974 * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
7977 2005-12-12 Raja R Harinath <harinath@gmail.com>
7979 * class.c (set_generic_param_owner): Delete.
7980 (mono_class_create_from_typedef): Don't set ->owner field of
7981 generic parameters to "param containers" of enclosing classes.
7982 * reflection.c (mono_reflection_initialize_generic_parameter):
7985 2005-12-11 Zoltan Varga <vargaz@gmail.com>
7987 * reflection.c (custom_attr_visible): Fix build.
7989 2005-12-10 Zoltan Varga <vargaz@gmail.com>
7991 * reflection.c (mono_custom_attrs_from_builders): Avoid returning
7994 * reflection.c (reflection_methodbuilder_to_mono_method): Fix
7995 handling of null parameter defaults.
7997 2005-12-09 Raja R Harinath <rharinath@novell.com>
7999 * class.c (mono_class_from_generic_parameter): Don't set
8000 klass->generic_container.
8001 (my_mono_class_from_generic_parameter): Likewise.
8003 2005-12-07 Zoltan Varga <vargaz@gmail.com>
8005 * reflection.c (load_public_key): Fix a warning.
8006 (method_encode_code): Fix unaligned accesses.
8008 2005-12-07 Martin Baulig <martin@ximian.com>
8010 * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
8013 (write_generic_param_entry): Encode our custom attrs.
8015 * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
8017 2005-12-07 Martin Baulig <martin@ximian.com>
8019 * reflection.c (encode_new_constraint): Removed; we don't use the
8020 `NewConstraintAttribute' anymore.
8022 2005-12-06 Zoltan Varga <vargaz@gmail.com>
8024 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
8025 not fire a TypeResolve event when Assembly.GetType () is called.
8027 2005-12-05 Ben Maurer <bmaurer@ximian.com>
8029 Beginning of support for nullable types in the runtime. Parts of
8030 this patch are from Martin.
8032 * appdomain.c (MONO_CORLIB_VERSION): Bump
8034 * domain.c (mono_init_internal): get the nullable type
8036 * class.c (mono_class_is_nullable): New method
8037 (mono_class_get_nullable_param): New mehod
8038 (mono_class_create_generic): In types T? set cast_class to T
8040 * class-internals.h (MonoDefaults): new nullable default class
8041 (mono_class_get_nullable_param, mono_class_get_nullable_param):
8044 2005-12-05 Raja R Harinath <rharinath@novell.com>
8046 * metadata.c (select_container): New. Refactor code to select the
8047 appropriate GenericContainer given the type of generic parameter
8049 (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
8050 not a MonoGenericContext. Use select_container. Update parameters.
8051 (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
8053 (unwrap_arrays): Remove duplicate tests.
8054 (find_generic_param): Rename from 'has_same_context'. Now walks a
8055 generic instantiated class to find any arguments that are generic
8057 (mono_type_create_from_typespec_full): Use find_generic_param to
8058 avoid evicting some generic instantiations from the typespec
8061 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
8063 * reflection.c: fixed writing of doubles on ARM FPA.
8065 2005-12-02 Robert Jordan <robertj@gmx.net>
8067 * icall.c: Fixed EventInfo.ReflectedType (#76829).
8069 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8071 * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
8072 least on SUSE 10 they are not the same (on debian, they are just the
8075 2005-12-01 Raja R Harinath <rharinath@novell.com>
8077 * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
8078 DeclaringType for VARs and MVARs.
8079 * class.c (set_generic_param_owner): Fix initialization of owner
8082 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8084 * icall.c: fixed Enum.ToObject() to correctly convert the values.
8086 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8088 * threadpool.c: workaround for a bug that shows up on the Mac:
8089 select()+connect() on a blocking socket is not like it should
8090 be, so we proceed to connect() in that case, wasting the I/O
8091 threadpool thread until connect succeedes. Fixes bug #75436.
8093 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8095 * threadpool.c: fix typo when setting file descriptor states.
8097 2005-11-28 Raja R Harinath <rharinath@novell.com>
8099 * class-internals.h (MonoGenericContainer.is_signature): Remove.
8100 * metadata.c (mono_metadata_parse_method_signature_full): Don't
8101 create a temporary signature container.
8102 (mono_metadata_parse_generic_param): Update to changes.
8103 (mono_type_create_from_typespec_full): Update to changes.
8104 * loader.c (method_from_memberref): Don't use a
8105 MonoGenericContainer while parsing a memberref signature.
8106 (method_from_methodspec): Remove dead-store of the 'container'
8107 variable. It's overwritten before use.
8109 * metadata.c (mono_type_create_from_typespec_full): Make debugging
8111 (mono_metadata_parse_generic_param): Likewise.
8112 * loader.c (find_method_in_class): Does not need a
8113 MonoGenericContainer. Use 'mono_method_signature' rather than
8114 'mono_method_signature_full'.
8115 (find_method, mono_get_method_constrained, method_from_memberref):
8118 * metadata.c (mono_type_create_from_typespec_full): Ensure that
8119 owner-less generic-parameters are never evicted from the typespec
8122 * loader.c (method_from_memberref): Don't use the current context
8123 when parsing signatures.
8124 (method_from_methodspec, mono_get_method_from_token): Update to changes.
8126 * metadata.c (do_mono_metadata_parse_generic_class): Avoid
8127 side-effects in g_assert.
8128 * loader.c (mono_get_method_from_token): Resolve klass earlier so
8129 that we don't potentially lose information.
8131 2005-11-26 Dick Porter <dick@ximian.com>
8134 * threads.c: icalls to implement basic (ie, not named)
8135 System.Threading.Semaphore.
8137 2005-11-24 Dick Porter <dick@ximian.com>
8140 (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
8141 Use GetProcessId() if it's available.
8143 2005-11-23 Zoltan Varga <vargaz@gmail.com>
8145 * icall.c threads-types.h threads.c: Add Exchange<T> icall.
8147 2005-11-23 Raja R Harinath <rharinath@novell.com>
8148 Ankit Jain <jankit@novell.com>
8150 * loader.c (mono_get_method_from_token): Initialize 'method' field
8151 of all generic parameters before parsing the signature. Remove
8152 code that "fixed"-up MVAR references.
8154 2005-11-23 Ankit Jain <jankit@novell.com>
8156 * metadata.c (mono_metadata_has_generic_params):
8157 (mono_metadata_load_generic_param_constraints):
8158 (mono_metadata_load_generic_params): Move duplicate code ...
8159 (mono_metadata_get_generic_param_row): ... here. Returns the
8160 first row-id in GenericParam table for a given owner (token).
8161 * metadata-internals.h (mono_metadata_get_generic_param_row): Add
8164 2005-11-23 Raja R Harinath <rharinath@novell.com>
8165 Ankit Jain <jankit@novell.com>
8167 * metadata.c (mono_metadata_class_equal): Pass signature_only when
8169 * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at
8170 type->data.generic_param only if the type is an MVAR.
8171 (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
8172 leak owner-less VARs and MVARs into managed space.
8174 2005-11-21 Martin Baulig <martin@ximian.com>
8177 (MonoMethod): Moved the `generic_container' here from
8178 `MonoMethodNormal' since we now also need it for
8179 `MonoMethodPInvoke';
8180 (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
8181 (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
8182 an union containing both `MonoMethodNormal' and
8183 `MonoMethodPInvoke'.
8186 (mono_get_method_from_token): Allow implementing generic methods
8190 (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
8193 2005-11-17 Dick Porter <dick@ximian.com>
8197 * process.c: Split the Process Start_internal icall into
8198 ShellExecuteEx_internal and CreateProcess_internal, which are
8199 called depending on whether UseShellExecute is true. Fixes bug
8202 * appdomain.c (MONO_CORLIB_VERSION): Incremented
8204 2005-11-17 Zoltan Varga <vargaz@gmail.com>
8206 * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
8207 'msize' parameters, use the information in 'mspec' instead.
8208 (emit_object_to_ptr_conv): Ditto.
8210 * marshal.c (emit_struct_conv): Handle explicit layout structs with
8211 fields out of order. Fixes #76733.
8213 2005-11-17 Ankit Jain <jankit@novell.com>
8215 * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
8217 2005-11-16 Atsushi Enomoto <atsushi@ximian.com>
8219 * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
8222 2005-11-16 Zoltan Varga <vargaz@gmail.com>
8224 * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
8225 for types with non-auto layout. Fixes #76717.
8227 2005-11-16 Ankit Jain <jankit@novell.com>
8229 * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
8230 * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam
8231 if generic_context is null.
8232 (mono_metadata_generic_param_equal): param->owner can be null.
8233 (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
8236 2005-11-16 Zoltan Varga <vargaz@gmail.com>
8238 * reflection.c (create_dynamic_mono_image): Set md_version_minor to
8241 2005-11-15 Martin Baulig <martin@ximian.com>
8243 * object.c (set_value): Use mono_class_from_mono_type() instead of
8244 the hack for generic instances; fixes #76136.
8246 2005-11-15 Zoltan Varga <vargaz@gmail.com>
8248 * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
8251 * image.c (load_metadata_ptrs): Initialize the new fields.
8253 * reflection.c (create_dynamic_mono_image): Ditto.
8255 * reflection.c (build_compressed_metadata): Use the new fields.
8257 * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
8260 * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
8263 2005-11-15 Ankit Jain <jankit@novell.com>
8264 Raja R Harinath <harinath@gmail.com>
8266 * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
8267 * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
8268 new per-generic_container cache if the cached MonoType's context matches
8269 the current context.
8270 (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
8271 to the expected context.
8272 (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
8274 2005-11-14 Carlos Alberto Cortez <calberto.cortez@gmail.com>
8276 * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
8277 we changed the signature of an icall.
8278 * icall.c: Modify to mono_double_ParseImpl return true/false
8279 depending on the success, instead of throwing the exception. This will
8280 help us in Double.TryParse methods.
8282 2005-11-14 Zoltan Varga <vargaz@gmail.com>
8284 * marshal.c (emit_marshal_object): Throw an exception when
8285 marshalling 'object' instead of crashing. Fixes #76696.
8287 2005-11-11 Zoltan Varga <vargaz@gmail.com>
8289 * class-internals.h: Add prototype for mono_type_get_full_name ().
8291 2005-11-11 Dick Porter <dick@ximian.com>
8293 * threads.c (mono_thread_manage): Make sure the main thread has
8294 abandoned all its mutexes when cleaning up. Fixes bug 74680.
8296 2005-11-11 Zoltan Varga <vargaz@gmail.com>
8298 * loader.c (mono_loader_set_error_type_load): Log a warning to the
8299 console about the missing type.
8300 (mono_loader_set_error_method_load): Ditto.
8302 2005-11-09 Miguel de Icaza <miguel@novell.com>
8304 * mono-config.c (mono_get_config_dir): Set the system defaults if
8307 * assembly.c (mono_set_dirs): New API entry point to set the
8308 assembly and the config directory in one call
8310 2005-11-09 Zoltan Varga <vargaz@gmail.com>
8312 * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
8313 the ftnptr was created from a delegate in a domain other than the
8314 current domain. Fixes #75377.
8316 * exception.h exception.c: Add mono_get_exception_not_supported ().
8318 2005-11-08 Martin Baulig <martin@ximian.com>
8320 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
8322 2005-11-07 Sebastien Pouliot <sebastien@ximian.com>
8324 * security-manager.h: Added definitions to deal with strongname key
8325 pairs bigger (and smaller) than 1024 bits.
8326 * reflection.c: Remove hardcoded strongname size (128 bytes) and
8327 adjust wrt the public key length being used.
8329 2005-11-03 Atsushi Enomoto <atsushi@ximian.com>
8331 * marshal.c, icall.c : reverted sig->pinvoke changes which broke
8332 Windows build (r51396-51397).
8334 2005-11-03 Martin Baulig <martin@ximian.com>
8336 * class.c (mono_class_setup_vtable_general): Also add generic
8337 methods to the vtable; fixes #76581.
8339 2005-11-01 Miguel de Icaza <miguel@novell.com>
8341 * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
8342 sure that we lookup GetString method from the System.Text.Encoding
8343 class, not the derived class or we get an empty method.
8347 2005-10-25 Miguel de Icaza <miguel@novell.com>
8349 * assembly.c (mono_assemblies_init): Do not set the Mono root dir
8350 if it has been previously set (embedders).
8352 Make mono_set_rootdir available also on Unix.
8354 005-10-24 Robert Jordan <robertj@gmx.net>
8356 * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
8358 2005-10-30 Zoltan Varga <vargaz@freemail.hu>
8360 * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
8361 only calls which are made to native code use this flag.
8363 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
8365 2005-10-29 Zoltan Varga <vargaz@freemail.hu>
8367 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
8368 Add support for FieldBuilders.
8370 2005-10-29 Martin Baulig <martin@ximian.com>
8373 (mono_debug_using_mono_debugger): New public method; returns
8374 whether we're running inside the debugger.
8376 2005-10-27 Zoltan Varga <vargaz@gmail.com>
8378 * reflection.c (mono_reflection_get_custom_attrs_info): Add support
8379 for Method/Constructor/FieldBuilders.
8381 2005-10-26 Zoltan Varga <vargaz@gmail.com>
8383 * reflection.c (module_add_cattrs): Save custom attributes for global methods
8386 2005-10-26 Martin Baulig <martin@ximian.com>
8388 * mono-debug-debugger.c
8389 (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
8391 2005-10-24 Raja R Harinath <harinath@gmail.com>
8393 * icall.c (base64_to_byte_array): Don't pass an out-of-range
8396 2005-10-21 Zoltan Varga <vargaz@gmail.com>
8398 * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
8399 when passing valuetypes byref. Fixes #76502.
8401 2005-10-19 Jackson Harper <jackson@ximian.com>
8403 * profiler.c: Don't put a . in front of types that are not in a
8406 2005-10-18 Zoltan Varga <vargaz@gmail.com>
8408 * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
8410 2005-10-15 Zoltan Varga <vargaz@freemail.hu>
8412 * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
8414 (mono_marshal_get_ldflda_wrapper): Fix a warning.
8416 2005-10-13 Carlos Alberto Cortez <calberto.cortez@gmail.com>
8418 * assembly.c metadata-internals.h icall.c: Define an additional
8419 parameter for mono_assembly_name_parse_full, so we can avoid creating
8420 S.R.AssemblyName.Version when no version info wasn't passed.
8422 2005-10-09 Miguel de Icaza <miguel@novell.com>
8424 * class.c (mono_type_get_full_name): Reimplement method that was
8427 * image.c: Some docs
8429 2005-10-10 Zoltan Varga <vargaz@gmail.com>
8431 * profiler.c (output_newobj_profile): Fix printing of Total memory
8434 2005-10-08 Zoltan Varga <vargaz@freemail.hu>
8436 * profiler.c: Add support for allocations > 2GB. Fixes #74886.
8438 2005-10-08 Gert Driesen <drieseng@users.sourceforge.net>
8440 * threads.c: remove debug output.
8442 2005-10-08 Zoltan Varga <vargaz@freemail.hu>
8444 * threads.c (mono_thread_manage): Fix crashes if more than 64
8445 threads need to be aborted. Hopefully fixes #75899.
8447 * assembly.c (mono_stringify_assembly_name): New helper function.
8449 * class.c: Use mono_stringify_assembly_name instead of the similar
8452 * assembly.h assembly.c: Add support for calling a postload search
8453 hook if an assembly cannot be loaded.
8455 * appdomain.c: Register new search hooks which call the AssemblyResolve
8456 events in AppDomain. Fixes #75231
8458 2005-10-07 Martin Baulig <martin@ximian.com>
8460 * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
8461 methods without debug info.
8463 2005-10-07 Zoltan Varga <vargaz@gmail.com>
8465 * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
8468 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8470 * file-io.c: now that we return symlinks, use lstat and, when the file
8471 is a symbolic link, stat, to get the file attributes. Also avoid the
8472 conversion to/from utf16/external.
8474 2005-10-06 Zoltan Varga <vargaz@gmail.com>
8476 * class.c (mono_class_layout_fields): Compute klass->has_references
8477 correctly if an embedded valuetype is not yet initialized. Fixes
8480 2005-10-04 Martin Baulig <martin@ximian.com>
8483 (mono_metadata_load_generic_param_constraints): New public
8484 function; splitted the constraints loading out from
8485 mono_metadata_load_generic_params().
8487 * class.c (mono_class_create_from_typedef): Call
8488 mono_metadata_load_generic_param_constraints() after setting up
8489 the type and creating our parent; fixes #75329.
8491 2005-10-04 Martin Baulig <martin@ximian.com>
8493 * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
8494 non-dynamic parent classes.
8496 2005-10-04 Atsushi Enomoto <atsushi@ximian.com>
8498 * file-io.c : win32 build fix (ETXTBSY seems not found).
8500 2005-10-04 Martin Baulig <martin@ximian.com>
8503 (mono_image_get_methodspec_token): Make the cache actually work;
8506 2005-10-04 Martin Baulig <martin@ximian.com>
8508 * class.c (mono_class_name_from_token): Removed the unneccessary
8509 `MonoGenericContext *' argument.
8511 2005-10-04 Martin Baulig <martin@ximian.com>
8514 (method_from_methodspec): Make the caching work again; fixes the
8515 performance regression from #76262.
8517 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8521 * icall.c: replace FindFirst/FindNext/FindClose calls with a new
8522 GetFileSystemEntries that performs the same work but without going
8523 into io-layer, locking, etc.
8525 2005-09-30 Zoltan Varga <vargaz@gmail.com>
8527 * threads.c (ves_icall_System_Threading_Thread_Abort): Handle
8528 ThreadState_Stopped as well. Fixes #76047.
8530 2005-09-29 Martin Baulig <martin@ximian.com>
8533 (inflate_generic_context): If the new context has a `gmethod', set
8534 its `container' that that gmethod's `container'.
8537 (mono_metadata_parse_generic_param): Simplify things;
8538 `generic_container = generic_context->container;' is just fine.
8540 * loader.c (method_from_methodspec): Code cleanups.
8542 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
8544 * decimal.c: fix warning (and let gcc generate correct
8545 code on ARM with optimizations).
8547 2005-09-28 Martin Baulig <martin@ximian.com>
8550 (method_from_memberref): Added `MonoGenericContext *class_context'
8551 argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
8552 (method_from_methodspec): If we're a memberref, use the enclosing
8553 context when parsing its parent. Fixes #76262; see gtest-206.cs.
8555 2005-09-28 Martin Baulig <martin@ximian.com>
8557 * object.c (mono_runtime_invoke_array): Added support for
8558 MONO_TYPE_GENERICINST; fixes #75917.
8560 2005-09-27 Martin Baulig <martin@ximian.com>
8562 * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
8563 `k->byval_arg.type' to determine the actual type.
8565 * loader.c (method_from_methodspec): Removed some hacks.
8567 2005-09-27 Ben Maurer <bmaurer@ximian.com>
8569 * class-internals.h (mono_field_is_deleted): Do the test for
8570 rtspecialname before we check the actual name of the field. This
8571 prevents us from dereferencing a pointer into the string table,
8572 saving us from accessing a few pages
8574 * *.c: Replace the use of {Enter,Leave}CriticalSection with
8575 macros. This will allow a deadlock debugger to easily be plugged
8578 2005-09-27 Martin Baulig <martin@ximian.com>
8580 * loader.c (method_from_methodspec): Create a "signature"
8581 MonoGenericContainer and use mono_get_method_full(). Fixes #75584.
8583 2005-09-27 Martin Baulig <martin@ximian.com>
8586 (inflate_generic_class): Correctly set the new context's
8590 (find_method, find_method_in_class): Take a `MonoGenericContainer *'
8591 instead of a `MonoGenericContext *'.
8592 (mono_method_signature_full): Take a `MonoGenericContainer *'
8593 instead of a `MonoGenericContext *'.
8596 (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
8597 instead of a `MonoGenericContext *'.
8598 (mono_metadata_parse_method_signature_full): Likewise.
8600 2005-09-26 Martin Baulig <martin@ximian.com>
8603 (mono_class_from_generic_parameter): Set `klass->generic_container'
8604 (mono_class_from_generic_parameter): Likewise.
8605 (mono_bounded_array_class_get): We inherit the generic container
8606 from the element class.
8609 (find_method, find_method_in_class): Take a `MonoGenericContext *'
8610 argument rather than computing it here.
8611 (method_from_memberref): Correctly set the generic context before
8612 parsing the signature. Fixes #75681.
8614 2005-09-26 Zoltan Varga <vargaz@gmail.com>
8616 * object.c (mono_class_has_special_static_fields): Fix warnings.
8618 2005-09-26 Carlos Alberto Cortez <calberto.cortez@gmail.com>
8620 * assembly.c: Add parse_public_key function, to
8621 par the public keys. Also added mono_assembly_name_parse_full,
8622 to define it the parsed key should be freed or not.
8623 * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
8624 to parse a long format assembly name.
8625 * metadata-internals.h: Keep mono_assembly_name_parse_full as
8626 private, since calling it to preserve the key requires
8627 freeing it manually.
8629 2005-09-26 Atsushi Enomoto <atsushi@ximian.com>
8631 * locales.c : removed HAVE_ICU part.
8633 2005-09-24 Zoltan Varga <vargaz@freemail.hu>
8635 * object.c (mono_class_create_runtime_vtable): Avoid calling
8636 field_is_special_static if the klass has no special static fields.
8638 * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
8639 (MonoCachedClassInfo): Likewise.
8641 * object.c (mono_class_has_special_static_fields): New helper function.
8643 2005-09-23 Zoltan Varga <vargaz@gmail.com>
8645 * class.c (mono_class_create_from_typedef): Don't call
8646 interfaces_from_typedef_full for enums.
8647 (mono_class_create_from_typedef): Compute the base types of enums directly
8648 without calling mono_class_setup_fields ().
8649 (mono_class_find_enum_basetype): New helper function.
8651 * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
8652 one place inside the string heap.
8654 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
8656 * class.c: locking fixes, code cleanups, some docs added.
8657 Allocate some data structures in the image mempool.
8659 2005-09-23 Zoltan Varga <vargaz@gmail.com>
8661 * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8664 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
8666 * class-internals.h, class.c, reflection.c: reduce memory taken by
8669 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
8671 * metadata.c, metadata.h, loader.h: documentation updates, code and
8674 2005-09-23 Zoltan Varga <vargaz@gmail.com>
8676 * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8679 * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
8680 page faults caused by the runtime while reading metadata.
8682 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8684 * socket-io.c: the field names were changed 3 months ago and no one
8685 realized until bug #76077 got filed!
8687 2005-09-20 Martin Baulig <martin@ximian.com>
8689 * icall.c (assembly_icalls): Removed some unused debugger icalls.
8691 2005-09-20 Martin Baulig <martin@ximian.com>
8693 * mono-debug.c (mono_debug_add_type): Ignore array types and don't
8694 write the rank into the class entry.
8696 2005-09-20 Martin Baulig <martin@ximian.com>
8698 * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
8700 2005-09-19 Zoltan Varga <vargaz@gmail.com>
8702 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8704 * icall.c (custom_attrs_defined_internal): New icall.
8706 * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
8708 (mono_custom_attrs_construct_by_type): New helper function.
8710 2005-09-17 Zoltan Varga <vargaz@freemail.hu>
8712 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
8713 terminate the resulting string. Fixes #76123.
8715 2005-09-16 Martin Baulig <martin@ximian.com>
8718 (mono_debug_add_method): Ignore inflated methods for the moment.
8720 2005-09-14 Martin Baulig <martin@ximian.com>
8722 * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
8724 2005-09-13 Zoltan Varga <vargaz@gmail.com>
8726 * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
8727 return a success/failure indication.
8728 (mono_metadata_interfaces_from_typedef_full): Ditto.
8729 (get_constraints): Ditto.
8731 2005-09-12 Zoltan Varga <vargaz@gmail.com>
8733 * marshal.c (emit_marshal_array): Fix handling of null arrays.
8735 * marshal.c (emit_marshal_array): Add support for returning string
8736 arrays from delegates. Fixes #76063.
8738 * marshal.c: Use the emit_ldloc/stloc macros where possible.
8740 2005-09-11 Zoltan Varga <vargaz@gmail.com>
8742 * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
8745 2005-09-09 Zoltan Varga <vargaz@gmail.com>
8747 * reflection.c icall.c: Fix after mono_get_exception_type_load
8750 * assembly.c (mono_assembly_get_assemblyref): New helper function.
8751 (mono_assembly_load_reference): Use the new helper.
8753 * class-internals.h (MonoLoaderError): New structure containing
8754 information about type loading errors.
8756 * class-internals.h loader.c: Add APIs to store per-thread loader
8759 * loader.c class.c: Set the loader error if needed.
8761 * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
8763 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
8765 * decimal.c: fixed to handle the broken ARM fp format.
8767 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
8769 * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
8772 2005-09-06 Martin Baulig <martin@ximian.com>
8774 * domain.c (supported_runtimes): Added v2.0.50727.
8776 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
8778 * culture-info.h: reduce the size of some structures.
8780 2005-09-05 Martin Baulig <martin@ximian.com>
8782 Reflect latest API changes in the August CTP.
8785 ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
8786 ("MonoType.HasGenericArguments"): Removed.
8787 ("MonoMethod.BindGenericParameters"): Renamed to
8788 "MakeGenericMethod".
8789 ("MethodBuilder.BindGenericParameters"): Renamed to
8790 "MakeGenericMethod".
8792 2005-09-05 Martin Baulig <martin@ximian.com>
8794 * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
8796 2005-09-05 Martin Baulig <martin@ximian.com>
8798 Applying a patch from Michal Moskal <malekith@nemerle.org>.
8800 * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
8801 generic_container is non-NULL.
8803 2005-09-05 Martin Baulig <martin@ximian.com>
8805 Applying a patch from Michal Moskal <malekith@nemerle.org>.
8807 * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
8809 2005-08-29 Michal Moskal <malekith@nemerle.org>
8811 * reflection.c (encode_locals,
8812 mono_reflection_sighelper_get_signature_local): Increase buffer sizes
8813 for large generic types.
8815 2005-09-05 Martin Baulig <martin@ximian.com>
8817 Applying a patch from Michal Moskal <malekith@nemerle.org>.
8819 * class.c (mono_dup_array_type): New public method.
8820 (mono_metadata_signature_deep_dup): New public method.
8821 (dup_type): Correctly duplicate array and function types.
8823 2005-09-05 Martin Baulig <martin@ximian.com>
8825 Applying a patch from Michal Moskal <malekith@nemerle.org>.
8827 * reflection.c (get_default_param_value_blobs): Handle generic types
8828 and generic methods.
8830 2005-09-02 Sebastien Pouliot <sebastien@ximian.com>
8832 * class.c: Fixed error reporting (method/class were inversed) for
8833 inheritance demands.
8834 * security-manager.c|h: Added the AppDomain when calling the managed
8835 System.Security.SecurityManager.InheritanceDemand method.
8837 2005-09-01 Raja R Harinath <rharinath@novell.com>
8839 * reflection.c (encode_marshal_blob): 'marshaltype' and
8840 'marshaltyperef' are alternate sources for the custom marshaler
8843 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
8845 * class.c: fix creation of array classes with rank == 1
8846 (patch by Ankit Jain <jankit@novell.com>).
8848 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
8850 * object.c: fix check for creating the bound data for arrays vs
8853 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8855 * object.c: configuration file name is now based on the executable name,
8856 not the image name. Fixes bug #75931.
8858 2005-08-29 Zoltan Varga <vargaz@gmail.com>
8860 * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
8861 flag using LDIND_U4 since it leads to smaller and faster code on ia64.
8863 2005-08-25 Zoltan Varga <vargaz@gmail.com>
8865 * rand.c: Use wincrypt.h instead of WinCrypt.h.
8867 2005-08-24 Ankit Jain <jankit@novell.com>
8868 Raja R Harinath <rharinath@novell.com>
8870 * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
8871 called by it recursively.
8872 (mono_class_init): Remove special case in pending_init handling, since it's
8873 superseded by the fix to mono_class_from_typeref.
8875 2005-08-22 Zoltan Varga <vargaz@freemail.hu>
8877 * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the
8878 BROKEN_THREAD_START stuff.
8880 2005-08-21 Zoltan Varga <vargaz@freemail.hu>
8882 * class-internals.h object.c: Add a new kind of trampoline called a delegate
8885 * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
8887 * object.c (mono_delegate_ctor): Replace the original function address with
8888 a delegate trampoline.
8890 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
8892 * icall.c: add boolean argument to base64_to_byte_array and
8893 InternalFromBase64String to control whether a whitespace-only string
8894 is allowed (or should casue a FormatException to be thrown). We need
8895 this as the behavior has changed between MS.NET 1.x and 2.0, and we
8896 to match the MS behaviour in both profiles.
8897 * appdomain.c: Bump corlib version.
8899 2005-08-20 Carlos Alberto Cortez <calberto.cortez@gmail.com>
8901 This patch implements a big portion of publisher policy
8902 support, used to bind assembly versions and redirect
8903 one assembly from version A to version B.
8906 New GSList loaded_assembly_bindings, for storing the cached
8908 (assembly_binding_maps_name): New static function for checking if a
8909 assembly binding information maps an assembly name.
8910 (mono_assembly_binding_info_free): New function for freeing
8911 assembly binding information resources.
8912 (get_publisher_policy_info): New static function for retrieving
8913 assembly binding information from a MonoImage.
8914 (compare_versions): New static function for comparing an assembly
8915 binding information data and the version of an assembly name.
8916 (check_policy_versions): New static function for checking if an
8917 assembly binding info mapping an assembly name is valid for it.
8918 (mono_assembly_load_publisher_policy): New static function for
8919 loading the 'policy.major.minor.MyAssembly' image for an assembly
8920 with an assembly name 'aname'.
8921 (mono_assembly_bind_version): New static function for updating
8922 assembly redirection.
8923 (mono_assembly_apply_binding): New static function for applying
8925 (search_binding_loaded): New static function for searching
8926 loaded assembly binding infos in the cache domain.
8927 (mono_assembly_load_full): Don't apply assembly binding for
8928 reflection only assemblies.
8930 * metadata-internals.h: Add MonoAssemblyBindingInfo,
8931 which contains information about assembly binding. Also
8932 declare signature for mono_config_parse_publisher_policy ()
8933 function, used to retrieve pub policy info.
8936 (publisher_policy_start): New static function used to parse publisher
8937 policy config files.
8938 (publisher_policy_parser): New static MonoParseHandler containing
8939 the functions used when parsing config files.
8940 (mono_config_parse_publisher_policy): New function for parsing
8941 publisher policy files.
8943 2005-08-20 Zoltan Varga <vargaz@freemail.hu>
8945 * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
8947 * marshal.c (mono_delegate_free_ftnptr): Ditto.
8949 * object.c (mono_get_addr_from_ftnptr): New helper function.
8951 * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
8953 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8955 2005-08-19 Dick Porter <dick@ximian.com>
8957 * threads.c, threads.h, appdomain.c, appdomain.h,
8958 profiler-private.h, monitor.c, object.c, object-internals.h,
8959 profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
8960 store the thread ID, so it can hold a 64 bit value if needed.
8962 2005-08-19 Zoltan Varga <vargaz@freemail.hu>
8964 * reflection.c (mono_reflection_create_dynamic_method): Store the
8965 handle class into the method references as well so ldtoken works in
8968 * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
8971 2005-08-19 Ankit Jain <jankit@novell.com>
8974 * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature
8975 here rather than using the method signature of a arbitrary function
8976 named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with
8978 Hack done with Harinath.
8980 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8982 * threadpool.c: disable printing stack traces when we get a exception
8983 in a threadpool thread. I need to do more testing to figure out which
8984 cases actually print this. Fixes bug #75828.
8986 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8988 * icall.c: there might be ignored whitespace after the last '='. This
8989 fixes length computation and bug #75840.
8991 2005-08-18 Zoltan Varga <vargaz@freemail.hu>
8993 * assembly.c (mono_assembly_load_full): Consider .exe extension as
8996 * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
8999 * reflection.c (create_custom_attr_data): Ditto.
9001 2005-08-17 Atsushi Enomoto <atsushi@ximian.com>
9003 * locales.c, culture-info.h : removed RegionLCIDMap.
9004 * culture-info-tables.h : regenerated.
9006 2005-08-16 Martin Baulig <martin@ximian.com>
9008 * class.c (mono_type_get_name_recurse): Small fix.
9010 2005-08-16 Atsushi Enomoto <atsushi@ximian.com>
9012 * locales.c : indentation fixie.
9014 2005-08-15 Atsushi Enomoto <atsushi@ximian.com>
9016 * object-internals.h,
9020 icall.c : added RegionInfo table support.
9021 * culture-info-table.h : regenerated for region support.
9023 2005-08-14 Kamil Skalski <nazgul@nemerle.org>
9025 * reflection.c (resolve_object): handle all kinds of MonoMethod
9026 including generic ones
9028 2005-08-12 Ankit Jain <jankit@novell.com>
9030 * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
9031 (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY.
9033 2005-09-12 Lluis Sanchez <lluis@ximian.com>
9035 * process.c: Don't close a thread handle when it's NULL. This is a
9036 workaround for bug #75733.
9038 2005-08-11 Zoltan Varga <vargaz@freemail.hu>
9040 * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
9042 2005-08-10 Zoltan Varga <vargaz@freemail.hu>
9044 * icall.c (ves_icall_Type_get_IsGenericType): New icall.
9046 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9048 * threadpool.c: if a work item in the thread pool has a callback that
9049 catches a exception, don't propagate it after invoking the callback.
9052 2005-08-08 Zoltan Varga <vargaz@freemail.hu>
9054 * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
9056 * class-internals.h (MonoCachedClassInfo): Add some new fields.
9058 * class.c (mono_class_init): Load field info lazily in the AOT case.
9060 * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
9062 2005-08-03 Ankit Jain <jankit@novell.com>
9065 * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
9066 PInvoke calling convention is 0.
9068 2005-08-02 Zoltan Varga <vargaz@freemail.hu>
9070 * socket-io.c (convert_sockopt_level_and_name): Applied patch from
9071 Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
9073 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
9075 * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
9076 to handle threads not started by the GC (patch by Michael Meeks
9077 <michael.meeks@novell.com>).
9079 2005-07-31 Kamil Skalski <nazgul@omega.pl>
9081 * reflection.c: Make buffer used in emitting types larger for some
9082 big generic types (patch by Michal Moskal).
9084 2005-07-30 Zoltan Varga <vargaz@freemail.hu>
9086 * mono-debug.c: Fix some (not all) alignment problems.
9088 2005-07-29 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9090 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
9091 Invoke mono_image_load_from_data_full passing the refonly
9095 (mono_assembly_open_from_bundle): Add the refonly argument,
9096 in order to pass it to other methods it calls to.
9097 (do_mono_assembly_open): Add the refonly argument, in order
9098 to pass it to other methods it calls to.
9099 (mono_assembly_open_full): Invoke do_mono_assembly_open passing
9100 the refonly parameter to it.
9102 * image.c: Add loaded_images_refonly_hash and
9103 loaded_images_refonly_guid_hash to cache the reflection
9105 (mono_images_init): Initialize the hash tables used for
9106 caching the reflection only images.
9107 (load_modules): Invoke mono_image_open_full passing the refonly
9108 parameter to load the modules the correct way.
9109 (build_guid_table): Add the refonly argument, to re-build the
9111 (do_mono_image_open): Added the refonly argument, in order to
9112 define it for the loaded image.
9113 (mono_image_loaded_full): New function, which receives an
9114 additional parameter to look for the image in the refonly or
9115 non-refonly section.
9116 (mono_image_loaded): Updated, using mono_image_loaded_full.
9117 (mono_image_loaded_by_guid_full): The same case that happens
9118 with mono_image_loaded_full.
9119 (mono_image_loaded_by_guid): Likewise.
9120 (register_image): Use the ref_only variable inside MonoImage
9121 to decide in which hash table store the current image.
9122 (mono_image_open_from_data_full): Rename
9123 mono_image_open_from_data to mono_image_open_from_data_full,
9124 adding the refonly argument, to define the ref_only variable
9126 (mono_image_open_from_data): Return
9127 mono_image_open_from_data_full.
9128 (mono_image_open_full): Rename mono_image_open to
9129 mono_image_open_full, receiving the new refonly argument,
9130 to pass it to inner methods.
9131 (mono_pe_file_open): Update this function, to open
9132 a MonoImage as a non-refonly image.
9133 (mono_image_close): Use the refonly variable inside
9134 MonoImage to remove the image from the correct caches.
9136 * image.h: Add the signatures of mono_image_open_full,
9137 mono_image_open_from_data_full, mono_image_loaded_full,
9138 mono_image_loaded_by_guid_full.
9140 * metadata-internals.h: Add the ref_only field to
9143 2005-07-29 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9145 * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
9146 Fix the last behavior, which used to load the assemblies and
9147 extract MonoReflectionAssemblyName information, instead of
9148 extract it from the metadata tables. Needed for Reflection
9151 2005-07-29 Martin Baulig <martin@ximian.com>
9153 * mono-debug-debugger.c
9154 (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
9158 (mono_debug_address_from_il_offset): Check whether we have
9159 debugging support before attempting to take the lock.
9160 (mono_debug_source_location_from_address): Likewise.
9161 (mono_debug_source_location_from_il_offset): Likewise.
9162 (mono_debug_il_offset_from_address): Likewise.
9163 (mono_debug_address_from_il_offset): Likewise.
9165 2005-07-29 Zoltan Varga <vargaz@freemail.hu>
9167 * class.c (mono_class_from_name_case): Add support for dynamic images.
9170 * object.c (mono_class_compute_gc_descriptor): Add a workaround
9173 2005-07-28 Zoltan Varga <vargaz@freemail.hu>
9175 * reflection.c (mono_method_get_object): Fix warning.
9177 2005-07-28 Martin Baulig <martin@ximian.com>
9180 (mono_debug_add_wrapper): Also write the wrapper type.
9182 2005-07-28 Zoltan Varga <vargaz@freemail.hu>
9184 * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
9186 * class.c (mono_class_init): Avoid reading nested classes if the AOT
9187 data indicates the class has none.
9189 2005-07-26 Ben Maurer <bmaurer@ximian.com>
9191 * mono-debug.c, debug-mono-symfile.c: Replace the use of the
9192 loader lock with the debugger lock. Prevents deadlocks for beagle.
9194 Beagle can now run on an smp box for a weekend without any
9197 2005-07-26 Zoltan Varga <vargaz@freemail.hu>
9199 * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
9200 in a module. Fixes #75629.
9202 2005-07-26 Martin Baulig <martin@ximian.com>
9204 * mono-debug.c (mono_debug_add_wrapper): New static method.
9205 (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
9206 interncall or a wrapper.
9208 * mono-debug.h (MonoDebugWrapperData): New public typedef.
9209 (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
9210 (MONO_DEBUGGER_VERSION): Bump to 51.
9212 * mono-debug-debugger.c
9213 (mono_debugger_add_type): Removed this empty function.
9214 (mono_debugger_add_method): Likewise.
9216 2005-07-22 Zoltan Varga <vargaz@freemail.hu>
9218 * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable ()
9219 before accessing method->slot.
9221 2005-07-21 Jb Evain <jbevain@gmail.com>
9223 * reflection.c (method_encode_clauses/class): Handle filters clauses.
9226 2005-07-21 Zoltan Varga <vargaz@freemail.hu>
9228 * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
9231 2005-07-20 Zoltan Varga <vargaz@freemail.hu>
9233 * image.h image.c: Add mono_image_get_guid () API function.
9235 2005-07-19 Ben Maurer <bmaurer@ximian.com>
9237 There were issues when multiple threads tried to load
9238 assemblies. A deadlock was created between assemblies_mutex and
9239 mono_domain_assemblies_lock. This fixes the issue by making the
9240 assembly ref counting be lock free. See bug 75586.
9242 * image.c (mono_image_close): The add ref function here was using
9243 Interlocked operations while the unref was using a mutex and a
9244 --. I don't think this was ever a bug that would be exposed in a
9245 non-pendantic way (ie, by an embedder doing a ref on one thread
9246 and an unref on another), but for the sake of correctness, this is
9249 * assembly.c (mono_assembly_addref): Use InterlockedIncrement
9250 (mono_assembly_load_reference): Call mono_assembly_addref rather
9251 than touching the refcount ourselves.
9252 (mono_assembly_close): Use InterlockedDecrement to unref the
9253 assembly. Don't acquire the lock unless it is actually needed.
9255 2005-07-12 Zoltan Varga <vargaz@freemail.hu>
9257 * class.c (mono_class_layout_fields): Fix calculation of has_references
9260 2005-07-12 Martin Baulig <martin@ximian.com>
9262 Applying a patch from Michal Moskal <malekith@nemerle.org>.
9265 (mono_type_hash): Provide better hashing for generic instances.
9266 (mono_generic_inst_hash): Improve hashing.
9267 (mono_generic_class_hash): Likewise.
9269 * reflection.c (mymono_metadata_type_hash): Improve hashing for
9272 2005-07-12 Martin Baulig <martin@ximian.com>
9274 * reflection.c (mono_reflection_create_runtime_class): Remove the
9275 hack for generic type definitions and non-`Run' assemblies.
9276 (mono_reflection_bind_generic_parameters): Also use
9277 `klass->wastypebuilder' to check for TypeBuilders.
9279 2005-07-12 Zoltan Varga <vargaz@freemail.hu>
9281 * class.c (mono_class_layout_fields): Fix calculation of has_references
9284 * class.c (inflate_generic_class): Fix a leak.
9285 (mono_class_init): Fix calculation of gchimpl and has_finalize fields
9288 2005-07-11 Martin Baulig <martin@ximian.com>
9290 * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
9293 2005-07-11 Martin Baulig <martin@ximian.com>
9295 * loader.c (find_method): Also lookup in
9296 `mono_defaults.object_class' if we're an interfaces; fixes #75460.
9298 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
9300 * appdomain.c (mono_domain_unload): Don't free the error message
9301 before passing it to mono_get_exception_...
9303 * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
9305 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
9307 * threads.c: try to better guess an available RT signal (bug #75387).
9309 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
9311 * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
9314 2005-07-07 Martin Baulig <martin@ximian.com>
9316 * class.c (mono_type_get_name_full): Return NULL for
9317 MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
9320 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
9322 * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
9323 exit the appdomain as well being aborted.
9325 * threadpool.c: Create all threadpool threads inside the root appdomain, and
9326 change back to the root domain after calling managed code. This enables
9327 appdomains using threadpools to be unloaded.
9329 2005-07-07 Martin Baulig <martin@ximian.com>
9332 (MonoInflatedGenericClass): Moved the `MonoType *parent' field
9333 into `MonoDynamicGenericClass' since we only need it for dynamic
9336 * reflection.c (mono_class_bind_generic_parameters): We don't need
9337 to compute the `parent' here.
9339 2005-07-07 Atsushi Enomoto <atsushi@ximian.com>
9341 * culture-info-table.h : regenerated.
9343 2005-07-06 Martin Baulig <martin@ximian.com>
9346 (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
9348 * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
9350 2005-07-06 Martin Baulig <martin@ximian.com>
9352 * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
9353 we're doing a signature-only comparision; fixes #74945.
9355 2005-07-06 Martin Baulig <martin@ximian.com>
9357 * class-internals.h (MonoGenericClass): Moved some things out into
9358 a new `MonoInflatedGenericClass' type.
9359 (MonoInflatedGenericClass): New type; the `klass' of a
9360 `MonoGenericClass' is now computed lazyly in
9361 mono_get_inflated_generic_class().
9363 * class.c (mono_get_inflated_generic_class): New public function.
9364 (mono_class_inflate_generic_method): Removed the unused
9365 `MonoClass *' argument.
9366 (setup_generic_vtable): Don't call mono_get_inflated_method() on
9368 (mono_class_create_generic): Make this static and merge it with
9369 mono_class_create_generic_2(); we're now called automatically from
9370 mono_get_inflated_generic_class().
9372 * loader.c (mono_method_signature): Call
9373 mono_get_inflated_method() here.
9375 2005-07-06 Zoltan Varga <vargaz@freemail.hu>
9377 * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
9378 type of fields with RVA.
9380 * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
9381 for this pseudo class.
9382 (my_mono_class_from_generic_parameter): Likewise.
9383 (mono_class_init): Allow interfaces to have cctors.
9385 2005-07-05 Zoltan Varga <vargaz@freemail.hu>
9387 * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
9388 lazily for AOT methods.
9390 2005-07-05 Martin Baulig <martin@ximian.com>
9392 * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
9393 returns FALSE for a successful match, not TRUE.
9395 2005-07-05 Zoltan Varga <vargaz@freemail.hu>
9397 * loader.c (mono_method_get_index): Optimize this a bit.
9399 2005-07-04 Martin Baulig <martin@ximian.com>
9402 (class_compute_field_layout): Move the check for generic type
9403 definitions into mono_class_layout_fields(). Fixes #74684.
9404 (mono_class_from_generic_parameter): Correctly compute
9405 `klass->parent'; fixes #75457.
9407 * reflection.c (register_assembly, register_module): Make sure
9408 `domain->rejobject_hash' is already created.
9410 2005-07-02 Martin Baulig <martin@ximian.com>
9413 (MonoGenericClass): Move `count_ifaces' and `ifaces' into
9414 `MonoDynamicGenericClass'.
9416 2005-07-01 Lluis Sanchez <lluis@ximian.com>
9418 * icall.c: In ves_icall_InternalExecute() dont't assert if the value
9419 returned by a field getter is null, since null is a valid value.
9421 2005-07-01 Martin Baulig <martin@ximian.com>
9423 * reflection.c (mono_reflection_generic_class_initialize): Update
9424 the `dgclass->fields [i].parent' to the correct class.
9425 (mono_image_get_fieldref_token): Use the declaring type, not the
9428 2005-07-01 Martin Baulig <martin@ximian.com>
9430 * loader.c (find_method): Also look in the interfaces; fixes #75429.
9432 2005-06-30 Ben Maurer <bmaurer@ximian.com>
9434 * threads.c (thread_cleanup): assert that thread != NULL
9435 (wait_for_tids_or_state_change): We were using the wrong variable
9436 when accessing wait->threads. `i' was always out of the bounds of
9439 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9441 * loader.c: map user32 and kernel32 to libMonoSupportW
9443 2005-06-28 Zoltan Varga <vargaz@freemail.hu>
9445 * appdomain.c (unload_thread_main): Mark this as WINAPI.
9447 2005-06-28 Martin Baulig <martin@ximian.com>
9449 * loader.c (method_from_methodspec): Fix #75334.
9451 2005-06-28 Martin Baulig <martin@ximian.com>
9453 Fix #74953 - Arrays now implement the generic IList<T> interface
9454 on the 2.0 platform.
9456 * class-internals.h (MonoDefaults): Added `generic_array_class'.
9458 * reflection.c (mono_class_bind_generic_parameters): New public
9459 function; similar to mono_reflection_bind_generic_parameters(),
9460 but operates on a `MonoType *' and not on a `MonoReflectionType *'.
9462 * domain.c (mono_init_internal): Try to initialize.
9463 `mono_defaults.generic_array_class' here; this'll only succeed if
9464 we're using the 2.0 corlib.
9467 (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
9468 interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
9469 (mono_lookup_internal_call): Added support for nested classes.
9472 (mono_get_method_from_token): Set `result->signature->pinvoke' if
9473 we're an interncall and have generic arguments.
9476 (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
9477 (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
9478 instance of System.Array.InternalArray<T> for arrays, so they
9479 implement the generic IList<T> interface.
9481 2005-06-27 Zoltan Varga <vargaz@freemail.hu>
9483 * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
9484 (chastamar@yahoo.com). Fixes #75374.
9486 2005-06-27 Atsushi Enomoto <atsushi@ximian.com>
9488 * culture-info-table.h: regenerated.
9490 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9492 * icall.c: handle spaces correctly for base64 strings.
9494 2005-06-26 Ben Maurer <bmaurer@ximian.com>
9496 * *.c: Kill some warnings.
9498 2005-06-23 Duncan Mak <duncan@novell.com>
9500 * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
9501 that this builds on Solaris 10 (x86).
9503 2005-06-23 Martin Baulig <martin@ximian.com>
9506 (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
9507 generic type definitions.
9509 2005-06-23 Martin Baulig <martin@ximian.com>
9513 * metadata.c (mono_class_get_overrides): Renamed to
9514 mono_class_get_overrides_full() and added a `MonoGenericContext *'.
9515 (method_from_method_def_or_ref): Added `MonoGenericContext *' and
9516 pass it to mono_get_method_full().
9518 2005-06-22 Ben Maurer <bmaurer@ximian.com>
9520 * reflection.c (mono_reflection_create_runtime_class): take the
9521 mono_domain_lock in this method. Prevents deadlocks
9523 2005-06-22 Martin Baulig <martin@ximian.com>
9525 * loader.c (method_from_methodspec): Fix #75330.
9527 2005-06-22 Martin Baulig <martin@ximian.com>
9529 * reflection.c (type_get_qualified_name): Use
9530 mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
9531 (_mono_reflection_get_type_from_info): Added `MonoImage *image'
9532 argument; use it if we don't have an assembly name.
9534 2005-06-22 Lluis Sanchez Gual <lluis@novell.com>
9536 * object.c: In mono_message_init, set "copy out" flag for in
9537 parameters with the [Out] flag.
9539 2005-06-21 Martin Baulig <martin@ximian.com>
9542 (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
9545 2005-06-21 Martin Baulig <martin@ximian.com>
9547 * class.c (mono_class_init): Don't initialize `class->fields' for
9548 generic instances since they're initialized again in
9549 compute_field_layout().
9550 (compute_field_layout): Set the field's `generic_info' here; fix
9553 2005-06-21 Martin Baulig <martin@ximian.com>
9556 (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
9558 * metadata.c (mono_metadata_generic_method_equal): Also
9559 distinguish the `generic_class'; fixes #75334.
9561 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9565 * domain-internals.h:
9566 * reflection.c: 'domain_assemblies' field is now protected by its own
9567 lock. Don't call into managed code to run the AssemblyLoad event if we
9568 now there are no registered delegates for it.
9570 2005-06-20 Martin Baulig <martin@ximian.com>
9572 * class.c (mono_class_is_assignable_from): Use a custom version of
9573 mono_class_has_parent() to make things work for generic instances;
9576 2005-06-20 Martin Baulig <martin@ximian.com>
9578 * loader.c (method_from_methodspec): Apply a patch from
9579 Kamil Skalski <nazgul@nemerle.org> to fix #75296.
9581 2005-06-20 Martin Baulig <martin@ximian.com>
9583 * class.c (mono_class_init): Reverted Zoltan's last change; it
9586 2005-06-19 Zoltan Varga <vargaz@freemail.hu>
9588 * threads.c (wait_for_tids_or_state_change): Add missing locking.
9590 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9592 * socket-io.c: fix the index in the socket array for writable/error
9593 sockets. Fixes bug #75306.
9595 2005-06-17 Zoltan Varga <vargaz@freemail.hu>
9597 * class.c (mono_class_init): Allow interfaces to have static ctors.
9599 2005-06-17 Martin Baulig <martin@ximian.com>
9601 * loader.c (method_from_methodspec): Use `context->container' when
9602 parsing the `gmethod->inst'.
9604 2005-06-17 Martin Baulig <martin@ximian.com>
9606 * class.c (mono_type_get_name_recurse): Don't add the assembly
9607 name for type arguments.
9609 2005-06-15 Martin Baulig <martin@ximian.com>
9611 * reflection.c (mono_image_get_inflated_method_token): Encode
9612 correct klass; fixes #75260.
9614 2005-06-13 Michal Moskal <malekith@nemerle.org>
9616 * icall.c: Make GetCorrespondingMethod/Constructor take
9617 MonoReflectionMethod method not MonoMethod. Removed
9618 MonoType.GetCorrespondingField, and make
9619 MonoGenericType.GetCorrespondingField take name not
9622 2005-06-13 Michal Moskal <malekith@nemerle.org>
9624 * reflection.c (field_encode_signature, encode_locals):
9625 Make sizes of buffers for types larger (for big generic types).
9626 (create_generic_typespec,
9627 mono_reflection_sighelper_get_signature_local,
9628 mono_reflection_sighelper_get_signature_field):
9629 Add asserts for too small buffers.
9631 2005-06-15 Martin Baulig <martin@ximian.com>
9633 * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
9634 if our parent is not a dynamic type.
9636 2005-06-15 Martin Baulig <martin@ximian.com>
9638 * class-internals.h (MonoTypeNameFormat): New enum.
9641 (mono_class_get_name_full): Renamed to mono_type_get_name_full().
9642 (mono_type_get_full_name): Removed.
9643 (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
9644 argument instead of the boolean's.
9646 * icall.c (ves_icall_System_MonoType_getFullName):
9647 Added `gboolean assembly_qualified'.
9650 (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
9652 * reflection.c (mono_reflection_parse_type): Parse the new type
9655 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9657 * icall.c: no need to convert from utf16 to utf8 and then back again
9658 after the call to GetLogicalDrives.
9660 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9662 * icall.c: frombase64. Fix problems exposed by new tests.
9664 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9666 * icall.c: added internal calls for converting char [] and strings in
9667 base64 into byte [].
9669 2005-06-10 Martin Baulig <martin@ximian.com>
9671 * class.c (mono_class_create_generic_2): Read the nested classes
9672 from the metadata rather than from `gklass->nested_classes' since
9673 `gklass' might not be initialized yet.
9675 2005-06-09 Duncan Mak <duncan@novell.com>
9677 * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
9678 all public headers. Fixes #74919.
9680 2005-06-09 Lluis Sanchez Gual <lluis@novell.com>
9682 * domain.c: The key for proxy_vtable_hash is now a pointer
9683 array. Added new GHashFunc and GCompareFunc functions for this.
9685 * class.h: The list of interfaces in MonoRemoteClass is known in
9686 advance and can't grow (we create a new MonoRemoteClass if needed),
9687 so now the interface array can be allocated together with
9690 * object.c: Added a new method create_remote_class_key.
9691 Fixed mono_remote_class so it does not depend on
9692 mono_upgrade_remote_class.
9693 Removed extend_interface_array.
9694 Added new method clone_remote_class(), which makes a copy of a remote
9695 class and adds a new interface or class to it.
9696 mono_upgrade_remote_class() now creates a new remote class (or gets
9697 it from the cache) if an vtable upgrade is needed. In this way
9698 we make sure that other objects sharing the same remote class
9699 don't get the new vtable with unwanted interfaces.
9701 * object-internals.h:
9702 * object.h: Moved mono_upgrade_remote_class to object-internals.h.
9704 * marshal.c: Track changes in mono_upgrade_remote_class().
9706 2005-06-08 Kamil Skalski <nazgul@nemerle.org>
9707 * icall.c: Add runtime methods for obtaining members of inflated
9708 class, which were created from supplied non-inflated members. It
9709 is used in internal Get{Method,Constructor,Field} methods in
9712 2005-06-09 Martin Baulig <martin@ximian.com>
9715 (mono_reflection_bind_generic_method_parameters): Fix #75169.
9717 2005-06-08 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9718 * reflection.c (mono_image_basic_init): Define
9719 Version in MonoDynamicAssembly.
9721 2005-06-08 Martin Baulig <martin@ximian.com>
9726 (mono_method_signature_full): New public method; takes a
9727 `MonoGenericContext *'.
9728 (find_method): Use mono_method_signature_full() and pass the
9729 klass'es context to it.
9731 * class.c (mono_class_is_inflated_method): Use
9732 mono_method_signature_full() and pass the context to it.
9734 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
9736 * object.c: add proper locking in mono_remote_class_vtable(),
9737 fixes possible memory corruption.
9739 2005-06-08 Michael Meeks <michael.meeks@novell.com>
9741 * marshal.c (mono_remoting_marshal_init): set
9742 initialized after initialization.
9744 2005-06-08 Atsushi Enomoto <atsushi@ximian.com>
9748 2005-06-06 Michael Meeks <michael.meeks@novell.com>
9750 * object.c (extend_interface_array): fix really silly
9751 memory corrupting / comparison bug.
9753 2005-06-07 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9755 * reflection.c: Functions added to support the creation
9756 of CustomAttributeData, which includes Attribute data
9757 used by ReflectionOnly methods.
9759 * reflection.h: mono_reflection_get_custom_attrs_data and
9760 mono_custom_attrs_data_construct added (functions exposed).
9762 * icall.c: Added mono_reflection_get_custom_attrs_data
9765 2005-06-07 Zoltan Varga <vargaz@freemail.hu>
9767 * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
9770 2005-06-06 Zoltan Varga <vargaz@freemail.hu>
9772 * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
9774 * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
9775 dynamic DllImportAttribute.
9777 * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of
9778 dynamic DllImportAttribute.
9780 * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
9783 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9785 * threads.c: avoid segfault when an unstarted thread is aborted.
9787 2005-06-05 Kornél Pál <kornelpal@hotmail.com>
9789 * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
9790 Returns the name and version of the runtime for reporting.
9792 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9794 * appdomain.c: bump corlib version.
9795 * object-internals.h: new field in MonoReflectionAssembly.
9797 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9799 * object-internals.h: Carlos forgot to add this field.
9801 2005-06-03 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9803 * icall.c: Added create_version to create instances
9804 of Version of MonoReflectionAssemblyName. This change helps
9805 the AssemblyName tests to keep running fine.
9807 2005-06-03 Lluis Sanchez Gual <lluis@novell.com>
9809 * object.c (mono_method_return_message_restore): A somehow less
9810 intrusive fix for #75138.
9812 2005-06-03 Raja R Harinath <rharinath@novell.com>
9814 * object.c (mono_method_return_message_restore): Fix computation
9815 of expected number of out args.
9817 2005-06-02 Zoltan Varga <vargaz@freemail.hu>
9819 * reflection.c (mono_image_get_method_info): Fix the case when the
9822 2005-06-02 Lluis Sanchez Gual <lluis@novell.com>
9824 * object.c: Added missing null check in
9825 mono_method_return_message_restore.
9827 2005-06-02 Zoltan Varga <vargaz@freemail.hu>
9829 * reflection.c (mono_image_get_method_info): Handle the case when
9832 2005-06-02 Lluis Sanchez Gual <lluis@novell.com>
9834 * object.c: When creating the vtable for a proxy, take into account
9835 all inherited interfaces, not only the ones registered in
9836 iclass->interfaces. This fixs bug #74996.
9837 Also, in mono_method_return_message_restore, verify that the array
9838 of out args has the expected lengh.
9840 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9842 * socket-io.c: update the timeout in Poll when the call is interrupte.
9844 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9846 * socket-io.c: support abort/suspend in Select_internal after last
9849 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9851 * threadpool.c: remove warning.
9853 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9856 * socket-io.[ch]: Select_internal uses poll() now when available, thus
9857 removing the 1024 limit from select(). Runtime part of the fix for
9860 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9862 * socket-io.c: when resolving the addresses for the same
9863 host returned by gethostname(), get the local IPs from the interface
9864 list. Loopback addresses are discarded if the are interfaces up with
9865 non-loopback ones. Fixes bug #63265.
9867 2005-05-27 Vladimir Vukicevic <vladimir@pobox.com>
9869 * appdomain.c, verify.c, object-internals.h, reflection.c:
9870 bumped corlib number to 36, and added new extra_flags field
9871 to ReflectionMethodBuilder and friends. Fixes #75060.
9873 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
9875 * gc.c: register a new weak link only if the object is non-null
9878 2005-05-26 Atsushi Enomoto <atsushi@ximian.com>
9880 * culture-info.h : short time pattern too.
9882 2005-05-26 Atsushi Enomoto <atsushi@ximian.com>
9884 * culture-info.h : expand long time pattern string length.
9886 2005-05-25 Atsushi Enomoto <atsushi@ximian.com>
9888 * culture-info-table.h : update (more French date format; #72788).
9890 2005-05-25 Zoltan Varga <vargaz@freemail.hu>
9892 * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
9893 the method is static. Fixes #75029.
9895 2005-05-25 Lluis Sanchez Gual <lluis@novell.com>
9897 * reflection.c: Update the table_idx field of method builders after
9898 saving the module, since it can change. This is a workaround for
9901 2005-05-25 Atsushi Enomoto <atsushi@ximian.com>
9903 * culture-info-table.h : update (additional French date format).
9905 2005-05-20 Zoltan Varga <vargaz@freemail.hu>
9907 * icall.c (ves_icall_type_Equals): Revert last change.
9909 * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
9911 * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
9913 2005-05-20 Sebastien Pouliot <sebastien@ximian.com>
9915 * class-internals.h: Added executioncontext_class field to
9916 MonoDefaults structure.
9917 * domain.c: Cache System.Threading.ExecutionContext class in
9919 * object.c: Capture the ExecutionContext for asynchroneous calls in
9920 mono_async_result_new.
9921 * object-internals.h: Added execution_context and original_context
9922 fields to MonoAsyncResult. Added execution_context to MonoThread.
9923 * security-manager.c|.h: Added mono_get_context_capture_method to
9924 return the capture method (if required by the security manager or by
9925 the framework version used).
9926 * threadpool.c: Apply capture (if present) ExecutionContext in
9927 mono_async_invoke and revert to original context after it completes.
9929 2005-05-19 Atsushi Enomoto <atsushi@ximian.com>
9931 * culture-info-table.h : updated (real hacky solution for zh-CHT).
9933 2005-05-18 Atsushi Enomoto <atsushi@ximian.com>
9935 * culture-info-table.h : zh-CHT related workaround.
9937 2005-05-12 Zoltan Varga <vargaz@freemail.hu>
9939 * marshal.c (emit_marshal_custom): Add some error checking and call the
9940 methods in the ICustomMarshaler interface. Fixes #74875.
9942 * marshal.c (emit_marshal_array): Implement [Out] marshalling in
9943 native->managed wrappers.
9945 2005-05-12 Martin Baulig <martin@ximian.com>
9947 * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
9948 here and use the loader lock.
9950 * mono-debug.c: Properly lock when the debugger is not attached.
9951 (mono_debug_init): Release the initial lock if we're not running
9954 2005-05-12 Zoltan Varga <vargaz@freemail.hu>
9956 * marshal.c (emit_marshal_custom): Pass through NULL values without
9957 calling the custom marshalling routines.
9959 * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
9960 conversion in structures. Fixes #74882.
9962 2005-05-12 Atsushi Enomoto <atsushi@ximian.com>
9964 * culture-info-table.h : zh-* cultures were missing.
9966 2005-05-12 Lluis Sanchez Gual <lluis@novell.com>
9968 * threads.c: Added a new event background_change_event which is signaled
9969 when a thread changes its background mode.
9970 Moved here several checks previously done in managed code. The checks
9971 require the thread lock, and using the thread lock in managed code
9972 can result in deadlocks.
9973 Merged Start_internal and Thread_internal into a single method. Now
9974 Thread_internal does all work of creating and starting a thread.
9975 Added icalls for setting and getting the state of the object. Moved from
9976 managed code to avoid locking there.
9977 Added wait_for_tids_or_state_change() which is called instad of
9978 wait_for_tids when waiting for non-backround threads to end. This method
9979 will return if one of the threads ends or the background_change_event
9981 * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
9982 the background mode. This method signals the background_change_event
9985 * threads-types.h: Added icalls for ClrState, SetState and GetState, and
9986 removed Start_internal.
9988 2005-05-11 Martin Baulig <martin@ximian.com>
9990 * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
9991 to order of some fields to get proper alignment on 64-bit machines.
9993 2005-05-11 Martin Baulig <martin@ximian.com>
9995 * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
9996 changes as they're broken and completely fuck up the debugger.
9998 * mono-debug.c (mono_debug_add_method): Properly unlock on error.
10000 2005-05-10 Martin Baulig <martin@ximian.com>
10002 * reflection.c (mono_reflection_generic_class_initialize): Don't
10003 call mono_class_setup_parent() here.
10005 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10007 * metadata/socket-io.c: on windows, getsockopt/setsockopt for
10008 send/receive timeout use an integer in milliseconds. We were using a
10011 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10014 (internal_get_cultures): reserve the first slot of the array for the
10015 InvariantCulture, which will be filled in managed code.
10017 2005-05-06 Zoltan Varga <vargaz@freemail.hu>
10019 * reflection.c (mono_image_fill_module_table): Initialize the
10020 GENERATION field as well.
10022 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10024 * monitor.c: ignore calls to Monitor.Exit even if no one ever called
10025 Monitor.Enter on the object.
10027 2005-05-05 Lluis Sanchez Gual <lluis@novell.com>
10029 * threads.c: Enable the wait for running threads when exiting.
10030 * icall.c: Suspend all threads before exiting.
10032 2005-05-05 Zoltan Varga <vargaz@freemail.hu>
10034 * assembly.c (mono_assembly_load_reference): Fix warning.
10036 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10038 * threadpool.c: changed the default number of threads per cpu. From now
10039 on, the default will be 20 + (5 * number of cpus) instead of 50.
10041 2005-05-04 Zoltan Varga <vargaz@freemail.hu>
10043 * loader.c (mono_method_get_signature_full): Add locking here.
10045 2005-05-03 Lluis Sanchez Gual <lluis@novell.com>
10047 * appdomain.c: Moved methods for parsing and freeing assembly
10048 names to assembly.c.
10049 * assembly.c, domain-internals.h: Created public methods for parsing
10050 assembly names. Fixed mono_assembly_load_with_partial_name:
10051 it now finds the best match, taking into account the version,
10052 token and culture specified in the partial name. Also return
10053 the latest version if no version information is specified.
10055 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
10057 * threadpool.c: replace check for SocketAsyncCall class.
10059 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10061 * threadpool-internals.h:
10062 * Makefile.am: added threadpool-internals.h
10064 * threadpool.c: call mono_unhandled_exception on exceptions not handled
10065 that happen in threadpool threads (tested on MS).
10066 (mono_thread_pool_remove_socket): new function that dispatch any pending
10067 AIO call on a socket that is closing. By now only epoll really needs it,
10068 as select/poll wake up when the socket closes.
10071 * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
10073 2005-05-01 Zoltan Varga <vargaz@freemail.hu>
10075 * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
10077 2005-05-01 Lluis Sanchez Gual <lluis@novell.com>
10079 * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
10081 2005-04-30 Lluis Sanchez Gual <lluis@novell.com>
10083 * threads.c: In mono_thread_suspend_all_other_threads, if a thread
10084 has an abort request, convert it into a suspend request.
10086 2005-04-30 Ben Maurer <bmaurer@ximian.com>
10088 * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
10089 warning for the usage of `UnmanagedFunctionPointerAttribute' which
10090 is not supported yet.
10092 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10094 * image.c: register assemblies loaded from data (bundles) in the loaded
10095 assemblies hash. Fixes bug #74772.
10097 2005-04-29 Martin Baulig <martin@ximian.com>
10099 * class.c (mono_type_get_name_recurse): Update to the new naming
10100 schema from the latest .NET 2.x beta2.
10101 (mono_class_setup_vtable_general): If we're a generic instance,
10102 copy the vtable from our generic type definition and inflate all
10105 * loader.c (find_method): Update to the new naming schema from the
10106 latest .NET 2.x beta2.
10108 2005-04-29 Raja R Harinath <harinath@gmail.com>
10110 * class.c (mono_class_init): Add a mono_loader_unlock to the
10113 2005-04-28 Zoltan Varga <vargaz@freemail.hu>
10115 * icall.c (ves_icall_System_Environment_Exit): Remove the
10116 suspend_all_other_threads () call for the time being, since it can hang.
10118 * threads.c (mono_thread_manage): Similarly, disable the waiting for
10119 the background threads to exit, since it can also hang.
10121 * class.c (mono_class_init): Applied patch from Ankit Jain
10122 (radical@gmail.com). Avoid pending init errors when a field refers
10123 to a nested class using a typeref. Fixes #74734.
10125 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
10126 this for dynamic modules.
10128 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10130 * threads.c: don't wait for threads that are in the process of aborting
10131 or aborted. Set the 'shutting_down' flag before cleaning the threadpool
10132 and waiting for background threads to finish. This makes xsp and
10133 mod-mono-server exit without random length delays and/or hangs.
10135 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10137 * icall.c: remove duplicate assignment from GetReferencedAssemblies.
10139 2005-04-25 Zoltan Varga <vargaz@freemail.hu>
10141 * class.c (mono_class_is_assignable_from): Call is_assignable_to for
10142 dynamic types to prevent infinite loops. Fixes #74727.
10144 * reflection.c (mono_reflection_call_is_assignable_from): Rename to
10145 ..._is_assignable_to.
10147 2005-04-25 Sebastien Pouliot <sebastien@ximian.com>
10149 * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
10151 2005-04-25 Martin Baulig <martin@ximian.com>
10153 Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
10156 (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
10158 * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
10160 * reflection.c (build_compressed_metadata): Set metadata header
10163 2005-04-23 Zoltan Varga <vargaz@freemail.hu>
10165 * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
10166 number into an integral and a decimal part. Fixes #70473.
10168 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
10170 2005-04-23 Atsushi Enomoto <atsushi@ximian.com>
10172 * culture-info-table.h : reflected the latest locale-builder output.
10174 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10176 * threadpool.c: check for SuspendRequested too when deciding if
10177 mono_thread_interruption_checkpoint should be called.
10179 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10181 * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
10182 * threads.c: remove interruption_mutex and use Interlocked instead. When
10183 suspending all the threads, wait for all the suspended events at once.
10184 If we're shutting down and get an APC that is going to be queued,
10185 call mono_thread_execute_interruption immediately, as the thread might
10186 be sleeping on a pthread condition or mutex.
10188 * icall.c: call mono_runtime_set_shutting_down before suspending the
10191 Fixes bug #74693. And now xsp is happier when exiting.
10193 2005-04-22 Zoltan Varga <vargaz@freemail.hu>
10195 * loader.c (mono_stack_walk): Fix #74690.
10197 2005-04-22 Martin Baulig <martin@ximian.com>
10199 * mono-debug.h (MonoDebugMethodJitInfo): Added
10200 `MonoDebugMethodJitInfo *jit'.
10202 * mono-debug.c (mono_debug_read_method): Cache the
10203 MonoDebugMethodJitInfo in `address->jit'.
10204 (mono_debug_free_method_jit_info): New public method.
10206 2005-04-22 Martin Baulig <martin@ximian.com>
10208 * class.c (mono_class_is_assignable_from): Disallow
10209 type parameter -> interface.
10211 2005-04-21 Dick Porter <dick@ximian.com>
10213 * threads.c (mono_thread_create): Turn an assertion into an error.
10215 2005-04-20 Zoltan Varga <vargaz@freemail.hu>
10217 * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
10219 * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c:
10220 Fix some gcc 4.0 warnings.
10222 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
10224 * file-io.c: fix alt dir separator char on unix systems
10225 and cleanup (fixes bug #71214).
10227 2005-04-19 Lluis Sanchez Gual <lluis@novell.com>
10229 * marshal.c: Use CALLVIRT instead of CALL when dispatching
10230 a call to a remote domain, since the method may be an
10231 interface method in the client domain. This fixes bug #74192.
10233 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10235 * threadpool.c: recv/send are now performed before going back to managed
10236 code to save one transition.
10238 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10240 * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
10242 * metadata/threadpool.c: removed hack to workaround the bug above.
10246 2005-04-16 Zoltan Varga <vargaz@freemail.hu>
10248 * reflection.c reflection.h: Fix handling of parameter defaults in
10249 dynamic methods. Also fixes handling of parameter attributes.
10252 * mono-debug.c (mono_debug_close_image): Fix warning.
10254 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10256 * socket-io.h: replaced old unused field with new 'blocking'.
10257 * threadpool.c: restore socket blocking state on windows(tm).
10259 2005-04-14 Sebastien Pouliot <sebastien@ximian.com>
10261 * icall.c: don't return the codebase in the AssemblyName[] returned by
10262 ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
10263 * object-internals.h: Removed FIXME (fields were presents) and fixed
10264 versioncompat declaration.
10266 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10268 * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
10269 not closed, so don't cleanup when it happens.
10271 2005-04-13 Chris Toshok <toshok@ximian.com>
10273 * mono-debug-debugger.h: change prototype for
10274 mono_debugger_lookup_type.
10276 * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
10277 this function, although it should probably be named
10278 mono_debugger_init_type.
10280 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10282 * threadpool.c: fix non-AIO case.
10284 2005-04-13 Zoltan Varga <vargaz@freemail.hu>
10286 * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
10287 the built-in profiler to measure just JIT compilation times.
10289 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10291 * threadpool.c: the epollfd might be closed by another thread at
10292 any time, so ignore EBADF at treat it as a "we're closing" sign.
10294 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10296 * threadpool.c: release the semaphores with a count equals to the number
10297 of working threads in both IO and regular pools. Fixed typo that messed
10298 up the count of IO pool threads. Don't initialize the pipe handles if
10301 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10303 * threadpool.c: some systems don't like a NULL when deleting the socket
10306 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10308 * threadpool.c: fix semaphore allocation.
10310 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10312 * threadpool.c: added epoll() based implementation for asynchronous IO
10313 that is used instead of the default poll() when available.
10314 It can be disabled by setting MONO_DISABLE_AIO.
10316 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10318 * threadpool.c: windows needs 'closesocket' and instead of returning
10319 0 when the stream is closed while in select, it returns -1. Fixes bug
10322 2005-04-12 Zoltan Varga <vargaz@freemail.hu>
10324 * class.c (class_compute_field_layout): Fix the regression caused by
10327 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10329 * threadpool.c: separate pool for socket async. IO.
10330 * threadpool.h: mono_max_worker_threads is not a global any more.
10332 2005-04-10 Zoltan Varga <vargaz@freemail.hu>
10334 * class.c (class_compute_field_layout): Fix #74549.
10336 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10338 * threadpool.c: select() on windows doesn't allow pipe handles, soooo
10339 use 2 connected sockets instead.
10341 2005-04-08 Miguel de Icaza <miguel@novell.com>
10343 * mono-config.c: Add new entry point for mkbundle
10344 mono_config_parse_memory.
10346 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10348 * threadpool.c: removed another unused function.
10350 2005-04-08 Ankit Jain <radical@corewars.org>
10352 * reflection.c (get_default_param_value_blobs): Add 'types'
10353 parameter to get the types encoded in the constant table.
10354 (mono_param_get_objects): Use the type from the constant table,
10355 not the type of the parameter, when creating default values.
10356 Handle null default values correctly.
10358 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10365 * socket-io.c: removed dead code for async IO.
10367 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10369 * socket-io.h: 2 more fields in MonoSocketAsyncResult.
10371 * threadpool.c: intercept socket async. calls and pass them to a thread
10372 that is polling and dispatching the job items to the threadpool as
10373 socket become ready. Fixes bugs #71217, #71933.
10375 * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
10376 between char and short/ushort arrays.
10378 * socket-io.c: remove dead code.
10380 2005-04-06 Atsushi Enomoto <atsushi@ximian.com>
10383 icall.c : removed InternalToUpper_Comp() and
10384 InternalToLower_Comp().
10386 2005-04-06 Atsushi Enomoto <atsushi@ximian.com>
10388 * char-conversions.h : The tables were incorrectly generated. Should
10389 be generated against invariant culture.
10391 2005-04-04 Zoltan Varga <vargaz@freemail.hu>
10393 * object.c (mono_runtime_invoke_array): Fix return value when
10394 passing pre-created valuetype objects to ctors.
10396 * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer
10397 (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
10400 2005-03-30 Sebastien Pouliot <sebastien@ximian.com>
10402 * domain.c: removed g_assert for runtimesecurityframe_class. This is
10403 only used with --security and hides the wrong corlib version error.
10405 2005-03-30 Joshua Tauberer <tauberer@for.net>
10407 * class.c: Changed mono_class_name_from_token so that types
10408 outside of a namespace don't have an initial period. Improved
10409 the g_warning message used in _mono_class_get when loading
10411 * assembly.c: In mono_assembly_load_reference, when an assembly
10412 can't be found, "No such file or directory" is misleading and
10413 unhelpful because a few paths were checked for the presence of
10414 the assembly. When that happens (ENOENT), display a nicer
10415 message indicating the directories that were searched. In all
10416 cases, the warning is made easier to read for non-hackers.
10418 2005-03-29 Sebastien Pouliot <sebastien@ximian.com>
10420 * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
10422 * appdomain.h|domain.c: Removed inline from functions.
10423 * appdomain.c: Reduced warnings when compiling on windows.
10424 * icall.c: Fixed output_debug declaration to gunichar2*.
10425 * mono-config.c: Reduced warnings when compiling on windows.
10426 * rand.c: Added missing "windows.h". Added missing return value.
10427 * rawbuffer.c: Added missing winsock2.h for windows.
10428 * sysmath.h: Added mono-compiler.h header to allow/ease
10429 compilation with non-GCC compilers.
10430 * threads.c: Fixed declarations to compile with VS.NET C compiler.
10431 Removed cast warnings.
10433 Adapted from the work of J Lothian (for VC6).
10435 2005-03-29 Zoltan Varga <vargaz@freemail.hu>
10437 * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
10440 2005-03-27 Zoltan Varga <vargaz@freemail.hu>
10442 * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
10445 2005-03-27 Raja R Harinath <harinath@gmail.com>
10447 * Makefile.am (assembliesdir): Fix. If it is arch-dependent it
10448 has to be in $(exec_prefix). $(prefix) is for arch-independent
10449 stuff, and it would probably use $(prefix)/share rather than
10452 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10454 * console-io.c: added 2 includes that might be missing.
10456 2005-03-24 Zoltan Varga <vargaz@freemail.hu>
10458 * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
10461 * reflection.c (create_custom_attr): Allocate the params array using
10462 alloca so it gets GC tracking.
10464 2005-03-23 Chris Toshok <toshok@ximian.com>
10466 * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
10469 2005-03-24 Raja R Harinath <rharinath@novell.com>
10471 * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
10472 changes to pick up any changes in prefix, etc.
10474 2005-03-23 Zoltan Varga <vargaz@freemail.hu>
10476 * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
10478 * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
10479 * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
10481 2005-03-23 Zoltan Varga <vargaz@freemail.hu>
10483 * class-internals.h object-internals.h class.c reflection.c: Extend the
10484 mono_lookup_dynamic_token () function to return the class of the
10487 * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
10488 well. Fixes #73848.
10490 2005-03-23 Sebastien Pouliot <sebastien@ximian.com>
10492 * security-manager.c: Skip inheritance checks for intra-corlib
10493 class inheritance and method overrides. This skips a lot of checks
10494 and (anyway) permissions cannot work until corlib is loaded.
10496 2005-03-23 Martin Baulig <martin@ximian.com>
10498 * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
10499 MONO_TYPE_GENERICINST.
10501 2005-03-23 Martin Baulig <martin@ximian.com>
10503 * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
10505 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10507 * class.c: added locking comments to some functions.
10508 Cache the interface offsets arrays (saves about 20 KB
10509 of runtime memory in a typical app).
10510 Reduce the time overhead in mono_class_setup_supertypes ().
10512 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
10514 * icall.c: speedup and fix leaks in GetMethodsByName and
10515 GetPropertiesByName.
10517 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10519 * reflection.c: some locking fixes.
10521 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10523 * metadata.c: added missing break in case statement.
10525 2005-03-22 Zoltan Varga <vargaz@freemail.hu>
10527 * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10528 typedbyref return values. Fixes #73941.
10530 2005-03-17 Sebastien Pouliot <sebastien@ximian.com>
10532 * security-manager.c|h: Added demandunmanaged method and
10533 suppressunmanagedcodesecurity class to MonoSecurityManager.
10534 Renamed aptc class to allowpartiallytrustedcallers.
10536 2005-03-17 Martin Baulig <martin@ximian.com>
10538 * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
10540 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10542 * file-io.c: disabled file async. IO using aio_*. It uses the
10543 threadpool now. Workaround for bug #73718.
10545 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10547 * assembly.h, mono-config.c: added code to deal with bundled configs
10548 for bundled assemblies.
10550 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
10552 * *.c, private.h: cleanup, removing old private.h header file.
10554 2005-03-16 Zoltan Varga <vargaz@freemail.hu>
10556 * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
10557 and throw_on_unmappable_char attributes.
10559 2005-03-13 Sebastien Pouliot <sebastien@ximian.com>
10561 * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
10562 _ProcessName_internal.
10564 2005-03-13 Zoltan Varga <vargaz@freemail.hu>
10566 * object.c (mono_array_new_full): Fix aligning of array size. Fixes
10569 * icall.c threads.c threads-types.h: Remove slothash icalls as they
10570 are no longer used.
10572 2005-03-11 Zoltan Varga <vargaz@freemail.hu>
10574 * object.c (compute_class_bitmap): Add support for generics. Fixes
10577 2005-03-10 Zoltan Varga <vargaz@freemail.hu>
10579 * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
10581 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10583 * filewatcher.c: commented out the code for windows watcher, as we don't
10584 use it (we use the managed implementation instead).
10586 2005-03-10 Zoltan Varga <vargaz@freemail.hu>
10588 * object-internals.h (MonoThread): Remove 'unused1' field.
10590 * appdomain.c: Bump corlib version.
10592 * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
10594 * reflection.c (mono_reflection_create_runtime_class): Remove the
10595 AssemblyBuilder.Save optimization since it causes too many problems.
10597 2005-03-10 Sebastien Pouliot <sebastien@ximian.com>
10599 * exception.c|h: Added mono_get_exception_reflection_type_load to
10600 create a ReflectionTypeLoadException object.
10601 * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
10602 to return NULL is a InheritanceDemand fails during reflection. Updated
10603 ves_icall_System_Reflection_Assembly_GetTypes to throw a
10604 ReflectionTypeLoadException if an InheritanceDemand fails during
10605 reflection. Added icall mapping for GetLinkDemandSecurity.
10606 * security-manager.c|h: Added ves_icall_System_Security_
10607 SecurityManager_GetLinkDemandSecurity internal call to return the
10608 class and methods permissions set for a LinkDemand. Removed unused
10609 fields in MonoSecurityManager.
10611 2005-03-10 Martin Baulig <martin@ximian.com>
10613 * class.c (mono_bounded_array_class_get): Initialize `eclass' if
10614 it's a generic instance.
10616 2005-03-09 Zoltan Varga <vargaz@freemail.hu>
10618 * reflection.c (mono_get_object_from_blob): Applied patch from
10619 Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
10621 * class.c (mono_class_is_assignable_from): Another try at fixing
10622 #73469 without breaking anything.
10624 2005-03-08 Zoltan Varga <vargaz@freemail.hu>
10626 * class.c: (mono_class_is_assignable_from): Revert the last changes
10627 since they don't work with generics.
10629 * class.c (mono_class_is_assignable_from): Fix build bustage.
10631 * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
10632 the managed IsAssignableFrom method. Fixes #73469.
10634 * reflection.c (mono_reflection_call_is_assignable_from): New helper
10637 2005-03-04 Zoltan Varga <vargaz@freemail.hu>
10639 * object.c (mono_load_remote_field_new): Fix returning uninitialized
10640 memory when the remoting callback does not sets the out arguments.
10643 * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
10646 * string-icalls.c: Return String.Empty where needed. Fixes #73310.
10648 * object-internals.h (MonoStackFrame): Sync with managed object layout.
10650 * appdomain.c: Bump corlib version.
10652 2005-03-03 Zoltan Varga <vargaz@freemail.hu>
10654 * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
10657 * threads.c (mono_thread_attach): Detect threads which are not started
10658 by the GC pthread wrappers.
10660 2005-03-03 Sebastien Pouliot <sebastien@ximian.com>
10662 * icall.c: Added new icall for RNG.
10663 * rand.c|h: Added new icall to open the RNG. This allows to share a
10664 single handle on Linux to access /dev/urandom and fix #73183.
10666 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
10668 * object.c: setting the new vtable in a transparent proxy object must
10669 not change the GC descriptor.
10671 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10673 * object.c: fixed compilation without GCJ support.
10674 * reflection.c: for runtime-created types ensure klass->has_references
10675 is correct (bug #73215).
10677 2005-03-02 Martin Baulig <martin@ximian.com>
10679 * class.c (mono_class_is_assignable_from): Make this work if
10680 `oklass' is a generic instance; fixes #72831.
10682 2005-03-01 Zoltan Varga <vargaz@freemail.hu>
10684 * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
10687 * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
10689 * marshal.c: Reorganize native->managed marshalling code to also use
10690 the emit_marshal_... functions.
10692 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10694 * object.c: typed allocs have issues with bitmap sizes > 30,
10695 so check for max_set >= 30.
10697 2005-03-01 Zoltan Varga <vargaz@freemail.hu>
10699 * marshal.c (emit_marshal_array): Implement marshalling of arrays to
10700 managed code. Fixes #73012.
10702 * metadata.h (MonoMarshalSpec): Add elem_mult field.
10704 * metadata.c reflection.c: Load/Emit elem_mult as well.
10706 * metadata.h (MonoMarshalSpec): Add comment.
10708 * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
10710 * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
10711 num_elem to -1 if not given.
10713 * object-internals.h (MonoReflectionMarshal): Add has_size field.
10715 * reflection.c (encode_marshal_blob): Differentiate between 0 and not
10718 2005-03-01 Marek Safar <marek.safar@seznam.cz>
10720 * null-gc.c (mono_gc_free_fixed): Was not compilable.
10722 2005-02-28 Zoltan Varga <vargaz@freemail.hu>
10724 * reflection.c (encode_marshal_blob): Encode param_num field as well.
10726 * object-internals.h (MonoReflectionMarshal): Add param_num field.
10728 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10730 * object.c: generalized the reference bitmap creation
10731 and added hooks for the new GC.
10732 * class-internals.c: removed the gc_bitmap field from MonoClass.
10734 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10736 * domain.c: help the compiler to produce better code
10737 in mono_jit_info_table_find ().
10739 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10741 * object.c: make all allocations look typed.
10743 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10745 * socket-io.c: load Mono.Posix if it's not loaded already
10748 2005-02-24 Martin Baulig <martin@ximian.com>
10750 * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
10751 * reflection.c (dup_type): Likewise.
10753 2005-02-24 Zoltan Varga <vargaz@freemail.hu>
10755 * gc.c (run_finalize): Set the domain for finalizing delegates as well.
10756 Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
10758 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10760 * domain.c, threads.c, object-internals.h: make the critical thread
10761 local vars use the fast access mode (even when we're compiled in
10762 a lib). Provide accessors to be used by the jit during codegen.
10764 2005-02-24 Carlos Alberto Cortez <calberto.cortez@gmail.com>
10766 * appdomain.c: Changed hook functios behavior to include
10767 support for the reflection only assemblies. Some icalls were changed
10768 to support the mentioned assemblies too. Signatures of static methods
10769 try_assembly_resolve and real_load now have an additional parameter:
10772 * assembly.c: General changes to mono_assembly_ methods to support
10773 reflection only api. Functions mono_assembly_open, mono_assembly_load,
10774 mono_assembly_load_from and mono_assembly_loaded have got a '_full'
10775 suffix, to support an additional gbool parameter to specify whether
10776 the assembli is reflection only or not. Created some new hook functions
10777 to add support for reflection only assemblies. Signatures of static
10778 methods load_in_path, search_loaded, and mono_assembly_load_from_gac
10779 have now an additional parameter: refonly.
10781 * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
10782 indicating whether the assembly is reflection only or not.
10784 * exception.c: Add mono_get_exception_invalid_operation.
10786 * icall.c: Throw an InvalidOperationException when trying to invoke
10787 a property/method/event, or trying to set/get the value of a field.
10788 Also add an icall to retrieve the ref_only flag to the
10789 MonoReflectionAssembly.
10791 2005-02-23 Chris Toshok <toshok@ximian.com>
10793 Part of fix for #72827.
10794 * mono-debug.c (mono_debug_add_method): add lexical block data to
10795 the info we write. Kind of a hack at the moment - we copy the
10796 lexical block info from the MonoDebugMethodInfo to the
10797 MonoDebugMethodJitInfo here, before writing it.
10798 (mono_debug_read_method): read the lexical block info.
10800 * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
10802 * debug-mono-symfile.h: add lexical block support.
10804 * debug-mono-symfile.c (mono_debug_find_method): add lexical block
10807 2005-02-23 Zoltan Varga <vargaz@freemail.hu>
10809 * loader.c (mono_lookup_pinvoke_call): Fix warning.
10811 * object.c (mono_runtime_free_method): Call mono_free_method () and
10812 put the TODOs there.
10814 * loader.c (mono_free_method): Free up most memory allocated for
10817 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
10819 * reflection.c: properly flag a Type argument to a
10820 named custom attr value (bug #72248).
10822 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10824 * reflection.c: reduce code duplication in named custom
10825 attribute encoding.
10827 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
10829 * reflection.c: properly encode custom attrs of type object
10832 2005-02-23 Zoltan Varga <vargaz@freemail.hu>
10834 * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
10836 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
10838 * socket-io.c: load System.dll if it's not loaded already
10839 (bug #72850 and #70477).
10841 2005-02-21 Martin Baulig <martin@ximian.com>
10843 * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10846 2005-02-21 Martin Baulig <martin@ximian.com>
10848 * reflection.c (mono_image_build_metadata): We also need to
10849 "fixup" the MethodImpl table after we computed the final method
10850 indices. Call fixup_methodimpl() to do that.
10851 (fixup_methodimpl): New private method.
10853 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10855 * assembly.c: special case mscorlib.dll (bug#72536),
10856 patch from Carlos Alberto Cortez.
10858 2005-02-20 Zoltan Varga <vargaz@freemail.hu>
10860 * threads-types.h threads.c: Fix build bustage.
10862 * threads.c: Use a union for long<->double conversions.
10864 * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
10865 functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
10867 * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock
10868 containing the checkpoint call with NOT_TAKEN.
10870 * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt
10871 checkpoint before pushing the arguments, so they won't have to be
10874 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10876 * domain.c, assembly.c, domain-internals.h: make some data
10877 const and relocation-free.
10879 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
10881 * object.c, appdomain.c, class-internals.h: introduce the
10882 MonoClassRuntimeInfo structure to hold the info needed to
10883 use a class at runtime. Made mono_class_vtable() lock-free
10884 for all the appdomains.
10886 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
10888 * metadata-internals.h, image.c: introduce a per-image mempool to
10889 be used for memory that has the same lifetime as the image.
10891 2005-02-18 Lluis Sanchez Gual <lluis@novell.com>
10893 * domain.c: In mono_init_internal(), instead of selecting the first
10894 runtime version supported by an executable, get a list of all
10895 supported versions and select the one for which an mscorlib exists
10896 (since even if the runtime supports a given version, it doesn't mean
10897 that the framework for that version is installed).
10898 Modified get_runtimes_from_exe to support this behavior.
10899 In supported_runtimes, added information about additional system
10902 * assembly.c: Added support for more than one system assembly version
10903 per runtime version. Updated the assembly list.
10904 In mono_assembly_remap_version, removed the initial version check,
10905 since we don't know to which version we need to compare until we
10906 get the version set on which the assembly is based.
10907 Moved the code for loading corlib into the new method
10908 mono_assembly_load_corlib(), so it can be used by the initialization
10911 * domain-internals.h: Updated data structures and added declaration
10912 for mono_assembly_load_corlib.
10914 2005-02-17 Zoltan Varga <vargaz@freemail.hu>
10916 * reflection.c (resolve_object): Fix the creation of the signature in
10917 the SignatureHelper case.
10919 * assembly.c (mono_assembly_remap_version): Fix binary search.
10921 2005-02-17 Sebastien Pouliot <sebastien@ximian.com>
10923 * class.c: Added inheritance check when a method is overloaded (from a
10924 virtual method or when implementing an interface) and when a class is
10925 inherited. Added functions to set a failure for a class and to
10926 retreive the exception from a failure.
10927 * class-internals.h: Added fields to MonoClass to keep the exception
10928 information status for inheritance (or other exceptions) to be thrown
10929 later (i.e. not at load time).
10930 * object.c: Throw the inheritance SecurityException when a type is to
10931 be created with either class or method inheritance violations.
10932 * reflection.c|h: Fix when getting declsec from a class. Removed
10933 unrequired code for class. Improved sanity in parameter naming.
10934 * security-manager.c|h: Added functions to check for class and method
10937 2005-02-17 Zoltan Varga <vargaz@freemail.hu>
10939 * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
10940 and has_finalize in dynamic types as well.
10942 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
10944 * culture-info-table.h : fixed currency format for en-GB (and so on).
10946 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
10948 * gc.c: ensure the GC handles never have 0 as a value.
10950 2005-02-16 Zoltan Varga <vargaz@freemail.hu>
10952 * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
10953 a pointer to a struct to unmanaged code. Fixes #72625.
10955 2005-02-16 Martin Baulig <martin@ximian.com>
10957 * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
10959 2005-02-16 Zoltan Varga <vargaz@freemail.hu>
10961 * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
10963 2005-02-15 Zoltan Varga <vargaz@freemail.hu>
10965 * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
10967 * marshal.c (mono_ftnptr_to_delegate): If the delegate has the
10968 UnmanagedFunctionPointerAttribute, use it for determining calling convention
10971 * reflection.c (mono_custom_attrs_get_attr): New helper function.
10973 * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
10975 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
10977 * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
10978 changes to make the current context a field in MonoThread.
10980 2005-02-15 Zoltan Varga <vargaz@freemail.hu>
10982 * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
10985 * marshal.c (mono_marshal_emit_native_wrapper): New helper function
10986 extracted from mono_marshal_get_native_wrapper.
10988 * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
10989 to create wrappers around native functions.
10991 * marshal.c (mono_ftnptr_to_delegate): Add support for creating
10992 delegates for arbitrary function pointers. Fixes #71472.
10994 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
10996 * threads.c: cleaned up the code a little.
10998 2005-02-15 Martin Baulig <martin@ximian.com>
11000 * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
11003 * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
11004 allocate larger chunks if needed.
11006 2005-02-14 Zoltan Varga <vargaz@freemail.hu>
11008 * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
11011 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
11013 * domain.c: keep the domains in an array and ensure the domain ids
11014 are kept small, so they can be used as indexes to domain-specific data
11015 with a small memory overhead.
11017 2005-02-14 Zoltan Varga <vargaz@freemail.hu>
11019 * icall.c: Handle byref types in Type icalls. Fixes #72544.
11021 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
11023 * Makefile.am: remove libmetadata: we build just libmonoruntime now.
11025 2005-02-13 Zoltan Varga <vargaz@freemail.hu>
11027 * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
11029 * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
11032 * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
11034 2005-02-12 Ben Maurer <bmaurer@ximian.com>
11036 * domain-internals.h: add the hashtable here.
11038 * class-internals.h: Remove `info' from MonoMethod
11040 * domain.c: Add a new hashtable, jit_trampoline_hash
11042 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11044 * object.c: don't set the value of static fields
11047 2005-02-11 Martin Baulig <martin@ximian.com>
11049 * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
11050 (mono_debug_add_method): Silently ignore the method if it's too big.
11051 (mono_debug_add_type): Likewise.
11053 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
11055 * threads.c, appdomain.c: remove #ifdefs from the code.
11057 2005-02-10 Sebastien Pouliot <sebastien@ximian.com>
11059 * metadata-internals.h: Added flags to MonoAssembly to cache the most
11060 common security informations. This allows us to stay in unmanaged code
11061 when doing LinkDemand and it's special cases (except for the first
11062 time for initialization). The flags a very much used with --security.
11063 * reflection.c|h: Added code to get declarative security attributes
11064 for LinkDemand and InheritanceDemand. This required to refactor the
11065 existing code for Demand.
11066 * security-manager.c|h: Added new method fields for the special cases
11069 2005-02-10 Martin Baulig <martin@ximian.com>
11071 * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
11072 (ves_icall_MonoDebugger_GetTypeToken): New interncall.
11074 2005-02-10 Martin Baulig <martin@ximian.com>
11076 * mono-debug.c, mono-debug-debugger.c: Completely reworked the
11077 debugging code; this is almost a complete rewrite.
11079 * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
11081 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11083 * domain.c, object.h: expose mono_string_equal () and
11084 mono_string_hash ().
11085 * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
11086 it's implemented in managed code.
11088 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11090 * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
11091 lo leak objects between appdomains.
11093 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11095 * assembly.c: old compilers compilation fix from
11096 robertj@gmx.net (Robert Jordan).
11098 2005-02-09 Ben Maurer <bmaurer@ximian.com>
11100 * class-internals.h: Little reminder for the future.
11102 * debug-helpers.c: Fix up wrapper_type_names
11104 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11106 * image.c, metadata-internals.h: when loading an image from a file,
11107 mmap all of it and use the same codepaths as when using a
11108 in-memory image: the code is simpler and we use less memory
11109 (both writable and readonly).
11111 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11113 * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
11114 API to alloc runtime data structures that need to be tracked by the
11115 GC and contain pointers.
11116 * appdomain.c, threads.c, object.c, gc.c: use the above changes to
11117 make the code more readable and eventually use a different GC.
11119 2005-02-09 Zoltan Varga <vargaz@freemail.hu>
11121 * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
11124 2005-02-09 Lluis Sanchez Gual <lluis@novell.com>
11126 * object.c: In release_type_locks(), don't release the cctor lock
11127 if it has already been released. This fixes a crash in the
11130 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11132 * gc.c, marshal.c, icall.c: register a delegate for finalization
11133 only when the native function pointer has been allocated for it.
11135 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11137 * object.c: cleaned up some code, allocate objects that are
11138 pointer free with the atomic malloc variant. Allocate memory
11139 for static data from the mempool if it's pointer-free.
11140 Allocate the bounds array at the end of the array data, when needed.
11141 * object-internals.h, object.h: move a private function in a private
11143 * class.c: handle missing case in tracking references in fields.
11145 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11147 * class.c, class-internals.h: keep track if a type has
11148 reference fields in either the instance or static fields.
11150 2005-02-07 Lluis Sanchez Gual <lluis@novell.com>
11152 * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
11153 and renamed to MonoRuntimeInfo. Added fields to store the expected
11154 framework assembly version. Changed mono_get_framework_version and
11155 mono_get_runtime_version for a single mono_get_runtime_info method.
11157 * assembly.c: Added method to remap system assembly versions to the
11158 current executing runtime version. Removed old mapping code.
11159 Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
11161 * icall.c, reflection.c: Track api changes.
11163 2005-02-06 Miguel de Icaza <miguel@novell.com>
11165 * loader.c (method_from_memberref): Improve error reporting,
11166 produce the class name instead of the typeref/typedef index.
11168 2005-02-07 Zoltan Varga <vargaz@freemail.hu>
11170 * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
11172 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
11174 * loader.c (mono_lookup_pinvoke_call): Allow for combination of
11175 stdcall and charset name mangling. Reorganize the code and add
11176 some tracing stuff.
11178 2005-02-05 Ben Maurer <bmaurer@ximian.com>
11180 * monodiet.c: More iters!
11182 * marshal.c: Iter usage.
11184 * icall.c: Iter usage.
11186 * object.c: Use iters.
11188 * debug-helpers.c: More iters
11190 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
11192 * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
11195 2005-02-05 Ben Maurer <bmaurer@ximian.com>
11197 * mono-debug-debugger.c: use iters
11199 * class.c, class-internals.h: mono_class_setup_events is static
11202 * All callers: use iters
11204 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
11206 * class.c string-icalls.c marshal.c reflection.c: Applied patch from
11207 Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
11209 2005-02-04 Zoltan Varga <vargaz@freemail.hu>
11211 * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
11213 * marshal.h: Add prototypes for ldfld/stfld_remote.
11215 * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
11216 this is called during startup.
11218 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
11220 * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
11221 MonoThreadsSync struct private in monitor.c. Changed the way
11222 MonoThreadsSync is allocated so it's faster and there is no
11223 need to keep track of it with a finalizer and it uses less memory.
11224 This also finally allows us to allocate mono objects as ptrfree when
11225 there are no reference fields.
11227 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
11229 * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
11230 disappearing link to the GC interface and use them to simplify
11231 the gchandles code.
11233 2005-02-04 Zoltan Varga <vargaz@freemail.hu>
11235 * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
11236 stfld_remote which call mono_load/store_field_new. This allows methods
11237 calling ldfld/stfld wrappers to be AOTed.
11239 * console-io.c: Include sys/filio.h under solaris.
11241 * console-io.c: Include curses.h if needed correctly.
11243 2005-02-03 Zoltan Varga <vargaz@freemail.hu>
11245 * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
11246 method->klass as well.
11248 * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
11250 * class.c (mono_class_init): Switch on lazy initialization of
11253 * class.c (mono_class_get_finalizer): Handle the case when the
11254 finalizer is inherited.
11256 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11258 * console-io.c: <curses.h> is needed by term.h on solaris.
11260 2005-02-03 Ben Maurer <bmaurer@ximian.com>
11262 * icall.c, class-internals.h, monodiet.c, class.c: Remove
11263 mono_class_setup_properties where possible. Remove this ftn from
11264 the header file, and make it static.
11266 2005-02-03 Zoltan Varga <vargaz@freemail.hu>
11268 * loader.c: Add missing setup_... call.
11270 * class.c: Add missing setup_... calls.
11272 * class.c (mono_class_init): Switch on lazy initialization of
11273 the generic vtable.
11275 * class.c (mono_class_init): Fix generics broken by the recent changes.
11277 * monodiet.c (handle_type): Add missing setup_... calls.
11279 * class.c: Back out garbage in previous patch.
11281 * class.c: Add missing setup_... calls.
11283 * class.c (mono_class_get_method_from_name_flags): Avoid calling
11284 mono_class_setup_methods () if possible.
11286 * class-internals.h (MonoClass): Add 'has_cctor' flag.
11288 * class-internals.h (MonoCachedClassInfo): New structure.
11290 * class.c: Initialize properties and events fields of MonoClass lazily.
11292 * class.c: Add infrastructure for lazily initializing the methods and
11293 vtable fields of MonoClass. Not yet used.
11295 * class.c (mono_class_get_finalizer): New helper function.
11297 * class.c: Add infrastructure for loading some class related data from
11300 * object.c: Add infrastructure for initializing the vtable from data
11303 * gc.c (run_finalize): Use mono_class_get_finalizer ().
11305 * class.c loader.c object.c icall.c gc.c reflection.c: Call the
11306 appropriate initialization function before accessing parts of the
11307 MonoClass structure.
11309 * marshal.c: Fix warnings.
11311 * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
11313 * mono-debug-debugger.c (get_exception_message): Use
11314 mono_class_get_method_from_name_flags ().
11316 2005-02-02 Ben Maurer <bmaurer@ximian.com>
11318 * reflection.c, appdomain.c: Replace a few manual searches that
11319 Zoltan missed. (Paolo approved this part of my initial patch).
11321 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
11323 * profiler.c: disable recording statistical events at report time.
11325 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11327 * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
11328 to byteswap arrays of enum values, too (bug #72080).
11330 2005-02-02 Zoltan Varga <vargaz@freemail.hu>
11332 * appdomain.c (set_domain_search_path): Allow this to be called if
11333 domain->setup is not yet set.
11335 * loader.c (mono_method_get_index): New helper function.
11337 * loader.c reflection.c: Use mono_method_get_index ().
11339 * class.c (mono_class_get_method_from_name_flags): New helper method.
11341 * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
11344 * class.c (mono_class_get_cctor): New helper method.
11346 * string-icalls.c object.c class.c marshal.c reflection.c: Use
11347 mono_class_get_method () to look up methods.
11349 2005-02-01 Miguel de Icaza <miguel@novell.com>
11351 * console-io.c: Fix the build, this should work on Windows.
11353 2005-01-31 Ben Maurer <bmaurer@ximian.com>
11355 * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
11356 be set to null to keep things valid
11358 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11360 * icall.c: added Console 2.0 icalls.
11361 * Makefile.am: added console-io.[ch]
11362 * console-io.[ch]: internal calls for Console 2.0 API.
11364 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11366 * class.c: make sure we consider all the interfaces
11367 when calculating max_interface_id (bug found by
11368 Jeroen Frijters running ikvm).
11370 2005-01-31 Zoltan Varga <vargaz@freemail.hu>
11372 * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
11373 valuetype fields to null.
11375 * object.c (set_value): Ditto. Fixes #71669.
11377 2005-01-31 Martin Baulig <martin@ximian.com>
11379 * metadata.c (mono_metadata_has_generic_params): New public
11380 function; checks whether something is a generic method.
11382 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
11384 * appdomain.c: fix infinite recursion when adding assemblies.
11386 2005-01-30 Sebastien Pouliot <sebastien@ximian.com>
11388 * object.c: Fix small typo to return all items for Environment.
11389 GetCommandLineArgs.
11391 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11393 * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
11394 reflection.c: more domain and assembly-unload related fixes
11395 and memory leaks plugs.
11397 2005-01-30 Zoltan Varga <vargaz@freemail.hu>
11399 * class.c loader.c security.c loader.h process.c threads.c mono-debug-debugger.c profiler.c marshal.c rand.cpedump.c: Fix 64 bit warnings.
11401 2005-01-29 Ben Maurer <bmaurer@ximian.com>
11403 * loader.c (mono_method_signature): Make this method lazy
11404 (mono_get_method_from_token): Don't computate the signature here.
11406 Doing this saves quite a bit of memory. I got 90 kb on starting up
11407 monodoc. It should also save some disk reads on startup.
11409 * *: MonoMethod->signature might be NULL now. You *MUST* use
11410 mono_method_signature.
11412 2005-01-29 Zoltan Varga <vargaz@freemail.hu>
11414 * object.c (mono_runtime_get_main_args): Return an array from the
11415 current domain here. Fixes #71938.
11417 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
11419 * monitor.c: formatting changes to comply with the
11420 mono coding style and remove #ifdefs from the code.
11422 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11424 * metadata.c, private.h: remove some unneeded data
11425 and use a more compact representation for table schemas.
11427 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
11429 * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
11430 to get a better distribution in hash tables.
11431 * *.c: use mono_aligned_addr_hash() where appropriate.
11432 * assembly.c: make var static.
11434 2005-01-28 Zoltan Varga <vargaz@freemail.hu>
11436 * domain-internals.h: Put MonoJitInfo on a diet.
11438 * domain.c: Fix a warning.
11440 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11442 * gc.c: rework the gc handles code to reuse handles
11445 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
11447 * domain.c: fixed long standing bug in mono_string_equal() which
11448 was brought to light with the ldstr changes.
11450 2005-01-26 Sebastien Pouliot <sebastien@ximian.com>
11452 * reflection.c: Remove warning by adding missing include for marshal.h
11454 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11456 * domain.c, object.c: change the ldstr_table to hold
11457 MonoString* as keys: makes the runtime isinterned lookup
11458 faster and simplifies memory management.
11460 2005-01-25 Sebastien Pouliot <sebastien@ximian.com>
11462 * icall.c: Renamed GetEnvironmentVariable so internal* so it was
11463 possible to add imperative security checks before calling the icall.
11464 * reflection.c: Return security attributes on the original MonoMethod
11465 (and not the wrapped one). This fix permissions on icalls.
11467 2005-01-25 Dick Porter <dick@ximian.com>
11469 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
11470 the check for mktime() support actually test the mktime() return
11471 value. "Fixes" bug 71682, though the output is still different to
11474 2005-01-25 Martin Baulig <martin@ximian.com>
11476 * class.c (mono_class_is_assignable_from): Make this work for
11479 2005-01-24 Ben Maurer <bmaurer@ximian.com>
11481 * marshal.c (mono_string_utf8_to_builder)
11482 (mono_string_builder_to_utf16): We might not have ownership of the
11483 string. In thise case, we need to create a new buffer.
11485 * object-internals.h (mono_stringbuilder_capacity): sb->str might
11486 be null, in which case, use the default capacity.
11488 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11490 * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
11491 GC events to the profiler.
11493 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11495 * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
11496 if you don't want the GC to run.
11498 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
11500 * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
11501 start providing a GC API and keeping different implementations in
11503 * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
11505 2005-01-22 Ben Maurer <bmaurer@ximian.com>
11507 * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
11508 mmap rather than allocating a huge buffer.
11509 (mono_debug_close_mono_symbol_file): Free the buffer allocated
11512 2005-01-22 Sebastien Pouliot <sebastien@ximian.com>
11514 * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
11515 and CheckExecutionRights.
11516 * reflection.c|h: Keep the index of the declarative security to be
11517 used, instead of the pointer, when AOT compiler is used. Also add
11518 class initialization when requesting demands.
11519 * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
11520 CheckExecutionRights. Both properties are now FALSE by default, and
11521 unmodifiable, unless the --security option is used.
11523 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11525 * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
11526 reflection.c: properly refcount images and assemblies, many leaks fixed.
11528 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11530 * threadpool.c: increase the timeout for threads in the thread pool to
11531 10s. Fixes bug #67159.
11533 2005-01-20 Bernie Solomon <bernard@ugsolutions.com>
11535 * class-internals.h: Sun's compiler insists on explicit
11536 signed on bit fields to handle then correctly.
11538 2005-01-19 Miguel de Icaza <miguel@ximian.com>
11540 * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
11541 Make the size of the array fit only the number of invalid path
11542 chars that we have.
11544 * class.c (_mono_class_get): Improve the error reporting when a
11545 class referenced is not found, to assist debugging.
11547 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
11549 * threads.c: fix off-by-one error.
11550 * domain.c: free data allocated in the domain.
11552 2005-01-19 Zoltan Varga <vargaz@freemail.hu>
11554 * reflection.c (mono_method_body_get_object): Fill out exception info
11557 * object-internals.h: Add MonoReflectionExceptionHandlingClause
11560 2005-01-19 Martin Baulig <martin@ximian.com>
11562 * loader.c (mono_get_method_constrained): Make this work again.
11564 2005-01-19 Zoltan Varga <vargaz@freemail.hu>
11566 * object-internals.h (_MonoReflectionMethodBody): Make local_index a
11567 guint16 to match the managed side.
11569 * reflection.c (mono_reflection_body_get_object): Fill out local
11572 * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
11575 * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
11576 'local_var_sig_token'.
11578 2005-01-18 Zoltan Varga <vargaz@freemail.hu>
11580 * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks
11583 * reflection.c (mono_method_body_get_object): Handle abstract and
11586 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
11588 * marshal.c, loader.c, class-internals.h, reflection.c:
11589 store the emthod data for a wrapper in an array instead of a list.
11591 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
11593 * marshal.c: change the code to allocate memory more
11594 conservatively for method wrappers.
11596 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
11598 * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
11599 fields from MonoClass to the marshal info structure where they belong.
11601 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11603 * class.c, object.c, class-internals.h, marshal.c: rearrange
11604 some fields and tweak some types to lower memory usage.
11606 2005-01-17 Zoltan Varga <vargaz@freemail.hu>
11608 * threads.c (signal_thread_state_change): Handle the case when the
11609 target thread is the current thread.
11611 * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
11613 * marshal.c: Rename emit_ptr_to_str_conv and its pair to
11614 emit_ptr_to_object_conv.
11616 * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
11617 marshalling. Fixes #71352.
11619 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11621 * metadata.h, blob.h: move table enum to blob.h so it can be included
11623 * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
11624 cut the size of MonoImage/MonoDynamicImage.
11626 2005-01-16 Zoltan Varga <vargaz@freemail.hu>
11628 * profiler.c (mono_profiler_install_simple): Fix default arguments.
11630 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
11632 * reflection.c, reflection.h, icall.c: add a function to check
11633 if an attribute type is defined for a metadata object.
11635 2005-01-14 Lluis Sanchez Gual <lluis@novell.com>
11637 * object-internals.h: Added some needed fields from StringBuilder class.
11638 * marshal.c: Set the maxCapacity when creating a StringBuilder.
11640 2005-01-13 Zoltan Varga <vargaz@freemail.hu>
11642 * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
11643 threads before shutting down the runtime.
11645 * threads.c (mono_thread_suspend_all_other_threads): New helper function.
11647 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11649 * object-internal.h, threads.c: implement stacksize and
11650 parameterized thread start functionality (requires
11651 matching corlib). Marked broken code for later removal.
11653 2005-01-12 Martin Baulig <martin@ximian.com>
11655 * class-internals.h (MonoGenericClass): Moved the `initialized'
11656 flag to MonoDynamicGenericClass, removed `init_pending'.
11657 (MonoGenericInst): Added `is_reference' flag.
11659 2005-01-12 Zoltan Varga <vargaz@freemail.hu>
11661 * reflection.c (mono_image_create_pefile): Only set the pe_offset
11662 inside the MSDOS header. Fixes #71201.
11664 * gc.c (mono_gc_cleanup): Handle the case when this is called from the
11666 (mono_domain_finalize): Ditto.
11668 2005-01-12 Martin Baulig <martin@ximian.com>
11670 * class.c (mono_get_shared_generic_class): Use the cache for
11671 non-dynamic generic classes.
11673 * class-internals.h (mono_class_create_generic_2): Removed
11674 function prototype, this function is now static inside class.c.
11676 * class.c (mono_class_create_generic_2): Made this static, only
11677 call it from mono_class_init() and mono_class_setup_parent().
11678 (collect_implemented_interfaces_aux): Call mono_class_init() on
11679 the interfaces we collect.
11680 (mono_class_setup_vtable): Call mono_class_init (class->parent).
11682 2005-01-11 Zoltan Varga <vargaz@freemail.hu>
11684 * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
11685 it a real thread handle.
11687 * domain-internals.h: Move exvar_offset from MonoJitInfo to
11688 MonoJitExceptionInfo, since each catch clause needs its own variable.
11690 2005-01-11 Dick Porter <dick@ximian.com>
11692 * image.c (mono_pe_file_open): New variant on mono_image_open()
11693 that does not set up the CLI metadata; used for FileVersionInfo so
11694 it can get the data for windows binaries too.
11696 * process.c (process_read_string_block): Don't read off the end of
11697 the StringTable block.
11699 These both fix bug 70766.
11701 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
11703 * gc.c: set some fields to NULL at GC cleanup time.
11704 * threads.c: if we quit the main thread, call exit ().
11706 2005-01-11 Zoltan Varga <vargaz@freemail.hu>
11708 * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
11710 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
11712 * threads.h, threads.c, object.c: added accessor and settor for
11713 main_thread. Handle it specially when exiting from it: wait
11714 for other foreground threads to exit.
11716 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
11718 * process.c, verify.c: remove some bloat.
11720 2005-01-09 Zoltan Varga <vargaz@freemail.hu>
11722 * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
11723 the calling convention to cdecl under win32.
11725 2005-01-08 Ben Maurer <bmaurer@ximian.com>
11727 * object.c (mono_object_get_size): New function to get the size of
11728 an object instance.
11730 * profiler.c (simple_allocation): Use above.
11732 2005-01-08 Sebastien Pouliot <sebastien@ximian.com>
11734 * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
11735 ves_icall_System_AppDomain_getRootDomain (as it's not required to
11736 get an appdomain by it's id and we can't assume the root's id is 0).
11737 * domain-internals.h: Change the function prototype to match.
11738 * icall.c: Change the icall table for AppDomain.
11740 2005-01-08 Miguel de Icaza <miguel@ximian.com>
11742 * locales.c (string_invariant_compare_char): Only compute
11743 GUnicodeTypes in the case where we need them. Test for ordinality
11744 first and return if so.
11749 * FIXME: here we must use the information from c1type and c2type
11750 * to find out the proper collation, even on the InvariantCulture, the
11751 * sorting is not done by computing the unicode values, but their
11752 * actual sort order.
11755 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
11757 * loader.c: for P/Invoke methods, allow the "Internal" shared
11758 library name to refer to the calling process symbol namespace.
11760 2005-01-07 Sebastien Pouliot <sebastien@ximian.com>
11762 * Makefile.am: Add the security manager to the build.
11763 * security-manager.c|h: New. Initialization of the security manager.
11765 2005-01-07 Dick Porter <dick@ximian.com>
11768 * monitor.c: Update thread state during Monitor and WaitHandle
11769 waits. Fixes bug 71031.
11771 2005-01-07 Zoltan Varga <vargaz@freemail.hu>
11773 * reflection.c (property_encode_signature): Correctly handle when the
11774 property has no methods.
11776 2005-01-06 Zoltan Varga <vargaz@freemail.hu>
11778 * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
11780 * reflection.c (reflection_methodbuilder_from_method_builder): Copy
11781 fields from mb, not rmb. Fixes #71017.
11783 * marshal.c (emit_ptr_to_str_conv): Add support for
11784 ByValTStr -> string conversion. Fixes #71015.
11786 * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
11788 * mempool.c (mono_mempool_contains_addr): New helper function.
11790 2005-01-05 Zoltan Varga <vargaz@freemail.hu>
11792 * metadata.c (mono_metadata_compute_size): Fix size calculation of
11793 HasSematics encoded fields.
11795 * metadata.c (mono_type_to_unmanaged): Improve error message for
11796 invalid string marshalling.
11798 * metadata.c: Fix warnings.
11800 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11802 * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
11805 2005-01-05 Zoltan Varga <vargaz@freemail.hu>
11807 * domain.c object.c domain-internals.h: Revert part of r38077 since the
11808 keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
11811 2005-01-03 Zoltan Varga <vargaz@freemail.hu>
11813 * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
11814 so methods containing these can be AOTed.
11816 2005-01-03 Martin Baulig <martin@ximian.com>
11818 * loader.c (find_method): Removed the hack for generic instances.
11819 (method_from_memberref): If our parent is a generic instance, pass
11820 its generic type definition to find_method() and then inflate the
11822 (mono_get_method_constrained): Pass the generic type definition to
11823 find_method() and inflate the method later.
11825 * class-internals.h (MonoStats): Added `generic_class_count'.
11827 * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
11828 Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
11830 * reflection.c (mono_custom_attrs_from_params): Don't ignore
11831 generic type definitions.
11833 2004-12-30 Zoltan Varga <vargaz@freemail.hu>
11835 * loader.c icall.c: Fix warnings.
11837 2004-12-29 Zoltan Varga <vargaz@freemail.hu>
11839 * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
11840 blittable types. Fixes #70864.
11842 2004-12-29 Martin Baulig <martin@ximian.com>
11845 (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
11847 * reflection.c (mono_method_get_object): Create a
11848 "System.Reflection.MonoGenericMethod" for inflated methods; don't
11849 call mono_get_inflated_method().
11851 * class-internals.h (MonoStats): Added `inflated_method_count_2'.
11853 2004-12-27 Martin Baulig <martin@ximian.com>
11855 * class-internals.h (MonoMethod): Added `is_inflated' flag.
11856 (MonoMethodInflated): Added `inflated' field.
11858 * class.c (mono_class_inflate_generic_method): Don't really
11859 inflate the method here; just set the `is_inflated' flag in the
11861 (mono_class_get_inflated_method): Actually inflate the method here
11862 if it's not already inflated; we use the MonoMethodInflated's new
11863 `inflated' field as a cache.
11865 2004-12-26 Martin Baulig <martin@ximian.com>
11868 (inflate_generic_class): Moved some code out of inflate_generic_type().
11869 (mono_class_inflate_generic_method): If we're already inflated,
11870 inflate the context and use the declaring method; ie. make sure
11871 the declaring method of an inflated method is always the generic
11873 (mono_class_create_from_typedef): Create
11874 `class->generic_container->context->gclass'.
11876 2004-12-24 Ben Maurer <bmaurer@ximian.com>
11878 * metadata-internals.h, marshal.c, reflection.c: More
11879 MonoGHashTable->GHashTable.
11881 * domain-internals.h, class.c: Change MonoGHashTable's into
11882 GHashTables for some cases where no gc stuff is used
11884 All users: update apis
11886 2004-12-23 Ben Maurer <bmaurer@ximian.com>
11888 * metadata.c (builtin_types): Make this `const'. Makes this get
11889 put into the shareable section.
11890 (mono_metadata_init): Casts to make gcc happy.
11892 2004-12-22 Zoltan Varga <vargaz@freemail.hu>
11894 * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
11896 2004-12-21 Sebastien Pouliot <sebastien@ximian.com>
11898 * icall.c: Added an internal call to retrieve the position and length
11899 of assembly-level declarative security attributes (RequestMinimum,
11900 RequestOptional and RequestRefuse). This is used by the Assembly class
11901 to re-create the corresponding permission sets.
11903 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
11905 * marshal.c: fix the stelemref wrapper to be type correct
11908 2004-12-20 Ben Maurer <bmaurer@ximian.com>
11910 * icall.c (ves_icall_System_Object_GetHashCode): There was no need
11911 to do key & 0x7fffffff. Hashtable already does this. It just
11912 results in longer code.
11914 2004-12-20 Sebastien Pouliot <sebastien@ximian.com>
11916 * appdomain.c: Bump corlib version.
11917 * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
11918 * domain.c: Add RuntimeSecurityFrame to mono_defaults.
11919 * reflection.c|h: Add functions to get declarative security infos
11920 (blob position and length) for assemblies, classes and methods.
11922 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
11924 * reflection.c: sort the constant table (bug #70693).
11926 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
11928 * object-internals.h, threads.c, domain.c: add accessors for
11929 the MonoThread and MonoDomain tls keys.
11931 2004-12-18 Martin Baulig <martin@ximian.com>
11933 * class.c (inflate_generic_type): If we're inflating a generic
11934 instance, set `ngclass->context->container = context->container';
11935 ie. the container we inflated into.
11937 * metadata.c (mono_metadata_parse_generic_param): Reflect above
11938 inflate_generic_type() changes.
11940 2004-12-17 Martin Baulig <martin@ximian.com>
11942 * class-internals.h
11943 (MonoGenericClass): Replaced `MonoType *generic_type' with
11944 `MonoClass *generic_class'. Removed `dynamic_info'; if
11945 `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
11946 (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
11948 2004-12-16 Zoltan Varga <vargaz@freemail.hu>
11950 * exception.c (mono_exception_from_token): New helper function.
11952 2004-12-15 Zoltan Varga <vargaz@freemail.hu>
11954 * assembly.c (mono_assembly_load_with_partial_name): Call
11955 mono_assembly_loaded before invoking the preload hooks. Fixes
11958 * object-internals.h (MonoThread): Change culture_info and
11959 ui_culture_info into an array.
11961 * threads.c: Cache culture info objects from more than one appdomain.
11963 * threads.c threads-types.h icall.c: Add icalls for manipulating the
11964 current UI culture.
11966 2004-12-14 Zoltan Varga <vargaz@freemail.hu>
11968 * threads.h threads.c appdomain.c: Clear the culture_info field of
11969 all threads during unloading if they point to an object in the dying
11972 2004-12-13 Ben Maurer <bmaurer@ximian.com>
11974 * culture-info.h (TextInfoEntry): New struct
11975 * object-internals.h: sync with managed
11976 * locales.c: fill the `text_info_data' field
11977 * culture-info-tables.h: update
11979 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
11981 * Makefile.am, monodiet.c: add monodiet, an IL code garbage
11984 2004-12-12 Ben Maurer <bmaurer@ximian.com>
11986 * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
11987 (ves_icall_ModuleBuilder_getMethodToken): Ditto
11989 2004-12-12 Martin Baulig <martin@ximian.com>
11991 * mono-debug-debugger.c (write_type): If we're an enum and the
11992 builtin types have already been initialized, call mono_class_init().
11994 2004-12-11 Martin Baulig <martin@ximian.com>
11996 * metadata.c (mono_metadata_load_generic_params): Added
11997 `MonoGenericContainer *parent_container' argument; automatically
11998 compute `container->is_method'; pass the correct owner to
12001 * reflection.c (compare_genericparam): Sort the GenericParam table
12002 according to increasing owners.
12004 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
12006 * profiler.c: allow disabling the default profiler.
12008 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
12010 * decimal.c, icall.c: allow disabling System.Decimal support.
12012 2004-12-09 Marek Safar <marek.safar@seznam.cz>
12014 * reflection.c: Add support for null attribute arguments.
12016 2004-12-09 Martin Baulig <martin@ximian.com>
12018 * metadata.h, loader.h: Use `idx' instead of `index' in parameter
12019 names to get rid of compiler warnings.
12021 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
12023 * marshal.c (mono_marshal_get_struct_to_ptr): Call
12024 mono_marshal_load_type_info (). Fixes #69625.
12025 (mono_marshal_get_ptr_to_struct): Likewise.
12027 2004-12-08 Martin Baulig <martin@ximian.com>
12029 * mono-debug.h: Bumped version number to 47.
12031 * mono-debug-debugger.c
12032 (mono_debugger_event_handler, mono_debugger_event): Take two
12033 guint64 arguments insteed of a gpointer and a guint32.
12035 2004-12-08 Martin Baulig <martin@ximian.com>
12037 * debug-mono-symfile.h
12038 (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
12039 `address' to `native_offset'.
12041 2004-12-08 Martin Baulig <martin@ximian.com>
12043 * class.c (mono_class_create_from_typespec): Only inflate if we
12044 either have `context->gclass' or `context->gmethod'.
12046 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
12048 * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
12050 * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
12052 * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
12054 * reflection.c (mono_assembly_get_object): Remove the workaround put
12055 in for the release.
12057 * appdomain.c: Use the corlib_internal field from MonoAssembly.
12059 * appdomain.c: Bump corlib version.
12061 * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
12062 be visible in other appdomains.
12064 2004-12-07 Ben Maurer <bmaurer@ximian.com>
12066 * threads.c: Interlocked inc and dec for longs were messed up,
12067 use a KISS based impl for this. Fixes 70234
12069 2004-12-07 Zoltan Varga <vargaz@freemail.hu>
12071 * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
12073 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12075 * icall.c: fix to follow policy not to allow struct
12076 arguments in icalls.
12078 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12080 * process.c: make the patch that handles spaces in file paths work
12081 on mono/windows too.
12083 2004-12-06 Martin Baulig <martin@ximian.com>
12085 * class.c (mono_class_create_generic): Call
12086 mono_class_setup_supertypes() if we're dynamic.
12087 (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
12089 2004-12-06 Zoltan Varga <vargaz@freemail.hu>
12091 * object-internals.h: Add new fields to MonoThread.
12093 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12095 * icall.c threads-types.h threads.c: Add new icalls.
12097 * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
12099 * object-internals.h (MonoReflectionAssembly): Sync object layout with
12102 * appdomain.c: Bump corlib version.
12104 * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
12105 internal assemblies. Fixes #69181.
12107 2004-12-05 Martin Baulig <martin@ximian.com>
12109 * class.c (mono_class_inflate_generic_signature): Make this a
12110 no-op if `context' is NULL or we don't have any type parameters;
12111 also copy `sentinelpos'.
12113 2004-12-04 Zoltan Varga <vargaz@freemail.hu>
12115 * image.c: Add unbox_wrapper_cache.
12117 * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
12119 * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
12120 function generator.
12122 * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
12125 * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
12127 2004-12-04 Martin Baulig <martin@ximian.com>
12129 * loader.c (mono_method_get_signature_full): New public function;
12130 like mono_method_get_signature(), but with an additional
12131 `MonoGenericContext *' argument.
12133 * class.c (mono_class_inflate_generic_signature): Formerly known
12134 as inflate_generic_signature(); make this public.
12136 2004-12-04 Martin Baulig <martin@ximian.com>
12139 (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
12140 instead of a `MonoGenericContainer *'.
12141 (mono_metadata_parse_array_full): Likewise.
12142 (mono_metadata_parse_signature_full): Likewise.
12143 (mono_metadata_parse_method_signature_full): Likewise.
12144 (mono_metadata_parse_generic_inst): Likewise.
12145 (mono_metadata_parse_generic_param): Likewise.
12146 (mono_metadata_parse_mh_full): Likewise.
12147 (mono_type_create_from_typespec_full): Likewise.
12149 2004-12-03 Martin Baulig <martin@ximian.com>
12151 * class-internals.h (MonoGenericContainer): Replaced the
12152 `MonoGenericContext * pointer with a `MonoGenericContext'
12153 structure and made it the first element.
12155 2004-12-03 Martin Baulig <martin@ximian.com>
12158 (inflate_generic_type): Set the `context->container' when creating
12159 a new MonoGenericContext.
12160 (mono_class_inflate_generic_method): Likewise.
12161 (mono_class_create_from_typespec): Just use `context->container'
12162 to get the container.
12164 * loader.c (method_from_methodspec): Set `context->parent' from
12165 `context->container' - and if that's a method container, use its
12166 parent. Also set the `context->container' when creating a new
12167 MonoGenericContext.
12168 (mono_get_method_from_token): Use just `context->container' to get
12171 * metadata.c (do_mono_metadata_parse_generic_class): Also set
12172 `gclass->context->container'.
12174 * reflection.c (do_mono_reflection_bind_generic_parameters): Set
12175 the `context->container' when creating a new MonoGenericContext.
12177 2004-12-03 Zoltan Varga <vargaz@freemail.hu>
12179 * reflection.c (compare_genericparam): Sort params with identical
12180 owner by their number. Fixes gen-111 on sparc.
12182 2004-12-02 Zoltan Varga <vargaz@freemail.hu>
12184 * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
12185 around the domain changes.
12187 * appdomain.c (mono_domain_unload): Handle the case when the thread
12188 calling Unload is itself being aborted during unloading. Fixes #70022.
12190 * appdomain.h: Add prototype for mono_install_runtime_cleanup.
12192 * marshal.c (emit_thread_interrupt_checkpoint_call): Call
12193 checkpoint_func as an icall so it gets a wrapper.
12194 (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
12195 in the cross-appdomain wrappers too.
12197 * threads.c (mono_thread_has_appdomain_ref): Make this public.
12199 * assembly.c (mono_assembly_open_from_bundle): Fix warning.
12201 * reflection.c: Fix some memory leaks.
12203 2004-12-02 Martin Baulig <martin@ximian.com>
12205 * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
12207 * metadata.c (generic_class_cache): New static hashtable.
12208 (mono_metadata_lookup_generic_class): New public method.
12210 2004-12-02 Martin Baulig <martin@ximian.com>
12212 * class.c (mono_class_create_from_typedef): Call
12213 mono_class_setup_parent() and mono_class_create_mono_type() before
12214 parsing the interfaces.
12216 2004-12-02 Martin Baulig <martin@ximian.com>
12218 * metadata.c (generic_inst_cache): New static hashtable.
12219 (mono_metadata_lookup_generic_inst): New public function.
12220 (mono_metadata_inflate_generic_inst): New public function.
12221 (mono_metadata_parse_generic_inst): New public function.
12222 (do_mono_metadata_parse_generic_class): Use the new
12223 mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
12224 since this'll also use the cache.
12226 * reflection.c (mono_reflection_bind_generic_method_parameters):
12227 Use mono_metadata_lookup_generic_inst() to use the new cache.
12229 * class.c (inflate_mono_type): Use
12230 mono_metadata_inflate_generic_inst() to inflate a generic
12231 instance; this'll also use the new cache.
12233 * loader.c (method_from_methodspec): Use
12234 mono_metadata_parse_generic_inst() and
12235 mono_metadata_inflate_generic_inst() rather than parsing it
12236 manually, so we can use the new cache.
12238 2004-12-02 Zoltan Varga <vargaz@freemail.hu>
12240 * threads.c (wait_for_tids): Do not incorrectly free threads when
12241 the wait times out.
12243 2004-12-01 Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
12245 * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
12246 iter->args based on whether parameters are passed in registers (i.e.
12247 MONO_ARCH_REGPARMS is defined)
12249 2004-12-01 Zoltan Varga <vargaz@freemail.hu>
12251 * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
12252 the exception message. Fixes #70070.
12253 (method_from_methodspec): Fix warnings.
12255 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12257 * process.c: (complete_path) return the path quoted
12259 2004-12-01 Martin Baulig <martin@ximian.com>
12261 * class-internals.h (MonoGenericInst): New structure.
12262 (MonoGenericClass): Replaced `type_argc', `type_argv' and
12263 `is_open' with `MonoGenericInst *inst'.
12264 (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
12265 `is_open' with `MonoGenericInst *inst'.
12267 2004-11-30 Martin Baulig <martin@ximian.com>
12269 Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
12271 * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
12272 to `generic_class_cache'.
12275 (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
12276 (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
12277 (mono_generic_inst_is_valuetype): Renamed to
12278 mono_generic_class_is_valuetype().
12280 * class-internals.h
12281 (MonoGenericInst): Renamed to MonoGenericClass.
12282 (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
12283 (MonoClass): Renamed `generic_inst' to `generic_class'.
12284 (MonoGenericContext): Renamed `ginst' to `gclass'.
12286 * object-internals.h
12287 (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
12289 * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
12290 mono_reflection_generic_class_initialize().
12292 * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
12293 now known as "System.Reflection.MonoGenericClass".
12294 (monogenericinst_icalls): Renamed to monogenericclass_icalls.
12296 2004-11-29 Sebastien Pouliot <sebastien@ximian.com>
12298 * class-internals.h: Added a flag field to MonoClass to cache the
12299 declarative security attributes actions associated with the class.
12300 * domain-internals.h: Added booleans to MonoJitInfo to cache the
12301 (class or method level) stack modifiers (Assert, Deny and PermitOnly)
12302 applicable to the JITted method.
12303 * reflection.c|h: Added functions to extract (as flags) which security
12304 actions are available (declaratively) for a method, class or assembly.
12305 * metadata.c|h: Added functions to search the declarative security
12306 table in the metadata.
12308 2004-11-29 Ben Maurer <bmaurer@ximian.com>
12310 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
12311 EXPORTEDTYPES are already in the class name cache, so there is no
12312 need to add extra code here to look at them. Just removes a bit of
12315 (ves_icall_System_Environment_get_TickCount): No need for #if
12316 WINDOWS. We already have the code in io-layer.
12318 2004-11-28 Martin Baulig <martin@ximian.com>
12321 (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
12324 2004-11-27 Miguel de Icaza <miguel@ximian.com>
12326 * assembly.c (do_mono_assembly_open): Instead of having a
12327 conditional WITH_BUNDLE, incorporate support for bundles here, by
12328 having a global `bundles' variable holding a pointer to the actual
12331 (mono_register_bundled_assemblies): New API call used by the
12334 See mkbundle.1 for details.
12336 2004-11-27 Martin Baulig <martin@ximian.com>
12338 * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
12339 the vtable for generic methods.
12341 2004-11-26 Martin Baulig <martin@ximian.com>
12344 (mono_metadata_generic_method_hash): New public function.
12345 (mono_metadata_generic_method_equal): Likewise.
12347 * class-internals.h
12348 (MonoGenericContainer): Added `GHashTable *method_hash'.
12350 * reflection.c (ReflectionMethodBuilder): Added
12351 `MonoGenericContainer *generic_container'.
12352 (reflection_methodbuilder_to_mono_method): Don't create a new
12353 MonoGenericContainer each time we're called.
12354 (mono_reflection_bind_generic_method_parameters): Use
12355 `container->method_hash' to cache the results so we don't create a
12356 different method if we're called several times with the same
12359 * loader.c (method_from_methodspec): Use the new
12360 `container->method_hash' here, too.
12362 2004-11-26 Martin Baulig <martin@ximian.com>
12364 * class.c (inflate_generic_signature): Correctly compute
12365 `res->has_type_parameters'.
12366 (mono_class_vtable): Use the `has_type_parameters' flag to
12367 determine whether we're a generic method.
12369 * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
12371 2004-11-25 Zoltan Varga <vargaz@freemail.hu>
12373 * object.c (mono_runtime_run_main): Fix a small memory leak.
12375 2004-11-25 Martin Baulig <martin@ximian.com>
12377 * class.c (set_generic_param_owner): Fixed the loop.
12379 2004-11-25 Martin Baulig <martin@ximian.com>
12381 * object.c (mono_class_vtable): Don't create any JIT wrappers for
12384 2004-11-24 Zoltan Varga <vargaz@freemail.hu>
12386 * reflection.c: Allow all kinds of whitespace, not just ' ' in type
12387 names. Fixes #69787.
12389 2004-11-24 Martin Baulig <martin@ximian.com>
12391 * class.c (mono_class_create_generic_2): If we don't have a
12392 `ginst->parent', inflate `gklass->parent' to get our parent.
12394 2004-11-24 Martin Baulig <martin@ximian.com>
12396 * reflection.c (compare_genericparam): Correctly sort the
12397 GenericParam table; fixes #69779.
12399 2004-11-23 Ben Maurer <bmaurer@ximian.com>
12401 * reflection.c: When writing a PE file, don't create a huge
12402 buffer in memory. Just write the arrays we have to the file.
12403 This reduces memory usage.
12405 * metadata-internals.h: MonoDynamicStream pefile is no longer used
12408 2004-11-17 Martin Baulig <martin@ximian.com>
12410 * class.c (mono_class_init): Don't setup `class->parent' for
12411 dynamic instances; moved this to mono_class_generic_2().
12412 (mono_class_create_generic): Also set `klass->inited' for dynamic
12414 (mono_class_create_generic_2): Don't do anything for dynamic
12415 generic instances. Set `klass->parent' here and also call
12416 mono_class_setup_parent() here.
12418 * reflection.c (do_mono_reflection_bind_generic_parameters): Added
12419 `MonoType *parent' argument; set `ginst->parent' before calling
12420 mono_class_create_generic_2(), so we set the correct parent.
12422 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
12424 * reflection.c: allow getting attributes from ModuleBuilder
12427 2004-11-17 Martin Baulig <martin@ximian.com>
12429 * class.c (mono_class_create_from_typedef): If a type parameter is
12430 inherited from an outer class, set its owner to that class.
12432 2004-11-17 Atsushi Enomoto <atsushi@ximian.com>
12434 * reflection.c: (mono_image_create_pefile): Don't use NULL argument
12435 for (int*) written size. This fixes bug #69592.
12437 2004-11-15 Sebastien Pouliot <sebastien@ximian.com>
12439 * icall.c: Added IsAuthenticodePresnet internal call.
12440 * image.c|h: New function that check a MonoImage for an Authenticode
12441 signature in the certificate PE data directory.
12442 * security.c|h: New internal call to ask the runtime if an
12443 Authenticode signature seems referenced in the PE header.
12445 2004-11-15 Zoltan Varga <vargaz@freemail.hu>
12447 * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
12449 * reflection.c (mono_image_create_pefile): Free the assembly streams
12450 after writing out the assembly file.
12452 * object.c (mono_runtime_run_main): Fix small memory leak.
12454 * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
12455 property access modifiers. Fixes #69389.
12457 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
12459 * domain.c, object.c, object-internals.h, domain-internals.h,
12460 object.h, marshal.c: keep dynamic code info per domain.
12462 2004-11-15 Martin Baulig <martin@ximian.com>
12464 * class.c (mono_type_get_name_recurse): Put type arguments in
12465 `[',`]' instead of in `<','>'. Thanks to Atsushi for the patch,
12468 2004-11-15 Martin Baulig <martin@ximian.com>
12470 * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
12471 (mono_class_setup_vtable): When computing `the_cname' for a
12472 generic instance, don't include the namespace since we'd otherwise
12475 2004-11-15 Martin Baulig <martin@ximian.com>
12477 * class.c (mono_class_create_generic): Changed return type to void.
12478 (mono_class_create_generic_2): New public function; setup
12479 `class->method', `class->field' and `class->interfaces' here
12480 instead of in mono_class_init().
12482 * class.h (mono_class_create_generic): Moved to class-internals.h.
12484 2004-11-14 Ben Maurer <bmaurer@ximian.com>
12486 * reflection.c (mono_image_create_pefile): take a file HANDLE.
12487 rather than writing to memory, write to this file. Right now,
12488 we are just writting into a buffer, and copying that. However
12489 we can avoid the buffer later.
12491 (mono_dynamic_stream_reset): new function
12493 * icall.c, object-internals.h: update for the above.
12495 2004-11-13 Ben Maurer <bmaurer@ximian.com>
12497 * reflection.c: Remove *_ATOMIC macros. We really shouldn't
12498 have been using gc'd memory. First it is slower, unlikely
12499 the comment in the source code said, secondly, it increases
12500 our footprint to do it in the gc.
12502 * icall.c (WriteToFile): rename of getDataChunk. Rewrite
12503 the method so that it does not have to copy to managed code.
12505 2004-11-12 Zoltan Varga <vargaz@freemail.hu>
12507 * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
12509 2004-11-12 Martin Baulig <martin@localhost>
12511 * reflection.c (mono_image_create_token): Allow generic method
12512 definitions here, since they may appear in an `.override'; see
12513 gen-98/gen-99 for an example.
12515 2004-11-11 Zoltan Varga <vargaz@freemail.hu>
12517 * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
12520 * marshal.c (mono_string_to_ansibstr): Make g_error messages more
12523 2004-11-11 Martin Baulig <martin@ximian.com>
12525 * class.c (mono_class_setup_vtable): In an explicit interface
12526 implementation, the method name now includes the arity.
12528 2004-11-10 Zoltan Varga <vargaz@freemail.hu>
12530 * object.c (mono_array_full_copy): Fix warning.
12532 2004-11-10 Lluis Sanchez Gual <lluis@novell.com>
12534 * appdomain.c: Removed look_for_method_by_name(). Use the new method
12535 mono_class_get_method_from_name() instead.
12537 * class-internals.h: Added two new types of wrappers.
12538 Added MonoRemotingTarget enum. Added new trampoline function type, which
12539 takes an additional MonoRemotingTarget value as parameter, so it is
12540 possible to request a trampoline for a specific target.
12542 * class.c: Added new mono_class_get_method_from_name() method.
12544 * class.h: In MonoRemoteClass, we can have now to vtables, one for
12545 general remoting sinks and one specific for cross domain calls.
12547 * debug-helpers.c: Added new wrapper names.
12549 * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
12552 * image.c: Porperly delete value objects form the remoting invoke hashtable.
12554 * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
12555 with several other methods (mono_marshal_get_xappdomain_dispatch,
12556 mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
12557 and others) can generate a fast remoting wrapper for cross domain calls.
12558 More information can be found in docs/remoting.
12559 Other changes: Removed mono_find_method_by_name, and used
12560 mono_class_get_method_from_name instead.
12561 Remoting wrappers are now stored in a MonoRemotingMethods struct, which
12562 is stored in the remoting invoke hashtable.
12564 * marshal.h: published the new method for getting the xdomain wrapper,
12565 and also added a method for getting the adequate wrapper for a given
12568 * object-internals.h, object.c: Added a couple of methods for capying and
12570 Modified mono_install_remoting_trampoline, which takes the new remoting
12571 trampoline that has a remoting target as parameter.
12572 mono_class_proxy_vtable now also takes a remoting target as parameter, and
12573 will return the most suitable vtable for the target.
12574 Added mono_remote_class_vtable, which returns the vtable of a remote class
12575 (which can be the normal remoting vtable or the xdomain vtable).
12577 * threads.c: the xdomain invoke and dispatch wrappers must also be
12578 protected against interruptions.
12580 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12582 * icall.c: use memmove in BlockCopyInternal when the source and
12583 destination arrays are the same.
12585 2004-11-09 Martin Baulig <martin@ximian.com>
12587 * class-internals.h (MonoGenericContainer): Removed `method' and
12588 `signature', replaced them with `is_method' and `is_signature'
12589 flags. Added `context'.
12591 * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
12592 instead of a `MonoGenericContainer *'.
12594 * metadata.c (mono_metadata_generic_param_equal): Removed the hack
12595 for dynamic type parameters.
12596 (mono_metadata_load_generic_params): Setup `container->context'.
12598 * reflection.c (mono_reflection_setup_generic_class): Setup
12599 `tb->generic_container->context'.
12600 (do_mono_reflection_bind_generic_parameters): Use
12601 mono_class_inflate_generic_type() to correctly inflate types,
12602 rather than using our own hack just for MONO_TYPE_VAR.
12604 2004-11-09 Martin Baulig <martin@ximian.com>
12606 * class.c (mono_class_inflate_generic_method): Small fix; don't
12610 (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
12611 (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
12612 (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
12613 (ves_icall_Type_BindGenericParameters): Likewise.
12614 (ves_icall_Type_get_IsGenericInstance): Likewise.
12615 (ves_icall_Type_GetGenericParameterPosition): Likewise.
12616 (ves_icall_MonoType_get_HasGenericArguments): Likewise.
12617 (ves_icall_MonoType_get_IsGenericParameter): Likewise.
12618 (ves_icall_MonoType_get_DeclaringMethod): Likewise.
12620 2004-11-09 Zoltan Varga <vargaz@freemail.hu>
12622 * assembly.c (mono_assembly_names_equal): Reenable the comparison of
12623 assembly versions and public key tokens. Fixes #69113.
12625 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
12627 * metadata.c: fix bug introduced with the type cache changes
12630 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
12632 * metadata.h, metadata.c, domain-internals.h, marshal.c: include
12633 the MonoClass pointer instead of the token in exception clauses.
12634 * reflection.c: updates for the above and make the code not depend
12635 on the structure of MonoExceptionClause.
12637 2004-11-08 Zoltan Varga <vargaz@freemail.hu>
12639 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
12640 Add support for dynamic assemblies. Fixes #69114.
12642 * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
12644 2004-11-07 Ben Maurer <bmaurer@ximian.com>
12646 * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
12647 since most only those methods use it. the code member of
12648 MonoMethodPInvoke was dead, so that can be removed too. Also,
12649 remove inline_count (again, not used), and move slot so that it
12650 can share bits with some other flags. This saves 8 bytes in the
12651 structure and gives us about 50 kb back for mcs helloworld.cs
12653 * *.[ch]: Do naming changes for the above.
12655 * loader.c (mono_method_get_header): Lazily init the header
12657 (mono_get_method_from_token): don't init the header here
12658 (mono_free_method): the header may never be allocated
12660 Overall, this saves 150 kb of unmanaged allocations
12661 for mcs helloworld.cs. That accounts for 10% of the unmanaged
12664 * loader.c, loader.h (mono_method_get_header): new accessor.
12666 * *.[ch]: use the above method. Prepares us to lazily load
12669 * *.[ch]: Clean up all the pesky warnings. gcc now only gives
12670 three warnings, which are actual bugs (see 69206).
12672 * class-internals.h (MonoMethod): Remove remoting_tramp. It is
12673 unused. Saves a cool 4 bytes / method.
12675 2004-11-06 Ben Maurer <bmaurer@ximian.com>
12677 * metadata.c (builtin_types): Add types for System.Object here.
12678 (mono_metadata_parse_type_full): Cache MonoType*'s that are
12679 for a class or valuetype from klass->this_arg or klass->byval_arg.
12681 On mcs for a hello world, this gets us down from 21836 MonoType's
12684 (mono_metadata_free_type): Account for the above change.
12686 2004-11-06 Zoltan Varga <vargaz@freemail.hu>
12688 * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an
12689 exception instead of asserting if name is null.
12690 (ves_icall_System_AppDomain_GetData): Ditto.
12692 2004-11-05 Zoltan Varga <vargaz@freemail.hu>
12694 (ves_icall_get_enum_info): Avoid crash when called on a non-finished
12697 * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly):
12698 Return NULL when the domain does not have entry_assembly set.
12700 * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal):
12701 Add a 'resource_modules' argument.
12702 (ves_icall_type_GetTypeCode): Fix typecode of byref types.
12704 * reflection.c (mono_reflection_create_runtime_class): Move setting
12705 of wastypebuilder here, so mono_get_type_object () returns a MonoType
12708 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
12709 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
12710 Throw an ArgumentNullException if 'ptr' is null.
12712 * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
12713 assemblies here. Fixes #69020.
12715 2004-11-05 Geoff Norton <gnorton@customerdna.com>
12717 * reflection.c (build_compressed_metadata): Fix the previous patch for
12718 big endian systems. GUINT32_FROM_LE isn't needed on strlen and was overwriting
12721 2004-11-04 Zoltan Varga <vargaz@freemail.hu>
12723 * assembly.c (mono_assembly_names_equal): Allow a match if one of
12724 the cultures is false. Fixes #69090.
12726 * reflection.c (build_compressed_metadata): Fix invalid memory read
12727 detected by valgrind.
12729 * reflection.c (mono_reflection_get_type): Avoid triggering a
12730 TypeResolve multiple times for the same type. Fixes #65577.
12732 2004-11-04 Ben Maurer <bmaurer@ximian.com>
12734 * marshal.c: Avoid using ldftn to call managed functions. It is
12735 much slower than just a call.
12737 * reflection.c (mono_module_get_object): free the basename we
12738 allocate here from glib.
12740 * reflection.c (ensure_runtime_vtable): make sure to free
12741 overrides. Also, we were allocating an array of MonoMethod not an
12742 array of MonoMethod*.
12744 * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
12746 * image.c (mono_image_close): free image->guid here.
12748 2004-11-02 Zoltan Varga <vargaz@freemail.hu>
12750 * reflection.c: Fix some spec conformance issues with the PE file
12751 structures so mcs compiled apps run on the Net 2.0 beta.
12753 2004-11-01 Zoltan Varga <vargaz@freemail.hu>
12755 * string-icalls.c (ves_icall_System_String_ctor_encoding):
12756 Implement this. Fixes #67264.
12758 * debug-helpers.h debug-helpers.c marshal.c: Move
12759 mono_find_method_by_name to debug-helpers.c.
12761 2004-10-31 Zoltan Varga <vargaz@freemail.hu>
12763 * object.c (mono_release_type_locks): type_initialization_hash is
12766 * reflection.c object.c object-internals.h: Fix warnings.
12768 * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
12769 without accessors. Fixes #61561.
12771 * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
12772 application base from the root domain if not set. Fixes #65641.
12773 (mono_runtime_init): Fix warning.
12775 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12777 * appdomain.c: call mono_thread_pool_init.
12778 * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
12779 of worker threads based on the number of CPUs and the environment
12780 variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
12781 for non-windows (windows) systems.
12783 2004-10-27 Chris Toshok <toshok@ximian.com>
12785 * mono-debug-debugger.c (write_class): don't call mono_class_init
12786 here, as even with the check for (!klass->init_pending), we get
12787 into a situation where we're hitting cycles in class
12788 initialization. Fixes #68816.
12790 2004-10-25 Zoltan Varga <vargaz@freemail.hu>
12792 * image.c: Avoid overwriting values in the loaded_images_hash when an
12793 assembly is loaded multiple times. Fixes #61152.
12795 * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
12796 so multiple satellite assemblies for the same name can be loaded.
12799 * mono_domain_assembly_preload: Actually return the loaded assembly,
12802 * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
12803 (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
12805 * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
12806 pending finalizers are not invoked after the appdomain has been
12807 unloaded. Fixes #67862.
12809 2004-10-22 Martin Baulig <martin@ximian.com>
12811 * mono-debug-debugger.c
12812 (mono_debugger_runtime_invoke): Don't box valuetypes.
12814 2004-10-22 Chris Toshok <toshok@ximian.com>
12816 * mono-debug-debugger.c (do_write_class): handle .cctors too, and
12817 don't hide private methods.
12819 2004-10-22 Sebastien Pouliot <sebastien@ximian.com>
12821 * icall.c: Allows the runtime to "share" (when known) the public key
12822 token of an assembly. This avoid the need to recalculate the token
12823 (from the public key) in managed code.
12825 2004-10-21 Chris Toshok <toshok@ximian.com>
12827 * debug-helpers.c (append_class_name): argh, revert last patch.
12829 2004-10-21 Chris Toshok <toshok@ximian.com>
12831 * debug-helpers.c (append_class_name): use '+' as the delimiter,
12832 not '/', so that it matches what the debugger uses to look up
12835 2004-10-21 Martin Baulig <martin@ximian.com>
12837 * mono-debug-debugger.c (mono_debugger_throw_exception): New
12838 public method; this is called each time an exception is thrown and
12839 allows the debugger to use exception catch points.
12841 2004-10-21 Martin Baulig <martin@ximian.com>
12843 * mono-debug-debugger.c (mono_debugger_handle_exception): Write
12844 the stack pointer and the exception object in some struct and pass
12845 that to the debugger.
12847 2004-10-21 Chris Toshok <toshok@ximian.com>
12849 * mono-debug-debugger.c (do_write_class): add instance/static
12850 event support. We don't expose "raise" or "other" yet.
12851 (event_is_static): new method.
12853 2004-10-20 Bernie Solomon <bernard@ugsolutions.com>
12855 * mono-debug-debugger.c
12856 (mono_debugger_handle_exception): Remove
12857 bogus return value for fussy compilers.
12859 2004-10-20 Martin Baulig <martin@ximian.com>
12861 * mono-debug-debugger.c
12862 (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
12863 (mono_debugger_handled_exception): Likewise.
12865 2004-10-20 Martin Baulig <martin@ximian.com>
12867 * mono-debug-debugger.h (MonoDebuggerEvent): Added
12868 MONO_DEBUGGER_EVENT_EXCEPTION.
12870 * mono-debug-debugger.c (mono_debugger_handle_exception): New
12871 public function to send the debugger a notification for an
12872 exception and inform it about a catch/finally clause.
12874 2004-10-19 Zoltan Varga <vargaz@freemail.hu>
12876 * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
12877 Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
12880 * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
12882 2004-10-18 Zoltan Varga <vargaz@freemail.hu>
12884 * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
12885 marshalled as [In,Out]. Fixes #58325.
12887 2004-10-14 Zoltan Varga <vargaz@freemail.hu>
12889 * reflection.c (mono_method_body_get_object): Implement some fields.
12891 2004-10-12 Martin Baulig <martin@ximian.com>
12893 * reflection.c (mono_reflection_bind_generic_parameters): Small
12894 fix, correctly retrieve our parent from a generic instance.
12896 2004-10-12 Martin Baulig <martin@ximian.com>
12898 * metadata.c (mono_metadata_generic_param_equal): We always have
12902 (mono_class_from_generic_parameter): We need to have an owner.
12903 (my_mono_class_from_generic_parameter): Likewise.
12905 * reflection.c (mono_reflection_setup_generic_class): Renamed to
12906 mono_reflection_create_generic_class() and added a new
12907 mono_reflection_setup_generic_class().
12908 (mono_reflection_initialize_generic_param): If we're a nested
12909 generic type and inherited from the containing class, set our
12910 owner to the outer class.
12912 2004-10-11 Zoltan Varga <vargaz@freemail.hu>
12914 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
12916 * reflection.c (mono_method_body_get_object): New function to create
12917 a MethodBody object.
12919 * object-internals.h object.h: Add MonoReflectionMethodBody structure.
12921 2004-10-11 Martin Baulig <martin@ximian.com>
12923 * metadata.c (_mono_metadata_type_equal): Renamed to
12924 do_mono_metadata_type_equal() and made static.
12926 2004-10-11 Martin Baulig <martin@ximian.com>
12928 * appdomain.c: Bump corlib version number to 28.
12930 2004-10-10 Martin Baulig <martin@ximian.com>
12932 * class-internals.h
12933 (MonoGenericInst): Added `MonoGenericContainer *container'.
12934 (MonoGenericMethod): Likewise.
12935 (MonoGenericContext): Likewise.
12936 (MonoGenericParam): Added `MonoGenericContainer *owner'.
12939 (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
12940 (do_mono_metadata_parse_generic_inst): Likewise.
12941 (mono_metadata_parse_type_full): New public method. This is the actual
12942 mono_metadata_parse_type() implementation - with an additional
12943 `MonoGenericContainer *' argument.
12944 (mono_metadata_parse_array_full): Likewise.
12945 (mono_metadata_parse_signature_full): Likewise.
12946 (mono_metadata_parse_method_signature_full): Likewise.
12947 (mono_metadata_parse_mh_full): Likewise.
12948 (mono_type_create_from_typespec): Likewise.
12949 (mono_metadata_interfaces_from_typedef_full): New public method;
12950 this is similar to the other _full() methods, but we take a
12951 `MonoGenericContext *' since we have to pass it to mono_class_get_full().
12952 (mono_metadata_parse_generic_param): Take an additional
12953 `MonoGenericContainer *' argument and lookup the MonoGenericParam
12954 from that container.
12955 (mono_metadata_generic_param_equal): New static method to compare
12956 two type parameters.
12957 (_mono_metadata_type_equal): New static method; takes an
12958 additional `gboolean signature_only' argument - if true, we don't
12959 compare the owners of generic parameters.
12960 (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
12961 with a TRUE argument - do a signature-only comparision.
12963 * loader.c: Use the new _full() methods and pass the
12964 MonoGenericContainer to them.
12966 * object-internals.h (MonoReflectionTypeBuilder): Added
12967 `MonoGenericContainer *generic_container' field.
12968 (MonoReflectionMethodBuilder): Likewise.
12970 2004-10-08 Zoltan Varga <vargaz@freemail.hu>
12972 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
12973 case initial images of dynamic assemblies.
12975 * reflection.c (mono_image_basic_init): Set 'initial_image' field.
12977 * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
12979 * reflection.c (mono_reflection_event_builder_get_event_info): Fix
12980 length of event->other array.
12981 (typebuilder_setup_events): Ditto.
12983 * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
12984 'assembly_by_name' and add an 'assemblies' list.
12986 * assembly.h assembly.c: Add a new search hook for determining whenever
12987 an assembly is already loaded. Use this instead of searching in the
12988 loaded_assemblies list.
12990 * domain.c appdomain.c: Implement the new search hook so loaded
12991 assemblies are now scoped by appdomain. Fixes #67727.
12993 2004-10-07 Zoltan Varga <vargaz@freemail.hu>
12995 * threads.c (mono_thread_attach): Initialize synch_lock field so
12996 mono_thread_detach works again.
12998 * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
12999 'lib' too. Fixes #63130.
13001 2004-10-06 Jackson Harper <jackson@ximian.com>
13003 * culture-info-tables.h: regenerated.
13005 2004-10-06 Zoltan Varga <vargaz@freemail.hu>
13007 * icall.c (ves_icall_Type_GetInterfaces): Include interfaces
13008 implemented by other interfaces in the result. Fixes #65764.
13010 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13011 Handle unloadable modules without crashing.
13013 * image.c (load_modules): Revert the previous patch since modules must
13014 have a fixed index inside the array.
13016 * image.c (load_modules): Don't include native modules in the modules
13019 2004-10-05 Zoltan Varga <vargaz@freemail.hu>
13021 * reflection.h: Add param_defaults field.
13023 * reflection.c: Add support for parameter defaults in dynamic methods.
13026 * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
13027 an empty string when a type has no namespace. Fixes #64230.
13029 2004-10-04 Sebastien Pouliot <sebastien@ximian.com>
13031 * tabledefs.h: Added "internal" security actions to support non-CAS
13032 permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance.
13033 Note: they do not seems to be used anymore in 2.0 (new metadata format)
13035 2004-10-04 Zoltan Varga <vargaz@freemail.hu>
13037 * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
13038 constructor of abstract class. Fixes #61689.
13040 2004-10-04 Martin Baulig <martin@ximian.com>
13042 * class-internals.h (MonoGenericContainer): New type.
13043 (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
13044 `MonoGenericContainer *generic_container'.
13045 (MonoClass): Replaced `gen_params' and `num_gen_params' with
13046 `MonoGenericContainer *generic_container'.
13048 * metadata.c (mono_metadata_load_generic_params): Return a
13049 `MonoGenericContainer *' instead of a `MonoGenericParam *';
13050 removed the `num' argument.
13052 2004-10-03 Zoltan Varga <vargaz@freemail.hu>
13054 * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
13055 for dynamic images.
13057 * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
13060 * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
13062 * reflection.c: Save pe_kind and machine values into the generated
13065 * appdomain.c: Bump corlib version number.
13067 * object-internals.h: Reorganize layout of LocalBuilder.
13069 * class-internals.h class.c (mono_class_get_implemented_interfaces):
13070 New helper function.
13072 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
13073 created MonoType for dynamic types. Fixes #66180.
13075 2004-10-02 Ben Maurer <bmaurer@ximian.com>
13077 * threadpool.c: the ares hashtable needs a critical section around it.
13078 this prevents some nasty segfaults
13080 2004-10-02 Massimiliano Mantione <massi@ximian.com>
13082 * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
13083 on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
13086 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
13088 * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
13090 2004-09-30 Lluis Sanchez Gual <lluis@novell.com>
13092 * image.c: Always canonicalize image file names, to avoid loading
13093 the same assembly twice when referenced using a relative path.
13095 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
13097 * marshal.h marshal.c icall.c: Fix bugs in previous patch.
13099 * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
13101 * marshal.c: Fix warnings.
13103 2004-09-29 Geoff Norton <gnorton@customerdna.com>
13105 * marshal.c (mono_ftnptr_to_delegate): This method was improperly
13106 attempting to marshal the delegate_trampoline as the method_addr.
13107 This patch has a static hashtable of marshalled delegates so that
13108 we can map delegate_trampoline addresses back to delegates. This
13109 allows a delegate passed to managed code to be passed back into native
13112 2004-09-28 Zoltan Varga <vargaz@freemail.hu>
13114 * icall.c: Add GetFunctionPointerForDelegateInternal icall.
13116 * reflection.c (method_encode_code): Align method headers properly.
13119 2004-09-28 Lluis Sanchez Gual <lluis@novell.com>
13121 * marshal.c: In the runtime invoke wrapper, reset the abort
13122 exception if it is cached. This avoids the automatic rethrowal of
13123 the exception after the catch of the wrapper. Also check for pending
13124 interruptions before calling the managed method. This is done using
13125 the new method emit_thread_force_interrupt_checkpoint, since the
13126 normal checkpoint method is ignored when running the invoke wrapper.
13127 * object.c: If the abort exception is rethrown, set the abort_exc
13128 field of the thread, so it will be rethrown aftere every catch.
13129 * threadpool.c: Only run an interruption checkpoint if what has been
13130 requested is a stop of the thread (aborts will be ignored).
13131 * threads.c: By default, a thread will now never be interrumped while
13132 running the runtime invoke wrapper (this ensures that runtime_invoke
13133 will always return to the caller if an exception pointer is provided).
13134 There is a new special method mono_thread_force_interruption_checkpoint()
13135 to force an interruption checkpoint even if running a protected
13136 wrapper, which is used by the same runtime invoke wrapper to do a check
13139 2004-09-28 Lluis Sanchez Gual <lluis@novell.com>
13141 * object.c, object-internals.h: Implemented mono_release_type_locks,
13142 which releases the cctor locks held by a thread.
13143 * threads.c, threads.h: In thread_cleanup, release cctor locks held
13144 by a thread. Added mono_thread_exit() method to be used to safely stop
13147 2004-09-28 Raja R Harinath <rharinath@novell.com>
13149 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13150 Move null check before dereference. Avoid indexing beyond the end
13151 of the 'modules' array.
13153 2004-09-28 Raja R Harinath <rharinath@novell.com>
13155 * metadata-internals.h (MonoImage): Add module_count field.
13156 * image.c (load_modules): Set image->module_count.
13157 (mono_image_load_file_for_image): Use image->module_count.
13158 * reflection.c (mono_image_load_module): Append to image->modules array
13159 of dynamic assembly.
13160 (mono_module_get_object): Fix loop to actually increment index.
13161 Use image->module_count.
13162 * assembly.c (mono_assembly_load_references): Use image->module_count.
13163 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13166 2004-09-28 Zoltan Varga <vargaz@freemail.hu>
13168 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
13169 Avoid assert on generic types.
13171 2004-09-26 Zoltan Varga <vargaz@freemail.hu>
13173 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
13175 * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
13177 * reflection.c (mono_reflection_marshal_from_marshal_spec): New
13178 function to convert a MarshalSpec structure to its managed counterpart.
13180 * reflection.c: Fix warnings.
13182 * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
13185 * icall.c (mono_create_icall_signature): Fix build.
13187 2004-09-25 Zoltan Varga <vargaz@freemail.hu>
13189 * icall.c: Add MakePointType icall.
13191 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
13194 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13196 * threadpool.c: reuse allocated slots in the queue.
13198 2004-09-24 Zoltan Varga <vargaz@freemail.hu>
13200 * object-internals.h (MonoReflectionDllImportAttribute): New structure.
13202 * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
13204 * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
13207 * tabledefs.h: Add constants for pinvoke attributes BestFit and
13208 ThrowOnUnmappableChar.
13210 * icall.c (ves_icall_Type_GetPacking): New icall.
13212 2004-09-24 Martin Baulig <martin@ximian.com>
13214 * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
13216 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13219 (mono_domain_set): allow setting a domain that is being unloaded.
13220 (mono_domain_unload): invoke the DomainUnload callbacks in the domain
13223 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
13225 * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
13226 the GetCustomAttributes icall.
13228 2004-09-23 Martin Baulig <martin@ximian.com>
13230 * object-internals.h (MonoReflectionGenericParam): Replaced
13231 'has_ctor_constraint', `has_reference_type' and `has_value_type'
13232 with `guint32 attrs'.
13234 2004-09-23 Martin Baulig <martin@ximian.com>
13236 * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
13238 2004-09-23 Martin Baulig <martin@ximian.com>
13240 * object-internals.h (GenericParameterAttributes): New enum.
13242 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
13244 * object-internals.h (MonoEventInfo): Add 'other_methods' field.
13246 * class.c (init_events): Fill out event->other field.
13248 * class.c: Fix warnings.
13250 * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
13252 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
13254 * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
13255 walk which doesn't supply the IL offset.
13257 2004-09-22 Martin Baulig <martin@ximian.com>
13259 * reflection.c (mono_reflection_setup_internal_class): If we're
13260 System.ValueType, System.Object or System.Enum, set
13261 `klass->instance_size' and create the vtable.
13262 (mono_reflection_create_internal_class): If we're an enum type,
13263 get the base class from our current corlib.
13265 2004-09-22 Zoltan Varga <vargaz@freemail.hu>
13267 * reflection.h (MonoResolveTokenError): New type.
13269 * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
13272 * icall.c: Add an 'error' argument to the ResolveToken icalls.
13274 2004-09-22 Lluis Sanchez Gual <lluis@novell.com>
13276 * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
13277 Support also calling constructors, but only for already allocated objects.
13279 2004-09-17 Geoff Norton <gnorton@customerdna.com>
13281 * reflection.c (type_get_qualified_name): If the klass is null
13282 return the typename to avoid a NullRefEx.
13283 (encode_cattr_value): Get the qualified name of the boxed type,
13284 not the underlying enumtype. Fixes #62984.
13286 2004-09-21 Zoltan Varga <vargaz@freemail.hu>
13288 * marshal.c: Fix problems with previous checkin.
13290 2004-09-21 <vargaz@freemail.hu>
13292 * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
13293 existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
13295 * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
13297 2004-09-21 Geoff Norton <gnorton@customerdna.com>
13299 * icall.c (ves_icall_MonoType_GetElementType): GetElementType
13300 should only return a type for pointers, arrays, and passbyref types.
13303 2004-09-21 Martin Baulig <martin@ximian.com>
13305 * domain.c (mono_debugger_check_runtime_version): New public
13308 * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.
13310 2004-09-20 Sebastien Pouliot <sebastien@ximian.com>
13312 * reflection.c: Added missing sort to the declarative security
13313 attributes table. MS implementation stops seeing the attributes if the
13314 token number regress in the table (as shown by ildasm and permview).
13316 2004-09-20 Zoltan Varga <vargaz@freemail.hu>
13318 * object-internals.h (MonoReflectionModule): Add 'token' field.
13320 * reflection.c (mono_reflection_get_token): Add support for Module
13322 (mono_module_get_object): Set 'token' field.
13323 (mono_module_file_get_object): Set 'token' field.
13325 * icall.c: Add new Assembly and Module icalls.
13327 * appdomain.c: Bump corlib version.
13329 2004-09-19 Zoltan Varga <vargaz@freemail.hu>
13331 * loader.h loader.c class.h class.c: Add helper functions for obtaining
13332 tokens of metadata objects.
13334 * reflection.h reflection.c (mono_reflection_get_token): New function
13335 to obtain the token of a metadata object.
13337 * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
13339 2004-09-17 Zoltan Varga <vargaz@freemail.hu>
13341 * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
13343 * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
13345 2004-09-16 Sebastien Pouliot <sebastien@ximian.com>
13347 * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
13348 * object-internals.h: Added 3 MonoArray* members to MonoReflection
13349 AssemblyBuilder to access the permissions set in the class lib.
13350 * reflection.c: Added security attributes encoding step in
13351 mono_image_build_metadata.
13352 * tabledefs.h: Added new security actions defined in 2.0:
13353 LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
13355 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
13357 * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
13360 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
13362 * locales.c: nullify the ICU_collator member of CompareInfo when it is
13363 finalized. There where random SIGSEVs at program termination, when
13364 an object being finalized was trying to do a string comparison and
13365 the current culture was already finalized.
13367 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13369 * threads.c: call thread_cleanup before finishing the thread if we get
13372 2004-09-16 Zoltan Varga <vargaz@freemail.hu>
13374 * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
13375 assemblies from the parent. Fixes #65665.
13377 2004-09-15 Zoltan Varga <vargaz@freemail.hu>
13379 * metadata.c (mono_metadata_parse_type): Fix parsing of custom
13382 2004-09-14 Bernie Solomon <bernard@ugsolutions.com>
13384 * reflection.h: add prototype for mono_get_dbnull_object
13385 * reflection.c: add prototypes for get_default_param_value_blobs
13386 and mono_get_object_from_blob for fussier compilers
13388 2004-09-14 Lluis Sanchez Gual <lluis@novell.com>
13390 * object.c: Added a "done" flag to TypeInitializationLock. This avoids
13391 false deadlock checks in class initialization.
13393 2004-09-13 Zoltan Varga <vargaz@freemail.hu>
13395 * image.c (mono_image_addref): Fix comment.
13397 * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
13400 2004-09-12 Jambunathan K <kjambunathan@novell.com>
13402 * reflection.c (mono_param_get_objects): Modified to return
13403 ParameterInfo.DefaultValue object.
13405 (get_default_param_value_blobs):
13406 (mono_get_object_from_blob):
13407 (mono_get_dbnull_object): New helper routines.
13409 * object.c (mono_get_constant_value_from_blob): New helper routine
13410 carved out from get_default_field_value ()
13412 * object-internals.h (mono_get_constant_value_from_blob): Added
13413 function declaration.
13415 2004-09-11 Zoltan Varga <vargaz@freemail.hu>
13417 * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load
13418 referenced assemblies. Fixes #62135.
13420 * exception.h exception.c (mono_get_exception_file_not_found2): New
13423 2004-09-10 Zoltan Varga <vargaz@freemail.hu>
13425 * class.h class.c: Add mono_type_get_underlying_type ().
13427 2004-09-09 Geoff Norton <gnorton@customerndna.com>
13429 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
13430 Fix GetTypes() to support dynamically created assemblies.
13432 2004-09-09 Zoltan Varga <vargaz@freemail.hu>
13434 * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
13436 * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
13439 * reflection.h reflection.c loader.c: Allow dynamic construction of
13440 pinvoke methods. Fixes #65571.
13442 * reflection.c (mono_reflection_get_type): Revert previous change since
13443 it causes regressions.
13445 2004-09-08 Martin Baulig <martin@ximian.com>
13447 * class.c (class_compute_field_layout): Don't call
13448 mono_class_layout_fields() for open generic instances.
13450 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
13451 * threads.c appdomain.c: fix typo in GC macro
13453 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13455 * threads.c: don't call mono_thread_detach() in start_wrapper(),
13456 avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
13458 2004-09-08 Zoltan Varga <vargaz@freemail.hu>
13460 * image.c (mono_image_close): Applied patch from
13461 vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
13462 assembly is loaded multiple times from data.
13464 * image.c (mono_image_open): Fix warning.
13466 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
13468 * reflection.h reflection.c icall.c: Only call TypeResolve handlers
13469 once. Fixes #58334.
13471 * reflection.c (mono_reflection_create_runtime_class): Initialize
13472 klass->nested_classes. Fixes #61224.
13474 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
13476 * threads.c: sched_yield() on exit, to allow threads to quit.
13478 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
13480 * object.c (mono_unhandled_exception): Remove leftover debug code.
13482 2004-09-07 Atsushi Enomoto <atsushi@ximian.com>
13484 * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
13486 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
13488 * marshal.c (emit_marshal_array): Really null terminate string arrays.
13490 * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
13492 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
13494 * marshal.c (emit_marshal_array): Null terminate string arrays.
13496 * marshal.c (raise_auto_layout_exception): Fix warning.
13498 * reflection.c (mono_param_get_objects): Initialize the default value
13499 with DBNull.Value, not null. Fixes #62123.
13501 2004-09-01 Miguel de Icaza <miguel@ximian.com>
13503 * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
13504 throw an exception with a cute explanation.
13506 2004-09-06 Dick Porter <dick@ximian.com>
13508 * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
13509 Close the new process's thread handle, as we don't use it. The
13510 handle stays around forever otherwise.
13512 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
13514 * object.c (arith_overflow): Fix warning.
13516 * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
13517 calling conventions in method refs. Fixes #65352.
13519 * reflection.c: Fix warnings.
13521 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
13523 * icall.c: Add a new icall for Array.Clear
13525 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
13527 * object.c: When allocating an array, we have to throw
13528 an overflow exception if any of the lengths are < 0.
13530 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
13532 * marshal.h marshal.c: Free unmanaged memory allocated by managed code
13533 properly. Also move implementation of string array marshalling to
13534 managed code. Fixes #42316.
13536 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13538 * assembly.c: provide more information when loading an assembly fails.
13540 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13542 * filewatcher.c: don't expect the development fam package to be
13545 2004-09-03 Zoltan Varga <vargaz@freemail.hu>
13547 * marshal.c: Make a copy of the signature cookie since it will be
13548 freed by the caller.
13550 * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
13552 * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
13554 * metadata.c (mono_metadata_free_marshal_spec): New function to free
13557 * marshal.c: More refactoring.
13559 * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
13562 2004-09-03 Lluis Sanchez Gual <lluis@novell.com>
13564 * object.c: In mono_message_invoke, fill the output parameter array after
13565 calling the managed method (it was done before the call). This fixes
13568 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
13570 * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
13573 2004-09-02 Martin Baulig <martin@ximian.com>
13575 * class.c (mono_class_instance_size): Don't allow generic type
13576 definitions or open generic instances.
13577 (mono_class_array_element_size): If we're a value type, call
13578 mono_class_instance_size() on the original class.
13580 * metadata.c (mono_type_size, mono_type_stack_size): Correctly
13581 handle generic instances.
13583 * mono-debug-debugger.c (write_type): Handle generic instances
13586 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
13588 * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
13589 the allocation request fails. Fixes #65089.
13591 * object.c (mono_runtime_free_method): Do not call mono_free_method.
13593 * object.c (mono_runtime_free_method): New function to free a dynamic
13596 * marshal.c (mono_delegate_free_ftnptr): New function to free the
13597 delegate trampoline.
13599 * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
13600 with hasthis as dynamic,
13602 * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
13604 * domain.c (mono_jit_info_table_remove): New function to remove an
13605 entry from the jit info table.
13607 * class-internals.h (MonoMethod): Add 'dynamic' field.
13609 * loader.c: Fix warnings.
13611 2004-09-01 Martin Baulig <martin@ximian.com>
13613 * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
13614 instead of mono_debugger_lock() because the latter one is a no-op
13615 unless running in the debugger.
13617 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
13619 * class.c (class_compute_field_layout): Classes with auto-layout or
13620 reference fields are not blittable.
13622 2004-09-01 Dick Porter <dick@ximian.com>
13624 * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
13625 mono_image_get_filename() to get the assembly location.
13628 * metadata.h: Fix compile warnings
13630 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
13632 * class.c (class_compute_field_layout): System.Object is blittable.
13634 * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
13635 as in/out. Fixes #59909.
13637 2004-09-01 Martin Baulig <martin@ximian.com>
13639 * metadata.h (MONO_TYPE_ISREFERENCE): Call
13640 mono_metadata_generic_inst_is_valuetype() if we're a generic
13641 instance to check whether our underlying type is a reference type.
13643 2004-09-01 Martin Baulig <martin@ximian.com>
13645 * metadata.c (mono_type_size): If we're a generic instance, call
13646 mono_class_value_size() for value types.
13648 2004-08-31 Zoltan Varga <vargaz@freemail.hu>
13650 * marshal.c: Implement more custom marshalling functionality. Fixes
13653 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
13655 * mono-debug.c, debug-mono-symfile.c: add some locking love.
13657 2004-08-30 Zoltan Varga <vargaz@freemail.hu>
13659 * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
13661 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
13663 * icall.c: Fix some warnings.
13665 * threads.c (abort_appdomain_thread): Fix unref errors.
13666 (mono_thread_current): Fix THREAD_DEBUG define.
13668 2004-08-29 Zoltan Varga <vargaz@freemail.hu>
13670 * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
13672 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
13674 2004-08-28 Zoltan Varga <vargaz@freemail.hu>
13676 * marshal.c (mono_marshal_get_native_wrapper): Add support for byref
13679 2004-08-28 Martin Baulig <martin@ximian.com>
13682 (mono_metadata_generic_inst_is_valuetype): New public function.
13684 * metadata.h (MONO_TYPE_ISSTRUCT): Call
13685 mono_metadata_generic_inst_is_valuetype() if we're a generic
13686 instance to check whether our underlying type is a valuetype.
13688 2004-08-26 Zoltan Varga <vargaz@freemail.hu>
13690 * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
13693 2004-08-25 Martin Baulig <martin@ximian.com>
13695 * loader.c (mono_get_method_from_token): Abstract methods can also
13696 be generic and thus have type parameters.
13698 * metadata-internals.h
13699 (MonoDynamicImage): Added `GPtrArray *gen_params'.
13701 * reflection.c (mono_image_get_generic_param_info): Don't create a
13702 metadata row, just add an entry to the `gen_params' array.
13703 (build_compressed_metadata): Sort the `gen_params' array and then
13704 actually create the metadata.
13706 2004-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13708 * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
13710 2004-08-25 Zoltan Varga <vargaz@freemail.hu>
13712 * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
13714 2004-08-24 Martin Baulig <martin@ximian.com>
13716 * class.cs (mono_class_is_subclass_of): Like an interface, a
13717 generic instance also derives from System.Object.
13719 2004-08-23 Zoltan Varga <vargaz@freemail.hu>
13721 * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
13722 custom modifiers to be in any order. Fixes #61990.
13724 2004-08-20 Zoltan Varga <vargaz@freemail.hu>
13726 * object.c: Register mono_object_new_fast icall.
13728 * object.c (mono_class_get_allocation_ftn): Return to calling
13729 mono_object_new_fast, since it seems faster to compute the object
13730 size in unmanaged code than passing it as a parameter.
13732 * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
13734 * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
13735 this function with Boehm as the oom handler, so we don't have to check
13736 the result of GC_malloc.
13738 * object.c: Remove checks for oom.
13740 * object.h object.c (mono_class_get_allocation_ftn): New function to
13741 return the icall which can be used to allocate an instance of a given
13744 * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
13746 * class-internals.h: Add 'enabled' field.
13748 2004-08-19 Zoltan Varga <vargaz@freemail.hu>
13750 * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
13752 2004-08-18 Jambunathan K <kjambunathan@novell.com>
13753 * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
13756 2004-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
13758 * appdomain.c: use the Tls function for appdomain too,
13759 at Zoltan's request. Actually return in mono_context_get
13761 * appdomain.c, profiler.c, threads.c: use __thread
13763 2004-08-18 Zoltan Varga <vargaz@freemail.hu>
13765 * appdomain.c threads.c: Call GC_CreateThread on windows.
13767 * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
13768 multiple libraries since this don't work on windows.
13770 2004-08-18 Martin Baulig <martin@ximian.com>
13772 * class-internals.h
13773 (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
13776 * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
13777 MonoMethodNormal since we also need it for abstract and interface
13781 (build_compressed_metadata): Sort the GenericParam table.
13782 (mono_image_create_token): Added `gboolean create_methodspec'
13783 argument; this is false when generating a MethodImpl token.
13784 (reflection_methodbuilder_to_mono_method): Abstract and interface
13785 methods may also have generic parameters.
13787 2004-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
13789 * appdomain.c: thread local alloc
13791 2004-08-17 Martin Baulig <martin@ximian.com>
13793 * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
13796 (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
13799 * class.c (mono_type_get_full_name): New public function.
13800 (mono_type_get_name): Don't include the type arguments.
13802 2004-08-16 Zoltan Varga <vargaz@freemail.hu>
13804 * Makefile.am: Build static versions of libmetadata and libmonoruntime
13805 for inclusion into the mono executable.
13807 2004-08-16 Martin Baulig <martin@ximian.com>
13809 * metadata.c (do_mono_metadata_parse_generic_inst): Store the
13810 MonoGenericInst, not the MonoType in the `generic_inst_cache'.
13812 2004-08-14 Martin Baulig <martin@ximian.com>
13814 * class.c (dup_type): Also copy the `byref' field.
13816 2004-08-15 Zoltan Varga <vargaz@freemail.hu>
13818 * reflection.c (create_dynamic_mono_image): Revert the last change
13819 since it breaks bootstrap.
13821 2004-08-14 Zoltan Varga <vargaz@freemail.hu>
13823 * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
13825 * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
13826 not free them with g_free.
13828 2004-08-11 Martin Baulig <martin@ximian.com>
13830 * reflection.c (mono_reflection_setup_internal_class): Also call
13831 mono_class_setup_mono_type() if we already have a `tb->type.type'.
13833 2004-08-09 Sebastien Pouliot <sebastien@ximian.com>
13835 * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when
13836 called during default (first) AppDomain creation. Keep track of
13837 Evidence when loading assemblies.
13839 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
13841 * opcodes.c, opcodes.h: reduce runtime relocations.
13843 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
13845 * culture-info.h, locales.c: fixes and chages to sue the new
13846 optimized format of the locale data.
13847 * culture-info-tables.h: regenerated.
13849 2004-08-06 Geoff Norton <gnorton@customerdna.com>
13851 * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
13853 2004-08-05 Sebastien Pouliot <sebastien@ximian.com>
13855 * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
13856 ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
13857 * domain-internals.h: icall declaration.
13858 * icall.c: icall registration.
13859 * object-internals.h: New fields in MonoAssembly for CAS.
13861 2004-08-05 Duncan Mak <duncan@ximian.com>
13863 * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
13866 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
13868 * reflection.c: fix to deal with object[] arrays in custom ctors
13871 2004-08-05 Martin Baulig <martin@ximian.com>
13873 * class.c (mono_class_array_element_size): Added support for
13874 generic instances and correctly handle "recursive" types.
13876 2004-08-05 Zoltan Varga <vargaz@freemail.hu>
13878 * assembly.c: Fix warnings.
13880 2004-08-04 Martin Baulig <martin@ximian.com>
13883 (mono_type_get_name_recurse): Added `gboolean include_arity'
13884 argument specifying whether or not we should include the generic
13885 arity in the type name.
13886 (_mono_type_get_name): New static function.
13887 (mono_class_setup_vtable): If we're a generic instance, don't
13888 include the generic arity in the names of explicit method
13891 2004-08-03 Martin Baulig <martin@ximian.com>
13893 * class.c (mono_type_get_name_recurse): Enclose the generic type
13894 arguments in `<', '>'.
13896 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13898 * gc.c: make GC warning messages use the trace API, they are just
13899 noise to most of the users.
13901 2004-08-03 Martin Baulig <martin@ximian.com>
13903 * debug-mono-symfile.c (read_string): Correctly read the string.
13905 2004-07-30 Zoltan Varga <vargaz@freemail.hu>
13907 * marshal.c (signature_dup_add_this): Fix bug in previous patch.
13909 * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
13911 (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
13913 2004-07-30 Martin Baulig <martin@ximian.com>
13915 * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
13916 Reflect latest symbol writer changes.
13918 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
13920 * object.c: always create an object if null is passed
13921 to Invoke() where a valuetype is expected.
13923 2004-07-29 Bernie Solomon <bernard@ugsolutions.com>
13925 * marshal.c (mono_marshal_init): make managed
13926 signatures match native ones better for 64bits.
13928 2004-07-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13930 * appdomain.c: hack to build correctly the private bin path on windows.
13933 2004-07-28 Lluis Sanchez Gual <lluis@novell.com>
13935 * assembly.c: Load mscorlib from the correct framework directory
13936 (mono/<version>/mscorlib.dll).
13937 * appdomain.h: Added prototypes for new functions.
13938 * internals.h: Added some prototypes.
13939 * domain.c: When initializing the runtime, get from the executable and
13940 the configuration files the runtime version that the app supports.
13941 Added support methods for reading app.exe.config. Added list of versions
13942 supported by the JIT. Added two new methods: mono_init_from_assembly,
13943 which initializes the runtime and determines the required version from
13944 the provided exe file, and mono_init_version, which initializes
13945 the runtime using the provided version.
13946 * icall.c: Get machine.config from version-specific directory.
13947 * reflection.c: When generating an image, embed the version number
13948 of the current runtime.
13950 2004-07-28 Dick Porter <dick@ximian.com>
13953 (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
13954 returned sockaddr size before creating the remote address object.
13955 Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
13958 2004-07-28 Dick Porter <dick@ximian.com>
13960 * locales.c (string_invariant_compare_char): Fix invariant char
13961 compares between upper and lower cases. Fixes bug 61458.
13963 2004-07-27 Ben Maurer <bmaurer@ximain.com>
13965 * marshal.c: actually cache stelem.ref wrappers.
13967 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
13969 * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image
13970 sections and remove the mono_cli_rva_map () function.
13972 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
13974 * debug-mono-symfile.c: fix one more endianess issue, from a patch
13975 by Geoff Norton (<gnorton@customerdna.com>).
13977 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13979 * class.c: fix class loads for pointer types (typeof(int) !=
13982 2004-07-27 Martin Baulig <martin@ximian.com>
13984 * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
13985 reading the debugging information from an external ".mdb" file.
13987 2004-07-24 Martin Baulig <martin@ximian.com>
13989 * reflection.c (mono_image_get_type_info): Only write a class
13990 layout entry if we actually have a size or a packing size.
13992 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
13994 * reflection.c (type_get_fully_qualified_name):
13995 insert cast to get type checking of ?: with non-gcc compilers
13997 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
13999 * rand.c: use g_getenv for both lookups of
14002 2004-07-17 Martin Baulig <martin@ximian.com>
14004 * reflection.c (mono_reflection_bind_generic_method_parameters):
14005 Set `gmethod->reflection_info'.
14007 2004-07-17 Martin Baulig <martin@ximian.com>
14009 * class.c (mono_class_create_from_typedef): Insert the newly
14010 created class into the hash table before computing the interfaces
14011 since we could be called recursively.
14013 2004-07-16 Ben Maurer <bmaurer@ximain.com>
14015 * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
14016 function to implement stelem.ref in managed code
14017 * class-internals.h, debug-helpers.c: a new wrapper type
14020 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
14022 * gc.c: allow GC handles to work even when no GC is compiled in.
14023 Fix part of bug #61134 (GetAddrOfPinnedObject).
14025 2004-07-13 Peter Williams <peter@newton.cx>
14027 * process.c (complete_path): Make sure we don't attempt to execute
14030 2004-07-12 Geoff Norton <gnorton@customerdna.com>
14032 * DateTime.cs: Patch for bug #61112. Our DateTime wasn't roundtripping over timezone
14033 boundaries properly. This patch checkes ToLocalTime() to see if we're tripping over a boundary
14034 and will add/subtract the hour if needed
14036 2004-07-12 Martin Baulig <martin@ximian.com>
14038 * reflection.c (mono_field_get_object): If we have
14039 `field->generic_info', take the attributes from
14040 `field->generic_info->generic_type'.
14042 2004-07-12 Martin Baulig <martin@ximian.com>
14044 * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
14045 This function must be called before initializing the runtime.
14046 (mono_debug_init_1): New function; call this after initializing
14047 the runtime, but before loading the assembly. It tells the
14048 debugger to load corlib and the builtin types.
14050 * mono-debug-debugger.c: Did some larger changes in the debugging
14051 code; support recursive class declarations, make sure we actually
14054 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14056 * debug-helpers.c: undo my previous patch and fixed the real issue in
14057 ../mini/exceptions-x86.c
14059 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14061 * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
14062 when no HOME env. variable was set and a NullRef was thrown in a .cctor
14063 called from other .cctors.
14065 2004-07-09 Miguel de Icaza <miguel@ximian.com>
14067 * loader.c: Removed the mono_loader_wine_init hack now that we are
14068 doing a managed version of Windows.Forms.
14070 2004-07-09 Ben Maurer <bmaurer@ximian.com>
14072 * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
14073 threadpool.c, threads.c: remove static data from rootset.
14075 2004-07-09 Dick Porter <dick@ximian.com>
14077 * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
14078 Don't do any more processing if the matched length was 0. It was
14079 increasing the size of the string before. Fixes bug 61167.
14081 2004-07-09 Dick Porter <dick@ximian.com>
14085 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
14086 Add support for SO_PEERCRED if its available.
14088 2004-07-09 Peter Bartok <pbartok@novell.com>
14089 * loader.c: winelib.exe.so error message is now only displayed if
14090 MONO_DEBUG is set. To help us avoid questions when people are trying
14091 out the new Managed.Windows.Forms.
14093 2004-07-08 Zoltan Varga <vargaz@freemail.hu>
14095 * class-internals.h debug-helpers.c marshal.c: Add new wrapper types
14096 for isinst and castclass wrappers.
14098 * class-internals.h icall.c: Move registration and lookup of JIT icalls
14099 to libmetadata from the JIT, so they could be used by the marshalling
14100 code and the interpreter.
14102 * marshal.c: Register marshalling related JIT icalls here instead of
14103 in mini.c. Use CEE_MONO_ICALL instead of the family of
14104 CEE_MONO_PROC<x> opcodes to call marshalling functions.
14106 * metadata.h: Remove unneeded marshalling conversions.
14108 * opcodes.c: Update for new opcodes.
14110 2004-07-08 Martin Baulig <martin@ximian.com>
14112 * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
14113 (mono_debug_get_domain_data): Make this function static.
14115 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14117 * gc.c, object.h: add nice GC handle API for embedders.
14119 2004-07-06 Ben Maurer <bmaurer@ximian.com>
14121 * reflection.c: more changes for the new api
14123 * object.c: When we reflect on a field w/ a constant value, it
14124 will not have a memory location, so we must access metadata. Also,
14125 allow easier reading of strings so that we can read them from
14128 * class.c (mono_class_layout_fields): no need for literal fields here.
14130 * class-internals.h: api changes for const fields
14132 * icall.c (ves_icall_get_enum_info): use new apis for const fields
14134 2004-07-06 Martin Baulig <martin@ximian.com>
14136 * mono-debug.h: Increment version number to 44.
14138 * mono-debug.c (mono_debug_add_wrapper): The second argument is
14139 now a gpointer, rewrote this whole method.
14141 * mono-debug-debugger.c (mono_debugger_add_wrapper): New
14142 function. Add information about the wrapper in a new "misc table".
14144 * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
14145 for the new misc table.
14147 2004-07-05 Zoltan Varga <vargaz@freemail.hu>
14149 * metadata-internals.h image.c: Add a cache for helper signatures.
14151 * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
14153 2004-07-03 Zoltan Varga <vargaz@freemail.hu>
14155 * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
14156 delegates from a delegate. Fixes #61033.
14158 * marshal.c: Fix managed->native stringbuilder marshalling. Implement
14159 marshalling of stringbuilder arrays. Fixes #59900.
14161 2004-07-02 Zoltan Varga <vargaz@freemail.hu>
14163 * icall.c: Add EnumBuilder:setup_enum_type icall.
14165 2004-06-30 Ben Maurer <bmaurer@ximian.com>
14167 * icall.c: Added a new icall for the property version of
14168 OffsetOfStringData.
14170 2004-06-30 Zoltan Varga <vargaz@freemail.hu>
14172 * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
14173 it has a constant size across platforms.
14175 * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
14178 2004-06-29 Martin Baulig <martin@ximian.com>
14180 * mono-debug.c (mono_debug_add_method): Protect the whole function
14181 in mono_debugger_lock(), not just parts of it.
14183 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
14185 * reflection.c: make sure padding bytes in heaps are zeroed.
14187 2004-06-24 David Waite <mass@akuma.org>
14189 * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
14190 image.c, loader.c, locales.c, marshal.c, metadata.c,
14191 mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
14192 string-icalls.c, threads.c: change to C90-style comments from C99 /
14195 2004-06-24 Dick Porter <dick@ximian.com>
14198 (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
14199 return createdNew. Fixes bug 60412.
14202 * icall.c: Add createdNew parameter to CreateMutex icall
14204 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14206 * reflection.c, object-internals.h: save default value in params.
14208 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14210 * appdomain.c: for paths in PrivateBinPath that are absolute, there's
14211 no need to build a new path combining that with the application base.
14214 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
14216 * reflection.c: fixed minor standard compliance issues.
14218 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14220 * reflection.c: fixed issue with encoding some custom attributes
14221 (arrays in properties and fields, bug #60411).
14223 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14225 * reflection.c: fix start address when copying the public key token.
14227 2004-06-23 Martin Baulig <martin@ximian.com>
14229 * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
14230 the `exc' object in a static object to put it into the GC's root set.
14232 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
14234 * reflection.c: make mono_reflection_setup_internal_class ()
14235 callable a second time to setup a new parent class.
14237 2004-06-23 Dick Porter <dick@ximian.com>
14239 * threads.c: Check for WAIT_IO_COMPLETION return values.
14241 2004-06-22 Sebastien Pouliot <sebastien@ximian.com>
14243 * appdomain.c: Removed the g_free on the public key token. Now copy
14244 the pk token string into the MonoAssemblyName buffer using g_strlcpy.
14245 * assembly.c: Added public key token string value when loading
14246 assemblies. Fix bug #60439.
14247 * icall.c: Added missing informations (like public key) in
14248 GetReferencedAssemblies. Fix #60519.
14249 * image.h: Changed definition for public key token from const char*
14250 public_tok_value to guchar public_key_token [17];
14251 * reflection.c: Updated for changes to public key token.
14253 2004-06-22 Lluis Sanchez Gual
14255 * icall.c: In ves_icall_InternalExecute, when setting a filed, also look
14256 for the field in base classes.
14258 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14260 * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
14261 mark headers as not supported, they are installed only for use by the
14264 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
14266 * *.c, *.h: avoid namespace pollution in public headers.
14268 2004-06-21 Martin Baulig <martin@ximian.com>
14270 * exception.c (mono_get_exception_security): It's in
14271 "System.Security", not in "System".
14273 * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
14274 the exception classes.
14276 2004-06-21 Martin Baulig <martin@ximian.com>
14278 * mono-debug-debugger.c (mono_debugger_unhandled_exception):
14279 Protect the exception object from being finalized.
14281 2004-06-21 Martin Baulig <martin@ximian.com>
14283 * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
14286 2004-06-21 Sebastien Pouliot <sebastien@ximian.com>
14288 * reflection.c: Load the assembly in mono_reflection_type_from_name,
14289 if it was not loaded before. Fix parts of #60439.
14291 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
14293 * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
14294 code that was broken since Ben's change: wrappers are now
14295 dependent on the method signature only again.
14297 2004-06-21 Martin Baulig <martin@ximian.com>
14299 * mono-debug-debugger.c (write_class): Cleaned this up a bit and
14300 added interface support.
14302 2004-06-21 Martin Baulig <martin@ximian.com>
14304 * class.c (mono_vtable_get_static_field_data): New public method.
14306 2004-06-20 Atsushi Enomoto <atsushi@ximian.com>
14308 * filewatcher.c : Windows build fix to be compliant with API changes.
14310 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
14312 * class.h, class.c: more accessors.
14313 * metadata.h, metadata.c: prepare for hiding MonoType and
14314 MonoMethodSignature: people should use the accessors from now on
14315 outside of the tree.
14317 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
14319 * *.c, *.h: more API cleanups.
14321 2004-06-18 Jackson Harper <jackson@ximian.com>
14323 * assembly.c: Trace loading assemblies.
14324 * loader.c: Trace loading native libraries.
14325 * mono-config.c: Trace loading config files.
14327 2004-06-18 Dick Porter <dick@ximian.com>
14329 * locales.c: Tell ICU the lengths of strings, it can cope with
14330 embedded \0 then. Fixes bug 59274, and doesn't break bug 55822.
14332 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
14334 * image.c: swapped name/filename;
14336 2004-06-18 Martin Baulig <martin@ximian.com>
14338 * mono-debug-debugger.c (write_class): Write the parent class at
14339 the end of the header.
14341 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
14343 * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
14345 2004-06-17 Raja R Harinath <rharinath@novell.com>
14347 * Makefile.am (PLATFORM_LIB): New. Possibly refer to ../os/libmonoos.la.
14348 (bundle_obj): New conditional define.
14349 (BUILT_SOURCES): Remove.
14350 ($(bundle_srcs)): Make parallel-make safe.
14351 (libmonoruntime_la_LIBADD): Make unconditional.
14352 (libmetadata_la_LIBADD): Make unconditional. Refer to $(bundle_obj).
14353 (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
14355 2004-06-17 Atsushi Enomoto <atsushi@ximian.com>
14357 * culture-info-tables.h: It was inconsistent with the latest
14360 2004-06-17 Zoltan Varga <vargaz@freemail.hu>
14362 * assembly.c (mono_assembly_open): Fix crash when the assembly can't
14365 * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
14368 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
14370 * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
14371 cleaned up public header threads.h.
14373 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14375 * Makefile.am, *.c, *.h: more API cleanups.
14377 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
14379 * Makefile.am: removed monosn from compilation.
14380 * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
14381 debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
14382 image.c, image.h, loader.c, marshal.c, metadata-internals.h,
14383 metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
14384 mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
14385 reflection.c, reflection.h, verify.c: more API cleanups and fixes.
14387 2004-06-15 Jackson Harper <jackson@ximian.com>
14389 * assembly.c: Make locales lower case when searching the GAC for
14390 assemblies. gacutil will always make locales lowercase when
14391 installing so this effectively makes them case insensitive.
14393 2004-06-15 Lluis Sanchez Gual <lluis@ximian.com>
14395 * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
14396 * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
14397 parameter which allows to choose whether the wait can be interrupted or
14398 not. Also added the method mono_monitor_enter(), which locks the monitor
14399 using an infinite wait and without allowing interruption.
14400 In the Monitor.Enter and Wait icalls, retry the lock if the wait is
14402 * object.h: Added new fields in MonoThread. suspend_event holds the event
14403 used to susped/resume the thread. synch_lock is the lock object to use for
14404 modifying the thread state.
14405 * threads.c: Use the new synch_lock object for locking, instead of "this",
14406 which can generate deadlocks.
14407 Moved thread state change in Thread.Sleep and Thread.Join from managed
14408 to unmanaged code. This avoids a deadlock when the thread was suspended
14409 just after acquiring the thread lock.
14410 In general, use mono_monitor_enter instead of mono_monitor_try_enter.
14411 Implemented Thread.Suspend using an event instead of ThreadSuspend,
14412 which is not fully implemented in the io-layer.
14413 * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
14415 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
14417 * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
14418 threads-types.h: more API cleanups.
14420 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
14422 * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
14423 domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
14424 threadpool.c, threads.c: first pass at the exported API cleanup.
14426 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
14428 * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
14430 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14432 * icall.c: added internalGetHome.
14434 2004-06-14 Dick Porter <dick@ximian.com>
14436 * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
14437 possible to return successfully when '.' or '..' were the only
14438 entries in a directory, but were skipped. The MonoIOStat was not
14439 filled in in that case. Now return ERROR_NO_MORE_FILES instead.
14442 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
14444 * reflection.c: make binaries run on .Net 1.1 by default.
14446 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
14448 * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
14450 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
14452 * marshal.c: keep track of struct size with explicit layout
14455 2004-06-12 Martin Baulig <martin@ximian.com>
14457 * mono-debug-debugger.c: Comment out a debugging g_message().
14459 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14461 * reflection.c, reflection.h: do not free custom attrs that are cached.
14462 * icall.c: use braces to make code clearer.
14464 2004-06-11 Martin Baulig <martin@ximian.com>
14466 * class.h (MonoInflatedField): New type.
14467 (MonoClassField): Replaced `MonoType *generic_type' with
14468 `MonoInflatedField *generic_info'.
14471 (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
14473 2004-06-11 Martin Baulig <martin@ximian.com>
14475 * reflection.c (mono_image_create_method_token): Correctly encode
14478 2004-06-11 Martin Baulig <martin@ximian.com>
14480 * metadata.c (mono_metadata_parse_method_signature): When parsing
14481 a MethodDef which has VarArgs, also set sentinelpos if we don't
14482 have any parameters.
14484 2004-06-11 Martin Baulig <martin@ximian.com>
14486 * verify.c (mono_method_verify): In CEE_CALL, use
14487 mono_method_get_signature() to get the method's signature, unless
14488 we're a PInvoke method.
14490 2004-06-10 Jackson Harper <jackson@ximian.com>
14492 * assembly.c: Use <path>/lib/mono/gac for the extra paths
14493 lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
14494 logical name as the supplied path is just a prefix to the gac not
14495 the direct path to it.
14497 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
14499 * reflection.c: make the token for a created method match
14500 the token of the MethodBuilder it was created from
14501 (IKVM requires this behaviour now).
14503 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
14505 * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
14506 reflection.c, socket-io.c: leak fixes.
14508 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
14510 * icall.c: handle sentinel pos in vararg methods in position different
14513 2004-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14515 * culture-info-tables.h: freshly generated.
14517 2004-06-09 Martin Baulig <martin@ximian.com>
14519 * loader.c (mono_get_method_constrained): Call `mono_class_init
14520 (constrained_class)'.
14522 2004-06-08 Gert Driesen <drieseng@users.sourceforge.net>
14524 * icall.c (ves_icall_MonoType_GetEvent): Handle events without
14525 any methods. Fixes #59629.
14527 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
14529 * culture-info-tables.h: reflecting locale-builder updates.
14531 2004-06-08 Dick Porter <dick@ximian.com>
14534 * locales.c: Fixed compile warnings, including a real bug in
14535 CompareInfo_internal_compare.
14537 2004-06-08 Dick Porter <dick@ximian.com>
14540 (ves_icall_System_Globalization_CompareInfo_internal_index):
14541 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14542 Double-check the resuls of usearches, because ICU currently
14543 ignores most of the collator settings here. Fixes bug 59720.
14545 2004-06-08 Dick Porter <dick@ximian.com>
14548 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14549 Fix memory leak and segfault-causing typo. No idea how this one
14550 lasted so long without being noticed.
14552 2004-06-09 Zoltan Varga <vargaz@freemail.hu>
14554 * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
14555 any methods. Fixes #59629.
14557 2004-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14560 (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
14561 own the critical section before). Removed dead code (that's done
14562 in the preload hook).
14564 (mono_assembly_load_with_partial_name): call the preload hook.
14566 2004-06-08 Martin Baulig <martin@ximian.com>
14568 * metadata.c (mono_metadata_signature_alloc): Default
14569 `sentinelpos' to -1.
14571 * reflection.c (mono_image_get_array_token): Likewise.
14573 2004-06-08 Martin Baulig <martin@ximian.com>
14575 * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
14577 * metadata.c (mono_metadata_parse_method_signature): When parsing
14578 a MethodDef which has VarArgs, set sentinelpos.
14580 * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
14581 `gint16' since we're using -1 for non-varargs methods.
14584 (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
14585 (method_encode_signature): Added varargs support.
14586 (method_builder_encode_signature): Likewise.
14587 (mono_image_get_varargs_method_token): New static method.
14588 (mono_image_create_method_token): New public method; this is
14589 called via an icall instead of mono_image_create_token() when
14590 calling a varargs method.
14592 2004-06-08 Lluis Sanchez Gual <lluis@ximian.com>
14594 * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
14596 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
14598 * culture-info-tables.h : Reflecting the latest locale-builder that
14599 fixed empty array representation ({} to {0}).
14601 2004-06-07 Jackson Harper <jackson@ximian.com>
14603 * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
14604 looking up extra gac paths. This allows MONO_GAC_PATH to act
14605 exactly like a prefix.
14607 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
14609 * reflection.c (mono_reflection_type_from_name): Make a copy of the
14610 type name before modifying it. Fixes #59405.
14612 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
14614 * culture-info.h: added fields for "all datetime patterns".
14615 * locales.c: ( ves_icall_System_Globalization_CultureInfo
14616 _construct_datetime_format ()): fill xxx_patterns fields.
14617 * object.h: added fields for "all datetime patterns" to
14618 MonoDateTimeFormatInfo.
14619 * culture-info-tables.h: reflecting locale-builder updates.
14621 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
14623 * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
14624 the event has no add and remove methods. Fixes #59629.
14626 2004-06-05 Sebastien Pouliot <sebastien@ximian.com>
14628 * object.c: Fixed possible integer overflow when allocating large
14631 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
14633 * culture-info-tables.h: reflecting locale-builder updates.
14635 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
14637 * culture-info-tables.h: reflecting locale-builder updates.
14639 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
14641 * culture-info-tables.h: reflecting locale-builder updates.
14643 2004-06-03 Lluis Sanchez Gual <lluis@ximian.com>
14645 * threads.c: Made Thread.Sleep abortable.
14647 2004-06-02 Martin Baulig <martin@ximian.com>
14649 * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
14651 * debug-mono-symfile.h: Bumped symbol file version number to 37.
14653 2004-05-31 Zoltan Varga <vargaz@freemail.hu>
14655 * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
14657 2004-05-30 Jackson Harper <jackson@ximian.com>
14659 * reflection.c: Do not hardcode assembly versions or public key
14660 tokens anymore. All of this except the corlib section was dead
14663 2004-05-29 Zoltan Varga <vargaz@freemail.hu>
14665 * object.c (mono_runtime_invoke_array): Automatically create boxed
14666 objects for byref valuetypes if needed. Fixes #59300.
14668 * object.c (mono_method_return_message_restore): Handle
14669 MONO_TYPE_OBJECT as well.
14671 2004-05-28 Jackson Harper <jackson@ximian.com>
14673 * reflection.c: The modified type encoding was causing build
14674 problems. Reverted for now.
14676 2004-05-28 Jackson Harper <jackson@ximian.com>
14678 * reflection.c/h: Take an assembly ref so that we dont create
14679 fully qualified names when encoding types in the same assembly as
14680 the custom attribute being emitted.
14681 * appdomain.c: Increment version number.
14683 2004-05-26 Duncan Mak <duncan@ximian.com>
14686 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14687 Set the full version number (major, minor, build, revision).
14689 2004-05-28 Vladimir Vukicevic <vladimir@pobox.com>
14691 * marshal.c (emit_struct_conv): increment src/dst after blit
14692 (mono_marshal_get_managed_wrapper,
14693 mono_marshal_get_native_wrapper): make sure we have marshalling
14694 info before marshalling params (info computation affects
14697 * class.c (class_compute_field_layout): correctly deal with
14699 (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
14700 value types (as per what windows dows by default)
14701 (mono_class_setup_mono_type): System.ValueType is blittable
14702 (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
14705 * marshal.c (mono_marshal_load_type_info): flag types as
14706 non-blittable if the native layout doesn't match the managed
14709 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14711 * appdomain.c: don't add stuff in the private search path that is
14712 above the application base. If application base is not set, there's
14713 no private search path.
14715 2004-05-28 Zoltan Varga <vargaz@freemail.hu>
14717 * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
14718 byref struct arguments in native->managed marshalling.
14720 2004-05-28 Patrik Torstensson <totte@hiddenpeaks.com>
14722 * marshal.c (mono_marshal_get_runtime_invoke): correctly
14723 cache methods using signature (special case for methods
14724 that are value type or string class)
14726 * image.c (mono_image_close): clean up allocated GSList's
14727 in runtime_invoke_cache.
14729 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14731 * mono-config.c: set the correct path for mono_cfg_dir on windows when
14732 there's no MONO_CFG_DIR environment variable defined.
14734 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14736 * threads.c: windows version must be >= 0x0500 to include OpenThread.
14738 2004-05-28 Lluis Sanchez Gual <lluis@ximian.com>
14740 * threadpool.c: Really wait for 500ms after the async call, even if the wait
14742 * threads.c: In mono_thread_manage, call OpenThread to ref each handle
14743 before waiting for it, and call CloseHandle after the wait to unref it.
14744 This will make sure that handles are not disposed too early.
14746 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14751 ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
14754 * object.c: se the application_base only for the domain that runs
14755 Main. Fixes bug #59216,
14757 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14760 * object.c: only the domain in which Main is run have
14761 SetupInformation.ConfigurationFile set, so moved a few lines from
14762 appdomain.c to object.c.
14764 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14766 * appdomain.c: we tried to load [name].(dll|exe), but according
14767 to bug #57710, we must also try [culture]/[name].(dll|exe) and
14768 [culture]/[name]/[name](dll|exe). This patch fixes the bug.
14769 There's a test case attached to bug #58922.
14771 2004-05-27 Dick Porter <dick@ximian.com>
14774 * file-io.c: Implemented icalls for locking and unlocking regions
14776 (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
14777 FALSE on error (fixes both compiler warning and real bug.)
14779 2004-05-27 Atsushi Enomoto <atsushi@ximian.com>
14781 * culture-info-tables.h: reflecting locale-builder updates.
14783 (Added missing ChangeLog entry for 05/26)
14785 2004-05-27 Jackson Harper <jackson@ximian.com>
14787 * locales.c: Fix some cut and paste errors.
14789 2004-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14791 * mono-config.c: set the correct path for config. directory on windows.
14793 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
14795 * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
14798 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
14800 * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
14801 from pinvoke functions.
14803 * marshal.c (mono_ftnptr_to_delegate): Implement this.
14805 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
14807 * culture-info-tables.h: reflecting locale-builder updates.
14809 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
14811 * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
14814 2004-05-26 Sebastien Pouliot <sebastien@ximian.com>
14816 * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
14817 * icall.c: Modified icalls for RNG.
14818 * rand.c|h: Changed RNG interface to allow thread-safe usage under
14819 Windows (CryptoAPI).
14821 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
14823 * locales.c: Fix build.
14825 2004-05-25 Atsushi Enomoto <atsushi@ximian.com>
14827 * culture-info-tables.h: reflecting locale-builder updates.
14829 2004-05-25 Jackson Harper <jackson@ximian.com>
14831 * locales.c: When creating the current culture use the $LANGs
14832 specific culture. So DateTimeFormat and NumberFormat entries are created.
14834 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
14836 * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
14837 a char array as parameter.
14839 2004-05-24 Lluis Sanchez Gual <lluis@ximian.com>
14841 * image.c: In mono_image_open(), always use an absolute path name to
14842 look for already loaded images.
14844 2004-05-24 Sebastien Pouliot <sebastien@ximian.com>
14846 * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
14847 missing in the windows build (like older cygwin include files).
14849 2004-05-23 Sebastien Pouliot <sebastien@ximian.com>
14851 * icall.c: Fixed check for possible integer overflow in Buffer_
14852 BlockCopy icall. Replaced comments style // by /* */.
14854 2004-05-22 Zoltan Varga <vargaz@freemail.hu>
14856 * marshal.c (mono_ftnptr_to_delegate): Fix warning.
14858 * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
14859 check after MONO_VTADDR. Fixes pinvoke2.exe.
14861 * marshal.h marshal.c metadata.h: Add beginnings of support for
14862 ftnptr -> delegate marshalling.
14864 2004-05-21 Zoltan Varga <vargaz@freemail.hu>
14866 * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
14867 * threads.c: Fix warnings.
14869 2004-05-20 Lluis Sanchez Gual <lluis@ximian.com>
14871 * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
14872 * icall.c: Registered icalls for Suspend and Resume.
14873 * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
14875 * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
14876 * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
14877 * process.c: Use WaitForSingleObjectEx.
14878 * threadpool.c: Use WaitForSingleObjectEx. Added some interruption
14880 * threads.c, threads.h: Make use of new Ex wait methods. Improved
14881 implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
14882 for Suspend and Resume. Added new mono_thread_stop, used for stoping
14883 background threads. Added basic support for Abort in Windows.
14884 Start new threads using a managed delegate invoke wrapper. This wrapper
14885 has an interruption checkpoint that is needed since an interruption
14886 can be requested before the thread leaves the unmanaged code that starts
14888 * marshal.c: Added interruption checkpoint after every native call, and
14889 also before managed calls for wrappers called from unmanaged code to
14890 go into managed code.
14891 * object.h: Added new field in MonoThread to keep track of interruption
14894 2004-05-20 Zoltan Varga <vargaz@freemail.hu>
14896 * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
14899 2004-05-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14906 * rand.c: getenv -> g_getenv (windows!)
14908 * process.c: complete_path is also used on non-windows platforms.
14910 2004-05-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14912 * icall.c: new signature for Process_Start.
14914 * process.[ch]: new signature for Process_Start. If we're on windows
14915 and UseShellExecute is false, we have to search for the program by
14916 ourselves if we don't get a full path.
14918 2004-05-18 Zoltan Varga <vargaz@freemail.hu>
14920 * marshal.c (mono_marshal_get_native_wrapper): Fix up custom
14921 marshalling and call CleanUpNativeData if needed. Fixes #58646.
14923 2004-05-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14925 * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
14928 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14930 * process.c: use double quotes to quote program name and arguments on
14931 windows. Fixes bug #58575.
14933 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14935 * file-io.c: don't return "." and ".." when using windows Find*File.
14937 2003-05-17 Patrik Torstensson <totte@hiddenpeaks.com>
14939 * marshal.c: Don't pass wrappers to message init because method
14940 addressed used to lookup metadata. part of remoting[2|3] fix.
14942 2004-05-15 Jackson Harper <jackson@ximian.com>
14944 * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
14945 path is essentially the same as MONO_PATH except that it points to
14946 GACs instead of lib directories.
14947 * loader.h: The user gac is gone so we dont need function to
14949 * mono-config.c: user gac option is now gone.
14951 2004-05-15 Jackson Harper <jackson@ximian.com>
14953 * culture-info.h: Make defines more consistent, add calendar data
14954 to the culture info table.
14955 * culture-info-tables.h: Add basic calendar data. Basically
14956 everyone gets default gregorian until all the data is
14958 * locales.c: Use the new consistent defines. Set calendar data for
14959 culture info objects.
14960 * object.h: add a field for calendar data to CultureInfo
14962 2004-05-14 Ben Maurer <bmaurer@users.sourceforge.net>
14964 * image.c: image->runtime_invoke_cache is keyed on signatures now.
14965 * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
14967 (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
14968 (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
14969 an extra param that is the pointer of the method to invoke. The IL for
14970 the invoke method is no longer specific to the method, but to the
14971 signature of the method. Thus, we can share the same code for multiple
14972 methods. This reduces the number of methods that have to be compiled.
14974 2004-05-14 Zoltan Varga <vargaz@freemail.hu>
14976 * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
14978 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14980 * icall.c: Optimize Buffer.BlockCopy.
14982 2004-05-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14984 * culture-info-tables.h: seems like Spanish and Portuguese cultures had
14985 DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
14986 quote). Changed them to "MMMM yyyy".
14988 2004-05-12 Miguel de Icaza <miguel@ximian.com>
14991 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file.
14993 2004-05-13 Zoltan Varga <vargaz@freemail.hu>
14995 * reflection.h: Updated after changes to managed structures.
14997 * appdomain.c: Bump corlib version.
14999 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15001 * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
15004 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15006 * Makefile.am: link to ../os/libmonoos.la on windows.
15009 -If MONO_DEBUG, warn about non-existing directories in
15011 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
15012 compile time variable.
15013 -Removed init_default_path and call mono_set_rootdir from
15014 libmonoos.a instead (windows only).
15016 * assembly.h: declare mono_assembly_getrootdir().
15019 * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
15021 * loader.c: s/getenv/g_getenv/
15023 2004-05-11 Zoltan Varga <vargaz@freemail.hu>
15025 * marshal.{h,c}: Add support for UnmanagedType.AsAny.
15027 * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
15029 * metadata.h: Add new marshalling conversions.
15031 * metadata.h metadata.c (mono_metadata_signature_dup): New helper
15034 * reflection.c (mono_reflection_get_type): Lookup the type in all
15035 modules of a multi-module assembly. Fixes #58291.
15037 2004-05-11 Lluis Sanchez Gual <lluis@ximian.com>
15039 * threads.c: Before aborting a background, set the StopRequested
15040 state. This avoids throwing the Abort exception.
15041 In mono_thread_manage, don't continue with the shutdown until all
15042 aborted threads have actually stopped.
15044 2004-05-10 Jackson Harper <jackson@ximian.com>
15046 * locales.c: Remove the modifier from culture names.
15048 2004-05-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15050 * Makefile.am: monosn is not installed any more. It has been deprecated
15053 2004-05-07 Jackson Harper <jackson@ximian.com>
15056 (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
15057 Fix array construction, add bailout if the length is 0.
15059 2004-05-07 Dick Porter <dick@ximian.com>
15061 * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
15062 machine doesn't have a DNS entry. Patch by Urs Muff
15063 (umuff@quark.com), fixes bug 57928.
15065 2004-05-06 Jackson Harper <jackson@ximian.com>
15067 * reflection.c: Handle null PublicTokens properly. alloc mem for
15068 assembly names culture so we dont crash when freeing it.
15070 2004-05-06 Jackson Harper <jackson@ximian.com>
15072 * assembly.c: Check the usergac when loading with partial names.
15074 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
15076 * rand.c|h: Added new icall for (optionally) seeding the PRNG. This
15077 does nothing for now (not required for Linux/Windows) but the class
15078 library can call it (and a newer or modified runtime could need it).
15079 * icall.c: Registred icall.
15081 2004-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15083 * loader.c: prints a message on module loading error we set MONO_DEBUG
15084 environment variable.
15086 2004-05-05 Jackson Harper <jackson@ximian.com>
15088 * appdomain.c: Handle PublicKeyToken=null properly.
15090 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
15092 * environment.c|h: Added icall ves_icall_System_Environment_
15093 GetOSVersionString to get the current OS version as a string.
15094 * icall.c: Registred icall.
15096 2004-05-05 Lluis Sanchez Gual <lluis@ximian.com>
15098 * object.c: in mono_object_get_virtual_method(), take into account that
15099 non-virtual methods don't have a slot in the vtable. Check needed when
15100 the object is a proxy.
15102 2004-05-05 Zoltan Varga <vargaz@freemail.hu>
15104 * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
15105 (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
15107 * object.c (mono_class_compute_gc_descriptor): Fix warning.
15109 * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
15110 passed when a valuetype is expected.
15112 * object.c (mono_unhandled_exception): Only set the exit code if the
15113 exception happens in the main thread. Fixes thread5.exe.
15115 * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
15116 invalid names. Fixes #58047.
15118 2004-05-03 Jackson Harper <jackson@ximian.com>
15120 * assembly.c: This line was committed accidently and is unneeded.
15122 2004-05-03 Jackson Harper <jackson@ximian.com>
15124 * icall.c: Add new icall for Assembly::LoadWithPartialName
15125 * assembly.c/.h: new function that probes the GAC to load partial
15126 assembly names by Paolo Molaro.
15128 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15130 * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
15131 * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
15132 (type_get_fully_qualified_name): Added PublicKeyToken when building a
15135 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15137 * appdomain.c: fixed check for 'neutral' culture and removed warning.
15138 * reflection.c: fix bug when parsing a full type name and Version is not
15139 the last thing in the string.
15141 2004-05-03 Zoltan Varga <vargaz@freemail.hu>
15143 * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
15144 crashes when it is freed.
15146 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15148 * assembly.c: print the compat warning to stderr.
15150 2004-05-01 Miguel de Icaza <miguel@ximian.com>
15152 * assembly.c (mono_assembly_load_references): Add a compatibility
15153 hack to run old applications that might be still referencing the
15154 3300-based assemblies, only do this for System.xxx.
15156 2004-05-01 Jackson Harper <jackson@ximian.com>
15158 * appdomain.c: If the culture is neutral we set it to "".
15160 2004-04-29 Jackson Harper <jackson@ximian.com>
15162 * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
15164 2004-04-29 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
15166 * string-icalls.c: added low overhead function for copying chars
15167 * icall.c: added needed icall for the above function
15169 2004-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15171 * icall.c: fix return value of get_global_assembly_cache. Implemented
15172 Environment.GetLogicalDrives.
15174 2004-04-28 Bernie Solomon <bernard@ugsolutions.com>
15176 * rand.c: try and talk to egd or prngd
15177 for random bytes if opening devices fail.
15179 2004-04-28 Zoltan Varga <vargaz@freemail.hu>
15181 * marshal.c (mono_marshal_load_type_info): Calculate the minimum
15182 alignment for the type using the native alignment of its members
15183 instead of using klass->min_align.
15185 * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
15187 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15190 * socket-io.c: added check for sys/aio.h.
15192 2004-04-28 Dick Porter <dick@ximian.com>
15194 * threads.c: Don't abort a thread thats already aborting, when
15195 terminating everything.
15197 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15199 * icall.c: added 2 new async calls for Socket.
15201 * socket-io.[ch]: fixed some warnings. Added support for asynchronous
15202 IO on *nix systems.
15204 * threadpool.c: removed unused variable.
15206 2004-04-27 Zoltan Varga <vargaz@freemail.hu>
15208 * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
15210 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15212 * locales.c: put back string_invariant_tolower () and
15213 string_invariant_toupper ().
15215 2004-04-26 David Waite <mass@akuma.org>
15220 * unicode.h: remove comma from end of enumeration declarations
15222 2004-04-26 David Waite <mass@akuma.org>
15224 * debug-mono-symfile.h:
15227 * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
15230 2004-04-26 Jackson Harper <jackson@ximian.com>
15232 * appdomain.c: Increment version number.
15234 2004-04-26 Jackson Harper <jackson@ximian.com>
15236 * appdomain.c: Set assembly references public token value when
15237 PublicKeyToken is specified, not the hash_value. Free public token
15238 values when free assembly name data. Previously the public key
15239 token was hex decoded, however we are using hex encoded public key
15240 tokens, so this is not neccasary.
15241 * assembly.c: Lookup assemblies in the gac if their public token
15242 value is set. Add function to allow enabling user gac
15243 lookups. Specify whether or not the assembly was loaded from the
15244 GAC. Compare full assembly names when checking the cache for
15245 assemblies (Temporarily disabled see comment in code). Remove
15246 mscorlib -> corlib mapping cruft. Add trace-loading. When a user
15247 specifies trace-loader they get extra info to stdout on the
15248 loading of assemblies.
15249 * image.h: Add a field for an assembly references public token
15250 value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
15251 whether an assembly has been loaded from the GAC.
15252 * image.c: Remove a corlib -> mscorlib name mapping.
15253 * loader.h: Add function to enable/disable the user gac.
15254 * mono-config.c: Check if the usergac is enabled in the config
15256 * icall.c: New icall to determine whether or not an assembly has
15257 been loaded from the GAC. Remove some mscorlib -> corlib mappings.
15258 * tabldefs.h: Add constant for assemblyref flag that specifies a
15259 full public key is used instead of a public token.
15260 * reflection.c: Remove mscorlib -> corlib mappings. Set
15261 PublicTokenValue instead of hash value. This value is a hex
15262 string so it does not need to be expanded.
15264 2004-04-26 Martin Baulig <martin@ximian.com>
15266 * mono-debug-debugger.c (mono_debugger_initialize): Set
15267 `mono_debugger_initialized' before calling mono_debug_lock().
15269 2004-04-42 Robert Shade <rshade@dvsconsulting.com>
15271 * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
15272 InternalToUpper/InternalToLower.
15273 * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
15274 removed invariant culture shortcut. This is now done in managed code.
15275 * locales.c: (string_invariant_toupper/tolower) removed.
15277 2004-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15279 * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
15280 Added Poll internal call.
15282 * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
15283 call for Poll. Select was too heavy for polling a single socket.
15285 * threadpool.[ch]: added mono_threadpool_cleanup.
15286 * threads.c: use it. Don't use Thread_Abort on windows.
15288 2004-04-23 Martin Baulig <martin@ximian.com>
15290 * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
15292 2004-04-23 Sebastien Pouliot <sebastien@ximian.com>
15294 * icall.c: Registred new icalls for key pair protection and added an
15295 icall for Environment.GetFolderPath on Windows.
15296 * security.c|h: Added new icalls for key pair protection.
15298 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15300 * socket-io.c: don't display the non-supported family warning for known
15301 families. Now this is not displayed on windows when checking support
15304 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15306 * class.c: don't display the layout warning for static fields.
15308 2004-04-21 Lluis Sanchez Gual <lluis@ximian.com>
15310 * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
15311 * locales.c, locales.h: Added new icalls for culture-specific
15312 Char.ToLower and Char.ToUpper.
15314 2004-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15316 * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
15319 2004-04-20 Martin Baulig <martin@ximian.com>
15321 * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
15322 of the type name before passing it to mono_reflection_type_from_name().
15324 2004-04-19 Zoltan Varga <vargaz@freemail.hu>
15326 * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
15327 encodings here. Fixes #56965.
15329 2004-04-18 Bernie Solomon <bernard@ugsolutions.com>
15331 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15332 fix test on strstr result not that I can see anything that
15333 relies on the result.
15335 2004-04-18 Zoltan Varga <vargaz@freemail.hu>
15337 * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
15340 * marshal.c (mono_marshal_get_string_encoding): New helper function.
15342 * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
15343 function to determine which marshalling to use for strings. Fixes
15346 * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
15348 * reflection.c (encode_marshal_blob): Add support for LPARRAY.
15350 2004-04-15 Bernie Solomon <bernard@ugsolutions.com>
15352 * icall.c: #include mono-config.h
15354 2004-04-15 Jackson Harper <jackson@ximian.com>
15356 * culture-info-tables.h: Fix date formats for en-US culture.
15358 2004-04-15 Lluis Sanchez Gual <lluis@ximian.com>
15360 * icall.c: Registered icalls for ThreadPool.GetMinThreads and
15361 ThreadPool.SetMinThreads.
15362 * threadpool.c: Implemented ThreadPool.GetMinThreads and
15363 ThreadPool.SetMinThreads.
15365 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
15367 * mono-config.c: also load the .config file in the directory
15368 where the assembly was found.
15370 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
15372 * assembly.c: load per-assembly config files.
15373 * icall.c: decrapified code to get the config dir and moved to
15375 * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
15376 per-assembly config files. When doing a dll map lookup give precedence
15377 to the per-assembly data.
15379 2004-04-14 Martin Baulig <martin@ximian.com>
15381 * mono-debug-debugger.h (MonoDebuggerEvent): Removed
15382 MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
15383 and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
15385 * mono-debugger-debugger.c: While the debugger is locked, remember
15386 whether the symbol tables have changes and send one single
15387 MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
15389 2004-04-14 Zoltan Varga <vargaz@freemail.hu>
15391 * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
15393 * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New
15396 * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
15397 account when marshalling string arrays. Fixes #56965.
15399 2004-04-13 Sebastien Pouliot <sebastien@ximian.com>
15401 * icall.c: Add new icalls mapping for security.
15402 * security.c|h: Add internal calls for WindowsIdentity,
15403 WindowsImpersonationContext and WindowsPrincipal.
15405 2004-04-13 Gert Driesen (drieseng@users.sourceforge.net)
15407 * class.c: Added comment to ensure the System.MonoDummy class
15408 is removed when no longer necessary
15410 2004-04-13 Miguel de Icaza <miguel@ximian.com>
15412 * appdomain.c: Pass arguments to the bootstraping exceptions to
15413 minimize JITed methods at boot
15415 * metadata.c (mono_exception_from_name_two_strings): Allow for the
15416 second string to be null.
15418 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15419 Change the protocol to minimize the JIT methods at startup. Now
15420 it Returns the internal codepage, if the value of "int_code_page"
15421 is 1 at entry, and we can not compute a suitable code page
15422 number, returns the code page as a string.
15424 2004-04-13 Jackson Harper <jackson@ximian.com>
15426 * culture-info-tables.h: Fix number of decimal digits for all
15429 2004-04-13 Jackson Harper <jackson@ximian.com>
15431 * icall.c: Clairfy out of sync error message. It is not always
15432 your corlib that is out of sync.
15434 2004-04-13 Zoltan Varga <vargaz@freemail.hu>
15436 * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
15437 properties when only the set accessor is overriden. Fixes #55874.
15439 2004-04-09 Zoltan Varga <vargaz@freemail.hu>
15441 * assembly.c (mono_assembly_load_references): Make this thread safe.
15444 2004-04-08 Zoltan Varga <vargaz@freemail.hu>
15446 * monosn.c: Add missing initialization calls.
15448 2004-04-08 Bernie Solomon <bernard@ugsolutions.com>
15451 ves_icall_System_Globalization_CultureInfo_construct_number_format
15452 Fix g_assert so it compiles on fussier compilers re int/ptr
15455 2004-04-08 Dick Porter <dick@ximian.com>
15458 * socket-io.c: Don't set SO_REUSEADDR on windows. Fixes bug
15459 53992. Also rearrange the code so that the internal calls return
15460 an error value and exceptions are thrown from managed code.
15462 * icall.c: Add type info to the socket icalls.
15464 2004-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15466 * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
15469 2004-04-07 Martin Baulig <martin@ximian.com>
15471 * class.c (mono_class_from_generic_parameter): Don't default
15472 `klass->parent' to `mono_defaults.object_type'.
15474 2004-04-07 Martin Baulig <martin@ximian.com>
15476 * reflection.c (mono_reflection_initialize_generic_parameter): Set
15477 `param->pklass->reflection_info'.
15479 2004-04-07 Jackson Harper <jackson@ximian.com>
15481 * culture-info-tables.h: Fix date separator symbol.
15483 2004-04-07 Martin Baulig <martin@ximian.com>
15485 * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
15486 from System.Type to System.MonoType.
15488 2004-04-07 Martin Baulig <martin@ximian.com>
15491 (MonoReflectionGenericParam): Added `has_reference_type' and
15492 `has_value_type' fields.
15494 * reflection.c (mono_image_get_generic_param_info): Encode the
15495 correct flags if we have the `class' or `struct' constraint.
15497 2004-04-07 Martin Baulig <martin@ximian.com>
15500 (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
15502 2004-04-07 Jackson Harper <jackson@ximian.com>
15504 * appdomain.c: Revert extra patches, just wanted to bump the
15507 2004-04-07 Jackson Harper <jackson@ximian.com>
15509 * Makefile.am: Add culture-info private headers.
15510 * icall.c: Add new icalls for contructing locales.
15511 * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
15512 * locales.h: Declare new culture info construction methods.
15513 * object.h: Add new fields used to avoid the CultureMap to
15515 * culture-info.h: Definition of structs used in the culture info
15517 * culture-info-tables.h: Autogenerated tables that contain culture
15518 info data. This file was generated with the locale-builder tool.
15519 * appdomain.c: Incement corlib version number.
15521 2004-04-07 Bernie Solomon <bernard@ugsolutions.com>
15523 * appdomain.c: (mono_runtime_init) move mono_thread_init
15524 to before mono_object_new calls so critical sections
15525 are initialized before use.
15527 2004-04-07 Martin Baulig <martin@ximian.com>
15530 (ves_icall_TypeBuilder_define_generic_parameter): Removed.
15531 (ves_icall_MethodBuilder_define_generic_parameter): Removed.
15532 (ves_icall_MonoGenericParam_initialize): Removed.
15533 (monogenericparam_icalls): Removed.
15534 (generictypeparambuilder_icalls): Added new table for
15535 System.Reflection.Emit.GenericTypeParameterBuilder.
15538 (mono_reflection_define_generic_parameter): Removed.
15539 (mono_reflection_initialize_generic_parameter): This is now called
15540 from GenericTypeParameterBuilder's .ctor.
15542 2004-04-06 Martin Baulig <martin@ximian.com>
15544 * class.c (mono_class_init): Don't inflate nested classes in a
15546 (mono_type_get_name_recurse): Include the generic arguments for
15547 generic instances and generic type declarations.
15548 (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
15549 (_mono_class_get_instantiation_name): Removed.
15550 (mono_class_create_generic): Always use `gklass->name' as our name.
15552 * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
15554 * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
15555 (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
15556 (ves_icall_MonoMethod_GetGenericParameters): Renamed to
15557 ves_icall_MonoMethod_GetGenericArguments() and correctly handle
15558 closed generic methods here.
15561 (mono_reflection_generic_inst_get_nested_types): Removed.
15562 (inflate_mono_method): Copy the generic parameters from the
15563 MonoMethodHeader into out MonoGenericMethod.
15565 2004-04-06 Martin Baulig <martin@ximian.com>
15568 (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
15570 * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
15572 * reflection.c (build_compressed_metadata): If we have any entries
15573 in the GenericParam, MethodSpec or GenericParamConstraint tables,
15574 set the header version to 1.1.
15576 2004-04-06 Martin Baulig <martin@ximian.com>
15578 * class.c (mono_class_init): If we're a generic instance,
15579 initialize our nested classes, too.
15580 (_mono_class_get_instantiation_name): Deal with the new `!%d'
15583 2004-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15585 * process.c: quote the argument passed to the shell on windows.
15587 2004-04-05 Zoltan Varga <vargaz@freemail.hu>
15589 * threads.c (mono_alloc_special_static_data): Allow this to be
15590 called during startup.
15592 2004-04-02 Martin Baulig <martin@ximian.com>
15595 (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
15597 2004-04-02 Zoltan Varga <vargaz@freemail.hu>
15599 * icall.c: Fix build.
15601 2004-04-02 Sebastien Pouliot <sebastien@ximian.com>
15603 * Makefile.am: Added security.c|h.
15604 * icall.c: Added icall for get_UserName;
15605 * security.c: New file for security related icalls. Added function
15606 get_UserName for System.Environment (fix #56144).
15607 * security.h: New. Header file for security.c
15609 2004-04-02 Dick Porter <dick@ximian.com>
15611 * icall.c: Deleted the icalls that were obsoleted some time ago
15612 by the ICU string code, and which were mixed into the icall
15613 rearranging. Fixes bug 55969.
15616 * string-icalls.c: Deleted the code that those icalls reference.
15618 2004-04-01 Martin Baulig <martin@ximian.com>
15620 * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
15622 * class.c (mono_class_from_generic_parameter): Don't set
15623 TYPE_ATTRIBUTE_INTERFACE.
15624 (my_mono_class_from_generic_parameter): Likewise.
15626 2004-04-01 Martin Baulig <martin@ximian.com>
15628 * loader.c (find_method): Added an optional `MonoClass *ic'
15629 argument to search in a specific interface.
15630 (mono_get_method_constrained): New public function.
15632 2004-04-01 Martin Baulig <martin@ximian.com>
15634 * reflection.c (mono_image_get_generic_field_token): Use the
15635 `handleref' cache here.
15637 2004-04-01 Martin Baulig <martin@ximian.com>
15639 * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
15641 * reflection.c (create_generic_typespec): Use the `typespec' hash
15642 here, not the `typeref' one.
15644 2004-04-01 Martin Baulig <martin@ximian.com>
15646 * class.c (mono_class_inflate_generic_type): Moved the
15647 functionality into a new static inflate_generic_type() which
15648 returns NULL if it didn't do anything. Only increment the
15649 `mono_stats.inflated_type_count' if we actually inflated
15651 (mono_class_get_full): Check the classes type to see whether we
15652 need to inflate it; also inflate MONO_TYPE_(M)VAR.
15654 2004-04-01 Jackson Harper <jackson@ximian.com>
15656 * reflection.c: Set culture for assembly references.
15658 2004-04-01 Ben Maurer <bmaurer@users.sourceforge.net>
15660 * reflection.[ch], icall.[ch], Fix support for pinning variables.
15662 2004-04-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15665 (do_mono_assembly_open): the critical section also covers
15666 mono_image_open and mono_image_open_from_data. Fixes bug #56327.
15668 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15671 (mono_manage_threads): abort the background threads when finishing.
15674 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15676 * gc.c: only close the done_event handle if there was no timeout.
15679 2004-03-30 Martin Baulig <martin@ximian.com>
15681 * icall.c (icall_entries): It's called "System.Activator", not
15682 "System.Activation".
15684 2004-03-30 Martin Baulig <martin@ximian.com>
15686 * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
15687 (mono_class_create_from_typespec): Likewise.
15689 2004-03-30 Martin Baulig <martin@ximian.com>
15691 * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
15692 `has_ctor_constraint' and `initialized'.
15694 2004-03-30 Martin Baulig <martin@ximian.com>
15696 * reflection.c (encode_new_constraint): New static function to add
15697 the constructor constraint attribute to a type parameter.
15698 (encode_constraints): Call encode_new_constraint() if necessary.
15701 (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
15703 * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
15705 2004-03-29 Ben Maurer <bmaurer@users.sourceforge.net>
15707 * reflection.c, icall.c: add support for pinning variables.
15709 2004-03-29 Bernie Solomon <bernard@ugsolutions.com>
15711 * marshal.c (mono_marshal_get_managed_wrapper):
15712 init bool local with zero rather than null.
15714 2004-03-29 Martin Baulig <martin@ximian.com>
15716 * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
15717 the "official" behavior here.
15718 (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
15720 2004-03-29 Martin Baulig <martin@ximian.com>
15722 * icall.c: Reflect latest API changes.
15724 2004-03-29 Martin Baulig <martin@ximian.com>
15726 * loader.c (mono_get_method_from_token): Also call
15727 mono_metadata_load_generic_params () for abstract and interface
15728 methods; replace the type arguments in the method signature with
15729 the ones which are loaded from the metadata.
15731 2004-03-29 Lluis Sanchez Gual <lluis@ximian.com>
15733 * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
15734 of the lock is not the current thread. MS.NET don't do it, in spite of
15735 what the documentation says. See bug #56157.
15737 2004-03-28 Martin Baulig <martin@ximian.com>
15739 * class.c (mono_class_init): Don't call init_properties() and
15740 init_events() for generic instances; set `prop->parent' when
15741 inflating properties.
15743 * reflection.c (mono_generic_inst_get_object): Call
15744 `mono_class_init (ginst->klass)'.
15745 (mono_type_get_object): Only create a MonoGenericInst if your
15746 generic type is a TypeBuilder.
15747 (do_mono_reflection_bind_generic_parameters): Only set
15748 `ginst->is_dynamic' if our generic type is a TypeBuilder.
15750 2004-03-28 Zoltan Varga <vargaz@freemail.hu>
15752 * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
15755 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15757 * icall.c: added Kill_internal icall.
15758 * process.[ch]: added Kill_internal icall.
15760 2004-03-25 Martin Baulig <martin@ximian.com>
15762 * class.h (MonoStats): Added `generic_instance_count',
15763 `inflated_method_count', `inflated_type_count' and
15764 `generics_metadata_size'.
15766 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15768 * reflection.c: no warnings now.
15770 2004-03-25 Martin Baulig <martin@ximian.com>
15772 * class.c (mono_class_get_full): New public function; does a
15773 mono_class_get(), but also takes a `MonoGenericContext *'.
15775 * loader.c (mono_field_from_memberref): Renamed to
15776 `field_from_memberref', made static and added `MonoGenericContext *'
15778 (mono_field_from_token): Added `MonoGenericInst *' argument.
15779 (method_from_memberef): Likewise.
15780 (mono_get_method_from_token): Likewise.
15781 (mono_get_method_full): New public function; does a
15782 mono_get_method(), but also takes a `MonoGenericContext *'.
15784 * verify.c (mono_method_verify): Get the method's generic context
15785 and pass it to mono_field_from_token(), mono_get_method_full() and
15786 mono_class_get_full().
15788 2004-03-25 Martin Baulig <martin@ximian.com>
15790 * class.c (mono_class_inflate_generic_type): Take a
15791 `MonoGenericContext *' instead of a `MonoGenericInst *' and a
15792 `MonoGenericMethod *'.
15794 2004-03-25 Martin Baulig <martin@ximian.com>
15796 * loader.h (MonoMethodInflated): Store the MonoGenericContext
15797 instead of the MonoGenericMethod here.
15799 2004-03-25 Martin Baulig <martin@ximian.com>
15801 * class.h (MonoGenericInst): Added `MonoGenericContext *context';
15802 each time we create a new MonoGenericInst, we also create a new
15803 context which points back to us.
15805 * class.c (inflate_method): Use `ginst->context' instead of
15806 creating a new context.
15808 * loader.c (method_from_memberref): Use
15809 `klass->generic_inst->context' instead of creating a new context.
15811 2004-03-25 Martin Baulig <martin@ximian.com>
15813 * class.h (MonoGenericContext): New struct.
15814 (MonoGenericMethod): Removed `generic_inst'.
15816 * class.c (mono_class_inflate_generic_method): Take a
15817 `MonoGenericContext *' instead of a `MonoGenericMethod *'.
15819 2004-03-25 Martin Baulig <martin@ximian.com>
15821 * loader.h (MonoMethodInflated): New typedef.
15823 * metadata.h (MonoMethodSignature): Removed `gen_method', make
15824 `generic_param_count' consume just 30 bits, added `is_inflated'
15825 and `has_type_parameters' flags (one bit each).
15827 * class.c (mono_class_inflate_generic_method): Create a
15828 MonoMethodInflated instead of a MonoMethodNormal and set
15829 `is_inflated' in the method signature.
15831 * class.h (MonoGenericMethod): Removed `generic_method'.
15833 2004-03-25 Lluis Sanchez Gual <lluis@ximian.com>
15835 * image.c: Make sure the name of a MonoImage is always an absolute path.
15836 This fixes bug #54415.
15838 2004-03-24 Martin Baulig <martin@ximian.com>
15840 * class.c (mono_class_setup_vtable): If we're a generic instance,
15841 use our generic type's vtable size.
15843 2004-03-24 Zoltan Varga <vargaz@freemail.hu>
15845 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
15846 MONO_NO_UNLOAD env var as a temporary workaround for unloading
15849 2004-03-23 Martin Baulig <martin@ximian.com>
15851 * class.h (MonoDynamicGenericInst): Added `int count_events' and
15852 `MonoEvent *events'.
15854 * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
15855 (typebuilder_icalls): Added "get_event_info"; calls
15856 mono_reflection_event_builder_get_event_info().
15858 * reflection.c (mono_reflection_generic_inst_initialize): Added
15859 `MonoArray *events'.
15860 (mono_reflection_event_builder_get_event_info): New function.
15862 2004-03-23 Bernie Solomon <bernard@ugsolutions.com>
15864 * object.h: add mono_type_initialization_init
15866 * object.c (mono_runtime_class_init):
15867 implement class constructor synchronization rules
15868 to cope with threading issues.
15869 add mono_type_initialization_init
15871 * appdomain.c (mono_runtime_init): call
15872 mono_type_initialization_init
15874 * class.h: removing initializing field from MonoVTable
15876 2004-03-23 Martin Baulig <martin@ximian.com>
15878 * class.c (my_mono_class_from_generic_parameter): Use
15879 `param->name' if it's not NULL.
15881 2004-03-22 Ben Maurer <bmaurer@users.sourceforge.net>
15883 * class.c: do not insert non-virtual methods in the vtable.
15884 * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
15885 that means the method is non-virtual. This never would have
15888 2004-03-22 Lluis Sanchez Gual <lluis@ximian.com>
15890 * profiler.c: Added lock for accessing coverage_hash.
15892 2004-03-22 Martin Baulig <martin@ximian.com>
15894 * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
15895 `method->method->signature->generic_param_count != 0' to make it
15896 work for interface methods.
15898 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15900 * process.c: quote the string passed to the shell using g_shell_quote.
15902 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15905 (mono_threads_manage): don't remove the finalizer thread and self
15906 from the threads hash table so that mono_thread_manage can be called
15909 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15911 * process.c: quote the arguments when UseShellExecute is true. Fixes
15914 2004-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15916 * threads.c: set mono_thread_detach as a cleanup routine for every
15917 thread. This way it's always executed upon thread termination, either
15918 aborted or finished normally. No more xsp hangs!
15920 2004-03-17 Martin Baulig <martin@ximian.com>
15922 * class.h (MonoGenericInst): Replaced the `GList *nested' with an
15923 `int count_nested' and a `MonoType **nested'.
15925 * reflection.c (mono_reflection_bind_generic_parameters): Moved
15926 most of the functionality into a new static
15927 do_mono_reflection_bind_generic_parameters() and don't take a
15928 `MonoType *nested_in' argument any more. Don't compute nested
15930 (mono_reflection_generic_inst_get_nested_types): New public method
15931 to get nested types.
15933 * class.c (mono_class_create_generic): Set `klass->nested_in' if
15934 we're a nested class.
15936 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
15937 mono_reflection_generic_inst_get_nested_types() to compute the
15940 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
15942 * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
15943 descriptive error message under windows.
15945 2004-03-17 Martin Baulig <martin@ximian.com>
15947 * class.c (dup_type): Added `const MonoType *original' argument;
15948 copy the attrs from the original type.
15950 2004-03-17 Martin Baulig <martin@ximian.com>
15952 * metadata.c (do_mono_metadata_parse_generic_inst): Use the
15953 `m->generic_inst_cache' here.
15955 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
15957 * exception.h exception.c: Add stack_overflow_exception.
15959 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15962 (overlapped_callback): call SetEvent *after* invoking the callback.
15963 No need to call CloseHandle.
15965 2004-03-16 Martin Baulig <martin@ximian.com>
15967 * reflection.c (mono_image_get_fieldref_token): Take a
15968 `MonoReflectionField *' instead of a `MonoClassField *' and a
15969 `MonoClass *'; store the `MonoReflectionField *' in the hash.
15971 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15973 * appdomain.c: don't add the culture to the filename we're looking for
15974 if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
15976 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15978 * locales.c: don't ignore symbols when doing case insensitive compares.
15979 Thanks Dick! Fixes bug #54046.
15981 * threads.c: surround 'threads' usage with enter/leave in
15982 mono_thread_manage.
15984 2004-03-16 Zoltan Varga <vargaz@freemail.hu>
15986 * marshal.c (mono_marshal_get_native_wrapper): Char arrays are
15987 implicitly marshalled as [Out]. Fixes #55450.
15989 (mono_marshal_get_runtime_invoke): Zero out the result if there is
15992 2004-03-16 Martin Baulig <martin@ximian.com>
15994 * class.c (mono_class_from_generic_parameter): Use the actual
15997 2004-03-16 Martin Baulig <martin@ximian.com>
15999 * reflection.c (type_get_signature_size): New static function.
16000 Compues the size of the type in a method signature.
16001 (method_get_signature_size): New static function; calls
16002 type_get_signature_size() to compute the actual size of the
16003 method's signature.
16004 (method_encode_signature): Use method_get_signature_size() to get
16005 the signature's size rather than using `nparams * 10'.
16007 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16009 * file-io.h: define here WapiOverlapped on windows. I don't want the
16010 regular OVERLAPPED one.
16013 * threadpool.c: somehow, BindIoCompletionCallback is not found.
16014 Disabling AIO on windows.
16016 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16018 * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
16021 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16023 * appdomain.c: upgraded corlib version.
16025 * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
16026 and BeginWrite. Allow opening files for asynchrnous operations.
16028 * file-io.h: new struct that maps FileStreamAsyncResult.
16029 * icall.c: added new icalls.
16030 * process.[ch]: support setting child process environment variables
16031 and use the SHELL or COMSPEC when UseShellExecute is true.
16033 * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
16034 callback for async. IO is here and also BindHandle.
16036 * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
16039 2004-03-14 Zoltan Varga <vargaz@freemail.hu>
16041 * reflection.c (create_custom_attr): Allow len == 0.
16043 * object.c (mono_class_compute_gc_descriptor): Fix descriptor
16044 computation on big-endian machines.
16046 2004-03-13 Martin Baulig <martin@ximian.com>
16048 * class.h (MonoGenericInst): Added `int count_ifaces'.
16050 * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
16051 `ginst->count_ifaces' instead `klass->interface_count' since we
16052 may get called before the vtable is created.
16054 * loader.c (mono_method_get_param_names): If we're a generic
16055 instance, return and don't initialize the class.
16057 * reflection.c (mono_reflection_setup_generic_class): Don't call
16058 ensure_runtime_vtable().
16059 (mono_reflection_bind_generic_parameters): Set
16060 `ginst->count_ifaces'.
16062 2004-03-11 Jackson Harper <jackson@ximian.com>
16066 * unicode.h: Remove unused System.Char icalls.
16068 2004-03-11 Miguel de Icaza <miguel@ximian.com>
16070 * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
16071 code when we P/Invoke the first library in Windows.Forms, instead
16072 of when we first open the assembly.
16074 * assembly.c: Drop the lookup from here.
16076 2004-03-10 Martin Baulig <martin@ximian.com>
16078 * reflection.c (mono_reflection_get_custom_attrs): Use the correct
16079 class for properties, fields and events. Finally fixes #54945.
16081 2004-03-10 Martin Baulig <martin@ximian.com>
16083 * metadata.c (mono_metadata_class_equal): New static function;
16084 checks whether two generic instances or two generic parameters are
16086 (mono_metadata_type_equal): Use mono_metadata_class_equal() to
16089 2004-03-10 Martin Baulig <martin@ximian.com>
16091 * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
16093 * reflection.c (inflate_mono_method): Added `MonoObject *obj'
16094 argument and write it into the `reflection_info' field.
16097 (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
16098 (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
16100 2004-03-09 Jackson Harper <jackson@ximian.com>
16102 * char-conversions.h: use 8 bits for numeric data its all we need
16103 * icall.c: numeric data is only 8 bits now.
16105 2004-03-09 Martin Baulig <martin@ximian.com>
16107 * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
16109 * class.c (init_properties, init_events): Initialize the new
16112 * reflection.c (typebuilder_setup_properties): Likewise.
16113 (typebuilder_setup_events): Likewise.
16115 * reflection.h (MonoEventInfo): Replaced `parent with
16116 `declaring_type' and `reflected_type'.
16118 * icall.c (ves_icall_get_property_info): Distinguish between
16119 declaring and reflected type.
16120 (ves_icall_get_event_info): Likewise.
16122 2004-03-09 Martin Baulig <martin@ximian.com>
16124 * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
16125 (ves_icall_Type_GetField): Correctly set field->klass.
16127 2004-03-09 Zoltan Varga <vargaz@freemail.hu>
16129 * loader.h: Fix warning.
16131 2004-03-08 Miguel de Icaza <miguel@ximian.com>
16133 * loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
16134 library routine if present. Notice that it will still continue
16135 executing even if its missing, for those working on the Gtk#
16136 edition of Windows.Forms.
16138 * assembly.c (do_mono_assembly_open): If loading the
16139 System.Windows.Forms call mono_loader_wini_init.
16141 2004-03-04 Lluis Sanchez Gual <lluis@ximian.com>
16143 * class.h: Added MonoRemoteClass struct.
16144 * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
16145 function for MonoStrings.
16146 * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
16147 Added internal call for getting the proxy type.
16148 * marshal.c: Get the type of transparent proxies from its remote_class.
16149 Added methods that generate the IL for type checks and casts:
16150 mono_marshal_get_isinst, mono_marshal_get_castclass,
16151 mono_marshal_get_proxy_cancast.
16152 * marshal.h: Declaration of the previous new methods.
16153 * object.c: Added new moethods for creating and updating MonoRemoteClass
16154 instances: mono_remote_class, mono_upgrade_remote_class,
16155 * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
16156 * verify.c: FIx transparent_proxy_fields layout.
16157 * appdomain.c: Bump corlib version.
16159 2004-03-04 Jackson Harper <jackson@ximian.com>
16161 * icall.c: Add icall to access char conversion tables.
16162 * char-conversions.h: Character conversion tables.
16163 * Makefile.am: Add char-conversions.h private header file.
16165 2004-03-04 Zoltan Varga <vargaz@freemail.hu>
16167 * appdomain.c (unload_thread_main): Increase unloading timeout to
16168 10 sec as a temporary workaround for Nant problems.
16170 2004-02-29 Zoltan Varga <vargaz@freemail.hu>
16172 * gc.c: Add checks for GC_enable and GC_disable.
16174 * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
16175 (jaak@zd.com.pl). Fix memory corruption in String.Replace
16178 2004-02-27 Martin Baulig <martin@ximian.com>
16180 * reflection.c (mono_reflection_bind_generic_parameters): Take a
16181 `MonoReflectionType *' instead of a `MonoType *'.
16183 2004-02-26 Zoltan Varga <vargaz@freemail.hu>
16185 * gc.c (run_finalize): Avoid finalizing the object representing the
16187 (finalizer_thread): Fix warning.
16189 2004-02-25 Martin Baulig <martin@ximian.com>
16191 * class.c (_mono_class_get_instantiation_name): Added `int offset'
16192 argument for nested types.
16193 (mono_class_create_generic): Added support for nested generictypes.
16195 * class.h (MonoGenericInst): Added `MonoType *nested_in' and
16198 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
16200 * reflection.c (method_encode_signature): Increase the minimum
16201 value of `size' from 10 to 11.
16202 (mono_reflection_bind_generic_parameters): Take `int type_argc'
16203 and `MonoType **types' arguments instead of the `MonoArray
16204 *types'; added `MonoType *nested_in'. Recursively instantiate
16207 2004-02-23 Zoltan Varga <vargaz@freemail.hu>
16209 * appdomain.h (MonoDomain): Add preallocated null_reference_ex and
16210 stack_overflow_ex members which are used by exception handling.
16212 * appdomain.c (mono_runtime_init): Initialize the new members.
16214 * gc.c (mono_gc_enable): New helper function.
16215 * gc.c (mono_gc_disable): New helper function.
16217 2004-02-23 Martin Baulig <martin@ximian.com>
16219 * icall.c: I must have been really stupid - make it actually work
16222 2004-02-23 Martin Baulig <martin@ximian.com>
16224 * loader.c (method_from_memberref): Only inflate the method if
16225 it's in another klass.
16227 2004-02-23 Martin Baulig <martin@ximian.com>
16229 * class.c (mono_class_inflate_generic_type): Fixed two bugs.
16230 (mono_class_init): If we're a generic instance and an interface,
16231 compute `class->interface_id'; also create `class->interfaces'
16232 here and inflate them.
16234 * metadata.c (do_mono_metadata_parse_generic_inst): Compute
16236 (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
16238 * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
16240 2004-02-15 Miguel de Icaza <miguel@ximian.com>
16242 * reflection.c (method_encode_code): Improved the error message
16243 generated by the exception.
16245 2004-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16247 * icall.c: Martin did not do what he said in the ChangeLog for
16248 2004-02-18, but put back the changes for properties and events.
16249 Commenting those changes out again and adding comment to bug #54518.
16251 * process.c: removed warning.
16253 2004-02-20 Zoltan Varga <vargaz@freemail.hu>
16255 * marshal.c (emit_struct_conv): Print an error message instead of
16256 asserting when a type does not have the StructLayout attribute.
16258 2004-02-20 Martin Baulig <martin@ximian.com>
16260 * reflection.c (mono_type_get_object): Also use the cache for
16262 (mono_reflection_bind_generic_parameters): Always compute
16265 2004-02-20 Martin Baulig <martin@ximian.com>
16267 * class.h (MonoGenericMethod): Removed `klass'.
16269 * class.c (mono_class_inflate_generic_method): Added `MonoClass
16272 2004-02-20 Martin Baulig <martin@ximian.com>
16274 * reflection.c (method_encode_methodspec): Actually use the
16275 uninflated signature for the memberref.
16277 2004-02-20 Martin Baulig <martin@ximian.com>
16279 * class.h (MonoGenericMethod): Removed `declaring'.
16281 * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
16282 is NULL, compute it here.
16284 2004-02-20 Martin Baulig <martin@ximian.com>
16286 * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
16288 * metadata.c (mono_metadata_generic_inst_hash): New method.
16289 (mono_metadata_generic_inst_equal): New method.
16291 * reflection.c (mono_reflection_bind_generic_parameters): Use the
16292 `klass->image->generic_inst_cache' cache to avoid creating
16293 duplicate MonoGenericInst's.
16295 * class.c (mono_class_inflate_generic_type): Use the cache.
16297 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
16299 * object.c: fixed gc descriptor calculation for embedded valuetypes.
16301 2004-02-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16303 * icall.c: added Socket.WSAIoctl icall.
16305 * socket-io.[ch]: implemented
16306 ves_icall_System_Net_Sockets_Socket_WSAIoctl.
16308 2004-02-19 Atsushi Enomoto <atsushi@ximian.com>
16310 * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
16312 2004-02-18 Urs C Muff <umuff@quark.com>
16314 * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
16315 this work on PPC and other big-endian architectures.
16317 * debug-mono-symfile.h: Prepended the names of all the `guint32'
16318 fields with an underscore to make sure they're only accessed by
16319 the read32() macro.
16321 2004-02-18 Martin Baulig <martin@ximian.com>
16323 * icall.c: Put the klass->refclass changes back for methods and
16324 fields, but not for properties and events. We're currently not
16325 distinguishing between DeclaringType and ReflectedType for
16326 properties and events, that's what caused the regressions.
16328 2004-02-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16331 (mono_async_result_new): the handle can be NULL.
16333 * threadpool.c: Use an event instead of a semaphore, don't initialize
16334 it until needed. This saves quite a few semaphores from being created
16335 when using the threadpool.
16337 2004-02-18 Zoltan Varga <vargaz@freemail.hu>
16339 * object.c (mono_string_is_interned_lookup): Fix interning of long
16340 strings. Fixes #54473.
16342 * domain.c (ldstr_equal): Optimize if the two strings are equal.
16344 * icall.c: Revert the klass->refclass changes since they introduce
16345 regressions (bug #54518).
16347 2004-02-18 Martin Baulig <martin@ximian.com>
16349 * class.c (mono_class_init): If we're a generic instance and don't
16350 come from a TypeBuilder, inflate our members here.
16351 (mono_class_from_generic): Removed; just use `ginst->klass' instead.
16352 (mono_class_create_generic): New public method.
16353 (mono_class_initialize_generic): Removed.
16354 (get_instantiation_name): Renamed to
16355 _mono_class_get_instantiation_name() and made it public.
16357 2004-02-18 Martin Baulig <martin@ximian.com>
16359 * class.c (mono_class_inflate_generic_type): Clear the new
16360 instance's `nginst->klass' when inflating a generic instance.
16361 (mono_class_is_subclass_of): Added (basic) support for generic
16364 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
16366 * appdomain.h, domain.c: use a MonoCodeManager instead of a
16367 MonoMempool to hold compiled native code.
16369 2004-02-17 Martin Baulig <martin@ximian.com>
16371 * class.h (MonoDynamicGenericInst): Added `count_properties' and
16374 * reflection.c (mono_reflection_generic_inst_initialize): Added
16375 `MonoArray *properties' argument.
16377 * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.
16379 2004-02-17 Martin Baulig <martin@ximian.com>
16381 * icall.c (ves_icall_Type_GetFields): Renamed to
16382 ves_icall_Type_GetFields_internal() and added a
16383 `MonoReflectionType *rtype' argument; pass it to
16384 mono_field_get_object() to set the field's "reflected" type.
16385 (ves_icall_Type_GetConstructors): Likewise.
16386 (ves_icall_Type_GetEvents): Likewise.
16387 (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
16388 argument; pass it to mono_method_get_object() to set the method's
16391 2004-02-17 Martin Baulig <martin@ximian.com>
16393 * class.h (MonoDynamicGenericInst): New type.
16394 (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
16396 * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
16397 (ves_icall_MonoGenericInst_GetConstructors): New interncall.
16398 (ves_icall_MonoGenericInst_GetFields): New interncall.
16400 * class.c (mono_class_from_generic): Don't call
16401 mono_class_initialize_generic() if this is a dynamic instance;
16402 ie. it's being created from a TypeBuilder.
16403 Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
16404 `class->byval_arg.type'.
16406 * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
16407 to `inflate_method' and made static.
16408 (mono_reflection_inflate_field): Removed.
16409 (mono_reflection_generic_inst_initialize): New public method.
16411 * reflection.h (MonoReflectionGenericInst): Removed `methods',
16412 `ctors' and `fields'; added `initialized'.
16414 2004-02-14 Zoltan Varga <vargaz@freemail.hu>
16416 * debug-helpers.c (mono_method_full_name): Fix output for empty
16419 2004-02-12 Martin Baulig <martin@ximian.com>
16421 * class.h (MonoClassField): Added `MonoType *generic_type'.
16423 * reflection.c (mono_image_get_fieldref_token): Added support for
16424 instantiated generic types.
16425 (field_encode_inflated_field): Removed.
16426 (mono_image_get_inflated_field_token): Removed.
16427 (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
16429 * reflection.h (MonoReflectionInflatedField): Removed.
16431 2004-02-12 Martin Baulig <martin@ximian.com>
16433 * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
16434 `gen_method' field from MonoMethodHeader to MonoMethodSignature.
16436 * reflection.c (mono_image_get_methodspec_token): Take a
16437 `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
16438 (mono_image_create_token): Check whether we have a
16439 `method->signature->gen_method' and call
16440 mono_image_get_methodspec_token() if appropriate.
16441 (inflated_method_get_object): Removed.
16442 (mono_reflection_bind_generic_method_parameters): Return a
16443 `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
16444 (mono_reflection_inflate_method_or_ctor): Likewise.
16446 * reflection.h (MonoReflectionInflatedMethod): Removed.
16448 2004-02-12 Zoltan Varga <vargaz@freemail.hu>
16450 * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
16451 for custom valuetype marshalling.
16453 * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
16455 2004-02-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16457 * icall.c: fixed WSAGetLastError_internal name.
16459 2004-02-11 Zoltan Varga <vargaz@freemail.hu>
16461 * threads.c (mono_thread_attach): Allow this to be called multiple
16462 times for a thread.
16464 * threads.c (build_wait_tids): Do not wait for ourselves.
16466 * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the
16467 appdomain list is empty.
16469 * marshal.c (mono_marshal_get_native_wrapper): Do not free the
16470 memory returned by mono_string_builder_to_utf16, since it points into
16471 managed memory. Thanks to Bernie Solomon for noticing this.
16473 * icall.c: Add AppDomainSetup icalls.
16475 * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
16477 * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
16480 * reflection.c (reflection_methodbuilder_to_mono_method): Save
16481 custom attributes to the method_aux struct. Also fix array indexes etc.
16483 * loader.c (mono_method_get_param_names): Make dynamic case work again.
16485 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
16487 * icall.c, loader.c: icall cleanup: we save quite a bit of memory
16488 (both static and runtime) and reduce startup time.
16490 2004-02-10 Zoltan Varga <vargaz@freemail.hu>
16492 * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
16493 AsAny marshalling conversion instead of crashing.
16495 * marshal.c: Fix warnings.
16497 2004-02-09 Martin Baulig <martin@ximian.com>
16499 * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
16501 * reflection.h (MonoReflectionInflatedMethod): Removed the
16502 `declaring' field, it's now in the unmanaged MonoGenericMethod.
16504 * reflection.c (method_encode_methodspec): Removed the `method'
16505 argument; we get it from `gmethod->declaring'.
16506 (inflated_method_get_object): Removed the `declaring' argument.
16508 2004-02-09 Martin Baulig <martin@ximian.com>
16510 * class.h (MonoGenericMethod): New type.
16511 (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
16514 * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
16515 a `MonoGenericMethod *gen_method' one.
16517 * class.c (mono_class_inflate_generic_type): Take an additional
16518 `MonoGenericMethod * argument. This is only non-NULL if we're
16519 inflating types for a generic method.
16520 (mono_class_inflate_generic_signature): Renamed to
16521 inflate_generic_signature() and made static; take a
16522 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16523 (inflate_generic_header): Take a `MonoGenericMethod *' argument
16524 instead of a `MonoGenericInst *' one.
16525 (mono_class_inflate_generic_method): Likewise.
16527 * reflection.c (encode_generic_method_sig): Take a
16528 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16529 (method_encode_methodspec): Likewise.
16530 (inflated_method_get_object): Likewise.
16532 * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
16533 field with a `MonoGenericMethod *gmethod' one.
16535 2004-02-08 Bernie Solomon <bernard@ugsolutions.com>
16537 * class.h (mono_class_has_parent): add parens to expansion
16540 2004-02-08 Martin Baulig <martin@ximian.com>
16542 * image.h (MonoImage): Removed `generics_cache'.
16544 * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
16545 instead of a `MonoType *' argument; removed the `inflate_methods'
16546 argument. Don't inflate methods here.
16548 * loader.c (find_method): If it's a generic instance, call
16549 mono_class_init() on the `sclass->generic_inst->generic_type'.
16551 * metadata.c (mono_type_size): Make this work on uninitialized
16552 generic instances; call it on the `ginst->generic_type's class.
16554 * reflection.c (mono_reflection_bind_generic_parameters): Call
16555 mono_class_from_generic() to create the `ginst->klass'.
16557 2004-02-08 Martin Baulig <martin@ximian.com>
16559 * class.h (MonoClass): Changed type of `generic_inst' from
16560 `MonoType *' to `MonoGenericInst *'.
16562 2004-02-08 Martin Baulig <martin@ximian.com>
16564 * icall.c (ves_icall_Type_BindGenericParameters): Just call
16565 mono_type_get_object(), this is now creating a `MonoGenericInst'
16566 for MONO_TYPE_GENERICINST.
16567 (ves_icall_MonoGenericInst_GetParentType): Likewise.
16568 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
16570 * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
16571 instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
16572 (inflated_method_get_object): Added `MonoClass *refclass' argument.
16573 (mono_reflection_inflate_method_or_ctor): Correctly set declaring
16574 and reflected type.
16576 * reflection.h (MonoReflectionInflatedMethod): Removed
16577 `declaring_type' and `reflected_type'.
16579 2004-02-08 Martin Baulig <martin@ximian.com>
16581 * class.h (MonoGenericInst): Added `MonoType *parent' and
16582 `MonoType **ifaces'.
16584 * reflection.h (MonoReflectionGenericInst): Removed `klass',
16585 `parent' and `interfaces'.
16587 * reflection.c (mono_reflection_bind_generic_parameters): Take a
16588 `MonoType *' argument and return a `MonoType *'.
16591 (ves_icall_MonoGenericInst_GetParentType): New interncall.
16592 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
16594 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
16596 * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
16597 valuetype marshalling.
16599 2004-02-06 Martin Baulig <martin@ximian.com>
16602 (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
16603 (my_mono_class_from_generic_parameter): Likewise.
16605 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
16607 * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
16608 contents of the symbol files lazily.
16610 * object.h (MonoThread): Add 'name' and 'name_len' fields.
16612 * threads.h threads.c icall.c: New icalls for getting and setting the
16615 2004-02-05 Zoltan Varga <vargaz@freemail.hu>
16617 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID):
16618 Raise an exception when the domain is not found.
16620 2004-02-03 Martin Baulig <martin@ximian.com>
16622 * reflection.c (mono_image_get_methodspec_token): Use the
16623 uninflated signature; fixes gen-33.
16625 2004-02-02 Zoltan Varga <vargaz@freemail.hu>
16627 * gc.c threads.c: Make the finalizer thread a normal managed thread so
16628 the finalizer code can use thread functionality.
16630 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for
16631 the finalizer thread.
16633 * threads.c: Make some functions more robust.
16635 * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
16637 * metadata.h: Add new marshalling conventions.
16639 * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
16640 stringbuilder marshalling. Fixes #53700.
16642 * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
16644 * reflection.c (mono_image_get_type_info): Save declarative security
16647 * reflection.c (mono_image_get_field_info): Handle uninitialized
16648 unmanaged fields as well.
16650 * appdomain.c: Bump corlib version.
16652 2004-02-01 Martin Baulig <martin@ximian.com>
16654 * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
16655 method type arguments.
16657 2004-01-30 Duncan Mak <duncan@ximian.com>
16659 * marshal.h: Add prototype for
16660 "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
16662 "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
16665 2004-01-30 Zoltan Varga <vargaz@freemail.hu>
16667 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
16668 (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
16670 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
16672 * marshal.c (mono_marshal_get_native_wrapper): Add support for
16673 custom marshalling of valuetypes.
16675 * marshal.c: Fix some warnings.
16677 2004-01-29 Martin Baulig <martin@ximian.com>
16679 * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
16680 for generic method parameters.
16682 * reflection.c (method_encode_methodspec): Write the uninflated
16683 signature into the methodspec table.
16684 (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
16685 is always the uninflated method.
16686 (reflection_methodbuilder_to_mono_method): Copy the generic
16687 parameters from the MethodBuilder into `header->gen_params'.
16689 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
16691 * class.c (mono_class_from_generic_parameter): Fix warning.
16693 2004-01-27 Martin Baulig <martin@ximian.com>
16695 * class.c (mono_class_from_generic_parameter): Don't create
16696 `klass->methods' here.
16698 2004-01-26 Zoltan Varga <vargaz@freemail.hu>
16700 * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
16701 extension since it does not work with libraries named lib<FOO>.dll.so.
16703 2004-01-25 Martin Baulig <martin@ximian.com>
16705 * class.c (mono_class_inflate_generic_type): Added support for
16706 MONO_TYPE_GENERICINST.
16708 * reflection.c (mono_reflection_inflate_method_or_ctor): Also
16709 inflate methods on open constructed types.
16711 2004-01-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16713 * object.c: fire ProcessExit event in the root AppDomain after running
16714 Main. Fixes bug #53299.
16716 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
16718 * socket-io.c: include the new socket-wrappers.h header.
16719 Use the wrappers instead of the unix socket functions to make the code
16722 2004-01-23 Zoltan Varga <vargaz@freemail.hu>
16724 * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
16726 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16729 2004-01-22 Zoltan Varga <vargaz@freemail.hu>
16731 * reflection.c (mono_image_create_pefile): Handle the case when the
16732 entry point is not a MethodBuilder.
16734 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16735 field to ReflectionMethod since it is not allways a builder.
16737 * reflection.c (type_get_fully_qualified_name): New helper function to
16738 return the fully qualified name of a type.
16740 * reflection.c (encode_marshal_blob): Always emit the fully qualified
16741 type name for custom marshallers.
16743 * reflection.c (mono_marshal_spec_from_builder): Ditto.
16745 * class.c (mono_class_setup_vtable): If a parent class already
16746 implements an interface, use the implementing methods from that class.
16749 2004-01-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16751 * threadpool.c: just return instead of ExitThread to allow for thread
16754 2004-01-21 Zoltan Varga <vargaz@freemail.hu>
16756 * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
16757 when closing resource modules.
16759 * reflection.c (mono_image_create_pefile): Handle the case when the
16760 entry point is not a MethodBuilder.
16762 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16763 field to ReflectionMethod since it is not allways a builder.
16765 2004-01-20 Bernie Solomon <bernard@ugsolutions.com>
16767 * marshal.c (mono_marshal_get_managed_wrapper):
16768 mono_marshal_alloc takes native int so CONV_I
16769 the arg for 64bits.
16771 2004-01-20 Zoltan Varga <vargaz@freemail.hu>
16773 * reflection.c (fixup_cattrs): New function to fixup the methoddef
16774 tokens in the cattr table. Fixes #53108.
16776 2004-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16778 * loader.c: don't trim ".dll" before looking up in the config file.
16779 Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
16781 2004-01-19 Zoltan Varga <vargaz@freemail.hu>
16783 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16784 Return the module which contains the resource as well.
16785 (ves_icall_System_Reflection_Module_Close): New icall.
16787 * appdomain.c: Bump corlib version number.
16789 * image.c (mono_image_addref): New public function.
16791 * assembly.c: Call mono_image_addref.
16793 * reflection.c (mono_module_get_object): Increase reference count of
16796 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16799 * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
16800 Applied patch from Bernie Solomon <bernard@ugsolutions.com>. Throw
16801 proper exceptions on DllImport problems.
16803 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
16805 * class.c, metadata.c: eliminate CSIZE macro.
16807 2004-01-19 Lluis Sanchez Gual <lluis@ximian.com>
16809 * icall.c: Added ves_icall_type_IsInstanceOf internal call.
16810 * object.h: Added async_callback field in MonoAsyncResult.
16811 * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
16812 * verify.c: Added async_callback in MonoAsyncResult layout.
16814 2004-01-17 Zoltan Varga <vargaz@freemail.hu>
16816 * reflection.c (mono_reflection_get_custom_attrs): Add support
16819 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
16821 * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder
16823 (mono_marshal_method_from_wrapper): Add null pointer check.
16825 2004-01-16 Martin Baulig <martin@ximian.com>
16827 * debug-mono-symfile.h: Set version number to 36 and reflect
16828 latest symbol writer changes.
16830 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
16832 * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
16833 multi-dimensional arrays.
16834 (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
16835 (mono_class_from_mono_type): Use bounded_array_class_get.
16837 * class.c (mono_bounded_array_class_get): New function which takes
16838 a 'bounded' bool argument to distinguish vectors from one dimensional
16841 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call
16842 bounded_array_class_get if the array has bounds.
16844 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
16845 Search modules loaded using AssemblyBuilder:AddModule as well.
16847 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16849 * appdomain.c: increased corlib version.
16850 * filewatcher.c: removed g_print.
16852 (get_property_info): only allocate what is actually requested.
16853 (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
16855 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16857 * Makefile.am: added filewatcher.[ch]
16858 * filewatcher.[ch]: FileSystemWatcher runtime support.
16859 * icall.c: added new FSW icalls.
16861 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
16863 * string-icalls.c: fix stringbuilder regression as suggested by
16864 Iain McCoy <iain@mccoy.id.au>.
16866 2004-01-13 Zoltan Varga <vargaz@freemail.hu>
16868 * process.c (process_read_stringtable_block): Recognize '007f' as
16869 a language neutral stringtable block.
16871 2004-01-12 Patrik Torstensson
16873 * object.h (MonoStringBuilder) : Changed layout to support our
16874 new stringbuilder class.
16875 * marshal.c: Change marshalling to support the new layout of
16877 * appdomain.c: increased version number because new layout of
16880 2004-01-12 Zoltan Varga <vargaz@freemail.hu>
16882 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
16883 assembly name as an string instead of an AssemblyName, since it is
16884 easier to extract info from it.
16886 * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
16887 the culture subdirectories too. Fixes #52231.
16889 2004-01-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16891 * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
16892 It takes 2 new parameters with an optional name for the method to look
16893 for and case ignoring info.
16895 * threadpool.c: removed unused variable.
16897 2004-01-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16899 * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
16900 It takes 2 new parameters with an optional name for the property to look
16901 for and case ignoring info.
16904 2004-01-09 Zoltan Varga <vargaz@freemail.hu>
16906 * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
16909 2004-01-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16912 * assembly.c: escape the uri before passing it to g_filename_from_uri.
16915 2004-01-07 Zoltan Varga <vargaz@freemail.hu>
16917 * reflection.c: Add support for more than one unmanaged resource.
16919 * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
16920 in field->def_value, as done in all other cases.
16922 * reflection.c (mono_reflection_get_custom_attrs): Add support for
16925 * reflection.c (mono_reflection_create_runtime_class): Remove
16926 errorneous assignment to klass->element_class, since it is already
16927 done in mono_reflection_setup_internal_class.
16929 2004-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16931 * gc.c: added missing LeaveCriticalSection.
16932 * icall.c: indented a couple of lines.
16933 * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
16934 if we call EndInvoke inside a callback. Fixes bug #52601.
16936 2004-01-07 Martin Baulig <martin@ximian.com>
16938 * mono-debug-debugger.h
16939 (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
16941 2004-01-06 Miguel de Icaza <miguel@ximian.com>
16943 * appdomain.c: Use messages in NotImplementedException.
16945 * exception.c (mono_get_exception_not_implemented): Now this takes
16946 a message argument.
16948 * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
16949 exception instead of g_asserting an aborting when something is not
16952 Add some inline docs.
16954 2004-01-05 Zoltan Varga <vargaz@freemail.hu>
16956 * reflection.h: Update after changes to object layout.
16958 * reflection.c: Implement saving of unmanaged aka win32 resources.
16960 * appdomain.c: Bump version number.
16962 * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID):
16963 Handle missing domains gracefully.
16965 2004-01-05 Atsushi Enomoto <atsushi@ximian.com>
16967 * file-io.c : On Windows, there are much more invalid_path_chars.
16969 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
16971 * class.h, object.c: prepare for GetType () speedup.
16973 2003-12-24 Atsushi Enomoto <atsushi@ximian.com>
16975 * profiler.c: workaround for --profile null reference exception on
16976 cygwin. Patch by Patrik Torstensson.
16978 2003-12-22 Bernie Solomon <bernard@ugsolutions.com>
16980 * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
16981 make work for unaligned access.
16983 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
16985 * class.c: small cleanup (class->fields [i] -> field).
16986 * image.c: check address of metadata is valid.
16988 2003-12-22 Zoltan Varga <vargaz@freemail.hu>
16990 * assembly.h assembly.c (mono_assembly_loaded): New public function to
16991 search the list of loaded assemblies.
16993 * reflection.c (mono_reflection_type_from_name): Use
16994 mono_assembly_loaded instead of mono_image_loaded.
16996 * reflection.c: Fix warnings.
16998 2003-12-20 Zoltan Varga <vargaz@freemail.hu>
17000 * image.h (MonoImage): Add a new 'dynamic' field to denote that the image
17001 is dynamic. This is needed since an assembly can contain both dynamic and
17002 non-dynamic images.
17004 * class.c loader.c metadata.c object.c: Use image->dynamic instead of
17007 * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
17009 * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
17010 to store modules loaded using AddModule.
17012 * reflection.c (mono_image_fill_file_table): Generalize this so it works
17015 * reflection.c (mono_image_fill_export_table_from_class): New helper function.
17017 * reflection.c (mono_image_fill_export_table_from_module): New function to
17018 fill out the EXPORTEDTYPES table from a module.
17020 * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
17021 into a separate function. Also handle loaded non-dynamic modules.
17023 * reflection.c (mono_image_basic_init): Fix memory allocation.
17025 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17027 * assembly.c (mono_assembly_load_references): Make this public.
17029 2003-12-19 Martin Baulig <martin@ximian.com>
17031 * class.c (mono_class_initialize_generic): Made this static, take
17032 a `MonoGenericInst *' instead of a `MonoClass *'.
17033 (mono_class_from_generic): Call mono_class_initialize_generic()
17034 unless we're already initialized or being called from
17035 do_mono_metadata_parse_generic_inst().
17037 * class.h (MonoGenericInst): Added `initialized' and
17038 `init_pending' flags.
17040 * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
17041 `mono_class_init (gklass)' or mono_class_initialize_generic()
17042 here; set `generic_inst->init_pending' while parsing the
17045 2003-12-19 Bernie Solomon <bernard@ugsolutions.com>
17047 * locales.c: include string.h for memxxx prototypes
17049 2003-12-19 Zoltan Varga <vargaz@freemail.hu>
17051 * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
17052 constructor when accessing literal fields.
17054 2003-12-17 Zoltan Varga <vargaz@freemail.hu>
17056 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17058 * reflection.c (assembly_add_resource_manifest): New function to fill
17059 the MANIFESTRESOURCE table.
17061 * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
17063 * reflection.h: Update to changes in class layout.
17065 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted):
17066 Reenable call to mono_runtime_is_shutting_down ().
17068 * appdomain.c (mono_runtime_is_shutting_down): New helper function to
17069 determine if the runtime is shutting down.
17071 2003-12-16 Jackson Harper <jackson@ximian.com>
17073 * icall.c: comment out call to mono_runtime_is_shutting_down to
17076 2003-12-16 Zoltan Varga <vargaz@freemail.hu>
17078 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
17079 (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
17081 2003-12-15 Bernie Solomon <bernard@ugsolutions.com>
17083 * reflection.c: move definition of swap_with_size
17084 to before its first call
17086 2003-12-15 Zoltan Varga <vargaz@freemail.hu>
17088 * appdomain.c (mono_runtime_is_shutting_down): New public function.
17090 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
17093 * object.c: Fix warnings.
17095 * icall.c (ves_icall_Type_Get...): Only consider inherited static
17096 members if FlattenHierarchy is set.
17098 * reflection.c (mono_image_add_decl_security): New function to emit
17099 declarative security.
17101 * reflection.h reflection.c: Add support for declarative security.
17103 * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17105 2003-12-13 Zoltan Varga <vargaz@freemail.hu>
17107 appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17109 * appdomain.c verify.c: Moved corlib version checking into its own
17110 function in appdomain.c since it needs to create vtables etc.
17112 2003-12-13 Patrik Torstensson <p@rxc.se>
17114 * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this
17115 instead of unwrapped server.
17117 2003-12-12 Zoltan Varga <vargaz@freemail.hu>
17119 * verify.c (check_corlib): Fix field index.
17121 2003-12-10 Zoltan Varga <vargaz@freemail.hu>
17123 * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
17126 2003-12-10 Bernie Solomon <bernard@ugsolutions.com>
17128 * process.c: (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
17129 ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
17130 cope with sizeof(size_t) != sizeof(guint32).
17132 2003-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17134 * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
17135 in case of failure.
17137 2003-12-10 Mark Crichton <crichton@gimp.org>
17139 * icall.c: removed the GetNonZeroBytes. We now handle this case
17142 * rand.c, rand.h: Same here. Also cleaned up the clode slightly.
17144 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
17146 * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
17149 2003-12-09 Zoltan Varga <vargaz@freemail.hu>
17151 * verify.c (check_corlib): Handle the case when the version field is
17152 initialized by a static constructor.
17154 2003-12-08 Patrik Torstensson <p@rxc.se>
17156 * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
17158 2003-12-08 Martin Baulig <martin@ximian.com>
17160 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
17161 a MonoReflectionGenericParameter, also take the parameter index
17162 and name as arguments.
17163 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
17164 (ves_icall_MonoGenericParam_initialize): New interncall.
17165 (ves_icall_Type_make_byref_type): New interncall.
17167 * reflection.h (MonoReflectionGenericParam): Derive from
17168 MonoReflectionType, not just from MonoObject. Added `refobj' and
17171 * reflection.c (mono_reflection_define_generic_parameter): Create
17172 and return a new MonoReflectionGenericParam; don't initialize the
17174 (mono_reflection_initialize_generic_parameter): New public method;
17175 initializes the constraints and creates the `param->pklass'.
17177 2003-12-08 Zoltan Varga <vargaz@freemail.hu>
17179 * reflection.h reflection.c: Use the new fields 'num_types',
17180 'num_fields' and 'num_methods' to track the number of types etc.
17182 * verify.c (check_corlib): Check corlib version number.
17184 2003-12-07 Zoltan Varga <vargaz@freemail.hu>
17186 * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
17187 function works on all methods.
17189 2003-12-07 Lluis Sanchez Gual <lluis@ximian.com>
17191 * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
17192 * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
17193 the custom_type_info flag of the transparent proxy.
17194 * object.c: Added method mono_object_isinst_mbyref for casting mbyref
17195 objects that supports IRemotingTypeInfo.
17196 * object.h: Added custom_type_info field in transparent proxy.
17198 2003-12-06 Martin Baulig <martin@ximian.com>
17200 * class.c (mono_class_create_from_generic): Removed.
17201 (mono_class_from_generic): Check `ginst->klass' before doing
17202 anything else. This is important to fully support "recursive"
17205 * metadata.c (do_mono_metadata_parse_generic_inst): Create an
17206 empty `generic_inst->klass' before doing anything else.
17208 2003-12-06 Dick Porter <dick@ximian.com>
17213 * locales.c: Use C structs to access class fields. Don't do a
17214 conversion between MonoString and UChar because both are
17215 platform-endian UTF-16. Compare now takes startindex and count
17216 parameters. Add a char overload for IndexOf. Speed up the
17217 invariant string IndexOf.
17219 2003-12-05 Zoltan Varga <vargaz@freemail.hu>
17221 * Makefile.am (monosn_LDADD): Fix parallel build.
17223 2003-12-04 Martin Baulig <martin@ximian.com>
17226 (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17227 (ves_icall_Type_make_array_type): New interncall.
17229 2003-12-04 Martin Baulig <martin@ximian.com>
17231 * locales.c: also change it in the !HAVE_ICU case.
17233 2003-12-04 Dick Porter <dick@ximian.com>
17236 * locales.c: construct_compareinfo is now in CompareInfo, not
17239 2003-12-04 Zoltan Varga <vargaz@freemail.hu>
17241 * image.c (mono_image_load_file_for_image): Cache loaded images in the
17242 image->files array.
17244 * image.c (load_class_name): Load class names from the EXPORTEDTYPES
17247 * assembly.c (mono_assembly_load_references): Only load references
17250 * class.c (mono_class_from_name): Avoid linear search of the
17251 EXPORTEDTYPE table.
17253 * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
17255 2003-12-03 Zoltan Varga <vargaz@freemail.hu>
17257 * image.h (MonoImage): Add 'field_cache' field.
17259 * loader.c (mono_field_from_token): Cache field lookups.
17261 * reflection.c (mono_module_get_object): Fix name property.
17263 * icall.c (ves_icall_get_enum_info): Update after changes to
17264 mono_metadata_get_constant_index ().
17266 * icall.c: Get rid of get_type_info icall, use a separate icall for
17267 each type property to avoid needless memory allocations. Fixes #51514.
17269 * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
17270 to avoid needless binary searches.
17272 * class.c (class_compute_field_layout): Move the initialization of
17273 field->def_value to mono_class_vtable ().
17275 * class.c (mono_class_layout_fields): Enable GC aware auto layout for
17278 * object.c (mono_object_allocate): Make it inline.
17280 * object.c (mono_object_allocate_spec): Make it inline.
17282 2003-12-02 Dick Porter <dick@ximian.com>
17284 * locales.c (create_NumberFormat): NumberFormatInfo construction.
17285 Patch by Mohammad DAMT (mdamt@cdl2000.com).
17287 2003-12-01 Dick Porter <dick@ximian.com>
17289 * threads.c: Fix signature and call in CreateMutex and
17292 2003-12-01 Dick Porter <dick@ximian.com>
17295 * locales.c: Implement string compares and searching
17297 * object.h: Add extra Thread field
17299 2003-11-30 Zoltan Varga <vargaz@freemail.hu>
17301 * reflection.c (fixup_method): Add support for MonoCMethod.
17303 2003-11-28 Zoltan Varga <vargaz@freemail.hu>
17305 * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
17307 * reflection.c (assembly_name_to_aname): Allow extra characters in
17308 assembly names. Fixes #51468.
17310 2003-11-26 Zoltan Varga <vargaz@freemail.hu>
17312 * exception.c (mono_exception_from_name_domain): New helper function.
17314 * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
17315 exception object in the correct domain.
17317 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix
17318 formatting + make a copy a the input data.
17320 * loader.c (mono_get_method_from_token): Methods which contain
17321 native code do not have entries in the ImplMap.
17323 (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
17324 Thanks to Gonzalo for spotting this.
17326 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
17327 patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
17329 * assembly.h (mono_assembly_load_from): Split the second part of
17330 assembly loading into a new public function.
17332 * exception.h (mono_get_exception_bad_image_format): New function.
17334 2003-11-24 Zoltan Varga <vargaz@freemail.hu>
17336 icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
17337 Enumerate all modules inside a dynamic assembly. Fixes #51293.
17339 * icall.c: Add new icall for creating dynamic methods.
17341 * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
17343 * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
17345 * reflection.c (mono_reflection_create_dynamic_method): New icall to
17346 create a dynamic method.
17348 * reflection.c (resolve_object): New helper function.
17350 * reflection.c: Generalize ReflectionMethodBuilder and the functions
17351 which manipulate it so they can also work on dynamic methods.
17353 * reflection.c (reflection_method_builder_to_mono_method): Avoid
17354 creating the MonoReflectionMethodAux structure if it is not needed.
17356 * reflection.h verify.c: Update after changes to object layout.
17358 * reflection.c (method_builder_encode_signature): Fix compilation on
17361 2003-11-21 Lluis Sanchez Gual <lluis@ximian.com>
17363 * appdomain.h: Added support for context static fields. Added static_data
17364 field to MonoAppContext and renamed thread_static_fields to a more
17365 generic special_static_fields in MonoAppDomain, since it can now contain
17366 context static fields.
17367 * domain.c: Updated hashtable name.
17368 * object.c: Replaced field_is_thread_static() for a more generic
17369 field_is_special_static() which also checks for context static attribute.
17370 In mono_class_vtable(), added support for static context fields.
17371 * threads.c: Changed methods that manage thread static fields to more
17372 generic methods so they can be reused both for thread and context static
17374 * threads.h: Declared some new methods.
17376 2003-11-21 Zoltan Varga <vargaz@freemail.hu>
17378 * reflection.h: Update after changes to the managed types.
17380 * reflection.c (encode_custom_modifiers): New helper function.
17382 * reflection.c (method_encode_signature): Emit custom modifiers.
17384 * reflection.c (field_encode_signature): Emit custom modifiers.
17386 2003-11-18 Zoltan Varga <vargaz@freemail.hu>
17388 * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
17390 * icall.c (ves_icall_System_ValueType_Equals): New optimized
17393 * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New
17396 * object.c (mono_field_get_value_object): New function.
17398 * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
17401 2003-11-17 Zoltan Varga <vargaz@freemail.hu>
17403 * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
17404 return a preallocated out-of-memory exception instance.
17406 * object.c (out_of_memory): Use the new function.
17408 * metadata.c (mono_metadata_parse_type): Handle the case when the byref
17409 flag is before the custom modifiers. Fixes #49802.
17411 2003-11-16 Martin Baulig <martin@ximian.com>
17413 * class.c (mono_class_is_open_constructed_type): Implemented the
17414 MONO_TYPE_GENERICINST case.
17416 2003-11-16 Zoltan Varga <vargaz@freemail.hu>
17418 * assembly.c (mono_assembly_fill_assembly_name): New function to
17419 fill out the MonoAssemblyName structure.
17420 (mono_assembly_open): Use the new function.
17422 * icall.c (fill_reflection_assembly_name): New helper function.
17424 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
17427 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
17429 2003-11-15 Martin Baulig <martin@ximian.com>
17431 * class.c (mono_class_is_open_constructed_type): New public
17432 function; checks whether a type is an open constructed type,
17433 ie. whether it still contains type parameters.
17434 (mono_class_inflate_generic_type): If we're a type parameter and
17435 the inflated type is also a MONO_TYPE_(M)VAR, return the original
17438 * class.h (MonoGenericInst): Added `guint32 is_open'.
17440 * loader.c (method_from_methodspec): Check whether we're an open
17441 or closed constructed type and set `ginst->is_open'.
17443 * reflection.c (mono_reflection_bind_generic_parameters): Check
17444 whether we're an open or closed constructed type and set
17446 (mono_reflection_inflate_method_or_ctor): Don't inflate methods
17447 from open constructed types.
17449 2003-11-15 Martin Baulig <martin@ximian.com>
17451 * reflection.c (mono_reflection_bind_generic_parameters): If we're
17452 a generic instance (instead of a generic type declaration) with
17453 unbound generic parameters, bind them to our actual types.
17455 2003-11-14 Martin Baulig <martin@ximian.com>
17457 * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
17459 * reflection.c (mono_reflection_bind_generic_parameters): If we're
17460 an interface type, populate `res->interfaces' with instantiated
17461 versions of all the interfaces we inherit.
17463 2003-11-13 Aleksey Demakov <avd@openlinksw.com>
17465 * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
17466 when MONO_PATH is set but doesn't contain the install dir.
17468 2003-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17471 (ves_icall_Type_GetInterfaces): don't return an interface twice when
17472 it's also implemented in base classes. Fixes bug #50927.
17474 2003-11-13 Zoltan Varga <vargaz@freemail.hu>
17476 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
17477 if this method is called from a finalizer. Fixes #50913.
17479 2003-11-12 Miguel de Icaza <miguel@ximian.com>
17481 * threads.c: Implement VolatileRead/VolatileWrite
17483 * icall.c: Add new icalls for VolatileRead/VolatileWrite
17485 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
17487 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied
17488 patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
17491 * assembly.c (mono_assembly_open): Fix windows build. Applied patch
17492 from Peter Ross (pro@missioncriticalit.com).
17494 2003-11-12 Lluis Sanchez Gual <lluis@ximian.com>
17496 * icall.c: Added internal call for System.Environment::GetMachineConfigPath
17498 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
17500 * assembly.c (mono_assembly_load_references): Disable check because it
17501 triggers on older corlibs which lots of people have.
17503 2003-11-12 Jackson Harper <jackson@ximian.com>
17505 * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
17506 load corlib.dll if mscorlib.dll is not found.
17507 * assembly.h: Remove corlib name define.
17510 * image.c: Change corlib name to mscorlib.
17512 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
17514 * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
17516 2003-11-11 Miguel de Icaza <miguel@ximian.com>
17518 * appdomain.h: Added loader_optimization here to sync with the C#
17519 code, and add disallow_binding_redirects field.
17521 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
17523 * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
17525 * reflection.c (mono_image_build_metadata): Fix crash on modules
17528 * reflection.h (MonoMethodInfo): Track changes to the managed structure.
17530 * icall.c (ves_icall_get_method_info): Return callingConvention as
17533 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add
17534 namespaces from the EXPORTEDTYPE table as well.
17536 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
17537 from all modules inside the assembly.
17539 2003-11-11 Martin Baulig <martin@ximian.com>
17541 * reflection.c (mono_reflection_bind_generic_parameters): Make
17542 this work for interfaces.
17544 2003-11-11 Martin Baulig <martin@ximian.com>
17546 * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
17548 2003-11-11 Martin Baulig <martin@ximian.com>
17550 * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
17551 "MonoInflatedMethod" and "MonoInflatedCtor".
17553 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
17555 * reflection.c (resolution_scope_from_image): Use the assembly table
17556 from the manifest module, since other modules don't have it.
17558 * debug-helpers.c (mono_type_full_name): New helper function.
17560 * image.h (MonoAssembly): Change 'dynamic' to a boolean.
17562 * image.c (mono_image_load_file_for_image): New public function which
17563 is a replacement for the load_file_for_image in class.c.
17565 * assembly.c (mono_assembly_load_module): A wrapper for the function
17566 above which does assembly association and reference loading too.
17568 * class.c (mono_class_from_name): Call mono_assembly_load_module.
17570 2003-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17572 * appdomain.c: not all of the attributes for the full assembly name
17573 are required and the order doesn't matter. Fixes bug #50787.
17575 2003-11-10 Dick Porter <dick@ximian.com>
17577 * locales.c: Use platform-endian UTF16
17579 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
17581 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17583 2003-11-10 Martin Baulig <martin@ximian.com>
17586 (mono_metadata_load_generic_params): Make this actually work.
17588 * reflection.c (mono_reflection_bind_generic_parameters): If our
17589 parent is a generic instance, pass all the `types' to it, no
17590 matter whether it has the same number of type parameters or not.
17592 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
17594 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17596 * assembly.c (mono_assembly_load_references): Move the image<->assembly
17597 assignment code to this function so it gets called recursively for all
17600 * image.c (load_modules): Remove the assembly assignment since it is
17601 now done by mono_assembly_load_references.
17603 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
17604 Add 'module' argument.
17605 (mono_module_get_types): New helper function.
17606 (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
17608 2003-11-08 Martin Baulig <martin@ximian.com>
17610 * class.c (mono_class_inflate_generic_method): Interface method
17611 don't have a header.
17613 * reflection.c (mono_image_get_methodspec_token): Take an
17614 additional `MonoGenericInst *' argument instead of reading it from
17615 the header; this is necessary to support interfaces.
17616 (mono_image_create_token): Pass the `MonoGenericInst *' from the
17617 MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
17618 (inflated_method_get_object): Take an additional `MonoGenericInst *'
17621 * reflection.h (MonoReflectionInflatedMethod): Added
17622 `MonoGenericInst *ginst'.
17624 2003-11-07 Zoltan Varga <vargaz@freemail.hu>
17626 * gc.c (mono_domain_finalize): Fix compilation for no GC case.
17628 2003-11-06 Zoltan Varga <zovarga@ws-zovarga2>
17630 * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
17632 2003-11-06 Zoltan Varga <vargaz@freemail.hu>
17635 (reflection_methodbuilder_from_method_builder):
17636 (reflection_methodbuilder_from_ctor_builder): New helper functions to
17637 initialize a ReflectionMethodBuilder structure.
17638 (mono_image_get_methodbuilder_token):
17639 (mono_image_get_ctorbuilder_token): New functions to emit memberref
17640 tokens which point to types in another module inside the same assembly.
17642 * reflection.c: Use the new helper functions.
17644 * reflection.c (mono_image_basic_init): Initialize basedir and culture.
17646 * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image
17647 instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
17649 * reflection.c (resolution_scope_from_image): Emit a moduleref if
17652 * reflection.c (mono_image_build_metadata): Emit metadata only for the
17653 current module. Emit the manifest only for the main module.
17655 * reflection.c (mono_image_create_token): Add assertion when a
17656 memberref needs to be created.
17658 * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
17660 * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a
17661 larger buffer for the custom attribute blob. Fixes #50637.
17663 2003-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17665 * threadpool.c: notify listener on async processing handles after
17666 invoking the async callback. Thanks to Zoltan.
17668 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
17670 * reflection.c (create_dynamic_mono_image): Call mono_image_init to
17671 avoid code duplication.
17673 * reflection.h (MonoDynamicImage): New type which is currently unused,
17674 but will be used through the ref.emit code in place of
17675 MonoDynamicAssembly.
17677 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17680 * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
17681 a MonoDynamicImage instead of just a MonoImage.
17683 * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
17684 icalls to ModuleBuilder but keep their semantics, so they will work
17685 with moduleb->assemblyb. This will change later.
17687 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
17689 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17692 * reflection.c (mono_image_build_metadata): Avoid creation of a default
17693 main module, since it is now done by the managed code.
17695 2003-11-03 Martin Baulig <martin@ximian.com>
17697 * reflection.c (mono_reflection_inflate_method_or_ctor): Set
17698 `ginst->klass' here.
17699 (method_encode_methodspec): Don't use the `ginst->generic_method's
17700 klass if it's a generic instance, use `ginst->klass' in this case.
17702 2003-11-03 Martin Baulig <martin@ximian.com>
17704 * reflection.c (mono_image_get_generic_method_param_info):
17705 Removed, use mono_image_get_generic_param_info() instead.
17706 (mono_image_get_type_info): Write the GenericParam table before
17707 the Method table. This is neccessary because in the GenericParam
17708 table, type parameters of the class (ie. '!0' etc.) must come
17709 before the ones from its generic methods (ie. '!!0' etc).
17711 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
17713 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
17715 2003-11-02 Martin Baulig <martin@ximian.com>
17717 * reflection.c (create_generic_typespec): Take a
17718 `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
17719 the generic parameters from it.
17721 2003-11-02 Martin Baulig <martin@ximian.com>
17723 * reflection.c (fieldref_encode_signature): Take a `MonoType *'
17724 instead of a `MonoClassField *' since we just need the type.
17725 (create_generic_typespec): New static function. Creates a
17726 TypeSpec token for a generic type declaration.
17727 (mono_image_get_generic_field_token): New static function.
17728 (mono_image_create_token): If we're a FieldBuilder in a generic
17729 type declaration, call mono_image_get_generic_field_token() to get
17732 2003-11-02 Martin Baulig <martin@ximian.com>
17735 (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
17736 `MonoReflectionGenericInst *declaring_type' and
17737 `MonoReflectionGenericInst *reflected_type' fields.
17739 * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
17740 `MonoReflectionGenericInst *declaring_type' and a
17741 `MonoReflectionGenericInst *reflected_type' argument instead of a
17742 single `MonoReflectionGenericInst *type' one. Set
17743 `res->declaring_type' and `res->reflected_type' from them.
17744 (mono_reflection_inflate_field): Likewise.
17746 2003-11-02 Martin Baulig <martin@ximian.com>
17748 * class.c (mono_class_setup_vtable): Don't store generic methods
17751 2003-11-02 Martin Baulig <martin@ximian.com>
17753 * reflection.h (MonoReflectionGenericInst): Added
17754 `MonoReflectionType *declaring_type'.
17756 * reflection.c (mono_reflection_bind_generic_parameters): Use
17757 `if (tb->parent)' instead of `klass->parent'.
17759 2003-11-01 Zoltan Varga <vargaz@freemail.hu>
17761 * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
17762 with an empty ASSEMBLY table.
17764 * reflection.c (mono_image_build_metadata): Avoid using the same loop
17765 variable in the inner and outer loops.
17767 2003-10-31 Zoltan Varga <vargaz@freemail.hu>
17769 * metadata.h (mono_metadata_make_token): Put parentheses around macro
17772 * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
17774 * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain
17775 icalls. Instead, do everything in managed code. This is needed since
17776 it is hard to restore the original domain etc. in unmanaged code in the
17777 presence of undeniable exceptions.
17779 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef):
17780 New icalls to push and pop appdomain refs.
17782 2003-10-31 Martin Baulig <martin@ximian.com>
17784 * class.c (inflate_generic_type): Renamed to
17785 mono_class_inflate_generic_type() and made it public.
17787 * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
17790 * loader.c (mono_field_from_memberref): Also set the retklass for
17793 * fielder.c (mono_image_get_inflated_field_token): New static
17794 method; creates a metadata token for an inflated field.
17795 (mono_image_create_token, fixup_method): Added support for
17796 "MonoInflatedField".
17797 (fieldbuilder_to_mono_class_field): New static function.
17798 (mono_reflection_inflate_field): New public function.
17801 (MonoReflectionGenericInst): Added `MonoArray *fields'.
17802 (MonoReflectionInflatedField): New typedef.
17804 2003-10-30 Bernie Solomon <bernard@ugsolutions.com>
17806 * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
17807 for Solaris and other platforms without s6_addr16
17809 2003-10-30 Martin Baulig <martin@ximian.com>
17811 * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
17812 argument instead of two.
17813 (mono_class_inflate_generic_signature): Likewise.
17814 (inflate_generic_header): Likewise.
17815 (mono_class_inflate_generic_method): Likewise. In addition, if
17816 `ginst->klass' is set, it becomes the new `method->klass'.
17818 * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
17821 * reflection.c (encode_generic_method_sig): Write a 0xa as the
17822 first byte. [FIXME]
17823 (method_encode_methodspec): If we have generic parameters, create
17824 a MethodSpec instead of a MethodRef.
17825 (fixup_method): Added support for "MonoInflatedMethod" and
17826 "MonoInflatedCtor".
17827 (mono_image_create_token): Added support for "MonoInflatedMethod"
17828 and "MonoInflatedCtor".
17829 (inflated_method_get_object): New static function; returns a
17830 managed "System.Reflection.MonoInflatedMethod" object.
17831 (mono_reflection_bind_generic_method_parameters): Return a
17832 `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
17833 (mono_reflection_inflate_method_or_ctor): Likewise.
17834 (mono_image_get_generic_method_param_info): Initialize unused
17836 (mono_image_get_generic_param_info): Likewise.
17838 * reflection.h (MonoReflectionInflatedMethod): New public
17839 typedef. Corresponds to the managed "S.R.MonoInflatedMethod" and
17840 "S.R.MonoInflatedCtor" classes.
17842 * loader.c (method_from_memberref): If we're a TypeSpec and it
17843 resolves to a generic instance, inflate the method.
17845 2003-10-28 Dick Porter <dick@ximian.com>
17847 * object.c (mono_runtime_run_main): Convert command-line arguments
17848 into utf8, falling back to the user's locale encoding to do so.
17850 2003-10-27 Zoltan Varga <vargaz@freemail.hu>
17852 * loader.c (mono_get_method_from_token): Avoid looking up the icalls
17855 * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
17857 * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
17858 up icalls at method definition time. Partially fixes #33569.
17860 2003-10-25 Zoltan Varga <vargaz@freemail.hu>
17862 * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
17863 marshalling of arrays. Fixes #50116.
17865 * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
17867 * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
17868 points to a vtable in the dying appdomain.
17870 * appdomain.c (mono_domain_unload): Move the notification of OnUnload
17871 listeners into unmanaged code inside the lock.
17873 * object.c (mono_class_vtable): Turn off typed allocation in non-root
17874 domains and add some comments.
17876 2003-10-25 Martin Baulig <martin@ximian.com>
17878 * class.h (MonoGenericInst): Added `MonoClass *klass' field.
17880 * image.h (MonoImage): Added `GHashTable *typespec_cache'.
17882 * metadata.c (mono_metadata_parse_generic_inst): Renamed to
17883 `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
17884 currently parsing. Create the generic class and store it in
17885 `generic_inst->klass' before parsing the type arguments. This is
17886 required to support "recursive" definitions; see mcs/tests/gen-23.cs
17888 (mono_type_create_from_typespec): Use a new `image->typespec_cache'
17889 to support recursive typespec entries.
17891 * class.c (mono_class_setup_parent): If our parent is a generic
17892 instance, we may get called before it has its name set.
17893 (mono_class_from_generic): Splitted into
17894 mono_class_create_from_generic() and mono_class_initialize_generic().
17896 2003-10-25 Martin Baulig <martin@ximian.com>
17898 * icall.c (ves_icall_Type_BindGenericParameters): Return a
17899 `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
17900 ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
17901 ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
17903 * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
17904 (create_typespec): Likewise.
17905 (mono_reflection_bind_generic_parameters): Return a
17906 `MonoReflectionGenericInst *' instead of a `MonoClass *'.
17907 (mono_reflection_inflate_method_or_ctor): New public function.
17909 * reflection.h (MonoReflectionGenericInst): New typedef.
17911 2003-10-24 Zoltan Varga <vargaz@freemail.hu>
17913 * object.c (mono_class_proxy_vtable): Run the whole vtable construction
17914 inside the domain lock. Fixes #49993.
17916 * object.c (mono_class_vtable): When typed allocation is used,
17917 allocate vtables in the GC heap instead of in the mempool, since the
17918 vtables contain GC descriptors which are used by the collector even
17919 after the domain owning the mempool is unloaded.
17921 * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
17923 * domain.c (mono_domain_unload): Rename to mono_domain_free to better
17924 reflect what it does. Also invalidate mempools instead of freeing
17925 them if a define is set.
17927 * appdomain.h (MonoAppDomainState): New enumeration to hold the state
17930 * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
17931 hold the finalizable objects in this domain.
17933 * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
17936 * appdomain.c (mono_domain_set): New function to set the current
17937 appdomain, but only if it is not being unloaded.
17939 * appdomain.c threads.c threadpool.c object.c: Avoid entering an
17940 appdomain which is being unloaded.
17942 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
17943 unloading of the root appdomain.
17945 * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
17946 icall to execute a method in another appdomain. Intended as a
17947 replacement for InternalSetDomain, which can confuse the code
17948 generation in the JIT.
17950 * appdomain.c (mono_domain_is_unloading): New function to determine
17951 whenever an appdomain is unloading.
17953 * appdomain.c (mono_domain_unload): New function to correctly unload
17956 * assembly.c (mono_assembly_load_references): Check that an assembly
17957 does not references itself.
17959 * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
17960 domain manually, it asks the finalizer thread to do it, then waits for
17961 the result. Also added a timeout.
17963 * icall.c: Register the new icalls.
17965 * threads.h threads.c: Export the mono_gc_stop_world and
17966 mono_gc_start_world functions.
17968 * mempool.h mempool.c (mono_mempool_invalidate): New debugging
17969 function to fill out the mempool with 0x2a.
17971 2003-10-22 Zoltan Varga <vargaz@freemail.hu>
17973 * reflection.h (MonoReflectionMethodAux): New structure to store
17974 information which is rarely used, thus is not in the MonoMethod
17977 * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
17978 store the aux info.
17980 * reflection.c (mono_methodbuilder_to_mono_method): Store param names
17981 and marshalling info into the aux structure.
17983 * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
17984 from the aux structure.
17986 * loader.c (mono_method_get_param_names): Retrieve the param names from
17989 2003-10-21 Zoltan Varga <vargaz@freemail.hu>
17991 * exception.h exception.c: Add AppDomainUnloadedException && fix
17994 2003-10-21 Dick Porter <dick@ximian.com>
17997 (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
17998 patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
18000 2003-10-21 Martin Baulig <martin@ximian.com>
18002 * reflection.c (mono_reflection_bind_generic_parameters):
18003 `klass->parent' is NULL for interfaces.
18005 2003-10-21 Martin Baulig <martin@ximian.com>
18007 * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18009 2003-10-20 Zoltan Varga <vargaz@freemail.hu>
18011 * exception.c (mono_exception_from_name_msg): New helper function for
18012 creating exceptions and initializing their message field.
18014 * exception.c: Simplify functions using the new helper.
18016 * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
18019 * object.h object.c: Remove G_GNUC_NORETURN from the signature of
18020 mono_raise_exception, since otherwise gcc doesn't generate the function
18021 epilog for raise_exception, confusing the stack unwinding in the JIT.
18024 * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
18025 PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
18028 2003-10-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18030 * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
18033 2003-10-18 Lluis Sanchez Gual <lluis@ximian.com>
18035 * icall.c: Removed GetUninitializedObject method because
18036 AllocateUninitializedClassInstance does the same.
18038 2003-10-18 Martin Baulig <martin@ximian.com>
18040 * class.c (inflate_generic_signature): Renamed to
18041 mono_class_inflate_generic_signature() and made it public.
18042 (my_mono_class_from_generic_parameter): New static function; if we
18043 don't already have the generic parameter's MonoClass, create a
18044 very simple one which is just used internally in the runtime and
18045 not passed back to managed code.
18047 * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
18049 * metadata.h (MonoMethodSignature): Moved the
18050 `MonoGenericParam *gen_params' to the MonoMethodHeader.
18051 (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
18053 * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
18054 ves_icall_MonoMethod_GetGenericArguments(); this is now an
18055 interncall on the MonoMethod class, not on MethodInfo.
18056 (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
18057 calling mono_reflection_bind_generic_method_parameters() directly.
18059 * loader.c (mono_method_get_signature): If this is a MethodSpec;
18060 return the already computed `method->signature'.
18061 (method_from_methodspec): New static function to load a method
18062 from a MethodSpec entry.
18063 (mono_get_method_from_token): Call the new method_from_methodspec()
18064 for MethodSpec tokens.
18065 (mono_get_method_from_token): If we're a generic method, load the
18068 * reflection.c (mono_image_get_memberref_token): Allow
18069 MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
18071 (fixup_method): Added support for MONO_TABLE_METHODSPEC.
18072 (mono_image_create_token): First check whether it's a generic
18073 method (so we'd need to create a MethodSpec), then do the other
18075 (mono_reflection_bind_generic_method_parameters): Return a
18076 `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
18077 called directly from the interncall.
18079 2003-10-17 Zoltan Varga <vargaz@freemail.hu>
18081 * reflection.c (load_public_key): Move loading of the public key
18084 * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
18086 * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
18089 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
18090 culture, hash_alg and public_key. Fixes #49555.
18092 2003-10-17 Martin Baulig <martin@ximian.com>
18094 * class.h (MonoGenericInst): Moved this declaration here and added
18095 `MonoMethod *generic_method'.
18098 (ves_icall_MethodInfo_GetGenericArguments): New interncall.
18099 (ves_icall_MethodInfo_BindGenericParameters): New interncall.
18101 * metadata.c (mono_metadata_type_equal): Two types of
18102 MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
18103 index; ie. don't compare the address of the `MonoGenericParam'
18105 (mono_metadata_load_generic_params): Removed the `MonoMethod
18108 * metadata.h (MonoGenericInst): Moved declaration to class.h.
18109 (MonoMethodHeader): Added `MonoGenericInst *geninst'.
18111 * reflection.c (method_encode_signature): Encode the number of
18112 generic parameters.
18113 (encode_generic_method_sig): New static function.
18114 (method_encode_methodspec): New static function; creates an entry
18115 in the MethodSpec table for a generic method.
18116 (mono_image_get_methodspec_token): New static function.
18117 (mono_image_create_token): Call mono_image_get_methodspec_token()
18118 for generic methods.
18119 (mono_reflection_bind_generic_method_parameters): New public
18120 function. Instantiates a generic method.
18122 2003-10-16 Martin Baulig <martin@ximian.com>
18124 * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
18125 *gen_params' here from MonoMethodHeader.
18127 * metadata.c (mono_metadata_parse_method_signature): If we have
18128 generic parameters, initialize `method->gen_params' and then set
18129 the correct `type->data.generic_param' in all the parameters.
18131 2003-10-16 Zoltan Varga <vargaz@freemail.hu>
18133 * threads.c (mono_threads_get_default_stacksize): New function to
18134 return the default stacksize.
18136 * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
18137 termination of the finalizer thread, since the previous method had
18138 race conditions. Fixes #49628.
18140 * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
18141 as for the other managed threads.
18143 2003-10-16 Martin Baulig <martin@ximian.com>
18145 * class.c (inflate_generic_signature): Copy `generic_param_count'
18148 * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
18151 * metadata.c (mono_metadata_parse_method_signature): Actually set
18152 the `method->generic_param_count' here.
18153 (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
18155 2003-10-15 Zoltan Varga <vargaz@freemail.hu>
18157 * object.h: Add a new field to TypedRef to simplify the implementation
18158 of the REFANY opcodes in the JIT.
18160 * icall.c: Make use of the new field.
18162 * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
18165 2003-10-15 Martin Baulig <martin@ximian.com>
18167 * class.c (mono_class_from_gen_param): Renamed to
18168 mono_class_from_generic_parameter() and moved most of the
18169 functionality from mono_reflection_define_generic_parameter()
18170 here; ie. we create a "real" class here.
18171 (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
18172 MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
18173 previously been called.
18175 * class.h (MonoGenericParam): Moved the declaration of this struct
18176 here from metadata.h and added `MonoMethod *method'.
18178 * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
18181 * loader.c (mono_get_method_from_token): If we have any generic
18182 parameters, call mono_metadata_load_generic_params() to read them
18183 from the MONO_TABLE_GENERICPAR.
18185 * metadata.c (mono_metadata_load_generic_params): Added
18186 `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
18188 * metadata.h (MonoMethodSignature): Replaced
18189 `MonoGenericInst *geninst' with `guint16 generic_param_count'.
18190 (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
18192 * reflection.c (mono_reflection_define_generic_parameter): Moved
18193 most of the functionality into the new
18194 mono_class_from_generic_parameter(); set the `method' field if
18195 we're a method parameter.
18197 2003-10-13 Bernie Solomon <bernard@ugsolutions.com>
18199 * marshal.c (emit_struct_conv): if native size is 0
18202 2003-10-14 Martin Baulig <martin@ximian.com>
18204 * icall.c: The generics API has changed in the spec since it was
18205 added to System.Type; these modifications make it match the spec
18207 (ves_icall_Type_GetGenericParameters): Renamed to
18208 `ves_icall_Type_GetGenericArguments'.
18209 (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
18210 (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
18211 `ves_icall_MonoType_get_HasGenericArguments'.
18212 (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
18213 `ves_icall_MonoType_get_IsGenericParameter'.
18214 (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
18215 this is no interncall anymore.
18216 (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
18217 `ves_icall_TypeBuilder_get_IsGenericParameter'.
18219 2003-10-14 Martin Baulig <martin@ximian.com>
18221 * reflection.c (mono_reflection_bind_generic_parameters): Also
18222 inflate generic methods if we're reading the class from IL.
18224 2003-10-13 Martin Baulig <martin@ximian.com>
18226 * reflection.c (mono_reflection_define_generic_parameter): This
18227 method isn't called directly from the icall anymore; take a
18228 `MonoReflectionAssemblyBuilder *' so we can use this for type and
18229 method generic parameters.
18230 (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
18231 (method_builder_encode_signature): Encode generic parameters.
18232 (mono_image_get_method_info): Write generic params to the
18233 MONO_TABLE_GENERICPARAM table.
18235 * reflection.h (MonoReflectionMethodBuilder): Added
18236 `MonoArray *generic_params'.
18238 * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
18240 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
18241 wrapper for mono_reflection_define_generic_parameter().
18242 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
18244 2003-10-13 Zoltan Varga <vargaz@freemail.hu>
18246 * marshal.h: Add missing function to fix build.
18248 * marshal.c (mono_marshal_get_native_wrapper): Add support for
18249 the SetLastError pinvoke attribute.
18251 * marshal.c (mono_marshal_set_last_error): New helper function called
18252 by the generated code.
18254 * marshal.c (mono_mb_emit_branch): New helper function.
18256 * marshal.c (mono_mb_emit_exception): Added exception name parameter.
18258 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
18259 classes as parameters and return values of delegates. Fixes #29256.
18261 2003-10-12 Bernie Solomon <bernard@ugsolutions.com>
18263 * locales.c: use gint32 in non HAVE_ICU case
18265 2003-10-11 Martin Baulig <martin@ximian.com>
18267 * mono-debug.c (mono_debug_add_method): Added a workaround for
18270 2003-10-10 Zoltan Varga <vargaz@freemail.hu>
18272 * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
18273 delegates passed to native code must use the STDCALL calling
18274 convention. Fixes #35987.
18276 2003-10-10 Martin Baulig <martin@ximian.com>
18278 * class.c (inflate_generic_type): If we're inflating for a generic
18279 type instance (and not for a generic method), return
18280 MONO_TYPE_MVAR unchanged.
18282 2003-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18284 * string-icalls.c: Join ignores null strings in the source array.
18285 * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
18286 * threads.c: GetAvailableTheads is slightly more accurate.
18288 2003-10-09 Bernie Solomon <bernard@ugsolutions.com>
18290 * threads.h threads.c : add mono_threads_set_default_stacksize
18291 and pass default to CreateThread calls.
18293 2003-10-09 Dick Porter <dick@ximian.com>
18297 * locales.c: Internal calls for constructing CultureInfo and
18298 related objects from libicu (if its available.)
18300 2003-10-09 Zoltan Varga <vargaz@freemail.hu>
18302 * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
18304 2003-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18306 * threadpool.c: added an argument to async_invoke_thread that is the
18307 item to process, pass the MonoAsyncResult to the thread start function
18308 when creating a new thread. This way we don't need to acquire any lock
18309 when we're creating a new thread. Readded a semaphore for faster
18310 response times (instead of that Sleep i added).
18312 2003-10-08 Bernie Solomon <bernard@ugsolutions.com>
18314 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
18315 get daylight change dates better on Windows, fix handling
18316 of platforms without tm_gmtoff.
18318 2003-10-06 Martin Baulig <martin@ximian.com>
18320 * class.c (inflate_generic_method): Renamed to
18321 mono_class_inflate_generic_method() and made public.
18322 (mono_class_init): Don't inflate the generic methods here.
18323 (mono_class_from_generic): Added `gboolean inflate_methods'
18324 argument. Inflate the methods here.
18326 * loader.c (mono_method_get_param_names): Ignore instances of
18327 generic types for the moment.
18329 * reflection.c (fixup_method): Added support for inflated methods.
18330 (mono_image_create_token): Use mono_image_get_methodref_token()
18331 for inflated methods.
18332 (mono_custom_attrs_from_param): Ignore instances of generic types
18334 (mono_reflection_bind_generic_parameters): New public function.
18335 Moved all the functionality from
18336 ves_icall_Type_BindGenericParameters() here and added support for
18338 (mono_reflection_define_generic_parameter): Initialize
18339 `klass->methods' here.
18341 * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
18342 functionality into mono_reflection_define_generic_parameter().
18343 (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
18344 TypeBuilder, return that TypeBuilder.
18346 2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18348 * appdomain.c: removed mono_delegate_semaphore.
18351 (mono_thread_pool_add): moved hash table creation inside and the thread
18352 creation outside of the critical region.
18353 (mono_thread_pool_finish): removed obsolete code.
18354 (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
18355 continue or exit the thread depending on the queue.
18357 2003-10-07 Bernie Solomon <bernard@ugsolutions.com>
18359 * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
18360 marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
18361 handle more bool marshalling options
18363 2003-10-07 Zoltan Varga <vargaz@freemail.hu>
18365 * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
18366 arrays of structs. Also add a more descriptive error message when
18367 a structure member is marshalled as LPArray.
18369 2003-10-06 Zoltan Varga <vargaz@freemail.hu>
18371 * marshal.c (mono_marshal_get_native_wrapper): Add support for
18372 marshalling arrays of complex types. Fixes #29098. Also remove an
18373 usused and incomplete function.
18375 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
18377 * gc.c: report heap_size - free_bytes as total memory allocated
18380 2003-10-05 Zoltan Varga <vargaz@freemail.hu>
18382 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally
18383 fix timezone handling problems on Windows.
18385 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
18386 asserts when the year is outside the range handled by ms the functions.
18388 * class.c (setup_interface_offsets): If the class is an interface,
18389 fill out its interface_offsets slot.
18391 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18393 * threadpool.c: mark threadpool threads as background.
18395 2003-10-03 Bernie Solomon <bernard@ugsolutions.com>
18397 * decimal.c - define DECINLINE to nothing if not using GCC
18399 2003-10-03 Zoltan Varga <vargaz@freemail.hu>
18401 * assembly.c: More refcount fixes.
18403 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18405 * string-icalls.c: if we're not trimming, return the same string.
18406 When not splitting, don't create a new string.
18408 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18411 (mono_image_open): increment the ref_count inside the critical section.
18413 2003-10-02 Zoltan Varga <vargaz@freemail.hu>
18415 * image.c (mono_image_open): Fix reference counting bug.
18417 2003-09-30 Bernie Solomon <bernard@ugsolutions.com>
18419 * marshal.c (mono_marshal_type_size) struct alignment changed for
18420 64bit machines. (emit_ptr_to_str_conv) Fix bool conversions for
18421 64bits. Avoid leak in mono_marshal_get_native_wrapper when
18422 mono_lookup_pinvoke_call throws.
18424 2003-09-30 Zoltan Varga <vargaz@freemail.hu>
18426 * reflection.c (mono_reflection_parse_type): Fix #49114.
18428 * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
18429 temporary workaround for cygwin header problem.
18431 * object.c (mono_object_isinst): Synchronize this with the code
18432 generated by the JIT for casts.
18434 2003-09-29 Zoltan Varga <vargaz@freemail.hu>
18436 * reflection.c (encode_type): Fix #38332.
18438 2003-09-26 Zoltan Varga <vargaz@freemail.hu>
18440 * marshal.c (mono_marshal_method_from_wrapper): New function to return
18441 the original method from the wrapper method.
18443 2003-09-25 Martin Baulig <martin@ximian.com>
18445 * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
18446 interncall since it was identical to `Type.GetGenericTypeDefinition()'.
18447 (ves_icall_Type_get_IsGenericInstance): New interncall.
18449 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
18451 * object.c: fix cast warning in big endian code.
18453 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
18455 * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
18457 2003-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18459 * assembly.c: don't call check_env from mono_assembly_load. It's
18460 already done once in mono_assemblies_init and may cause headaches when
18461 multiple threads are loading assemblies.
18463 2003-09-19 Martin Baulig <martin@ximian.com>
18465 * reflection.c (mono_reflection_define_generic_parameter): Don't
18466 allocate `klass->methods', set `klass->flags' to
18467 TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
18469 2003-09-18 Martin Baulig <martin@ximian.com>
18471 * class.c (mono_class_init): Don't create `class->methods' if it's
18472 already initialized.
18474 * metadata.c (mono_metadata_load_generic_params): Make this
18477 * reflection.c (mono_reflection_define_generic_parameter): Set
18478 parent class and interfaces from the constraints.
18480 * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
18481 to keep this struct in sync with the declaration in TypeBuilder.cs.
18483 2003-09-17 Martin Baulig <martin@ximian.com>
18485 * metadata.h (MonoType): Replaced the data's `int type_param'
18486 field with `MonoGenericParam *generic_param'.
18487 (MonoGenericParam): Added `MonoClass *klass'.
18489 * class.c (mono_class_from_gen_param): Removed the
18490 `MonoImage *image' and `int type_num' arguments.
18492 * metadata.c (mono_metadata_parse_generic_param): New static
18493 method; creates a MonoGenericParam which just contains the index.
18494 (do_mono_metadata_parse_type): Call
18495 mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
18498 * reflection.c (mono_image_typedef_or_ref): Generic type
18499 parameters may be in the same assembly, but never use a typedef
18501 (mono_reflection_define_generic_parameter): We're now creating a
18502 "real" class for the type parameter; it's now safe to call
18503 mono_class_from_mono_type() on the class'es type, it'll do the
18506 2003-09-16 Martin Baulig <martin@ximian.com>
18508 * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
18509 `symfile->range_entry_size' and `symfile->class_entry_size' here;
18510 the `symfile' data structure must be fully initialized before it
18511 gets added to the table.
18513 2003-09-15 Zoltan Varga <vargaz@freemail.hu>
18515 * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
18517 * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
18518 class init trampolines.
18520 2003-09-11 Zoltan Varga <vargaz@freemail.hu>
18522 * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
18523 to the built-in profiler to turn off time and allocation profiling
18526 2003-09-10 Zoltan Varga <vargaz@freemail.hu>
18528 * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
18531 * debug-helpers.c (mono_method_full_name): Print the wrapper type
18532 in human readable form.
18534 2003-09-08 Zoltan Varga <vargaz@freemail.hu>
18536 * reflection.c icall.c: Fixed warnings.
18538 * image.c (load_class_names): Use a temporary hash table to hold the
18539 namespaces in order to avoid doing many string comparisons.
18541 * image.h: Fix typo.
18543 * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
18544 Pass NULL instead of g_direct_equal to the GHashTable constructor
18545 since the NULL case is short-circuited inside g_hash_table_lookup,
18546 leading to better performance.
18548 * metadata.c (mono_metadata_custom_attrs_from_index): New function to
18549 obtain the first custom attribute for a given index. Depends on the
18550 CustomAttribute table being sorted by the parent field.
18552 * reflection.c (mono_custom_attrs_from_index): Use the new function
18553 for better performance.
18555 2003-09-07 Martin Baulig <martin@ximian.com>
18557 * class.c (mono_class_init): If we're a generic instance, inflate
18558 all our methods instead of loading them from the image.
18559 (mono_class_from_generic): Set `class->methods = gklass->methods'.
18561 2003-09-07 Martin Baulig <martin@ximian.com>
18563 * mono-debug-debugger.c: Added support for constructors.
18565 2003-09-06 Martin Baulig <martin@ximian.com>
18567 * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
18570 * reflection.c (mono_reflection_setup_generic_class): Call
18571 ensure_runtime_vtable() to create the vtable.
18573 2003-09-05 Martin Baulig <martin@ximian.com>
18575 * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
18578 2003-09-04 Martin Baulig <martin@ximian.com>
18580 * reflection.c (mono_reflection_define_generic_parameter): Generic
18581 parameters start with zero.
18583 2003-09-04 Martin Baulig <martin@ximian.com>
18585 * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18587 * reflection.h (MonoReflectionGenericParam): New typedef.
18588 (MonoReflectionTypeBuilder): Added `generic_params' fields to get
18589 the generic parameters from the managed TypeBuilder.
18591 * reflection.c (mono_reflection_define_generic_parameter): New function.
18592 (mono_reflection_create_runtime_class): Encode generic parameters.
18593 (mono_reflection_setup_generic_class): New function; this is
18594 called after adding adding all generic params to the TypeBuilder.
18595 (encode_type): Added MONO_TYPE_VAR.
18597 2003-09-04 Zoltan Varga <vargaz@freemail.hu>
18599 * class.h class.c (mono_class_needs_cctor_run): Moved this method
18602 * assembly.h assembly.c: Moved the AOT loading code into an assembly
18605 2003-09-03 Zoltan Varga <vargaz@freemail.hu>
18607 * reflection.h reflection.c class.h class.c: Delete duplicate
18608 definition of mono_type_get_name () from reflection.c and export the
18611 * class.c: Class loading fixes from Bernie Solomon
18612 (bernard@ugsolutions.com).
18614 * reflection.c: Endianness fixes from Bernie Solomon
18615 (bernard@ugsolutions.com).
18617 2003-09-01 Zoltan Varga <vargaz@freemail.hu>
18619 * assembly.h assembly.c: Define a file format version for AOT
18622 * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
18624 * appdomain.h (MonoJitInfo): New field to determine whenever the
18625 code is domain neutral.
18627 2003-08-31 Miguel de Icaza <miguel@ximian.com>
18629 * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
18631 2003-08-30 Zoltan Varga <vargaz@freemail.hu>
18633 * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir):
18634 (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
18635 Avoid caching the result since strings must be domain specific. Fixes
18638 2003-08-29 Zoltan Varga <vargaz@freemail.hu>
18640 * marshal.c (mono_marshal_init): Make this callable multiple times
18641 since it is hard to find a correct place to call it.
18643 * object.c (mono_runtime_class_init): Execute static constructors in
18644 the correct appdomain.
18646 * image.c (build_guid_table): Handle the case when multiple images have
18649 2003-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18651 * icall.c: added a couple of icalls for System.Web.
18653 2003-08-28 Martin Baulig <martin@ximian.com>
18655 * icall.c (ves_icall_Type_BindGenericParameters): Use
18656 `klass->generic_inst' instead of `&klass->byval_arg' in the
18657 mono_type_get_object() call. The returned type must be
18658 MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
18660 2003-08-27 Zoltan Varga <vargaz@freemail.hu>
18664 * object.c (mono_class_proxy_vtable): Make it thread safe.
18666 * pedump.c: Fix warning.
18668 * object.c appdomain.h: Get rid of metadata_section.
18669 It is no longer needed and it was causing deadlocks with domain->lock.
18671 * appdomain.c (add_assemblies_to_domain): Make it thread safe.
18673 2003-08-26 Martin Baulig <martin@ximian.com>
18675 * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
18677 2003-08-26 Martin Baulig <martin@ximian.com>
18679 * pedump.c (main): Call mono_metadata_init(),
18680 mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
18681 and mono_loader_init().
18683 2003-08-26 Zoltan Varga <vargaz@freemail.hu>
18685 * loader.h: Add missing include to fix build.
18687 * image.h: mono_image_load_references is no more.
18689 * assembly.c: Reworked assembly loading to make it really thread safe.
18690 After these changes, the assembly returned by mono_assembly_open is
18691 fully initialized, i.e. all its references assemblies are loaded.
18693 * assembly.c (mono_image_load_references): Renamed to
18694 mono_assembly_load_references, and made private, since clients no
18695 longer need to call it.
18697 * class.c: Removed calls to mono_assembly_load_references, since it was
18698 a source of deadlocks.
18700 * loader.h loader.c class.h class.c: Protect data structures using a
18701 new lock, the loader lock.
18703 * class.c (mono_class_setup_vtable): Create temporary hash tables and
18704 GPtrArrays only when needed.
18706 * class.c (mono_class_layout_fields): Ignore the dummy field inserted
18707 into empty structures by mcs. Fixes pinvoke7.cs.
18709 * domain.c (mono_init): Call a new initialization function.
18711 * appdomain.c (mono_runtime_init): Call the new initializer function
18712 of the marshal module.
18714 * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
18715 inserted into empty structures by mcs. Fixes pinvoke7.cs.
18717 * marshal.h marshal.c: Added locks around the wrapper caches to make
18718 this module thread safe.
18720 * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
18721 this argument. Fixes pinvoke1.exe.
18723 2003-08-25 Lluis Sanchez <lluis@ximian.com>
18725 * object.h: Added call_type field to MonoMethodMessage and the corresponding
18726 enumeration of values. Removed fields to store remote call output values in
18727 MonoAsyncResult. Not needed any more.
18728 * object.c: Initialize call_type and async_result fields in mono_message_init.
18729 * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
18730 dispatching the message.
18731 mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
18732 async call to finish. To do it use a message with EndInvoke call type.
18734 2003-08-25 Zoltan Varga <vargaz@freemail.hu>
18736 * loader.h loader.c (mono_method_hash_marhal_info): New function which
18737 determines whenever a method has marshalling info.
18739 2003-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18741 * assembly.c: fix the build on windows.
18743 2003-08-22 Lluis Sanchez <lluis@ximian.com>
18745 * object.cs: Fixed bug #47785.
18747 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
18749 * string-icalls.c (StringReplace): If their are no occurances of
18750 the old string found return a reference to the supplied
18751 string. This saves some memory and matches MS behavoir.
18753 2003-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18755 * socket-io.c: fixed compilation for systems that define AF_INET6
18756 and don't define SOL_IP/SOL_IPV6.
18758 2003-08-21 Zoltan Varga <vargaz@freemail.hu>
18760 * object.c (mono_object_isinst): Fix casts to TransparentProxy in
18761 the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
18763 * rawbuffer.c rawbuffer.h: Make this module thread safe.
18765 * domain.c: Make this module thread safe.
18767 * domain.c (mono_init): Call new initialization function.
18769 * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
18770 reference types too. Fixes #38812.
18772 * image.c (mono_image_init): Fixed warnings.
18774 * class.c (mono_class_from_typeref): Handle assembly load failure
18777 * appdomain.c (add_assemblies_to_domain): Handle the case when
18778 the references of an assembly are not yet loaded.
18780 * metadata.c image.c assembly.c: Moved initialization of global
18781 variables to a separate function called at startup since lazy
18782 initialization of these variables is not thread safe.
18784 * image.c assembly.c: Made this module thread safe by adding locks in
18785 the appropriate places.
18787 * domain.c (mono_init): Call the new initialization functions of the
18790 2003-08-20 Lluis Sanchez Gual <lluis@ximian.com>
18792 * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
18793 make a direct call. It is proxy's work to make the call asynchronous.
18794 mono_delegate_end_invoke(): If the targe is a proxy, just collect
18796 * object.cs: mono_method_call_message_new(): read AsyncResult and
18797 state object from parameters list, if this info is requested.
18798 * object.h: Added fields to store remote call output values in
18799 MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
18801 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
18803 * object.h: add needed fields to MonoThread.
18804 * threads.c, threads.h: allow registering a function to cleanup data
18805 allocated per thread by the JIT.
18807 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18809 * loader.h: portability fix by Bernie Solomon
18810 * <bernard@ugsolutions.com>.
18812 2003-08-16 Zoltan Varga <vargaz@freemail.hu>
18814 * reflection.h reflection.c (mono_param_get_objects): Changed this to
18815 return a MonoArray. This simplifies the code and also ensures that
18816 the cache allways contains an object reference as a value.
18818 * icall.c (ves_icall_get_parameter_info): Simplified using the new
18821 2003-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18823 * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
18824 fixes a problem with byte ordering when getting the address family for
18827 2003-08-15 Zoltan Varga <vargaz@freemail.hu>
18829 * .cvsignore: Added monosn.
18831 * reflection.h reflection.c loader.c: Added support for parameter
18832 marshalling to dynamically created types. Fixes #47295.
18834 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
18836 * rand.c: remove useless warnings.
18838 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
18840 * class.c: implemented ldtoken for methods and fieldrefs.
18842 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18844 * threadpool.c: when mono_async_invoke was called, no one took care of
18845 monitoring the queue. So if the method invoked took some time and we
18846 got new async invoke requests after 500 ms (the thread created waited
18847 that long in WaitForSingleObject), the new async invoke was not called
18848 until the previous one finished.
18850 This is fixed now. Thanks to Totte for helping with it.
18852 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18854 * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
18856 2003-08-11 Martin Baulig <martin@ximian.com>
18858 * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
18860 2003-08-06 Martin Baulig <martin@ximian.com>
18862 * mono-debug-debugger.c: Added support for static fields,
18863 properties and methods.
18865 2003-08-06 Martin Baulig <martin@ximian.com>
18867 * mono-debug-debugger.c: Don't store the MonoString's vtable to
18868 make this work for applications with multiple application domains.
18870 2003-08-04 Martin Baulig <martin@ximian.com>
18872 * mono-debug-debugger.c: Completely reworked the type support; the
18873 most important thing is that we're now just using one single
18874 `MonoType' instance per type.
18876 Sat Aug 2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
18878 * mono-endian.h, mono-endian.c, icall.c: Added icall
18879 ves_icall_System_Double_AssertEndianity to assert double word endianity
18880 on ARM (FPA). The icall uses a macro defined in mono-endian.h.
18882 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18884 * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
18885 support, icalls and fixes.
18887 2003-07-31 Miguel de Icaza <miguel@ximian.com>
18889 * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
18890 classes that are a punctuation character in .NET is not the same a
18893 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18895 * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
18897 2003-07-29 Miguel de Icaza <miguel@ximian.com>
18899 * icall.c: Add new MemCopy internalcall.
18900 (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
18901 Simplified code; It is not necessary to handle all the cases here,
18902 as the C# code takes care of it. Only handle the case of the name
18903 resource embedded into the assembly.
18905 Changed signature to return the data pointer and the size of the
18908 2003-07-26 Miguel de Icaza <miguel@ximian.com>
18910 * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
18911 encoded. (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
18913 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
18915 * socket-io.c: ignore EINTR error in select.
18917 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
18919 * class.h, class.c: removed unused subclasses field in MonoClass.
18921 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
18923 * icall.c: improve fix of get_base_definition(). If the parent class
18924 doesn't have the mehod, look at the parent of the parent.
18925 * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
18926 to check if a parameter is an in or out parameter
18927 (PARAM_ATTRIBUTE_IN is not set by default).
18928 mono_method_return_message_restore(): Use mono_class_value_size to
18929 get the size of a value type. mono_type_stack_size (parameterType)
18930 does not return the correct value if parameterType is byRef.
18931 mono_load_remote_field(), mono_load_remote_field_new(),
18932 mono_store_remote_field(), mono_store_remote_field_new():
18933 raise exception if the remote call returns an exception.
18935 2003-07-28 Martin Baulig <martin@ximian.com>
18937 * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
18938 method. This is a wrapper around mono_runtime_invoke() which
18939 boxes the instance object if neccessary.
18941 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18943 * class.c, class.h, image.c, image.h, loader.c, metadata.c,
18944 metadata.h, row-indexes.h, verify.c: first cut of generics support.
18946 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18948 * icall.c: disable mcs bug workaround.
18950 2003-07-21 Miguel de Icaza <miguel@ximian.com>
18952 * object.c (mono_runtime_class_init): Take the metadata_section
18953 mutex before obtaining the domain mutex.
18955 * appdomain.h: Added definition of metadata_section mutex here.
18957 * object.c: define metadata_mutex here.
18959 2003-07-24 Ravi Pratap <ravi@ximian.com>
18961 * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
18964 2003-07-24 Lluis Sanchez Gual <lluis@ximian.com>
18966 * reflection.c: Fix bug #46669
18968 2003-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18973 * object.h: fill in the type name for TypeLoadException.
18975 2003-07-23 Ravi Pratap <ravi@ximian.com>
18977 * class.c: Fixes from Paolo in response to bug #45415 (Subclass
18978 relationship between TypeBuilders while compiling corlib) and bug
18979 45993 (Array types returned from the runtime while compiling
18980 corlib were from the loaded corlib).
18982 2003-07-22 Martin Baulig <martin@ximian.com>
18984 * mono-debug-debugger.c: Reworked the type support a bit more;
18985 distinguish between types and classes.
18987 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
18989 * icall.c: add IsArrayImpl icall.
18991 2003-07-22 Zoltan Varga <vargaz@freemail.hu>
18993 * class.c (mono_class_layout_fields): Fix gc aware auto layout by
18994 initializing real_size only once. Also fix bug #46602.
18996 2003-07-21 Jerome Laban <jlaban@wanadoo.fr>
18998 * object.c: Renamed mono_metadata_section to metadata_section.
19000 2003-07-21 Lluis Sanchez Gual <lluis@ximian.com>
19002 * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
19003 empty array if the type is an array. Fixed.
19004 ves_icall_MonoMethod_get_base_definition: if the base method
19005 is abstract, get the MethodInfo from the list of methods of
19007 * reflection.c: ParameterInfo.PositionImpl should be zero-based
19008 and it was 1-based. Fixed in mono_param_get_objects.
19010 2003-07-20 Martin Baulig <martin@ximian.com>
19012 * mono-debug.h: Set version number to 31.
19013 (mono_debug_init): Added `MonoDomain *' argument.
19015 * mono-debug-debugger.c: Reworked the type support; explicitly
19016 tell the debugger about builtin types; pass the `klass' address to
19019 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
19021 * image.c: Allow new metadata tables to be loaded without a
19022 warning. Also update the warning message to give the new constant value.
19024 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
19026 * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
19027 metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c:
19028 array type representation changes.
19030 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19032 * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
19033 on Environment.Exit () call.
19035 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
19037 * icall.c, reflection.h, reflection.c, verify.c: cleanups,
19038 requires a matching corlib.
19040 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
19042 * Changelog: My editor decided to add a CR to each line. Sorry about that.
19043 Committed again without the CRs.
19045 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
19047 * socket-io.c: Get system_assembly using mono_image_loaded(), instead
19048 getting it from the "this" socket instance. Did not work
19049 if the socket is a subclass of Socket.
19050 Also fixed bug #35371.
19052 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19054 * metadata.c: fixed size for TypedByRef.
19055 * loader.c: when searching for a method, consider the vararg amrker.
19056 * unicode.c, decimal.c: constify some arrays.
19058 2003-07-15 Dick Porter <dick@ximian.com>
19060 * socket-io.c: Fixed compilation for gcc < 3.2.
19062 Fixed compilation for machines that don't have AF_INET6 (thanks to
19063 Bernie Solomon <bernard@ugsolutions.com> for that part.)
19065 Fixed compile warnings.
19067 Fixed formatting and line endings.
19069 2003-07-14 Jerome Laban <jlaban@wanadoo.fr>
19072 * socket-io.c: Added IPv6 support.
19074 2003-07-13 Zoltan Varga <vargaz@freemail.hu>
19076 * class.c (mono_class_is_assignable_from): New function to implement
19077 the is_assignable_from logic. Used by mono_object_isinst,
19078 Type::IsAssignableFrom () and the interpreter.
19080 * class.c (mono_class_is_subclass_of): Make all classes a subclass of
19081 Object, even interfaces.
19083 * object.c (mono_object_isinst): Implement in terms of
19084 is_assignable_from.
19086 * icall.c (ves_icall_type_is_assignable_from): New icall.
19088 2003-07-11 Zoltan Varga <vargaz@freemail.hu>
19090 * domain.c (foreach_domain): fix compiler warning.
19092 2003-07-11 Dietmar Maurer <dietmar@ximian.com>
19094 * image.c (load_metadata_ptrs): use g_strndup because strndup is
19095 not available on all plattforms
19097 2003-07-10 Zoltan Varga <vargaz@freemail.hu>
19099 * image.h image.c: Store the metadata version string in MonoImage.
19100 * icall.c: New icall to retrieve the image version.
19101 * reflection.c (create_dynamic_image): Fill in the image version field
19102 * reflection.c (build_compressed_metadata): Use the image version
19103 from the image structure.
19105 2003-07-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19107 * appdomain.c: modified comment.
19108 * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
19109 That will be its last iteration when mono_gc_cleanup is called from
19110 mono_runtime_cleanup and before the domain is unloaded.
19114 2003-07-04 Dietmar Maurer <dietmar@ximian.com>
19116 * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
19119 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19121 * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
19122 rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
19123 Bernie Solomon <bernard@ugsolutions.com>.
19125 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19127 * object.c, object.h: provide mono_object_new_fast() for faster
19128 allocation in some special cases.
19130 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
19132 * object.h, reflection.h, verify.c: fixes for some 64bit issues,
19133 mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
19135 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
19137 * threadpool.c: fix leaks.
19139 2003-07-01 Dick Porter <dick@ximian.com>
19141 * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
19142 using MonoGHashTables. Fixes threadpool bug posted to list.
19144 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
19146 * image.h, image.c: added support to load an assembly from a byte array.
19147 * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added
19148 assembly bundle support.
19150 2003-06-27 Dietmar Maurer <dietmar@ximian.com>
19152 * threadpool.c (mono_thread_pool_add): keep a reference to the
19153 AsyncResult to prevent GC
19155 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19157 * class.c: leak fix.
19159 2003-06-25 Dick Porter <dick@ximian.com>
19161 * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
19162 for the async object, the WaitHandle object will close the handle.
19165 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19167 * class.c: in mono_array_class_get (), lookup from the hash with the
19168 same type we insert: this works around a bug in
19169 mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
19170 lluis. The real fix will have to wait for after the release.
19172 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19174 * icall.c: fix memory leak when getting type members.
19176 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19178 * reflection.c: added more pubtoken special cases.
19180 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
19182 * class.c: handle field offset correctly when class size
19183 is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
19185 2003-06-20 Martin Baulig <martin@ximian.com>
19187 * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
19190 2003-06-20 Martin Baulig <martin@ximian.com>
19192 * image.h, mono-debug-debugger.h: Fixed compiler warnings.
19194 2003-06-20 Martin Baulig <martin@ximian.com>
19196 * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed. We
19197 just distinguish between variables in registers and variables at
19198 an offset relative to a register.
19200 2003-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19202 * icall.c: #ifdef out latest changes until mcs is fixed.
19204 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19206 * icall.c: return members in metadata order.
19208 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19210 * icall.c: avoid infinite loop in GetTimeZoneData.
19212 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
19214 * icall.c: added Marshal.Prelink/All icalls.
19216 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19218 * object.c, object.h: fix warnings and do some overflow checking
19219 when creating arrays.
19221 2003-06-17 Dick Porter <dick@ximian.com>
19224 * file-io.c: File attributes need to be tweaked slightly when
19225 passed from the managed to the w32 world.
19227 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
19228 * profiler.h profiler-private.h profiler.c: Rework last patch
19229 based on suggestion by Paolo.
19231 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
19233 * profiler.h profiler-private.h profiler.c: Added infrastructure for
19234 instruction level coverage data collection.
19235 * profiler.h profiler.c (: Added new callback function which can be
19236 used by the profiler to limit which functions should have coverage
19238 * profiler.c (mono_profiler_load): Call g_module_build_path to
19239 generate the file name of the profiler library.
19241 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19243 * profiler.c, profiler.h, profiler-private.h: added basic block
19244 coverage profiling API.
19246 2003-06-15 Zoltan Varga <vargaz@freemail.hu>
19248 * reflection.c (mono_reflection_create_runtime_class): Add support
19249 for events in dynamically generated code.
19251 * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
19254 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19256 * icall.c: when getting timezone info, return reasonable values if we
19257 can't get the actual data.
19259 2003-06-14 Dick Porter <dick@ximian.com>
19261 * threads.c (start_wrapper): Remove the reference to the thread
19262 object in the TLS data, so the thread object can be finalized.
19263 This won't be reached if the thread threw an uncaught exception,
19264 so those thread handles will stay referenced :-( (This is due to
19265 missing support for scanning thread-specific data in the Boehm GC
19266 - the io-layer keeps a GC-visible hash of pointers to TLS data.)
19268 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
19270 * reflection.c: ensure streams and tables are first allocated with
19271 ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
19273 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19275 * icall.c: fixed GetElementType for byrefs (bug# 44792).
19277 2003-06-13 Zoltan Varga <vargaz@freemail.hu>
19279 * reflection.c (mono_reflection_create_runtime_class): Add support for
19280 properties to dynamically created classes.
19281 * reflection.c: Fix a few places where non-MonoObjects were inserted
19282 into the tokens hashtable.
19284 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19286 * object.c: some support to handle out of memory exceptions.
19288 2003-06-12 Dietmar Maurer <dietmar@ximian.com>
19290 * marshal.c (mono_marshal_get_native_wrapper): support reference
19293 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19295 * object.h, object.c: more portability stuff from Bernie Solomon.
19296 Unexport mono_object_allocate(). Added mono_object_unbox ().
19297 Set exitcode when an unhandled exception is thrown.
19299 2003-06-11 Dietmar Maurer <dietmar@ximian.com>
19301 * marshal.c (mono_marshal_get_native_wrapper): use custom
19302 marshaler for return types.
19304 2003-06-10 Dick Porter <dick@ximian.com>
19306 * socket-io.c: Don't assume that one of struct ip_mreqn or struct
19307 ip_mreq is available
19309 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
19311 * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
19312 mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
19313 by Bernie Solomon <bernard@ugsolutions.com>.
19315 2003-06-10 Zoltan Varga <vargaz@freemail.hu>
19317 * gc.c (mono_gc_init): Avoid error message on shutdown when
19318 GC_DONT_GC=1 is used.
19320 * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal):
19321 New icall to return the GUID of a module.
19323 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19325 * class.c: ensure instance size always includes the parent's size
19326 even whem class size is set explicitly (fixes bug#44294).
19328 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19330 * profiler.h, profiler.c: made the simple profiler thread-safe,
19331 get more accurate timing info. Allow the loading of an
19332 externally-developed profiler module.
19334 2003-06-05 Dietmar Maurer <dietmar@ximian.com>
19336 * marshal.c (mono_marshal_get_native_wrapper): improved
19337 class/byref arguments.
19338 (mono_marshal_get_native_wrapper): better string marshaling support.
19340 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
19342 * class.c: ensure .pack and .size are handled correctly and
19343 simplified layout of static fields.
19345 2003-06-04 Dietmar Maurer <dietmar@ximian.com>
19348 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
19350 * loader.c (mono_lookup_pinvoke_call): look for modules in the
19351 current directory (fix bug 44008)
19353 2003-06-03 Dietmar Maurer <dietmar@ximian.com>
19355 * marshal.c (mono_marshal_get_native_wrapper): started support for
19357 (mono_delegate_to_ftnptr): consider marshalling specifications
19359 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
19361 * reflection.c, reflection.h: emit custom marshal info.
19363 2003-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19365 * object.c: free the GError.
19366 * icall.c: added CloseEvent_internal.
19368 (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
19371 2003-06-01 Zoltan Varga <vargaz@freemail.hu>
19373 * loader.c (mono_method_get_signature): Add support for dynamic
19376 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
19378 * reflection.c: fixed bug #43905.
19380 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19382 * class.c, domain.c, icall.c, metadata.h, object.h: support for
19383 handling TypedReference and ArgIterator.
19384 * loader.c, loader.h: added function to get signature at call site.
19386 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19388 * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more
19389 data readonly. Buglets and warning fixes. Some MethodSpec support.
19391 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19393 * class.h, class.c, object.c: remove relative numbering support.
19395 2003-05-26 Miguel de Icaza <miguel@ximian.com>
19397 * marshal.c (mono_marshal_get_native_wrapper): For now, do not
19398 free the string, until we get a chance to fix Gtk#
19400 2003-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19402 * marshal.c: revert last patch.
19404 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
19406 * icall.c: updates for new mono_class_vtable() not calling
19407 the type constructor anymore.
19409 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19411 * object.h, object.c: separate vtable creation from type
19412 initialization. Make running the .cctor thread safe.
19414 2003-05-26 Dietmar Maurer <dietmar@ximian.com>
19416 * marshal.c (mono_marshal_get_native_wrapper): free string return values.
19418 2003-05-21 Dietmar Maurer <dietmar@ximian.com>
19420 * loader.c (mono_get_method): consider calling convention
19422 2003-05-21 Zoltan Varga <vargaz@freemail.hu>
19424 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
19425 to return the invisible global type for a module.
19427 * reflection.c (mono_image_build_metadata): Emit global fields too.
19429 2003-05-20 Peter Williams <peterw@ximian.com>
19431 * loader.c (mono_lookup_internal_call): Add a few newlines.
19433 2003-05-20 Zoltan Varga <vargaz@freemail.hu>
19435 * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
19438 * appdomain.c (set_domain_search_path): Recalculate search path when
19439 AppDomainSetup.PrivateBinPath changes.
19441 * object.c (mono_class_compute_gc_descriptor): It turns out some
19442 parts of the class libs (like System.Thread) holds pointers to
19443 GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
19444 to treat native int a pointer type here.
19446 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
19448 * appdomain.h, domain.c: add hashtable for jump target resolution.
19450 2003-05-19 Zoltan Varga <vargaz@freemail.hu>
19452 * reflection.h reflection.c icall.c: Added new icalls
19453 GetManifestResourceInfoInternal, GetModulesInternal and support
19456 2003-05-16 Dick Porter <dick@ximian.com>
19460 * file-io.c: Implement System.IO.MonoIO::GetTempPath
19462 2003-05-14 Lluis Sanchez Gual <lluis@ideary.com>
19464 * object.c: mono_store_remote_field: little fix to previous patch.
19466 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19468 * class.c: add constructors to array classes.
19469 * icall.c: special case array construction for InternalInvoke (),
19471 2003-05-14 Zoltan Varga <vargaz@freemail.hu>
19473 * class.h class.c reflection.c object.c: Added support for field
19474 defaults in dynamically generated classes.
19476 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
19478 * reflection.c: properly encode charset for ddlimport.
19480 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
19482 * threads.c: allow compiling without GC.
19484 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19486 * appdomain.h, object.c, object.h, threads.c, threads.h: added
19487 handling of thread static data.
19489 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19491 * reflection.h, reflection.c: added mono_custom_attrs_free ().
19493 2003-05-13 Dietmar Maurer <dietmar@ximian.com>
19495 * class.c (mono_array_class_get): always set the serializable flags
19496 (mono_array_class_get): always set the SEALED attribute for array types
19498 2003-05-12 Dietmar Maurer <dietmar@ximian.com>
19500 * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
19501 attributes (fix for bug 42021).
19503 2003-05-12 Dick Porter <dick@ximian.com>
19505 * gc.c: Don't run finalizers when the finalizer thread is
19506 finishing up, because the default domain has already been
19509 2003-05-11 Miguel de Icaza <miguel@ximian.com>
19511 * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
19512 value is null, we should throw an exception. This is slightly
19513 different than the other conventions used for the constructor.
19515 2003-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19517 * socket-io.c: fixed windows build.
19519 2003-05-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19521 * socket-io.c: patch by Jerome Laban that fixes bug #42393.
19523 2003-05-10 Zoltan Varga <vargaz@freemail.hu>
19525 * object.c (mono_string_new_wrapper): Compatibility fix for MS
19528 2003-05-09 Zoltan Varga <vargaz@freemail.hu>
19530 * class.c (mono_class_layout_fields): Add experimental GC aware
19531 auto layout facility. Requires class library changes to work correctly.
19533 (mono_class_setup_vtable): Avoid overriding explicit interface
19534 method implementations. Fixes iface3.exe test.
19536 * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
19538 (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
19539 (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
19541 * metadata.h: Add new type classification macro which determines
19542 whenever the type holds an object reference.
19544 2003-05-08 Dietmar Maurer <dietmar@ximian.com>
19546 * marshal.c (mono_marshal_get_native_wrapper): cleanups
19548 2003-05-07 Zoltan Varga <vargaz@freemail.hu>
19550 * gc.c (finalizer_thread): Work around a GC bug.
19552 2003-05-07 Dietmar Maurer <dietmar@ximian.com>
19554 * marshal.c (emit_struct_conv): allow unions
19556 * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
19558 2003-05-06 Dietmar Maurer <dietmar@ximian.com>
19560 * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
19562 2003-05-06 Martin Baulig <martin@ximian.com>
19564 * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
19566 2003-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19569 (Select_internal): allow NULLs, don't create arrays if not needed.
19570 Coupled with Socket.cs changes.
19573 (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
19574 register a finalizer for it that will close the semaphore handle. This
19575 fixes the leak and make Lupus' test run with > 4080 loops.
19577 2003-05-05 Dietmar Maurer <dietmar@ximian.com>
19579 * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
19580 Jerome Laban (bug #42287)
19582 2003-05-02 Martin Baulig <martin@ximian.com>
19584 * debug-mono-symfile.h
19585 (MonoSymbolFile): Moved declaration into mono-debug.h.
19586 (MonoDebugMethodJitInfo): Likewise.
19587 (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
19589 (_mono_debug_address_from_il_offset): Take a
19590 MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
19593 (MonoDebugDomainData): New struct.
19594 (mono_debug_get_domain_data): New function.
19595 (mono_debug_add_method): Take an additional `MonoDomain *'
19597 (mono_debug_source_location_from_address): Likewise.
19598 (mono_debug_il_offset_from_address): Likewise.
19599 (mono_debug_address_from_il_offset): Likewise.
19601 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
19603 * reflection.c: one more check for null type in custom attrs.
19605 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19607 * reflection.c: avoid warning (comparison is always false due to limited
19608 range of data type).
19610 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19612 * icall.c: throw an exception in Type.GetField if the argument 'name'
19615 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
19617 * reflection.c: fixed handling of enums in named arguments to custom
19618 attributes (bug #42123).
19620 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
19622 * reflection.c: use the right array element type and handle
19623 a null for a Type argument, too.
19625 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
19627 * reflection.c: handle arrays as arguments to custom attributes.
19629 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
19631 * reflection.c: handle a string value in a custom attr
19632 ctor that takes an object.
19634 2003-04-29 Dietmar Maurer <dietmar@ximian.com>
19636 * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
19639 2003-04-28 Zoltan Varga <vargaz@freemail.hu>
19641 * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
19643 2003-04-27 Martin Baulig <martin@ximian.com>
19645 * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
19646 MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
19647 MONO_DEBUGGER_EVENT_BREAKPOINT.
19648 (mono_breakpoint_trampoline_code): Removed.
19649 (mono_debugger_event_handler): The last argument is now a
19651 (mono_debugger_insert_breakpoint_full): Removed the
19652 `use_trampoline' argument.
19653 (mono_debugger_method_has_breakpoint): Likewise.
19654 (mono_debugger_trampoline_breakpoint_callback): Renamed to
19655 mono_debugger_breakpoint_callback(); take the method and
19656 breakpoint number as arguments.
19658 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
19660 * metadata.c: fix off by one when loading parameters attributes.
19662 2003-04-24 Martin Baulig <martin@ximian.com>
19664 * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
19666 2003-04-24 Martin Baulig <martin@ximian.com>
19668 * mono-debug-debugger.c: Moved all code which interacts with the
19669 Mono Debugger here.
19671 * debug-mono-symfile.c: This code now just deals with the symbol
19672 file itself, the debugger code is now in mono-debug-debugger.c.
19674 2003-04-23 Martin Baulig <martin@ximian.com>
19676 * mono-debug.c (mono_debug_source_location_from_il_offset):
19677 New method; like mono_debug_source_location_from_address(), but
19678 takes an IL offset instead of a machine address.
19680 2003-04-23 Martin Baulig <martin@ximian.com>
19682 * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
19683 `line' field; this is now computed by the debugger.
19685 2003-04-23 Martin Baulig <martin@ximian.com>
19687 * mono-debug.[ch]: New files. This is the new debugging interface.
19689 * mono-debug-debugger.[ch]: New files. Moved all code which
19690 interacts with the Mono Debugger here.
19692 2003-04-22 Dietmar Maurer <dietmar@ximian.com>
19694 * domain.c (mono_init): initialize mono_defaults.monitor_class
19696 2003-04-21 Miguel de Icaza <miguel@ximian.com>
19698 * reflection.c (method_encode_code): Add a spicy exception to help
19699 future compiler authors.
19701 2003-04-21 Martin Baulig <martin@ximian.com>
19704 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
19705 Make this work with relative pathnames; g_filename_to_uri() needs
19706 an absolute filename.
19708 2003-04-18 Zoltan Varga <vargaz@freemail.hu>
19710 * icall.c: Track name changes in Object and ValueType.
19712 2003-04-18 Dietmar Maurer <dietmar@ximian.com>
19714 * metadata.c (mono_type_stack_size): size should be a multiple of
19717 2003-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19720 (internal_domain_finalize): moved into mono_domain_finalize. No need
19721 to create another thread because the finalizers will be run in the
19724 (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
19725 (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
19726 to be run (MS does this too).
19728 2003-04-17 Zoltan Varga <vargaz@freemail.hu>
19730 * object.c (mono_class_compute_gc_descriptor): Update comment.
19732 * loader.h marshal.h marshal.c: Added synchronized method wrappers.
19734 * image.h: Add synchronized wrapper cache.
19736 * image.c (do_mono_image_open): Initialize cache.
19738 * reflection.c (create_dynamic_mono_image): Initialize cache.
19740 2003-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19742 * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
19743 ves_icall_System_Buffer_ByteLengthInternal.
19745 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19747 * reflection.c: setup klass->nested_in earlier. Allow
19748 a dash in the assembly name.
19750 2003-04-15 Dietmar Maurer <dietmar@ximian.com>
19752 * metadata.c (mono_type_to_unmanaged): dont access
19753 type->data.klass for MONO_TYPE_OBJECT
19754 (mono_type_to_unmanaged): consider System.Delegate class
19756 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
19758 * class.c: just setup supertypes in the proper place instead of
19759 initializing the full element class for arrays.
19761 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19763 * class.c: ensure the element class of arrays is initialized.
19764 Setup the supertype info for array classes, too.
19766 2003-04-14 Miguel de Icaza <miguel@ximian.com>
19768 * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
19770 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19772 * Makefile.am: re-added -m option when running cygpath. This way,
19773 MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
19775 * mono-config.c: same codepath for locating mono config file for WIN32
19777 * assembly.c: if mono_assembly_setrootdir is called, don't override
19780 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19782 * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
19783 MONO_ASSEMBLIES variable.
19785 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
19787 * icall.c: added Assembly::GetNamespaces() icall.
19789 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19791 * reflection.c: fix from Jaak <jaak@zd.com.pl>.
19793 2003-04-10 Lluis Sanchez Gual <lluis@ideary.com>
19795 * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
19796 * object.c: fixed bug in the construction of vtable for proxies
19798 2003-04-10 Zoltan Varga <vargaz@freemail.hu>
19800 * object.c (mono_array_new): Mark mono_array_new as an icall.
19802 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19804 * class.c: fixed test for public method when overriding interfaces.
19807 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19809 * appdomain.h, domain.c: added mono_domain_foreach() to
19810 be able to access the currently loaded appdomains.
19811 * object.c: make string interning work across sppdomains.
19812 Mark some functions for use as icalls.
19814 2003-04-09 Zoltan Varga <vargaz@freemail.hu>
19816 * class.c reflection.c: Fix memory leaks reported by ccmalloc.
19818 * reflection.h reflection.c: Allocate long living data using
19819 GC_MALLOC_ATOMIC so the collector does not need to scan it.
19821 * reflection.c: Double the allocation size in streams instead of
19822 increasing it, to prevent unneccesary copying on large assemblies.
19824 * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
19825 creation if the assembly does not have the Run flag set.
19827 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
19829 * class.h: avoid the C++ keywords in header files (Jerome Laban
19830 spotted and fixed this).
19832 2003-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19835 (mono_unhandled_exception): fill in the arguments for the
19836 UnhandledException event. Only trigger that event for the default
19837 domain (as MS does).
19839 2003-04-04 Zoltan Varga <vargaz@freemail.hu>
19841 * object.c: Improve typed allocation stuff based on suggestions from
19842 Paolo. Also turn it on if the GC library supports it.
19844 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
19846 * object.c object.h class.h: Added experimental typed allocation
19847 facility using the interfaces in gc_gcj.h.
19849 * os/gc_wrapper.h: Added new include files.
19851 2003-04-03 Martin Baulig <martin@ximian.com>
19853 All the following changes are conditional to `WITH_INCLUDED_LIBGC'
19854 which is not yet enabled by default.
19856 * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
19858 (mono_gc_lock, mono_gc_unlock): New static functions.
19860 * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
19861 functions; stop/start the world for the garbage collector. This
19862 is using the windows API; we need to complete the SuspendThread()/
19863 ResumeThread() implementation in the io-layer to make this work on Unix.
19864 (mono_gc_push_all_stacks): New public function; tells the garbage
19865 collector about the stack pointers from all managed threads.
19867 2003-04-03 Martin Baulig <martin@ximian.com>
19869 * object.h (MonoThread): Added `gpointer stack_ptr'.
19871 * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
19873 2003-04-03 Martin Baulig <martin@ximian.com>
19875 * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
19877 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
19879 * reflection.c (typebuilder_setup_fields): Initialize field.first and
19882 2003-04-02 Miguel de Icaza <miguel@ximian.com>
19884 * loader.c (mono_lookup_internal_call): Report the corlib that is
19887 2003-03-05 Aleksey Demakov <avd@openlinksw.com>
19889 * icall.c (ves_icall_type_GetTypeCode): fixed check for
19890 System.DBNull (it's class not valuetype).
19892 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19894 * reflection.c: set table_idx in MonoReflectionArrayMethod object even
19895 if the array method was already assigned a token (fixes bug#40646).
19897 2003-04-02 Zoltan Varga <vargaz@freemail.hu>
19899 * reflection.c (mono_reflection_get_type): Attempt type resolve even
19900 if no assembly is given.
19902 2003-04-01 Miguel de Icaza <miguel@ximian.com>
19904 * metadata.h: Added the new tables.
19906 * row-indexes.h: Added definitions for new tables.
19908 * metadata.c: Add schemas for new tables, and add support for
19909 computing the sizes of them.
19911 * class.c: Update for handling the new type cases.
19913 2003-04-01 Dietmar Maurer <dietmar@ximian.com>
19915 * metadata.h (MONO_TYPE_IS_VOID): new macro
19917 2003-03-31 Martin Baulig <martin@ximian.com>
19919 * threads.h (MonoThreadCallbacks): Added `thread_created'.
19921 * threads.c (mono_thread_new_init): Call `thread_created' in the
19922 mono_thread_callbacks.
19924 2003-03-31 Lluis Sanchez Gual <lluis@ideary.com>
19926 * loader.h: added marshalbyrefobject_class to mono_defaults
19927 * domain.c: added initialization of mono_defaults.marshalbyrefobject_class
19928 * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
19929 generation of output parameters.
19930 ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
19931 * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
19932 contextbound and the target object belongs to the context of the caller.
19933 * object.h: added context and unwrapped_server variables in MonoRealProxy.
19934 * object.c: Implemented support for interfaces and abstract classes
19935 in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
19936 proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
19938 2003-03-30 Zoltan Varga <vargaz@freemail.hu>
19940 * class.h class.c (mono_class_is_subclass_of): New function.
19942 * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
19943 routines for most common case (calls from ArrayList::ToArray).
19945 * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown
19946 routine so programs which call Environment::Exit() can be profiled.
19948 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
19949 Added MONO_ARCH_SAVE_REGS.
19951 * icall.c (ves_icall_type_is_subtype_of): Use new function.
19953 2003-03-29 Miguel de Icaza <miguel@ximian.com>
19955 * blob.h: Add a couple of new MonoType types definitions.
19957 * tabledefs.h: Add a couple of new call convs.
19959 2003-03-27 Zoltan Varga <vargaz@freemail.h>
19961 * reflection.h (MonoReflectionDynamicAssembly): track changes in
19962 the layout of the class.
19964 * reflection.c (alloc_table): double the size on overflow to avoid
19965 unnecessary copying.
19967 * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
19968 avoid filling out metadata tables and blobs. Also set mb->ilgen to
19969 null so it can be garbage collected.
19971 2003-03-27 Zoltan Varga <vargaz@freemail.hu>
19973 * reflection.c (mono_reflection_get_type): Return the resolved type
19974 only if it is in the assembly we searched.
19976 * reflection.c (ensure_runtime_vtable): Initialize method slots.
19978 * class.c (mono_class_setup_vtable): Set the slot of the overriding
19981 2003-03-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19984 (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
19985 the right one is 'file:///blah', but MS allows it.
19987 (mono_assembly_open): allow 'file://blah'
19989 Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
19991 2003-03-26 Aleksey Demakov <avd@openlinksw.com>
19993 * socket-io.c: fixes bug #40310.
19995 2003-03-25 Zoltan Varga <vargaz@freemail.hu>
19997 * reflection.c (mono_reflection_parse_type): handle deeply nested
20000 * reflection.c (mono_image_create_token): Use unique token values
20001 since they will be put into a hash table.
20003 * class.c (mono_class_setup_vtable): If a method occurs in more than
20004 one place in the vtable, and it gets overriden, then change the
20005 other occurances too.
20007 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
20008 object as return type.
20010 2003-03-22 Pedro Mart?nez Juli? <yoros@wanadoo.es>
20012 * icall.c: Deleted "ToString" implementation for double and float
20013 because they are full implemented in managed code.
20015 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20017 * reflection.c, reflection.h: implemented and exported functions
20018 to retrieve info about custom attributes.
20020 2003-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20022 * appdomain.c: moved Uri handling to assembly.c
20023 * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
20024 work when using a file Uri in *nix and windows.
20026 * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
20027 GetReferencedAssemblies.
20029 2003-03-18 Dick Porter <dick@ximian.com>
20031 * icall.c: Rename a couple of internal calls
20033 * threads.c: Set the thread state to Stopped when a thread exits.
20036 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
20038 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
20041 * object.c (mono_class_vtable): fix warning.
20043 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
20045 * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
20047 * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
20049 (method_encode_clauses): Create exception info structures in the right
20051 (mono_reflection_setup_internal_class): Initialize supertypes field.
20053 * class.c object.c: Handle interfaces which implement other interfaces
20056 * class.h class.c: Move the supertypes array initialization code into
20057 a separate function so it can be used for dynamic types too. Also call
20058 it earlier, in mono_class_init(), since it can be used before the
20059 type is initialized.
20061 2003-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20065 * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
20070 * object.c: remove warnings.
20072 2003-03-13 Martin Baulig <martin@ximian.com>
20074 * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
20075 (MonoDebugLexicalBlockEntry): New types.
20077 * debug-mono-symfile.c
20078 (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
20080 2003-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20082 * process.c: ret can be any non-zero value accroding to MS doc.
20084 2003-03-07 Miguel de Icaza <miguel@ximian.com>
20086 * class.c (mono_marshal_load_type_info): Fix buglet: Noticed when
20087 fixing a warning for a miss-used prototype, would have cause
20088 random memory corruption.
20090 2003-03-07 Martin Baulig <martin@ximian.com>
20092 * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
20093 getting really annoying ....
20095 2003-03-07 Zoltan Varga <vargaz@freemail.hu>
20097 * reflection.c (fixup_method): added support for array methods.
20099 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
20101 * socket-io.c: handle case when AF_INET6 and AF_IPX are not defined
20102 (pointed out by Michael Adams).
20104 2003-03-04 Dick Porter <dick@ximian.com>
20106 * icall.c: Temporarily reverted the Double and Single ToString()
20107 change, because it broke nunit.
20109 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
20111 * object.h, threads.h: make include files compatible with C++
20112 (patch by Jerome Laban <jlaban@wanadoo.fr>).
20114 2003-03-04 Pedro Mart?nez Juli? <yoros@wanadoo.es>
20116 * icall.c: Erased ToString helper functions for Double and Single.
20117 Now, that implementations ar all in managed code (Double and Single
20120 2003-03-03 Lluis Sanchez Gual <lluis@ideary.com>
20122 * appdomain.c: Added method for initializing the default context of
20123 a domain. Added internal call for getting the default context.
20124 * appdomain.h: Added context variable in MonoDomain struct.
20125 * domain.c: mono_domain_set also sets the default context of the domain
20126 * icall.c: Mapped internal method InternalGetDefaultContext.
20127 * object.c: mono_object_get_virtual_method returns always a remoting
20128 wrapper if the object is a transparent proxy.
20129 mono_runtime_invoke_array: when creating an object by calling the
20130 constructor, if the created object is a proxy, then the constructor should
20131 be called using the a remoting wrapper.
20133 2003-03-03 Dick Porter <dick@ximian.com>
20135 * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
20136 variable so it compiles on solaris. Problem spotted by
20137 Christopher Taylor <ct@cs.clemson.edu>
20139 2003-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20142 (get_info_from_assembly_name): don't leak value.
20145 (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
20148 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
20150 * assembly.c: export mono_image_load_references ().
20151 * class.c: handle function pointers. mono_class_from_name() now
20152 supports nested type names directly.
20154 2003-02-28 Zoltan Varga <vargaz@freemail.hu>
20156 * reflection.h reflection.c: Encode already created dynamic methods
20157 and fields correctly as a DEF instead of a REF.
20159 * reflection.c: Get rid of the force_ref argument to
20160 mono_image_typedef_or_ref since it was wrong in the first place.
20162 * string-icalls.c: add error checking to string constructors according
20165 * reflection.c: Emit types in the order their TypeBuilders were
20166 created. Previously, a new table index was assigned to each type before
20167 the tables were emitted. This was wrong because the signature blob
20168 might already refer to a type by its original table index.
20170 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
20172 * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
20175 2003-02-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20177 * Makefile.am: make assemblies dir have \ instead of / on windows.
20179 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
20181 * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
20182 iterate over the NESTEDCLASS table using a linear search since the
20183 table is not guaranteed to be sorted by the secondary key.
20185 * class.c (mono_class_create_from_typedef): fixed up call to
20186 mono_metadata_nesting_typedef.
20188 2003-02-27 Dietmar Maurer <dietmar@ximian.com>
20190 * marshal.c (mono_string_to_byvalstr): clear the memory as
20191 suggested by Jerome Laban <jlaban@wanadoo.fr>
20193 2003-02-26 Dick Porter <dick@ximian.com>
20195 * process.c: Cope with padding in .rsrc blocks
20197 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
20199 * metadata.h: reverted the filter_len change, it breaks reflection
20201 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
20203 * metadata.h: added a new field to store the filter_len
20206 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
20208 * reflection.c: handle custom attributes for types and members
20209 created with Reflection.Emit (bug#38422).
20211 2003-02-22 Zoltan Varga <vargaz@freemail.hu>
20213 * reflection.c: define RTSpecialName automatically for constructors for
20214 compatibility with MS.NET.
20216 * reflection.c (mono_reflection_create_runtime_class): initialize
20217 nested_in field of dynamically created classes.
20219 2003-02-22 Martin Baulig <martin@ximian.com>
20221 * debug-mono-symfile.h: Incremented version number.
20223 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
20225 * object.h icall.c process.c: fix warnings.
20227 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
20229 * appdomain.h appdomain.c:
20230 (mono_domain_try_type_resolve): split the
20231 name_or_tb argument into a name and a tb argument.
20232 (mono_domain_has_type_resolve): new function to check whenever the
20233 application has registered a TypeResolve event handler.
20235 * icall.c reflection.h reflection.c: move the type resolve logic into
20236 mono_reflection_get_type () so it will be invoked when
20237 Assembly::GetType () is called.
20240 (mono_reflection_get_type): renamed to get_type_internal.
20241 (mono_reflection_get_type): fixed type name generation so it works
20242 for nested types too.
20243 (mono_reflection_get_type): call has_type_resolve () to avoid the
20244 costly type name generation if there is no resolve event handler.
20246 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20248 * class.c, image.c: load exported types from file references.
20250 2003-02-19 Lluis Sanchez Gual <lluis@ideary.com>
20252 * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
20253 used to cache the managed methods used to create proxies and make
20254 remote invocation of methods.
20255 * class.h: Added in MonoVTable a flag to indicate that a class needs
20256 to be remotely created.
20257 * object.c: Modified the method mono_class_vtable(). It now initializes
20258 the remote flag of the vtable. Modified mono_object_new_specific(),
20259 so now it checks the remote flag.
20260 * icall.c: Added a couple of internal methods, one for enabling instance
20261 creation interception for a type, and one for creating objects bypassing
20264 2003-02-18 Martin Baulig <martin@ximian.com>
20266 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
20267 New interncall to get a method's metadata token.
20269 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
20270 New interncall for the debugger.
20272 2003-02-18 Dietmar Maurer <dietmar@ximian.com>
20274 * class.c (mono_class_setup_vtable): allocate supertype array
20276 2003-02-18 Martin Baulig <martin@ximian.com>
20278 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
20280 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20283 (assembly_name_to_aname): jump over unknown properties (i've found
20284 something like: 'type, assembly, version=xxx, custom=null, public...',
20285 so now will ignore custom=null and still get the rest of the values).
20287 2003-02-17 Dick Porter <dick@ximian.com>
20289 * threads.c: Have Thread.Start() wait for a semaphore to signal
20290 that the thread has set up all its local data. This fixes bug
20291 34323, where Abort() raced the new thread's TLS data.
20293 Also removes the handle_store() call from start_wrapper, because
20294 threads are now always created suspended and there is no longer a
20295 race between the parent and child threads to store the info.
20297 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
20299 * image.c: explain the #- heap issue in a message, hopefully
20300 avoiding FAQs on mono-list.
20302 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20305 (GetEntryAssembly): if the domain has not invoked
20306 AppDomain.ExecuteAssembly yet, return the assembly of the default
20309 2003-02-16 Zoltan Varga <vargaz@freemail.hu>
20311 * class.c (mono_ldtoken): make it work in dynamic assemblies.
20313 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
20315 * metadata.c, reflection.c: simple speedup to type hash
20318 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
20320 * image.c, image.h, class.c, assembly.c: move module loading
20321 to MonoImage. When loading metadata, consider alignemnet from
20322 the start of metadata, not from the metadata address in memory.
20324 2003-02-13 Zoltan Varga <vargaz@freemail.hu>
20326 * reflection.c (mono_reflection_get_custom_attrs): Added support for
20327 AssemblyBuilder objects. Factored out custom attribute creation into
20328 a separate function.
20329 (create_custom_attr): new function to create custom attributes.
20331 2003-02-12 Miguel de Icaza <miguel@ximian.com>
20333 * Makefile.am: Got tired of typing the full pathname to pedump.
20334 Until there is another option, am installing this.
20336 2003-02-12 Dietmar Maurer <dietmar@ximian.com>
20338 * class.c (class_compute_field_layout): always set field->parent
20339 (mono_ldtoken): use mono_defaults.fieldhandle_class;
20341 2003-02-11 Dick Porter <dick@ximian.com>
20344 * monitor.c: Rewrote Monitor, making lock much faster and
20345 Pulse/Wait work as specified. Also uses much fewer handles, and only
20346 creates them as needed.
20348 * exception.c: Added SynchronizationLockException
20350 * threads.c: Deleted old Monitor implementation. The new one is
20353 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
20355 * class.c: handled TypedReference type code. Set the correct size for
20356 class data. Setup interface_offsets for interface classes, too.
20358 2003-02-09 Martin Baulig <martin@ximian.com>
20360 * debug-mono-symfile.h: Reflect latest symbol writer changes.
20362 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
20364 * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
20365 * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
20366 * object.c: fixed mono_object_get_virtual_method () for interfaces.
20367 * verify.c: check for code that runs after the end of the method.
20369 2003-02-08 Pedro Mart?nez Juli? <yoros@wanadoo.es>
20371 * icall.c: Added "System.Math::Floor", "System.Math::Round" and
20372 "System.Math::Round2".
20373 * sysmath.h: Added Floor, Round and Round2 definitions.
20374 * sysmath.c: Modified certain functions that were not 100% compliant
20375 with MS.NET (math precision) and added the implementation of Floor,
20378 2003-02-07 Martin Baulig <martin@ximian.com>
20380 * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
20382 2003-02-07 Martin Baulig <martin@ximian.com>
20384 * debug-mono-symfile.c: Reflected latest symwriter changes.
20385 (mono_debug_create_mono_symbol_file): Removed.
20386 (mono_debug_open_mono_symbol_file): Take an argument which
20387 specifies whether to create a dynamic symbol file.
20389 2003-02-07 Dietmar Maurer <dietmar@ximian.com>
20391 * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
20393 2003-02-05 Martin Baulig <martin@ximian.com>
20395 * reflection.c (mono_image_build_metadata): Make this public,
20396 protect it against being called multiple times, don't create
20397 resources and don't build the compressed metadata here.
20398 (mono_image_create_pefile): Do this here.
20401 ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
20403 2003-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20405 * socket-io.c: fixed bug #36322.
20407 2003-02-06 Piers Haken <piersh@friskit.com>
20411 * debug-mono-symfile.c:
20417 * socket-io.c: warning cleanups
20419 2003-02-06 Dietmar Maurer <dietmar@ximian.com>
20421 * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
20422 function. works like remoting invoke, but does a check for the Proxy first.
20424 2003-02-05 Miguel de Icaza <miguel@ximian.com>
20426 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
20428 2003-02-05 Dietmar Maurer <dietmar@ximian.com>
20430 * marshal.c (mono_marshal_get_native_wrapper): only allocate an
20432 (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
20433 (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
20435 * object.c (mono_store_remote_field_new): used by the new jit
20436 instead of mono_store_remote_field
20437 (mono_load_remote_field_new): used by the new jit
20438 instead of mono_load_remote_field
20440 2003-02-05 Patrik Torstensson
20442 * appdomain.c: changed unload to take the domain id instead
20445 * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
20448 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20450 * appdomain.c: don't look for assemblies in ApplicationBase if
20451 PrivateBinPathProbe is set.
20453 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20455 * object.c: make the first argument in main_args contain the absolute
20456 path to the assembly. Fixes bug #37511.
20458 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20460 * icall.c: get correct UTC offset for countries not using daylight
20461 time saving. Fixes bug #30030.
20463 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20465 * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
20466 and 1 are the family).
20468 2003-02-04 Dietmar Maurer <dietmar@ximian.com>
20470 * icall.c (ves_icall_InternalExecute): removed wrong assertion
20472 * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
20474 2003-02-04 Zoltan Varga <vargaz@freemail.hu>
20476 * reflection.c: added support for SignatureHelper tokens, which is
20477 needed by the Calli opcode.
20479 * reflection.h: track changes to SignatureHelper class.
20481 * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
20483 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20485 * appdomain.c: fixed loading assemblies from PrivateBinPath.
20487 2003-02-03 Patrik Torstensson
20488 * appdomain.[c|h], domain.c :
20489 - Added support for getting a domain via domain id
20490 - Support for setting and getting domain from System.AppDomain
20491 (used in cross appdomain channel)
20492 - Added support for get/set for a MonoAppContext on a thread
20493 (Context class in System.Runtime.Remoting.Contexts),
20494 - Removed hack in Get/SetData and ExecuteAssembly.
20496 * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
20497 the managed world to get control when a proxy is created.
20499 * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
20501 2003-02-03 Miguel de Icaza <miguel@ximian.com>
20504 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
20505 Populate the codebase field as well.
20507 2003-02-02 Martin Baulig <martin@ximian.com>
20509 * debug-mono-symfile.c
20510 (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
20511 (mono_debug_symfile_add_method): Allow interncalls.
20513 2003-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20515 * icall.c: throw parse exception if strtod fails or the string is empty.
20517 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
20519 * marshal.c: handle object type separately from defined
20522 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
20524 * marshal.c: handle NATIVE_LPSTR for strings when it's
20525 explicitly specified.
20527 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
20529 * reflection.c, reflection.h, icall.c: setup the reflection
20530 handle cache for ModuleBuilders and AssemblyBuilders.
20532 2003-01-30 Dietmar Maurer <dietmar@ximian.com>
20534 * reflection.c (reflection_methodbuilder_to_mono_method): set
20537 2003-01-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20539 * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
20541 2003-01-29 Dick Porter <dick@ximian.com>
20543 * threads.c: No need for the fake_thread kludge now that Thread
20544 doesn't run a class constructor
20546 2003-01-29 Dick Porter <dick@ximian.com>
20548 * threads.c: Use g_direct_hash instead of the rather bogus
20551 2003-01-29 Dietmar Maurer <dietmar@ximian.com>
20553 * marshal.c (mono_marshal_get_native_wrapper): add check for null
20554 (fix pinvoke12.exe)
20555 (mono_marshal_get_struct_to_ptr): generate valid IL code
20556 (mono_marshal_get_ptr_to_struct): generate valid IL code
20557 (*): correctly set sig->pinvoke, we need to memdup the signature
20560 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20562 * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
20563 to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
20565 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20567 * profiler.c: provide more callers information.
20569 2003-01-28 Dietmar Maurer <dietmar@ximian.com>
20571 * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
20573 * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
20575 * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
20577 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
20579 * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
20580 exception instead of going into an infinite loop on dates which it
20583 * string-icalls.c (ves_icall_System_String_get_Chars): raise
20584 out-of-range exception if needed.
20586 * class.c (mono_class_setup_vtable): allow a virtual method to provide
20587 an implementation for an interface method and to override an inherited
20588 method at the same time.
20589 Imagine a scenario when a virtual method is used to override a
20590 virtual abstract method in a parent class, and this same method
20591 provides an implementation for an method inherited from an interface.
20592 In this case, the interface resolution code will set im->slot, which
20593 means that the virtual method override pass will skip this method
20594 which means a pointer to the abstract method inherited from the parent
20595 will remain in the vtable of this non-abstract class.
20597 * class.c: (mono_class_setup_vtable): continue search for a real
20598 method if only an abstract method is found.
20600 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20602 * reflection.c: add size to encoding for ByValStr and ByValArray
20603 marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
20605 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
20607 * class.c (mono_class_setup_vtable): pass the override info as an
20610 * class.c (mono_class_setup_vtable): set the slot of overriding methods
20613 * reflection.c (ensure_runtime_vtable); add support for method
20616 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
20618 * reflection.c (resolution_scope_from_image): Hack to work to work with
20619 dynamic assemblies.
20621 * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and
20622 added a 'force_ref' argument to force this function to allways return
20623 a TypeRef. This is needed by mono_image_get_memberref_token ().
20625 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
20627 * reflection.c (mono_image_get_type_info): interfaces really don't have
20630 * reflection.c (mono_image_basic_init): fill out missing fields of
20633 * reflection.c (mono_image_basic_init): Invoke assembly load hooks for
20634 dynamic assemblies. This is required so dynamic assemblies show up in
20635 AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
20636 Type::GetType() etc. This is consistent with MS behaviour.
20638 * image.c image.h reflection.c: add newly created classes to the name
20639 cache so mono_class_get () will find them.
20641 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
20643 First part of changes to get IKVM.NET running under mono.
20645 * appdomain.h, appdomain.c: added new function
20646 mono_domain_try_type_resolve() which will emit TypeResolve events.
20647 This function will call AppDomain::DoTypeResolve to do the actual work.
20649 * class.h, class.c, loader.c, object.c, reflection.h, reflection.c:
20650 moved existing code dealing with dynamic tokens to a new function
20651 called mono_reflection_lookup_dynamic_token (). This function will
20652 raise TypeResolve events when appropriate. Since reflection.c is not
20653 part of libmetadata, a new hook function called
20654 mono_lookup_dynamic_token() is added to class.c which will call this.
20656 * assembly.h assembly.c: make the invoke_load_hook function public,
20657 so it can be called for dynamic assemblies.
20659 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
20661 * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the
20664 * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a
20665 MonoGHashTable, since it contains pointers to objects which the GC
20668 * assembly.c (search_loaded): remove unused variable.
20670 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
20672 * object.c: fixed issue exposed by gcc-generated IL programs
20673 that use RVA data for pointers.
20675 2003-01-25 Martin Baulig <martin@ximian.com>
20677 * threads.c (start_wrapper): Moved the initialization of
20678 `start_func' above the mono_new_thread_init() call to which we
20679 pass it as argument.
20681 2003-01-24 Martin Baulig <martin@ximian.com>
20683 * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
20684 the MonoThread pointer.
20686 2003-01-21 Miguel de Icaza <miguel@ximian.com>
20688 * icall.c: Rename `PowImpl' to Pow.
20690 2003-01-23 Dick Porter <dick@ximian.com>
20692 * threads.c (start_wrapper): Create a Thread object if needed, so
20693 the Main() thread can do the class initialisation in a subthread
20694 that has been set up to allow managed code execution.
20696 Pass the thread ID instead of the MonoThread pointer to the thread
20697 start and attach callbacks. This change is required, because the
20698 jit thread start callback must be called _before_ the Thread
20699 object can be created.
20701 (mono_thread_init): Removed much object creation code that is no
20702 longer needed. No managed code is called from here now.
20704 * object.c (mono_runtime_exec_managed_code): Create a subthread
20705 for Main, and call back to the runtime to use it.
20706 Set the exit code when Main exits.
20708 * gc.c: Make sure domain finalisation happens in a subthread.
20709 Re-enable threaded GC, fixing bug 31333 (again).
20711 * environment.c: System.Environment internall calls (so far just
20712 ExitCode is here, the others are still in icall.c)
20714 * appdomain.c (mono_runtime_cleanup): All threads running managed
20715 code should have finished before mono_runtime_cleanup() is
20716 reached, so no need to clean up threads.
20718 2003-01-22 Martin Baulig <martin@ximian.com>
20720 * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
20721 `gpointer func' arguments.
20722 (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
20723 but added `MonoThread *thread' argument.
20724 (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
20726 * threads.c (mono_new_thread_init): Added `gpointer func' argument
20727 and pass it to the mono_thread_start_cb callback.
20728 (mono_install_thread_callbacks): New public function to install a
20729 set of callbacks which are set by the debugger.
20730 (mono_thread_init): The last argument is now a MonoThreadAttachCB.
20732 2003-01-22 Martin Baulig <martin@ximian.com>
20734 * Makefile.am: Install debug-mono-symfile.h.
20736 2003-01-21 Aleksey Demakov <avd@openlinksw.com>
20738 * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
20740 2003-01-21 Dietmar Maurer <dietmar@ximian.com>
20742 * added the following fix from Jackson Harper <jackson@latitudegeo.com>
20743 * class.c (mono_ptr_class_get): correctly set access levels of pointers
20744 (mono_array_class_get): correctly set access levels of arrays
20746 2003-01-20 Patrik Torstensson
20747 * image.h (MonoAssemblyName): changed major, minor, build, revision
20748 from signed to unsigned.
20750 2003-01-20 sean kasun <skasun@azstarnet.com>
20752 * reflection.c (load_cattr_value): Now this handles
20753 MONO_TYPE_SZARRAY. Fixes bug #35629
20755 2003-01-20 Miguel de Icaza <miguel@ximian.com>
20757 * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
20760 2003-01-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20762 * decimal.c: fixed bug #26056.
20764 2003-01-17 Martin Baulig <martin@ximian.com>
20766 * gc.c: Raise an ExecutionEngineException instead of using g_error().
20768 2003-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20771 (mono_get_exception_type_initialization): new function.
20773 * object.c: throw a TypeInitializationException when an exception is
20774 thrown invoking the class constructor.
20776 2003-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20778 * reflection.c: fixed attribute reading.
20780 2003-01-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20783 (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
20784 provided, look for the type in the calling assembly and then in
20785 mscorlib; if the assembly name is provided, only try that one.
20787 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
20789 * object.c: register the vtable before there is a chance it's
20790 queried again recursively.
20792 2003-01-13 Duncan Mak <duncan@ximian.com>
20794 * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
20797 2003-01-12 Patrik Torstensson <totte@race-x-change.com>
20799 * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
20801 2003-01-11 Martin Baulig <martin@ximian.com>
20803 * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
20804 this to 20 for the release.
20806 2003-01-10 Dietmar Maurer <dietmar@ximian.com>
20808 * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
20810 * loader.c (mono_method_get_marshal_info): bug fix
20812 * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
20813 structures with explicit layout
20815 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
20817 * profiler.c: made the output more readable (and sorted).
20818 Added caller information for the allocation profiler.
20820 2003-01-09 Sebastien Pouliot <spouliot@videotron.ca>
20822 * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
20824 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20826 * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
20827 to get value types.
20829 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
20831 * object.c, profiler.h, profiler.c, profiler-private.h:
20832 Added object allocation profiler.
20834 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
20836 * reflection.h, reflection.c: handle global methods.
20837 Compress blob entries.
20839 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
20841 * marshal.c: fix compilation.
20843 2003-01-09 Dietmar Maurer <dietmar@ximian.com>
20845 * loader.c (mono_method_get_marshal_info): impl.
20847 * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
20849 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20851 * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
20852 for reference types.
20854 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
20856 * loader.c: fixed off by one error in loaded parameter names.
20858 2003-01-08 Dietmar Maurer <dietmar@ximian.com>
20860 * marshal.c (mono_marshal_get_icall_wrapper): like
20861 mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
20862 instead of a MonoMethod.
20864 2003-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20866 * decimal.c: fixed bug #36537.
20868 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
20870 * marshal.c: throw a missing method exception if a
20871 P/Invoke method is not found.
20873 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
20875 * icall.c: allow a null this for constructors.
20877 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
20879 * icall.c: raise the proper exceptions if the arguments to the
20880 internal Invoke are incorrect.
20882 2003-01-03 Dietmar Maurer <dietmar@ximian.com>
20884 * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
20886 2003-01-03 Martin Baulig <martin@ximian.com>
20888 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20890 2002-12-31 Martin Baulig <martin@ximian.com>
20892 * debug-mono-symfile.c: Completely rewrote the type section.
20893 Instead of using individual malloc()ed fields, we use one big
20894 continuous memory area and offsets into this area.
20895 See the comments in the source code for details.
20897 2002-12-30 Martin Baulig <martin@ximian.com>
20899 * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
20901 2002-12-30 Martin Baulig <martin@ximian.com>
20903 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
20904 line number table in this data blob instead of using an external
20907 2002-12-28 Martin Baulig <martin@ximian.com>
20909 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20911 2002-12-22 Rachel Hestilow <hestilow@ximian.com>
20913 * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
20914 as a boxed return type.
20916 2002-12-21 Miguel de Icaza <miguel@ximian.com>
20919 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
20920 g_build_filename to properly get separators on the filename created.
20922 * object.h: Small change, introduce MonoMarshalByRefObject to
20923 track the layout of that structure in the C# universe as we make
20926 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
20928 * object.c: removed assert to allow static fields on interfaces.
20929 * loader.c: a TypeSpec may be used for any type, not just arrays.
20931 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20933 * class.c, class.h: added mono_class_array_element_size ().
20934 Ignore static methods in interfaces.
20936 2002-12-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20938 * threads.c: fixed the build under cygwin.
20940 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
20942 * reflection.c: handle nullref constants. Allocate keys for
20943 reflection handles with the GC.
20945 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20947 * threads.c, threads.h: added mono_thread_get_abort_signal()
20948 to get a suitable signal for thread abort.
20950 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20952 * metadata.c: fix handling of ExportedType table.
20954 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20956 * icall.c: added WriteWindowsDebugString internal call.
20958 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20960 * reflection.h: added fields to match C# implementation.
20962 2002-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20964 * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
20966 2002-12-12 Juli Mallett <jmallett@FreeBSD.org>
20968 * gc.h, gc-internal.h: Rename header for GC internal calls to
20969 gc-internal.h from gc.h as to not clash with Boehm GC having its
20970 header installed as <gc.h> in outside include paths.
20971 * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
20972 * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
20974 2002-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20976 * icall.c: assign minor, build and revision in FillName.
20978 2002-12-11 Zoltan Varga <vargaz@freemail.hu>
20980 * image.h reflection.h reflection.c class.h class.c loader.c object.c:
20981 Added support for running code generated by Reflection.Emit.
20983 2002-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20985 * appdomain.c: check for NULL argument in LoadFrom.
20987 2002-12-10 Dick Porter <dick@ximian.com>
20989 * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
20991 2002-12-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20993 * appdomain.c: fix buglet when building exe file name. Handle full
20994 assembly name (needed after latest changes to AssemblyName).
20996 (mono_image_close): free some hashtables.
20998 2002-12-05 Dietmar Maurer <dietmar@ximian.com>
21000 * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN
21001 instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation
21002 on some systems (redhat 7.3)
21004 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
21006 * threads.c: delete the critical section of a sync block,
21007 spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
21009 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
21011 * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
21013 2002-12-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21015 * appdomain.[ch]: handle the assembly preload event to try loading the
21016 assemblies using the paths we have in the current domain.
21018 * assembly.[ch]: created an assembly preload hook that is called to try
21019 loading the assembly by other means that the ones provided here.
21021 * domain.c: initialize the domain search path.
21023 From now on, assemblies (TODO: except corlib and System) are loaded
21024 according to these rules when using mono_assembly_load ():
21026 1. It tries to load the assembly from the ApplicationBase
21027 of the current domain appending .dll and .exe (TODO: have to
21028 try loading from name/name.dll and name/name.exe).
21030 2. It tries the search path specified in PrivateBinPath for the
21031 current domain (if any).
21033 3. Previous behavior.
21035 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
21037 * icall.c: implemented GetInterfaceMap() related icall.
21038 * domain.c, loader.h: load MethodInfo in mono_defaults.
21040 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21042 * gc.c: disable the finalizer thread for now, untill all the issues
21043 with it are resolved.
21045 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21047 * string-icalls.c: handle embedded nulls in string ctor when the
21048 length is specified.
21050 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21052 * class.c: look for explicit interface implementation in parent
21055 2002-12-03 Dietmar Maurer <dietmar@ximian.com>
21057 * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3)
21059 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21061 * gc.c: protect handles with a critical section.
21063 2002-12-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21066 (ves_icall_type_from_name): it now has throwOnError and ignoreCase
21067 parameters. If no assembly specified, try getting the type from all
21068 the assemblies in the current domain, else, load the assembly and get
21071 2002-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21073 * marshal.c: applied patch from Aleksey Demakov that fixes
21074 ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
21076 2002-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21078 * icall.c: fixed get_location.
21080 2002-11-28 Dietmar Maurer <dietmar@ximian.com>
21082 * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
21083 declarations to make it work with older gcc.
21085 * loader.c (mono_get_method): set signature->pinvoke for native calls
21087 2002-11-20 Dick Porter <dick@ximian.com>
21089 * threads.c (mono_thread_init): Set the main thread's handle
21091 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21093 * gc.c: allow compilation without GC support. Changed to match the
21096 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21098 * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
21100 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
21102 * reflection.c: set a public key token on the core assemblies.
21104 2002-11-18 Dick Porter <dick@ximian.com>
21106 * threads.c: Split out some thread initialisation so that other
21107 files can set the start callback function.
21109 * gc.c: Run finalisers in a separate thread, to avoid stack
21110 overflow. Fixes bug 31333.
21112 * appdomain.c: Set up GC finalisation thread.
21116 * domain.c: Use gc.h macros for GC_malloc
21118 2002-11-15 Dick Porter <dick@ximian.com>
21122 * appdomain.c: Removed mono_runtime_init_with_attach(),
21123 mono_thread_create_arg(), and mono_thread_init_with_attach(), by
21124 merging the extra parameter with the existing function. Removed
21125 unneeded code in mono_thread_attach().
21127 2002-11-14 Dietmar Maurer <dietmar@ximian.com>
21129 * image.c (mono_image_loaded_by_guid): a method to get loaded
21131 (load_metadata_ptrs): we store the guid as string.
21133 2002-11-11 Dietmar Maurer <dietmar@ximian.com>
21135 * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
21137 * metadata.c (mono_guid_to_string): imported method form Zoltan
21138 Varga (slightly modified)
21140 * assembly.c (mono_assembly_open): load precompiled code
21142 * loader.h (MonoMethod): we store the method token for use in the
21145 2002-11-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21147 * appdomain.c: insert the loaded assemblies in the domain->assemblies in
21148 the hook function called when an assembly is loaded.
21150 * domain.c: Modified file.
21151 (mono_domain_assembly_load): removed hash table insertion of assemblies.
21155 2002-11-07 Miguel de Icaza <miguel@ximian.com>
21157 * reflection.c: Map PEFileKind to the value expected by the WinNT
21160 2002-11-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21162 * rand.c: use /dev/urandom. If it fails to open, use the previous one.
21163 Read until the buffer is filled completely.
21165 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21167 * icall.c: implemented MonoType.InternalGetEvent ().
21169 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21171 * appdomain.c: implemented InitAppDomainSetup. Delayed
21172 AppDomain.SetupInformation until mono_runtime_exec_main, where we get
21173 the entry_assembly.
21175 * assembly.c: base_dir is now an absolute path ending with
21178 * icall.c: modified get_location according to the above changes.
21180 * object.c: init AppDomain.SetupInformation for the default domain after
21181 we have the entry assembly.
21183 * domain.c: when unloading a domain, setup = NULL.
21185 2002-11-04 Dietmar Maurer <dietmar@ximian.com>
21187 * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
21189 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
21191 * object.h, object.c: introduced mono_object_get_virtual_method ()
21192 to lookup the method invoked on an object when a callvirt is done on
21194 * icall.c: make MethodInfo::Invoke() always do a virtual call.
21196 2002-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21198 * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
21199 current domain when loaded an assembly and failed to load it.
21201 * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
21203 2002-10-31 Dick Porter <dick@ximian.com>
21207 * file-io.c: Return the error status in a parameter, as the
21208 GetLastError() value has long since been blown away if we try and
21209 look it up in a subsequent internal call invocation. Delete the
21210 GetLastError() internal call, because it's useless.
21212 2002-10-31 Dietmar Maurer <dietmar@ximian.com>
21214 * class.[ch]: added cast_class to fix bug 29517
21216 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
21218 * marshal.c: create valid IL code in the filter clause:
21219 the new JIT is less forgiving:-)
21221 2002-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21223 * icall.c: removed get_property internal call.
21225 2002-10-25 Zoltan Varga <vargaz@freemail.hu>
21227 * appdomain.h domain.c: Added an ID to appdomains.
21229 * threads.c threads.h icall.c: Implement icall
21230 Thread:GetDomainID(), and remove unused icall
21231 CurrentThreadDomain_internal.
21233 2002-10-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21235 * icall.c: Don't recurse through the base types in GetConstructor.
21238 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
21240 * mempool.h, mempool.c: added mono_mempool_empty() and
21241 mono_mempool_stats().
21243 2002-10-23 Dick Porter <dick@ximian.com>
21247 * icall.c: Added MonoIO.GetFileType internal call
21249 2002-10-17 Dick Porter <dick@ximian.com>
21251 * appdomain.c (mono_runtime_cleanup): Don't signal the async
21252 delegate semaphore before waiting for all threads to finish,
21253 because new threads can also call async delegates. Fixes bug
21256 * threadpool.c (async_invoke_thread): Only wait for 500ms instead
21257 of 3 seconds, in case another async job is queued. (This part is
21258 needed because the bug fix reintroduced the 3s exit lag.) This
21259 makes the mono_runtime_shutdown flag superfluous.
21261 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
21263 * reflection.c: include ehader size in method section headers.
21264 Really check for suplicated modules entries.
21266 2002-10-17 Martin Baulig <martin@gnome.org>
21268 * debug-mono-symfile.c: Added back support for locals.
21270 2002-10-14 Martin Baulig <martin@gnome.org>
21272 * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
21275 2002-10-14 Martin Baulig <martin@gnome.org>
21277 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
21278 mono_class_get() instead of looking in the class cache.
21280 2002-10-13 Martin Baulig <martin@gnome.org>
21282 * debug-mono-symfile.c: Set version number to 28, include the
21283 signature in method names.
21285 2002-10-13 Martin Baulig <martin@gnome.org>
21287 * debug-mono-symfile.h: Set version number to 27.
21289 2002-10-11 Martin Baulig <martin@gnome.org>
21291 * gc.c: Don't register/unregister NULL pointers as disappearing links.
21293 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21295 * metadata.c, metadata.h: added helper function to allocate signatures.
21297 2002-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21299 * icall.c: added internal call to get the location of machine.config.
21301 2002-10-08 Martin Baulig <martin@gnome.org>
21303 * debug-mono-symfile.c: Ignore classes with a pending init for the
21306 2002-10-03 Dick Porter <dick@ximian.com>
21308 * threads.c: Freebsd pthread_t is a pointer
21310 2002-10-03 Dick Porter <dick@ximian.com>
21312 * socket-io.c: Implemented GetHostName_internal
21314 2002-10-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21317 (mono_config_parse_file): don't leak the text.
21319 2002-10-02 Martin Baulig <martin@gnome.org>
21321 * debug-mono-symfile.c: Added support for methods.
21323 2002-10-01 Martin Baulig <martin@gnome.org>
21325 * debug-mono-symfile.c: Don't emit methods and line numbers for
21326 the dynamic symbol file, just write the type table. We can easily
21327 have an external helper program which creates a symbol file for an
21330 2002-10-01 Dick Porter <dick@ximian.com>
21332 * threads.c (ves_icall_System_Threading_Thread_Start_internal):
21333 Only add the handle to the cleanup array when we're about to
21334 launch the thread. Bug 31425 deadlocked when the test was run on
21337 2002-10-01 Martin Baulig <martin@gnome.org>
21339 * debug-mono-symfile.c: Added support for properties.
21341 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21343 * reflection.c: unaligned store fix from Mark Crichton
21344 <crichton@gimp.org>.
21346 2002-09-27 Martin Baulig <martin@gnome.org>
21348 * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
21351 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21353 * assembly.h, assembly.c: use a sane API to hook into the assembly
21354 loading process instead of a useless special-purpouse hack
21355 (ngen needs a hook, too, for example).
21357 2002-09-27 Dick Porter <dick@ximian.com>
21359 * threads.c (mono_thread_init): Call GetCurrentProcess() so
21360 io-layer can set up some process handle info. Not needed on w32,
21361 but doesn't hurt either.
21363 * process.c: Pass the program name in the second parameter to
21364 CreateProcess, so the path is searched. Include the working
21365 directory. Implemented process name, process enumeration, and some
21366 process detail internal calls.
21368 * icall.c: Added internal calls for process lookup, and some
21371 2002-09-26 Martin Baulig <martin@gnome.org>
21373 * assembly.c (mono_install_open_assembly_hook): New global
21374 function to install a function to be invoked each time a new
21375 assembly is loaded.
21376 (mono_assembly_open): Run this callback function if set.
21378 * debug-mono-symfile.c: Put back line numbers for the dynamic
21379 symbol file and also record the .il file as source file. This
21380 allows us to install the temporary symbol file as `file.dbg' just
21381 like a compiler-generated one.
21383 2002-09-26 Nick Zigarovich <nick@chemlab.org>
21385 * Corrected typo in gc.c (BOHEM vs BOEHM).
21387 2002-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21389 * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
21390 GetProperties. Also avoid calling g_slist_length in GetProperties and
21393 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21395 * reflection.c: avoid unaligned stores (bug spotted by
21396 Mark Crichton <crichton@gimp.org>).
21398 2002-09-25 Martin Baulig <martin@gnome.org>
21400 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
21401 instead of guint64 for addresses and added prologue/epilogue info.
21403 2002-09-25 Martin Baulig <martin@gnome.org>
21405 * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
21406 store line number info. For the dynamic symbol file, we only need
21407 to provide the JIT generated dynamic line number info for the dynamic
21410 2002-09-25 Martin Baulig <martin@gnome.org>
21412 * debug-mono-symfile.h: Incremented version number.
21414 2002-09-24 Martin Baulig <martin@gnome.org>
21416 * class.c (mono_debugger_class_init_func): New global function
21418 (mono_class_init): If mono_debugger_class_init_func is non-NULL,
21421 * debug-mono-symfile.c (mono_debug_symfile_add_type): New
21422 function. This is called via the mono_debugger_class_init_func
21423 hook to add all types to the dynamic type table.
21424 (ves_icall_MonoDebugger_GetType): New interncall to get a class
21425 from its metadata token.
21427 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
21428 New interncall for the debugger.
21430 2002-09-24 Nick Drochak <ndrochak@gol.com>
21432 * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
21433 before using it in case it is null.
21435 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21437 * metadata.c: allow custom modifiers in local var signatures
21438 (bug spotted by Zoltan Varga).
21440 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21442 * class.c: deal with the <Module> class that may have a NULL vtable.
21443 Eliminate warnings.
21445 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21447 * image.c, image.h: more strong name helpers.
21448 * monosn.c: more work: convert pem keys to cryptoapi format.
21450 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
21452 * string-icalls.c: speedup IndexOf.
21454 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21456 * icall.c: updates from Zoltan.2.Varga@nokia.com.
21458 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21460 * icall.c: cleanup: use mono_object_domain ().
21462 2002-09-23 Martin Baulig <martin@gnome.org>
21464 * debug-mono-symfile.c: Improved type support.
21466 2002-09-22 Martin Baulig <martin@gnome.org>
21468 * debug-mono-symfile.c: Added support for reference types and strings.
21470 2002-09-22 Martin Baulig <martin@gnome.org>
21472 * debug-mono-symfile.c: Started to work on the type table.
21474 2002-09-21 Martin Baulig <martin@gnome.org>
21476 * debug-mono-symfile.c: Largely reworked the symbol table format.
21477 The symbol table is now incrementally updated each time a new
21478 method is added. We're now also using our own magic and version
21479 so that you don't need to recompile all your classes if the
21480 dynamic table changes.
21481 (mono_debug_update_mono_symbol_file): Removed.
21482 (mono_debug_symfile_add_method): New function to add a method.
21484 2002-09-21 Martin Baulig <martin@gnome.org>
21487 ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
21490 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
21491 New interncall to get a method from its metadata token.
21493 2002-09-21 Martin Baulig <martin@gnome.org>
21495 * debug-mono-symfile.c: Create type table.
21497 2002-09-20 Martin Baulig <martin@gnome.org>
21499 * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
21501 2002-09-20 Martin Baulig <martin@gnome.org>
21503 * debug-mono-symfile.c: Provide information about params and locals.
21505 2002-09-20 Martin Baulig <martin@gnome.org>
21507 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
21510 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
21511 interncall to get a method from its metadata token.
21513 2002-09-20 Martin Baulig <martin@gnome.org>
21515 * debug-mono-symfile.c: Added a few checks for method->header
21516 being non-NULL. This should never happen, but for the moment
21517 let's use a g_warning() rather than a g_assert().
21519 2002-09-19 Mark Crichton <crichton@gimp.org>
21521 * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
21522 even if support for it isn't present. Added an #ifdef to fix this.
21524 * socket-io.c: Added checks back for Solaris support.
21526 2002-09-19 Martin Baulig <martin@gnome.org>
21528 * debug-mono-symfile.c (read_string, write_string): Reflect latest
21529 changes in the symbol file format.
21531 2002-09-18 Martin Baulig <martin@gnome.org>
21533 * debug-mono-symfile.c: Set version number to 21.
21535 2002-09-18 Dick Porter <dick@ximian.com>
21537 * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
21538 on netbsd. Fixes bug 30051.
21540 2002-09-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21543 (set_version_from_string): little fix.
21545 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21547 * monosn.c, Makefile.am: added strong name utility.
21548 * reflection.h, reflection.c: implemented delayed signing,
21549 locale, version and hash id assembly attributes.
21551 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
21553 * loader.c, metadata.c: load param attributes in signatures.
21555 2002-09-16 Martin Baulig <martin@gnome.org>
21557 * debug-mono-symfile.c: Added string table with all method names.
21559 2002-09-14 Martin Baulig <martin@gnome.org>
21561 * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
21562 fast method lookup.
21564 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21566 * reflection.c: record the public key token of referenced assemblies.
21568 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21570 * image.c, image.h: added functions to get the strong name and the
21571 public key of an assembly.
21572 * pedump.c: use them.
21574 2002-09-12 Dietmar Maurer <dietmar@ximian.com>
21576 * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
21578 2002-09-12 Miguel de Icaza <miguel@ximian.com>
21580 * marshal.c (mono_marshal_get_managed_wrapper): Added
21583 2002-09-11 Martin Baulig <martin@gnome.org>
21585 * gc.c: Call GC_unregister_disappearing_link() on all links when
21586 finalizing them, this is necessary to aviod a crash in boehm's
21589 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21591 * gc.c: handle GetTarget for finalized objects spotted and fixed by
21594 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
21596 * icall.c: implemented MonoType::Module.
21597 * reflection.c, reflection.h: mono_module_get_object () from
21598 Tomi Pakarinen <tomi.pakarinen@welho.com>.
21600 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21602 * icall.c: ignore overridden methods in GetMethods ().
21603 Fix for FieldInfo::SetValue().
21604 * object.c: handle float/double in runtime invoke.
21606 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21608 * object.c: allow a constructor to be called again on an object.
21610 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21612 * class.h, class.c: move field layout code to it's own function and
21613 export it. Get an interface id earlier. Move fields in MonoClass
21614 so they are more cache friendly and align the bitfields.
21615 * loader.c: temporary handle get_param_names() for a runtime method.
21616 * reflection.c, reflection.h: more code to handle runtime creation of
21619 2002-09-09 Martin Baulig <martin@gnome.org>
21621 * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
21622 signature with the pinvoke field being set for the actual call.
21624 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21626 * icall.c: removed some unused icalls. Start of map of glib charsets
21627 to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
21629 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21631 * debug-helpers.c: break infinite loop (found and fixed by
21632 Holger Arnold <harnold@gmx.de>).
21634 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21636 * icall.c: target may be null in create_delegate.
21638 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21640 * marshal.c: handle a boolean return type.
21642 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21644 * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
21646 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21648 * gc.c: fix weakreferences.
21650 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
21652 * icall.c: added icall to get default codepage.
21654 2002-09-03 Dick Porter <dick@ximian.com>
21657 * threads.c: Use MonoThread instead of MonoObject where
21660 Store running thread objects in a hash table, so that we have all
21661 the info to hand when waiting for them to finish
21662 (means we don't need OpenThread() any more, so mingw builds should
21663 be fully functional again.)
21666 * object.h: Added thread ID to MonoThread
21668 2002-09-03 Martin Baulig <martin@gnome.org>
21670 * icall.c (System.Reflection.Assembly::get_location): New interncall.
21672 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21674 * icall.c: fixed leak in get_temp_path. Thanks lupus.
21676 2002-09-03 Martin Baulig <martin@gnome.org>
21678 * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
21679 argument to store the end address of the disassembled instruction.
21681 * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
21682 here from debug-symfile.h.
21683 (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
21684 JIT into this struct.
21685 (MonoSymbolFile): Added `char *image_file' field.
21686 (MonoDebugGetMethodFunc): Removed.
21687 (mono_debug_update_mono_symbol_file): Removed the hash table argument.
21688 (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
21689 (mono_debug_find_method): New method.
21691 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
21692 create a full symbol file.
21693 (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
21694 and static symbol files.
21695 (mono_debug_find_method): The symbol file keeps an internal method hash,
21696 call this to get a MonoDebugMethodInfo from a MonoMethod.
21698 * debug-symfile.[ch]: Removed.
21700 2002-08-29 Miguel de Icaza <miguel@ximian.com>
21702 * image.c (do_mono_image_open): Remove linker version check.
21704 2002-08-29 Dietmar Maurer <dietmar@ximian.com>
21706 * marshal.c (mono_marshal_get_managed_wrapper): don't cache
21707 wrappers for instance methods.
21709 2002-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21711 * icall.c: added ves_icall_System_IO_Path_get_temp_path.
21713 2002-08-28 Dick Porter <dick@ximian.com>
21715 * Makefile.am: Export HOST_CC for w32 builds
21717 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21719 * file-io.c process.c: MonoString are null terminated, no
21720 need for mono_string_to_utf16() anymore.
21722 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21724 * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
21726 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
21728 * icall.c, reflection.h: speedup System.MonoType.
21730 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21732 * reflection.c: allow null as the value of a string argument in
21733 custom attributes constructors.
21735 2002-08-27 Martin Baulig <martin@gnome.org>
21737 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
21738 `trampoline_address' field.
21740 2002-08-27 Dietmar Maurer <dietmar@ximian.com>
21742 * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
21743 check (fixes bug #29486)
21745 2002-08-27 Martin Baulig <martin@gnome.org>
21747 * debug-mono-symfile.c: Changed the file format in a way that allows us
21748 open it read-only and to use a specially malloced area for all the
21749 dynamic data. We can now also generate a symbol file on-the-fly if we're
21750 debugging IL code and there is no MCS generated symbol file for it.
21752 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21754 * object.c: added a define for a good string and array
21755 creation speedup (not enabled by default because we need to deal with
21758 2002-08-26 Martin Baulig <martin@gnome.org>
21760 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
21761 function to create a dynamic symbol file. This is used by the
21762 debugger to create a symbol file for IL code on-the-fly.
21764 2002-08-26 Martin Baulig <martin@gnome.org>
21766 * loader.c (mono_lookup_pinvoke_call): Include the error message
21767 from g_module_error() in the error message.
21769 2002-08-24 Martin Baulig <martin@gnome.org>
21771 * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
21772 function to update the symbol file. The symbol file is mmap()ed
21773 writable, but private. This allows us to install the symbol file
21774 together with the assembly.
21776 2002-08-24 Martin Baulig <martin@gnome.org>
21778 * debug-mono-symfile.[ch]: New files. Similar to debug-symfile.[ch]
21779 but they can read the new symbol file format which mcs is now creating.
21781 * debug-symfile.c (mono_debug_find_source_location): Moved to
21782 debug-mono-symfile.c; this is now operating on the new symbol file.
21784 2002-08-23 Martin Baulig <martin@gnome.org>
21786 * debug-helpers.c (mono_method_desc_from_method): New function to get
21787 a MonoMethodDesc from a MonoMethod.
21789 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21791 * object.c: fixes assertion failure caused by multiple ExecuteAssembly
21792 calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
21794 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
21796 * string-icalls.[ch]: make helper methods static.
21798 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21800 * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
21801 types to it and to SetValueInternal.
21803 * object.c: Moved handle_enum label to its proper place. This was the
21806 This time i compiled mcs and gtk-sharp and they both work.
21808 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21810 * icall.c: reverted partially my previous patch until
21811 object.c:set_value handles enums correcly.
21813 2002-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21816 (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
21817 (ves_icall_System_Environment_get_MachineName): removed warning when
21818 compiling under cygwin.
21820 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21822 * object.c: fixed field_get_value() for reference types.
21824 2002-08-22 Dick Porter <dick@ximian.com>
21826 * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
21827 Don't free a buffer while it's still needed. Patch from Jonathan
21828 Liger <Jonathan.liger@wanadoo.fr>
21830 2002-08-21 Miguel de Icaza <miguel@ximian.com>
21832 * icall.c (ves_icall_System_Environment_get_Platform): Add new
21835 2002-08-21 Dietmar Maurer <dietmar@ximian.com>
21837 * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
21838 (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
21840 * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
21841 we call unmanaged code which throws exceptions.
21843 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21845 * appdomain.h: added per-domain entry_assembly.
21846 * appdomain.c: ensure mono_runtime_exec_main () gets non-null
21848 * icall.c: Assembly::GetEntryAssembly icall.
21849 * object.c: set domain->entry_assembly in mono_runtime_exec_main().
21850 Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
21852 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21854 * appdomain.h, gc.c: added mono_domain_finalize ().
21856 2002-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21859 (mono_print_unhandled_exception): changed g_warning by g_printerr
21860 because g_log has a 1024 characters limit (yeah, i got a big stack
21861 trace). Don't print exception name, that should be in ToString
21864 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21866 * icall.c: added ves_icall_FieldInfo_SetValueInternal.
21867 * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
21869 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21872 (mono_print_unhandled_exception): after previous commit, i realized
21873 that MS calls ToString on the exception. I changed this function to
21874 do that. This way we get stack_trace for free.
21876 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21879 (mono_print_unhandled_exception): invoke Message property instead of
21880 getting 'message' field from Exception. Don't allocate memory for
21881 'trace' and 'message' if not needed.
21883 2002-08-18 Dick Porter <dick@ximian.com>
21885 * unicode.c: Fix asserts to match Encoder.cs checks
21887 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21889 * marshal.c: fix unaligned store issue and a few wrong
21890 opcode argument types.
21892 2002-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21894 * icall.c: added GetUninitializedObjectInternal internal call.
21896 2002-08-16 Dietmar Maurer <dietmar@ximian.com>
21898 * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
21899 to the right domain.
21901 2002-08-14 Dietmar Maurer <dietmar@ximian.com>
21903 * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
21905 * class.c (class_compute_field_layout): set blittable to false for Strings
21907 * appdomain.c (mono_domain_transfer_object): added support for ISerializable
21909 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21911 * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
21912 first chunk of code to create types at runtime. Code to
21913 handle ReflectedType/DeclaringType. Make reflection handles
21916 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
21918 * class.c: set correct name in arrays.
21920 2002-08-13 Dietmar Maurer <dietmar@ximian.com>
21922 * appdomain.c (mono_domain_transfer_object): make it work with
21923 valuetypes. bug fixes.
21925 2002-08-12 Dick Porter <dick@ximian.com>
21927 * object.h: Rename some parameters to avoid c++ keywords (Patch
21928 from Joseph Wenninger <kde@jowenn.at>)
21930 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
21932 * icall.c: added icall to implement Assembly.GetFile*.
21934 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21936 * reflection.h, reflection.c: code to embed managed resources.
21938 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21940 * class.c: move all the type size stuff into
21941 class_compute_field_layout().
21943 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21945 * class.c: ensure enums have always the correct instance size.
21946 * unicode.c: remove wrong assert.
21948 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21950 * assembly.c: fix mem corruption issue.
21951 * image.h, image.c: added mono_image_get_resource () to access
21953 * icall.c: implemented Assembly.EntryPoint property and some
21954 Managed Resources related internalcalls.
21957 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21959 * image.c, image.h: impemented mono_image_get_entry_point ().
21960 * appdomain.c: use mono_image_get_entry_point.
21962 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21964 * reflection.c: support the object type argument when loading
21967 2002-08-05 Dietmar Maurer <dietmar@ximian.com>
21969 * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
21970 String as return type.
21972 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
21974 * reflection.c: fix encoding of named args for custom attrs to match
21975 the ms implementation. Read them back when instantiating custom
21978 2002-08-02 Radek Doulik <rodo@ximian.com>
21980 * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
21981 by Dietmar as quick fix
21982 (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
21983 16 as stack size, used on more places as quick fix before Dietmar
21984 will fix it properly
21986 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21988 * object.h, object.c: added accessors for fields and properties.
21990 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21992 * class.c, class.h: made mono_class_get_field_from_name ()
21993 loop on parent types.
21994 Added mono_class_get_property_from_name ().
21996 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21998 * class.c, class.h: move the code to setup the type vtable in its own
21999 function so that it can be reused also for types created at runtime.
22000 Eliminate the "class" identifier from the header file.
22001 * reflection.c: setup the vtable for enums so that we can create
22002 objects for use in SetConstant ().
22004 2002-08-02 Dietmar Maurer <dietmar@ximian.com>
22006 * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
22007 instead of the delegate itself as this pointer (bug #28383)
22009 2002-08-01 Dietmar Maurer <dietmar@ximian.com>
22011 * marshal.c (mono_marshal_get_managed_wrapper): added return type
22014 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22016 * loader.c: don't set the pinvoke bit on icalls.
22018 2002-07-31 Dietmar Maurer <dietmar@ximian.com>
22020 * debug-helpers.c (mono_method_full_name): only print a number to
22021 indicate wrapper type (so that the output is more readable in traces).
22023 2002-07-30 Dietmar Maurer <dietmar@ximian.com>
22025 * class.c (mono_class_init): include method override patch from Paolo
22027 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
22029 * icall.c: fixed GetTypeCode().
22031 2002-07-29 Dietmar Maurer <dietmar@ximian.com>
22033 * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
22034 use real delegate invoke function to make it work with multicast
22035 delegates (fix bug# 28291).
22037 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22039 * object.c: load constant strings.
22041 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22043 * reflection.c: no magic numbers.
22044 * tabledefs.h: security action enum.
22046 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22048 * assembly.c: fix possible memory corruption.
22050 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22052 * reflection.h, reflection.c: added support for linking resources.
22053 * verify.c: check we have an updated corlib.
22055 2002-07-25 Dietmar Maurer <dietmar@ximian.com>
22057 * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
22059 (mono_marshal_string_array): null terminate unmanaged string arrays.
22060 (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
22062 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22064 * icall.c: Type.GetType () can now return also types from the
22067 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22069 * loader.h, loader.c: stack walking support.
22070 * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
22071 GetCallingAssembly.
22073 2002-07-24 Dietmar Maurer <dietmar@ximian.com>
22075 * marshal.c: added optimisations for blittable types
22077 * class.c (mono_array_class_get): do not set blittable attribute on arrays
22078 (mono_class_setup_mono_type): set blittable attribute for single
22081 * marshal.c (mono_string_utf8_to_builder): impl.
22082 (mono_string_builder_to_utf8): impl.
22083 (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
22085 2002-07-23 Dietmar Maurer <dietmar@ximian.com>
22087 * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
22088 (mono_marshal_get_managed_wrapper): impl. byref types
22090 2002-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22093 (search_method): don't display debug message.
22095 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
22097 * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
22099 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22101 * appdomain.c: set the missing filename when throwing exception.
22103 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
22105 * metadata.c (mono_type_size): code cleanup
22106 (mono_type_stack_size): removed some test code
22108 2002-07-21 Miguel de Icaza <miguel@ximian.com>
22110 * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
22111 mono_get_exception_file_not_found now.
22113 * exception.c (mono_exception_from_name_two_strings): New version
22114 that will call a constructor with two string arguments.
22115 (mono_get_exception_file_not_found): New helper routine, used to
22116 report file-not-found errors.
22118 2002-07-20 Dick Porter <dick@ximian.com>
22121 * process.c: Pass file handles to CreateProcess
22125 * file-io.c: Implemented CreatePipe
22127 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
22129 * metadata.c (mono_get_param_info): set alignment for value types
22131 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22133 * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
22134 Constify mono_domain_assembly_open().
22135 * loader.c: handle null namespace in icalls.
22137 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
22139 * marshal.c (emit_ptr_to_str_conv): marshal object as structs
22140 (emit_str_to_ptr_conv): marshal object as structs
22142 * metadata.c (mono_type_to_unmanaged): marshal object as structs
22144 * marshal.c (mono_marshal_get_runtime_invoke): support value types
22146 2002-07-18 Dietmar Maurer <dietmar@ximian.com>
22148 * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
22149 (mono_marshal_get_native_wrapper): we an now return value types
22151 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22153 * verify.c: more checks implemented.
22155 2002-07-17 Dietmar Maurer <dietmar@ximian.com>
22157 * marshal.c (mono_delegate_to_ftnptr): invoke the right method
22159 (mono_marshal_get_native_wrapper): allow byref arguments
22160 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
22161 impl. PtrToStringXXX methods
22162 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
22163 (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
22164 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
22165 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
22166 (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
22168 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22170 * reflection.c: fix buglet in parsing an assembly name.
22172 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
22174 * marshal.c (emit_ptr_to_str_conv): first impl.
22176 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22178 * object.c, class.h: cache the vtable in the class as suggested by
22179 vargaz@freemail.hu (Zoltan Varga).
22181 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22183 * class.h, loader.c: added mono_field_from_token().
22184 * verify.c: first cut of type checking code.
22186 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
22188 * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
22190 2002-07-15 Dietmar Maurer <dietmar@ximian.com>
22192 * marshal.c (mono_marshal_get_native_wrapper): handle enum types
22194 (mono_marshal_get_remoting_invoke): impl.
22195 (mono_delegate_begin_invoke): impl.
22196 (mono_mb_emit_save_args): impl.
22197 (mono_delegate_end_invoke): impl.
22198 (mono_marshal_get_delegate_begin_invoke):
22199 (mono_marshal_get_delegate_end_invoke):
22200 (mono_marshal_get_delegate_invoke): generate a special name for
22201 those methods (including the signature) and associate them whith
22202 the delegate class.
22204 2002-07-13 Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
22207 (mono_reflection_type_from_name): now it has a MonoImage parameter
22208 which is used as the default image to search the type in. If the image
22209 is NULL or getting the type from it fails, it defaults to corlib.
22211 * icall.c: changed 1 call to mono_reflection_type_from_name to match
22214 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22216 * reflection.c: update the parameter table index.
22218 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22220 * domain.c: don't include the mark byte in the string hash.
22222 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22224 * icall.cs: icall for Type.GetTypeCode ().
22225 * verify: a couple of fixes and disabled local initialization checks.
22227 2002-07-12 Dietmar Maurer <dietmar@ximian.com>
22229 * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
22231 * debug-helpers.c (mono_method_full_name): print the type of the
22234 * metadata.c (mono_signature_hash): a hash function for signatures
22235 (mono_signature_hash): better hash algorithm
22237 * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
22239 * debug-helpers.c (mono_method_full_name): this can now generate
22240 method names with signatures
22242 * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
22243 method dont have this pointers.
22245 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22247 * reflection.c: fixup typebuilder tokens.
22248 * image.c: fix buglet.
22249 * marshal.h: remove whitespace.
22250 * metadata.h, metadata.c: reinstate code that was removed.
22251 * verify.c: handle catch directives and fix another couple of bugs.
22253 2002-07-11 Dietmar Maurer <dietmar@ximian.com>
22255 * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
22256 (mono_marshal_get_native_wrapper): make it comp. with the old code
22257 (mono_marshal_get_native_wrapper): support boolean
22258 (mono_marshal_get_managed_wrapper): support more types
22260 2002-06-25 Dietmar Maurer <dietmar@ximian.com>
22262 * class.c (class_compute_field_layout): compute class->blittable attribute.
22264 2002-07-09 Dick Porter <dick@ximian.com>
22266 * threads.c: Make the thread cleaning up cope with threads that
22269 2002-07-08 Radek Doulik <rodo@ximian.com>
22271 * reflection.c (method_encode_code): use non-translated values to
22272 compute finally_start, this fixes exception handling on ppc, yay!
22274 * decimal.h (struct signscale): fix endianess
22276 2002-07-07 Radek Doulik <rodo@ximian.com>
22278 * reflection.c: swap box_val and not val
22280 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22282 * reflection.c, reflection.h: handle full assembly info in type name.
22283 Handle Type arguments when loading custom attributes.
22284 * icall.c: updated to use new mono_reflection_type_from_name () method.
22286 2002-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22289 (method_from_memberref): also print assembly name when method not found.
22291 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22294 (ves_icall_TypeGetProperties): fixed bug #27473.
22296 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22298 * reflection.c: display image name and token when cannot find the
22299 .ctor for an attribute.
22301 2002-07-05 Martin Baulig <martin@gnome.org>
22303 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
22305 2002-07-04 Dick Porter <dick@ximian.com>
22307 * threads.c (mono_thread_cleanup): Nasty kludge to get this to
22308 compile on mingw. This will cause mingw builds to not wait for
22309 subthreads to terminate after the main thread does. I've lodged a
22310 bug with the mingw developers for them to wrap OpenThread().
22312 2002-07-03 Dick Porter <dick@ximian.com>
22314 * threads.c: Store thread IDs instead of handles, because
22315 GetCurrentThread() returns a pseudohandle and therefore stores
22316 useless values. mono_thread_cleanup() continues checking the
22317 array of threads until it is empty, to cope with subthreads
22318 spawning new threads after the main thread has finished.
22322 * profiler-private.h: Pass the thread ID to thread profiler
22323 functions, instead of a handle
22325 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22327 * verify.c: fixes to make it more usable.
22328 * pedump.c: added --verify code to verify IL code in an assembly.
22330 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22332 * reflection.c: turn errors into warnings to allow compiling corlib.
22334 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
22336 * reflection.c: add special cases to compile corlib.
22338 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22340 * reflection.c: handle properties with only a set method.
22342 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22344 * opcodes.h: add enum with opcodes in opval order.
22346 2002-07-01 Dick Porter <dick@ximian.com>
22349 * object.c (mono_runtime_run_main): Removed unneeded argument
22351 2002-06-28 Martin Baulig <martin@gnome.org>
22353 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
22355 2002-06-27 Dick Porter <dick@ximian.com>
22357 * threads.c: Store the handle in both the parent thread and in the
22358 subthread, to minimise the time between starting a new thread and
22361 2002-06-26 Dick Porter <dick@ximian.com>
22363 * appdomain.c (mono_runtime_cleanup): Close the socket library
22364 after all the threads have finished, not before
22366 2002-06-26 Martin Baulig <martin@gnome.org>
22368 * debug-symfile.c (mono_debug_find_source_location): Added
22369 `guint32 *line_number' argument. If it's not NULL, store the line number
22370 there and return the file name without the line number.
22372 2002-06-25 Dick Porter <dick@ximian.com>
22376 * process.c: Process forking and other support functions
22378 2002-06-25 Dick Porter <dick@ximian.com>
22380 * image.c (do_mono_image_open): Set ref_count to 1, so that bad
22381 things dont happen when the image is closed.
22382 (mono_image_lookup_resource): Walk the resource section looking
22383 for a particular entry
22385 * cil-coff.h: PE resource section decoding
22387 2002-06-25 Dick Porter <dick@ximian.com>
22391 (mono_assembly_foreach): Accessor functions to walk the list of
22393 (mono_assembly_set_main):
22394 (mono_assembly_get_main): Process methods need to know which
22395 assembly is the "main" one
22397 * object.c (mono_runtime_run_main): Record the main assembly
22399 * debug-helpers.c: Fix typo
22401 2002-06-24 Dietmar Maurer <dietmar@ximian.com>
22403 * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
22404 (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
22406 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22408 * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
22410 2002-06-21 Miguel de Icaza <miguel@ximian.com>
22412 * image.c (do_mono_image_open): Initialize reference count,
22413 otherwise we leak the MonoImage.
22415 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22417 * reflection.c: small tweak to handle self-hosting.
22419 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22421 * reflection.c: fix type name parse code.
22423 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22425 * reflection.c: break out of the loop.
22426 * image.c: special case corlib.
22428 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22430 * reflection.c: add all the custom attrs at the end to ensure the
22431 ctors have been properly initialized when the attributes are defined
22432 in the current assembly.
22434 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22436 * reflection.c: handle correctly multiple-nested types.
22438 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
22440 * row-indexes.h: fix typos.
22441 * reflection.c: adjust for typos and fix method_def_or_ref
22442 encoding in MethodImpl table.
22444 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22446 * reflection.c: fix entry point patching (thanks Serge!).
22448 2002-06-18 Dietmar Maurer <dietmar@ximian.com>
22450 * verify.c: add check for System.Exception
22452 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22454 * image.c, class.c: minifix for code just c&p'ed.
22455 * reflection.c: warning fix.
22456 * object.h, loader.h, domain.c: load also StringBuilder.
22458 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22460 * marshal.h, marshal.c: some support code to handle complex marshaling.
22462 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22464 * class.h, class.c, reflection.c: handle ignorecase in GetType ().
22465 Better signatures with vtable error dump.
22467 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
22469 * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
22471 2002-06-17 Dietmar Maurer <dietmar@ximian.com>
22473 * icall.c (ves_icall_Type_GetField): impl.
22475 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22477 * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
22478 to retrieve a marshal description blob for a field or param.
22480 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22482 * reflection.h, reflection.c: change order of nested type emission
22483 to avoid table corruption. The NestedTypes table is sorted.
22484 * icall.c: change order of GetConstructor results to workaround mcs bug.
22486 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22488 * reflection.h, reflection.c: handle field and param marshal
22491 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22493 * icall.c, marshal.c marshal.h: more Marshal class implementation.
22495 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22497 * reflection.c: fix call convention.
22499 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22501 * reflection.h, reflection.c: mono_image_get_memberref_token()
22502 takes a type instead of a class, now. Added
22503 mono_image_get_array_token() to create tokens for the special
22504 multi-dim array methods.
22506 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22508 * assembly.c: handle modules (no assembly table). Split
22509 loading references in its own function.
22510 * class.c: handle moduleref resolution scope.
22511 * image.c, image.h: cache module name in image.
22513 2002-06-07 Martin Baulig <martin@gnome.org>
22515 * reflection.c (mono_image_get_type_info): Only add a class layout entry
22516 if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
22518 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22520 * icall.c: more signature fixes that used uint instead of int.
22522 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22524 * reflection.c: fixed signature of field refs.
22526 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22528 * class.c, reflection.c: handle typerefs of nested types
22529 (both on read and when writing files).
22531 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
22533 * icall.c: fix method signatures that tried to workaround the previous
22536 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22538 * debug-helpers.c: fix typo.
22540 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22542 * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
22543 rewrote the PE/COFF writing code (our programs are understood by the
22546 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22548 * gc.c, gc.h, icall.c: weakreference support.
22550 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22552 * Makefile.am, mono-config.c: use $(sysconfdir).
22554 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22556 * icall.c: changed default precision of Double.ToString() to 15.
22557 Fixed memory leak. Unified with Single.ToString.
22559 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
22561 * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
22563 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22565 * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
22566 gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
22567 warnings and compilation fixes from Dennis Haney (davh@davh.dk)
22570 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22572 * debug-symfile.c, sysmath.c: yet more compilation fixes.
22574 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22576 * reflection.c, socket-io.c: more compilation fixes.
22578 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22580 * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
22581 domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
22582 unicode.c: warning and compiler compatibility fixes.
22584 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22586 * class.h, metadata.c: fixed warnings/compilation errors.
22588 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22590 * Makefile.am, mono-config.c, mono-config.h: configuration file
22592 * loader.c, loader.h: make Dll mapping configurable at runtime in the
22593 config file. Export methods to insert and lookup mappings.
22595 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22597 * reflection.c: handle types and boxed objects in custom attr
22600 2002-05-30 Martin Baulig <martin@gnome.org>
22603 (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
22605 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
22607 * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
22608 to lookup the implmap row for a P/Invoke method.
22609 * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
22610 P/Invoke method from the runtime on an as needed basis.
22612 2002-05-28 Dietmar Maurer <dietmar@ximian.com>
22614 * metadata.c (mono_metadata_parse_signature): impl.
22616 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22618 * class.c: handle .pack directive.
22620 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22622 * object.c: initialize static fields with RVA data.
22624 2002-05-25 Martin Baulig <martin@gnome.org>
22627 (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
22629 2002-05-24 Martin Baulig <martin@gnome.org>
22632 (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
22633 (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
22634 `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
22636 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22638 * object.c: special case string ctros in invoke.
22639 * gc.c: silly whitespace changes.
22641 2002-05-23 Dietmar Maurer <dietmar@ximian.com>
22643 * threadpool.[ch]: impl. a threadpool that can
22644 be used by mint and mono.
22646 2002-05-22 Martin Baulig <martin@gnome.org>
22648 * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
22649 The first argument is now a `MonoReflectionModuleBuilder *', the return
22650 value is a `MonoReflectionModuleBuilder *'. Use the AssemblyBuilder's
22651 `methods' field to get the method builder. The `token' argument is the
22654 * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
22655 invalid characters instead of g_assert_not_reached()ing. This seems
22656 to be the behaviour of mscorlib.
22658 2002-05-22 Dietmar Maurer <dietmar@ximian.com>
22660 * object.c (mono_runtime_invoke_array): applied patch from Rachel
22661 Hestilow to fix bug #25104
22663 2002-05-21 Martin Baulig <martin@gnome.org>
22665 * debug-symfile.c (mono_debug_find_source_location): New function.
22666 Looks up an IL offset in the line number table and returns the source
22667 location as a string.
22669 2002-05-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22672 (mono_double_ToStringImpl): changed %f by %g until we have something
22675 2002-05-21 Nick Drochak <ndrochak@gol.com>
22677 * icall.c : Use different name for Math.Pow's icall. Needed to check
22678 parameters first in C#.
22680 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22682 * icall.c, reflection.h: added icall to get info about an event.
22684 2002-05-20 Radek Doulik <rodo@ximian.com>
22686 * object.c (mono_value_box): don't use memcpy for boxing on BIG
22688 (mono_value_box): don't use memcpy for small sizes on
22689 architectures with unaligned access
22691 2002-05-20 Martin Baulig <martin@gnome.org>
22693 * reflection.c (mono_reflection_setup_internal_class): Don't crash
22694 if `tb->parent == NULL'.
22695 (mono_reflection_create_internal_class): New function. This is
22696 called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
22699 * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
22702 2002-05-19 Martin Baulig <martin@gnome.org>
22704 * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
22705 argument to get the length, don't default to the array length.
22707 2002-05-18 Miguel de Icaza <miguel@ximian.com>
22709 * assembly.c (mono_assembly_setrootdir): New function used to
22710 override the MONO_ASSEMBLIES directory.
22712 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22714 * icall.c: ValueType_GetHashCode() initialize local var.
22716 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22718 * reflection.c: sort custom attributes table.
22720 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22722 * reflection.c: support named args in custom attributes (write support).
22724 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22726 * reflection.c: fix finally position calculation.
22728 2002-05-15 Radek Doulik <rodo@ximian.com>
22730 * reflection.c: fixed endianess at many places
22732 * icall.c (ves_icall_InitializeArray): comment out debug msg
22734 2002-05-15 Dietmar Maurer <dietmar@ximian.com>
22736 * object.c (mono_unhandled_exception): new function to handle
22737 unhandled exceptions.
22738 (mono_unhandled_exception): call the UnhandledException event.
22739 (mono_runtime_delegate_invoke): impl.
22741 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
22743 * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
22744 returns the RVA, not the direct pointer to the data. Handle the case
22745 when the class size is fixed.
22747 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22749 * reflection.c: fix some endianess issues.
22751 2002-05-14 Dietmar Maurer <dietmar@ximian.com>
22753 * object.c (mono_runtime_invoke): is now able to catch exceptions.
22755 * threads.c (mono_thread_init): added a callback which is invoked
22758 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
22760 * icall.c: make GetHashCode return non-negative values.
22762 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
22764 * object.c, icall.c, gc.c: revert to address-based hashcode.
22766 2002-05-13 Miguel de Icaza <miguel@ximian.com>
22768 * icall.c (mono_double_ParseImpl): Added ParseImpl method.
22770 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22772 * icall.c, class.c: special case <Module>.
22774 2002-05-13 Dan Lewis <dihlewis@yahoo.co.uk>
22776 * icall.c: fix bug in GetNow().
22778 2002-05-11 Dietmar Maurer <dietmar@ximian.com>
22780 * object.c (mono_runtime_class_init): make sure that we call all
22781 static class constructors.
22783 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22785 * reflection.c: sort methodsemantics table.
22787 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22789 * reflection.h, reflection.c: honour init locals setting.
22791 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
22793 * icall.c: copied Double ToStringImpl for Single ToStringImpl
22795 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22797 * reflection.c: support ContructorBuilders in attribute blob creation.
22799 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22801 * reflection.c: some changes to build a binary that can be run
22802 directly in windows.
22804 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
22806 * loader.c: print a big message when an icall can't be found.
22808 2002-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22810 * string-icalls.c: fix bug 24248.
22812 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
22814 * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
22815 icall.c, reflection.h: separate assembly loading by pathname and by
22816 assembly name. Use the MONO_PATH env var to search for assemblies.
22818 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22820 * assembly.c, image.h: add some support for assemblies
22821 with multiple modules.
22822 * class.c, class.h: export mono_class_from_typeref().
22823 * loader.c: remove duplicated code and use mono_class_from_typeref(),
22826 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22828 * unicode.c: Char.IsNumber doesn't include hex digits as the ms
22829 documentation says (the ECMA one is correct).
22831 2002-05-02 Dick Porter <dick@ximian.com>
22833 * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
22834 Don't name the synchronisation mutex.
22836 2002-04-30 Jeffrey Stedfast <fejj@ximian.com>
22839 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
22840 Make the prototypes match.
22841 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
22845 (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
22846 systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
22847 all systems have tm.tm_zone, so use strftime() with %Z to print
22848 the timezone abreviation into a temp string.
22850 * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
22851 rather than mono_array_addr() on a MonoString on Big Endian
22854 2002-04-30 Dietmar Maurer <dietmar@ximian.com>
22856 * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
22859 2002-04-30 Dick Porter <dick@ximian.com>
22861 * socket-io.c: Cope with SOCKET being an integer rather than a
22864 * threads.c: Added Thread_free_internal, to deal with thread
22865 handle cleanup. Moved calls to handle_store() and handle_remove()
22866 to start_wrapper(), so each can only be called once. Allocate
22867 synchronisation blocks with GC_malloc(), and use GC finalisation
22868 to close the handles.
22870 * icall.c: added System.Threading.Thread::Thread_free_internal
22872 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22874 * icall.c: support Environment.Exit, CommandLineArgs().
22876 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22878 * object.c, object.h: added mono_runtime_run_main () and
22879 mono_runtime_get_main_args () for use in System.Environment.
22881 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22883 * gc.c: fix thinko, enable actual finalization since the jit is now
22886 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22888 * gc.c, object.c: take into account that an object may be offset wrt the address
22889 returned by GC_malloc().
22891 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
22893 * image.c: handle files without entries in the assembly table (modules).
22895 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
22897 * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow
22898 mcs selfhosting again (build breaker) and did move the check to class instead. parent is
22899 allowed to be null when it's System.Object class setup.
22901 2002-04-27 Martin Baulig <martin@gnome.org>
22903 * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
22904 if `tb->parent == NULL' rather than crashing.
22906 2002-04-28 Nick Drochak <ndrochak@gol.com>
22908 * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error. Was
22909 calling acos() where asin() should have been called.
22911 2002-04-26 Martin Baulig <martin@gnome.org>
22913 * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
22914 instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
22915 there's a subdirectory called `System', but we don't want to read that
22916 subdirectory as an assembly.
22918 2002-04-25 Martin Baulig <martin@gnome.org>
22920 * debug-symfile.c: Reflect latest MonoString changes.
22922 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22924 * rand.c, rand.h: instance method icalls need to have an explicit
22925 this pointer as first argument in the C implementation.
22927 2002-04-25 Nick Drochak <ndrochak@gol.com>
22929 * icall.c: Fix typo in map for GetNonZeroBytes
22931 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
22933 * string-icalls.c : String does now passes unit tests without any
22934 errors, the following changes has been made:
22936 Implemented replace methods.
22937 Renaming of methods to (try) follow the standard.
22938 Fixed compare ordinal
22939 Made all memory allocated directly to function instead of via icall function.
22940 Small performance fix in is_in_array function
22942 (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
22944 c (mono_string_Internal_ctor_charp_int_int):
22945 (mono_string_Internal_ctor_sbytep_int_int): Removed check for
22946 sindex < 0, throw ArgumentOutOfRangeException instead of
22947 ArgumentNullException.
22949 Added new check for length == 0, however
22950 I need to make it return String.Empty from the C code.
22952 (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
22953 that calculate the length for us here.
22955 (mono_string_Internal_ctor_sbytep_int_int): Replaced
22956 mono_string_new_utf16 with mono_string_new, since value is utf8.
22958 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22960 * object.c: register the object for finalization if needed.
22961 Allocate one more char in the string for the terminating 0 char.
22963 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22965 * class.c, class.h, image.c: check if a type implemenst a destructor.
22966 Use the proper key for array class lookups.
22967 * icall.c: register the icalls in the System.GC class.
22968 * gc.c, gc.h: GC-related functions and icalls.
22970 2002-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22974 * unicode.c: free some strings gotten from mono_string_to_utf8 and
22975 changed a couple of free () by g_free ().
22977 * decimal.c: one-liner in the comments for decimal2string ().
22979 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
22981 * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
22983 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
22985 * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
22986 * object.c (mono_runtime_invoke_array) : handle null in params
22988 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
22990 * string-icalls.c: fixed bug in split (one off bug)
22992 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
22994 * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
22995 * icalls.c: added String::Equals as internal method
22997 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
22999 * threads.c: fixed bug in the double interlocked functions
23001 2002-04-22 Patrik Torstensson <patrik.torstensson@labs2.com>
23003 * threads.c: implemented all of the new interlocked icalls.
23004 * string-icalls.c: fix a bug in insert.
23005 * icalls.c: added the icalls for interlocked, removed old string functions.
23007 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23009 * loader.c: fix off-by-one error when reading argument names.
23011 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23013 * profiler.c: win32 counter implementation (untested).
23014 * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
23015 (the latter needs testing and more complete impl. from win32 folks).
23017 2002-04-21 Dan Lewis <dihlewis@yahoo.co.uk>
23019 * object.c: mono_array_new_full workaround mono_array_class_get
23022 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
23024 * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
23025 * object.h (mono_string_chars): Changed casting type.
23027 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
23029 * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
23030 method signatures to use gunichar2 instead of gint16.
23032 2002-04-20 Dan Lewis <dihlewis@yahoo.co.uk>
23034 * object.h, object.c: domain-specific versions of mono_object_new and
23037 2002-04-20 Dietmar Maurer <dietmar@ximian.com>
23039 * object.c: changed String layout
23041 * string-icalls.c (mono_string_Internal_ctor_chara): added
23042 internal string constructors.
23044 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
23046 * threads.c: pass 'this' to the thread start routine.
23048 2002-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23050 * string-icalls.c: fix IndexOf and LastIndexOf. Now
23051 InternalCompareStr don't call twice mono_string_cmp_char for the last
23052 character. Improved performance in mono_string_cmp_char.
23054 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23056 * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
23057 code into its own library: libmonoruntime.
23059 2002-04-19 Dan Lewis <dihlewis@yahoo.co.uk>
23061 * object.h, object.c: changed array format so that szarrays do not
23062 require a bounds structure.
23063 * icall.c, appdomain.c: support for new szarray format.
23065 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
23067 * metadata.c: compare also the retuns type when comparing signatures:
23068 we didn't do this as an optimization since really overloaded methods
23069 must differ also in the arguments, but this doesn't work with
23070 low-level IL code (or when using explicit conversion operators: see
23071 bug#23498 for an example).
23073 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23075 * loader.c: SZARRAY types can be saved as TYPESPEC, too.
23077 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23079 * icall.c: make MonoType::GetElementType its own icall.
23081 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23083 * icall.c: remove MonoMethod_get_Name().
23084 * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
23087 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
23089 * string-icalls.c: optimized a few methods.
23091 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
23093 * icall.c: added all new string internal calls
23094 * string-icalls.c: added, new string internal call implementation.
23095 * object.c: added mono_string_new_size for allocating a string a size
23097 2002-04-17 Dietmar Maurer <dietmar@ximian.com>
23099 * object.c (mono_object_isinst): use the same code as in the
23100 optimized x86 version.
23102 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23104 * profiler.c: TSC-based timer code (faster and more accurate).
23105 Not hooked up in configure, yet (set USE_X86TSC to 1).
23107 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
23109 * profiler.c, profiler.h: track time spent compiling methods.
23110 * threads.c: track thread creation/destruction.
23112 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
23114 * profiler.c, profiler.h, profiler-private.h: profiling interface
23115 and sample implementation. Moved here so that it can be used also by
23118 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
23120 * reflection.c, reflection.h: keep types and other handles separate in
23121 the hash tables for referred tokens. Add guid for modules.
23123 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
23125 * assembly.c: fix bugs found with valgrind.
23126 * metadata.h, metadata.c: added mono_metadata_guid_heap().
23128 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
23130 * threads: added icall support for getting current domain for
23133 2002-04-13 Martin Baulig <martin@gnome.org>
23135 * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
23136 (MonoDebugVarInfo): Added `index' field for register based addresses.
23137 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
23138 (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
23139 `MonoDebugVarInfo *params' and `guint32 this_offset' with
23140 `MonoDebugVarInfo *this_var'.
23142 * debug-symfile.c (relocate_variable): New static function to write
23143 a location description for a local variable or method parameter.
23145 2002-04-12 Martin Baulig <martin@gnome.org>
23147 * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
23148 stack offset and begin/end scope address of a local variable.
23149 (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
23150 'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
23151 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
23153 * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
23154 Added new relocation types for start/end scope of a local variable.
23156 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23158 * object.h: add mono_object_domain() macro.
23159 * reflection.c: handle typespecs.
23160 * icall.c: MonoMethod::get_Name() implementation.
23162 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23164 * icall.c: String::GetHashCode() icall implementation.
23166 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23168 * icall.c: String::IndexOfAny icall.
23169 * object.c, object.h: make array->max_length more useful.
23170 Intrduced mono_object_class() and mono_string_length() macros.
23172 2002-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23174 * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
23175 instead of g_unichar_isdigit.
23177 2002-04-11 Nick Drochak <ndrochak@gol.com>
23179 * icall.c: Implement a simple Double.ToString().
23181 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23183 * appdomain.h: only io-layer.h is supposed to be included.
23184 * icall.c: explicitly import environ. Fix warning.
23186 2002-04-10 Nick Drochak <ndrochak@gol.com>
23188 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
23189 return true even if it's not Daylight Savings time.
23190 Only return false for the case where the function isn't
23191 implemented for a plaform (read Windows).
23193 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23195 * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
23198 2002-04-09 Dietmar Maurer <dietmar@ximian.com>
23200 * mempool.c (mono_mempool_alloc): only use g_malloc when
23201 absolutely necessary.
23203 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
23205 * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
23207 * class.c (mono_class_vtable): use domain mempool to allocate vtable
23208 (mono_class_proxy_vtable): use domain mempool
23210 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23212 * appdomain.h, appdomain.c: split initialization that requires the
23213 execution engine support into mono_runtime_init().
23215 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
23217 * class.c (mono_class_init): don't include vtable inside MonoClass
23218 to save some memory, gather some statistics.
23219 (mono_class_vtable): use g_malloc instead of GC_malloc when possible
23221 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23223 * icall.c: internalcall implementation for ValueType.Equals().
23225 2002-04-06 Dietmar Maurer <dietmar@ximian.com>
23227 * object.c (mono_message_init): moved
23228 (mono_runtime_exec_main): new arch. independent impl.
23229 (mono_runtime_invoke_array): new method - like
23230 mono_runtime_invoke, but you can pass an array of objects.
23231 (mono_remoting_invoke): new arch. independent impl.
23232 (mono_message_invoke): new arch. independent impl.
23233 (mono_runtime_class_init): new arch. independent impl.
23234 (mono_runtime_object_init): new arch. independent impl.
23236 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23238 * metadata.c, object.c, reflection.c: documented the exported
23241 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
23243 * icall.c: simpler code to pass the assembly builder data to corlib.
23244 Implement GetNestedTypes() internalcall.
23246 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23248 * class.c: warn if a type can't be loaded.
23250 2002-04-04 Dietmar Maurer <dietmar@ximian.com>
23252 * image.h: typedef MonoImageOpenStatus
23253 * types.h: removed unused file
23255 2002-04-04 Dan Lewis <dihlewis@yahoo.co.uk>
23257 * icall.c: Enum_ToObject accepts enum value arguments.
23259 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23261 * class.c: move initialization of properties, events and nested
23262 classes, so that they happen for interfaces, too.
23264 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23266 * icall.c: cleanup some ugly casts in Array_SetValue*.
23268 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23270 * icall.c: the values array fro enums is of the correct type, now.
23271 Implement (correctly) getFullName instead of assQualifiedName for
23273 * reflection.h, reflection.c: added mono_type_get_name ().
23275 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23277 * assembly.c, image.h: for each MonoImage, record from wich assembly
23279 * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
23280 Make Type.Assembly work.
23282 2002-04-03 Dietmar Maurer <dietmar@ximian.com>
23284 * debug-symfile.h: use char* instead of gpointer to avoid
23287 * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
23289 * icall.c (ves_icall_InternalExecute): impl. FielSetter
23290 (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
23292 2002-03-30 Dietmar Maurer <dietmar@ximian.com>
23294 * icall.c (mono_message_init): impl. (code cleanup)
23295 (ves_icall_InternalExecute): impl. FieldGetter
23297 * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
23298 defined we call all (non-static)methods through the vtable.
23300 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
23302 * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
23303 finalizer even though the memory is still referenced (and the chunk of
23304 memory is not freed).
23306 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
23308 * assembly.c: fix brokeness.
23310 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
23312 * class.c: kill some warnings. Check explicit interface method
23313 implementation also without considering the namespace.
23314 Load also literal strings in static class data.
23316 2002-03-29 Miguel de Icaza <miguel@ximian.com>
23318 * assembly.c (default_assembly_name_resolver): Kill memory leak.
23319 (default_assembly_name_resolver): Make the resolver take the
23320 "base" directory where the assembly was originally defined, so we
23321 can load DLLs that are in the same directory as the assembly that
23322 is being referenced.
23324 2002-03-28 Dick Porter <dick@ximian.com>
23330 * unicode.c: Warning cleanups
23332 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
23334 * object.h, reflection.h: use the correct type instead of MonoObject.
23336 2002-03-28 Martin Baulig <martin@gnome.org>
23338 * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
23339 (mono_debug_update_symbol_file): Initialize classes if necessary.
23341 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23343 * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
23344 rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
23346 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
23348 * assembly.h: fix function prototype.
23349 * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
23350 * mono-endian.h: use const cast.
23352 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
23354 * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
23356 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23358 * loader.c: don't assert when a typeref can't be loaded, give
23359 a chance to the runtime to trow an exception instead.
23360 * loader.h: fix warning.
23362 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
23364 * class.c (mono_class_proxy_vtable): added proxy support
23366 2002-03-27 Dan Lewis <dihlewis@yahoo.co.uk>
23368 * icall.c: removed last of PAL calls, added System.Environment
23369 * file-io.h, file-io.c: MonoIO implementation
23370 * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
23372 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23374 * appdomain.c: do not use the byte marker in ldstr table lookup.
23375 * debug-helpers.c: allow two ':' to separate class and method name.
23376 * object.c: allocate arrays bounds with the GC, too.
23377 * verify: add a few more checks.
23379 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
23381 * reflection.c: output also literal strings. Allocate parameter data
23382 with GC_malloc() (thanks, Martin, for catching this!).
23384 2002-03-26 Martin Baulig <martin@gnome.org>
23386 * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
23387 include the `this' offset in the `param_offsets'.
23389 2002-03-25 Martin Baulig <martin@gnome.org>
23391 * debug-symfile.c (mono_debug_update_symbol_file): Use a new
23392 mono_debug_get_class() function to get the classes. Added new
23393 relocation types for arrays and strings.
23394 (mono_debug_get_class): New static function to search in all
23395 referenced assemblies for a metadata token.
23397 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
23399 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
23401 * reflection.h, reflection.c: use a gc-safe hash for hash tables that
23402 hold gc-allocated objects. Make the string heap a stream like the
23403 others. Removed duplicated code when writing stream info.
23404 Added asserts to catch possible buffer overflows. Set the sorted map
23405 for tables that need sorting. Added some documentation.
23407 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
23409 * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table
23410 for interned strings and vtables.
23412 2002-03-24 Martin Baulig <martin@gnome.org>
23414 * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
23415 it in the array since it was created with g_slist_prepend().
23417 2002-03-24 Martin Baulig <martin@gnome.org>
23419 * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
23420 to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
23421 (mono_debug_method_from_token): Renamed to
23422 ves_icall_Debugger_MonoSymbolWriter_method_from_token().
23423 (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
23425 * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
23428 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
23430 2002-03-24 Martin Baulig <martin@gnome.org>
23432 * debug-symfile.c (mono_debug_local_type_from_signature): New func.
23433 (mono_debug_method_from_token): New func.
23435 * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
23436 New interncall, calls mono_debug_local_type_from_signature().
23437 (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
23438 calls mono_debug_method_from_token().
23440 2002-03-23 Martin Baulig <martin@gnome.org>
23442 * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
23443 specifies the number of bytes to be converted, not the array size.
23444 Return the number of chars, not the number of bytes.
23445 (ves_icall_iconv_get_chars): The `byteCount' argument
23446 specifies the number of bytes to be converted, not the array size.
23448 2002-03-23 Martin Baulig <martin@gnome.org>
23450 * reflection.h (MonoReflectionSigHelper): New type.
23452 * reflection.c (mono_reflection_sighelper_get_signature_local),
23453 (mono_reflection_sighelper_get_signature_local): New functions.
23455 * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
23456 (System.Reflection.Emit.SignatureHelper::get_signature_field): New
23459 2002-03-23 Martin Baulig <martin@gnome.org>
23461 * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
23462 is_writeable is set.
23463 (mono_raw_buffer_update): New function to write the modified map
23466 * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
23468 * debug-symfile.c (mono_debug_update_symbol_file): Call
23469 mono_raw_buffer_update() when done writing.
23471 2002-03-23 Martin Baulig <martin@gnome.org>
23473 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
23475 * debug-symfile.c: Added support for arguments and local variables.
23477 2002-03-23 Dick Porter <dick@ximian.com>
23479 * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
23480 protected by ifdefs, hence breaking the w32 build.
23482 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23484 * object.c: implement is_interned() the right way.
23486 2002-03-21 Martin Baulig <martin@gnome.org>
23488 * debug-symfile.[ch]: New files to handle debugging information
23489 files. There's also support to dynamically update these symbol
23490 files to include machine dependent information.
23492 2002-03-20 Dietmar Maurer <dietmar@ximian.com>
23494 * threads.c (mono_thread_create): new function to create thread
23497 2002-03-20 Martin Baulig <martin@gnome.org>
23499 * icall.c (ves_icall_InternalInvoke): Create a new object if the
23500 method is a constructor.
23501 (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
23502 points to ves_icall_InternalInvoke().
23504 2002-03-20 Dan Lewis <dihlewis@yahoo.co.uk>
23506 * file-io.c: Flush shouldn't throw exceptions.
23508 2002-03-19 Dan Lewis <dihlewis@yahoo.co.uk>
23510 * file-io.c: FileStream flush support; FileSetLength now
23511 restores file pointer.
23513 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23515 * class.c: set image for pointer classes.
23517 2002/03/19 Nick Drochak <ndrochak@gol.com>
23519 * sysmath.c: Forgot one.
23521 2002-03-18 Miguel de Icaza <miguel@ximian.com>
23523 * sysmath.c: Avoid redefining existing names.
23525 2002-03-18 Dan Lewis <dihlewis@yahoo.co.uk>
23527 * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
23528 handled by runtime as icall rather than dllimport from libm.so
23529 * file-io.c, file-io.h: fixed handle argument type.
23531 2002-03-18 Dick Porter <dick@ximian.com>
23533 * reflection.c (mono_image_get_type_info): rename interface to
23534 iface, because of "#define interface struct" on windows.
23536 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
23538 * class.c, class.h: rename and export mono_ptr_class_get().
23539 * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
23540 * reflection.c, reflection.h, icall.c: better/saner type name
23541 parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
23544 2002-03-14 Dietmar Maurer <dietmar@ximian.com>
23546 * class.c (mono_class_init): removed hardcoded GHC_SLOT
23548 * icall.c (ves_icall_InternalInvoke): impl.
23550 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23552 * reflection.c: output the interface map table, too.
23554 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
23556 * class.c (class_compute_field_layout): separate computation of
23557 static field layout
23559 2002-03-12 Dan Lewis <dihlewis@yahoo.co.uk>
23561 * icall.c: added System.Buffer support.
23562 * file-io.c: moved file icalls from PAL to FileStream.
23564 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
23566 * icall.c (ves_icall_System_Object_GetHashCode): impl.
23568 2002-03-11 Dietmar Maurer <dietmar@ximian.com>
23570 * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
23572 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23574 * verify.c, verify.h: moved here the corlib/runtime consistency checks.
23576 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
23578 * debug-helpers.{c,h}: moved here from monograph some useful functions
23579 to locate a method by name/signature in a class or image. Included
23580 also a small and flexible IL disassembler.
23582 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23584 * reflection.c: fixup tokens in methods with small header size, too.
23586 2002-03-08 Dietmar Maurer <dietmar@ximian.com>
23588 * object.c (mono_string_to_utf8): remove assert(!error), instead
23591 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
23593 * icall.c: update to the new mono_Array_class_get interface.
23595 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23597 * appdomain.c, object.c: Boehm-GC enable.
23598 * icall.c: make get_data_chunk() support split data requests.
23599 Ensure a class is initialized in more cases. Return only the first
23600 property found in GetProperties() or the compiler gets confused.
23601 Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
23602 * reflection.h, reflection.c: add fixup mechanism for field and method
23603 tokens. Initialize assembly->typeref in a single place. Output
23604 properties after events. Support custom attributes for events, too.
23605 Typo fix for paramter custom attrs.
23607 2002-03-07 Martin Baulig <martin@gnome.org>
23609 * icall.c (ves_icall_System_Array_FastCopy): Small fix.
23611 2002-03-07 Dietmar Maurer <dietmar@ximian.com>
23613 * class.c (mono_array_class_get): fix. for multi. dim. arrays
23615 2002-03-06 Martin Baulig <martin@gnome.org>
23617 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
23618 non-zero lower bounds. See testcases #F10-#F13.
23620 2002-03-05 Martin Baulig <martin@gnome.org>
23622 * exception.c (mono_get_exception_argument_out_of_range): New exception.
23624 * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
23625 ves_icall_System_Array_GetValue(), only calculate the absolute array position
23627 (ves_icall_System_Array_SetValue): Likewise.
23628 (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
23629 as argument and does the actual work. This function is used when copying a
23630 multi-dimensional array.
23631 (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
23632 now do all the widening conversions of value types.
23633 (ves_icall_System_Array_CreateInstanceImpl): Implemented.
23635 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23637 * class.c: remove some magic numbers and use the smbolic names,
23638 instead. Added init_events() to load event info at class init time.
23639 * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
23640 and mono_metadata_methods_from_event().
23641 * reflection.h, reflection.c: added support for writing out the evnets
23642 related information.
23644 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23646 * reflection.h, icall.c: use a different method (GetInterfaces)
23647 to gather interface info and add isbyref, isprimitive and
23648 ispointer to the ves_icall_get_type_info() return value.
23650 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23652 * class.h: stared adding support for events.
23653 * icall.c: split find_members implementation. Added debug icall to get
23654 the address of an object.
23655 * reflection.c: handle TypeBuilders in mono_type_get_object().
23657 2002-03-01 Martin Baulig <martin@gnome.org>
23659 * icall.c (ves_icall_System_Array_GetLength): This must throw an
23660 ArgumentOutOfRangeException(), not an ArgumentException().
23661 (ves_icall_System_Array_GetLowerBound): Likewise.
23662 (ves_icall_System_Array_GetValue): Improved argument checking.
23663 (ves_icall_System_Array_SetValue): Improved argument checking.
23665 2002-03-01 Martin Baulig <martin@gnome.org>
23667 * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
23668 called with invalid arguments rather than just dying with g_assert().
23669 (ves_icall_System_Array_SetValue): Likewise.
23670 (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
23671 raise a NotImplementedException instead.
23672 (ves_icall_System_Array_GetLength): Added argument checking.
23673 (ves_icall_System_Array_GetLowerBound): Added argument checking.
23675 2002-03-01 Dietmar Maurer <dietmar@ximian.com>
23677 * object.h (mono_assert): new macros mono_assert and
23678 mono_assert_not_reached
23680 2002-02-28 Martin Baulig <martin@gnome.org>
23682 * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
23683 and "System::String::IsInterned" to "System::String::_IsInterned".
23685 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
23687 * icall.c: remove hacks for typebuilder. Added icall to create a
23688 modified type from a tybebuilder.
23689 * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
23690 in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
23691 to create a backing MonoClass for a TypeBuilder.
23693 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23695 * class.c, class.h: more refactoring of class init.
23696 Export mono_class_setup_mono_type() and mono_class_setup_parent().
23698 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
23700 * marshal.c, marshal.h: start of marshaling interface.
23702 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
23704 * icall.c: fix order in assembly qualified name icall.
23706 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
23708 * class.c: do not free str, since we store it in the hash table.
23709 * reflection.h: add label field to MonoILExceptionInfo.
23710 * reflection.c: handle references to more than one assembly. Handle
23711 case when there isn't a module created in the assembly.
23713 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23715 * class.c: Fix typo. Start refactoring of class init code.
23717 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23719 * appdomain.c: exit with 1 on error.
23720 * class.c: we already have the name in MonoClassField.
23721 * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
23722 MonoStreamHeader instead of an offset of image->raw_metadata.
23724 2002-02-26 Miguel de Icaza <miguel@ximian.com>
23726 * appdomain.c (mono_init): Be even more descriptive about the error.
23728 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
23730 * appdomain.c: give the user an informative message when corlib can't
23733 2002-02-26 Martin Baulig <martin@gnome.org>
23735 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
23736 New icall to get the time zone data.
23738 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23740 * reflection.c: set virtual and raw size of section correctly.
23741 * threads.c: transfer domain information to newly created threads.
23743 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
23745 * class.c: when instancing a class in a domain, load the default
23746 vaules for static fields from the constant table. Fix System.Enum to
23748 * icall.c: implement Object::GetType() internalcall. Implemented
23749 MonoField::GetValue() internalcall. Avoid SEGV in search_method().
23750 Fixed checking of binding flags in find_members().
23751 * metadata.c, metadata.h: introduce mono_metadata_type_hash().
23752 * reflection.c: handle enumerations when writing to the constant
23753 table. Use a different object cache for types.
23756 2002-02-22 Dietmar Maurer <dietmar@ximian.com>
23758 * object.c (mono_object_isinst): fix for arrays
23760 * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
23762 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
23764 * object.c: don't use mprotect () and fix intern pool hash table
23765 lookup for big endian systems.
23767 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23769 * icall.c: change type_is_subtype_of () signature.
23771 2002-02-21 Mark Crichton <crichton@gimp.org>
23773 * rand.c, rand.h: Added random number generator for
23774 System.Security.Cryptography classes.
23776 * exception.c, exception.h: Added mono_get_exception_not_implemeted.
23778 * icall.c: Added System.Security.Cryptography calls.
23780 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
23782 * class.c, icall.c, metadata.c: better support for pointer types.
23783 Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
23784 * reflection.c: Add support for getting custom attrs for properties
23785 and simplify some code.
23787 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23789 * icall.c: change getToken () and add custom attribute GetBlob()helper
23791 * reflection.h: add custom attrs array to the reflection builder structures.
23792 * reflection.c: encode and emit custom attributes for all the relevant
23793 reflection objects. Cache fieldref and methodref tokens. Change
23794 mono_image_create_token() interface to take a MonoDynamicAssembly.
23795 More complete custom attributes decoder. Load custom attributes for
23796 Assembly, Field, Method and Constructor objects, too. Make the
23797 returned array an Attribute[] one, not object[]. Added
23798 mono_reflection_get_custom_attrs_blob() to encode the arguments of a
23799 custom attribute constructor.
23801 2002-02-20 Dick Porter <dick@ximian.com>
23805 * socket-io.c: Windows portability fixes (sometimes just ifdeffing
23806 problem code out for now).
23808 2002-02-19 Radek Doulik <rodo@ximian.com>
23810 * object.c (mono_ldstr): use hash table to avoid multiple swapping
23812 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
23814 * icall.c: register the GetCustomAttributes method.
23815 * object.c, object.h: add mono_string_new_len ().
23816 * reflection.h, reflection.c: added mono_runtime_invoke(),
23817 mono_install_runtime_invoke(). Added
23818 mono_reflection_get_custom_attrs () to load custom attributes and
23819 create the attribute objects.
23821 2002-02-19 Dick Porter <dick@ximian.com>
23822 * threads-dummy-types.c:
23823 * threads-dummy-types.h:
23826 * threads-pthread-types.c:
23827 * threads-pthread-types.h:
23828 * threads-pthread.c:
23829 * threads-pthread.h: Deleted obsolete files
23831 2002-02-19 Dietmar Maurer <dietmar@ximian.com>
23833 * class.c (mono_class_vtable): runtime init the class when we
23834 allocate static class data.
23836 * icall.c (ves_icall_System_Array_SetValue): check for null values.
23838 * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
23839 and String - but we will need generic marshalling support in the
23841 (mono_init): set the domain name in a ms compatible way
23843 * object.c (mono_string_new_utf16): bug fix: use char[] instead of
23846 2002-02-18 Dietmar Maurer <dietmar@ximian.com>
23848 * object.c (mono_array_clone): use alloca() instead of g_malloc
23851 * appdomain.c (mono_domain_unload): impl.
23853 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
23855 * appdomain.c, object.c: fix intern pool implementation.
23856 * class.c: fix alignment code.
23858 2002-02-16 Radek Doulik <rodo@ximian.com>
23860 * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
23861 and s2 > s1, just copy lower bytes to be compatible with little
23862 endian (i.e. 64bit value & 0xffffffff --> 32bit value)
23863 (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
23865 * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
23866 force big_endian to be 1 for big endian machines
23867 (ves_icall_iconv_new_decoder): ditto
23869 2002-02-16 Jeffrey Stedfast <fejj@ximian.com>
23871 * socket-io.c (convert_sockopt_level_and_name): If the system
23872 doesn't define SOL_IP or SOL_TCP, get them by hand using
23873 getprotobyname() and caching the values (because this could be a
23875 (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
23876 Use the appropriate struct when the system does support it. Ie,
23877 not all systems have struct ip_mreqn so use struct ip_mreq when
23880 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
23882 * reflection.c: handle finally clauses.
23884 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
23886 * socket-io.c: use g_snprintf() instead of snprintf.
23888 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
23890 * reflection.c (mono_param_get_objects): Cast second argument to
23891 mono_method_get_param_names to a const char** to silence the
23894 * appdomain.c (mono_domain_assembly_open): Put parens around the
23895 truth statement in the for-loop.
23897 * unicode.c (iconv_convert): Got rid of a compiler warning about
23898 int i being unused when the system has a new iconv.
23899 (iconv_get_length): Same.
23901 * image.c (load_class_names): Cast the second argument to
23902 g_hash_table_insert() to char* to hush compiler warnings about the
23904 (mono_image_open): Same here.
23906 * socket-io.c: Don't conditionally include sys/filio.h or
23907 sys/sockio.h here anymore since we now get them from
23908 io-layer/io-layer.h
23909 (inet_pton): If the system doesn't support inet_aton, implement
23910 using inet_addr and also #define INADDR_NONE if it isn't defined
23913 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
23915 * metadata.c, metadata.h: added function to get packing and size info
23917 * reflection.h, reflection.c: handle field RVA data. Save info about
23918 the table layout if needed. Assign typedef indexes to all the types
23919 before dumping the info about them to avoid forward reference problems.
23921 2002-02-14 Dietmar Maurer <dietmar@ximian.com>
23923 * socket-io.c (convert_sockopt_level_and_name): ifdef
23924 SO_ACCEPTCONN because it is not defined on my system (old debian)
23926 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23928 * opcode.c: use stddef.h to get NULL.
23930 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
23932 * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
23933 for FIONBIO, FIONREAD and SIOCATMARK.
23934 (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
23935 define INADDR_NONE and besides, inet_addr() is deprecated and
23936 should not be used. Use inet_pton() instead - it also has the
23937 added bonus that it can easily handle IPv6 addresses as well.
23938 (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
23940 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23942 * decimal.c: remove _MSC_VER conditional.
23944 2002-02-13 Dick Porter <dick@ximian.com>
23947 * icall.c: Internal calls for Blocking, Select, Shutdown,
23948 GetSocketOption and SetSocketOption
23950 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23952 * assembly.cs: better resolver: use it instead of some kludgy
23955 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
23957 * reflection.c: the best way to speed-up the compiler is to avoid
23960 2002-02-13 Dietmar Maurer <dietmar@ximian.com>
23962 * class.c (mono_class_vtable): changed the object layout
23963 (obj->vtable->class).
23964 (mono_class_create_from_typespec): consider MONO_TYPE_PTR
23966 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23968 * assembly.c: look for assemblies in the assembly dir, too.
23970 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23972 * class.c: fix thinko in mono_class_from_type().
23974 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23976 * exception.h, exception.c: added TypeLoadException.
23977 * object.h, object.c: added mono_array_clone ().
23978 * icall.c: handle throwOnError in AssemblyGetType().
23979 Added Array.Clone().
23980 * opcode.h, opcode.c: use a single value for the opcode val.
23981 Compile fix for non-gcc compilers.
23983 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
23985 * opcodes.c, opcodes.h: export interesting info about opcodes.
23987 2002-02-05 Dietmar Maurer <dietmar@ximian.com>
23989 * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
23992 * class.c (class_compute_field_layout): set element_class for enums
23993 (mono_class_create_from_typedef): set element_class for normal classes
23995 * icall.c (ves_icall_System_Enum_get_value): impl.
23997 * class.c (mono_class_create_from_typedef): do not set valuetype
23998 flag for System.ValueType and System.Enum
24000 2002-02-04 Dietmar Maurer <dietmar@ximian.com>
24002 * unicode.c (iconv_convert): fix big endian problem.
24004 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24006 * class.c: add asserts if we are ever going to scribble over memory.
24007 * socket-io.c: not all systems have AF_IRDA defined.
24009 2002-01-31 Dietmar Maurer <dietmar@ximian.com>
24011 * class.c (class_compute_field_layout): do not consider static
24012 fields to compute alignment
24014 2002-01-25 Dietmar Maurer <dietmar@ximian.com>
24016 * appdomain.c (mono_appdomain_get): impl.
24017 (ves_icall_System_AppDomain_ExecuteAssembly): impl.
24019 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
24021 * icall.c: ignore "file://" prefix when loading an assembly.
24023 2002-01-23 Dick Porter <dick@ximian.com>
24027 * Makefile.am: Added socket support
24029 2002-01-23 Miguel de Icaza <miguel@ximian.com>
24031 * icall.c (ves_icall_appdomain_get_default_assemblies): put this
24032 code back. This should return the assemblies that are loaded by
24033 the runtime on behalf of an application domain.
24035 The current implementation is still broken, it just returns every
24036 assembly loaded, but until we get real applications domain this
24039 2002-01-23 Dietmar Maurer <dietmar@ximian.com>
24041 * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
24044 2002-01-23 Miguel de Icaza <miguel@ximian.com>
24046 * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
24047 the mono_class_from_name lookup.
24048 (ves_icall_get_parameter_info): ditto.
24049 (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
24051 (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
24053 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
24055 * class.c: load also nested classes on class init.
24056 System.ValueType instance methods gets passed boxed
24057 values, unless methods in derived classed that get a pointer to the
24059 * icall.c: use better name parsing code in GetType().
24060 * image.c, image.h: add mono_image_loaded ().
24061 * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
24062 * reflection.c, reflection.h: added mono_reflection_parse_type().
24064 2002-01-22 Veronica De Santis <veron78@interfree.it>
24066 * icall.c : Added mapping of internal calls for Manual and Auto reset events
24067 * threads.c : Added the implementation of internal calls for events
24068 * threads.h : Added prototypes of internal calls for events
24070 2002-01-21 Radek Doulik <rodo@ximian.com>
24072 * icall.c (ves_icall_InitializeArray): swap bytes on big endians
24074 2002-01-21 Dietmar Maurer <dietmar@ximian.com>
24076 * class.c (mono_class_init): set min_align to 1 (instead of 0)
24077 (mono_class_value_size): use min_align
24079 2002-01-20 Dick Porter <dick@ximian.com>
24082 * threads.c: Replaced all instances of WapiHandle * with HANDLE,
24083 so it compiles on w32.
24085 2002-01-17 Dietmar Maurer <dietmar@ximian.com>
24087 * metadata.c (mono_type_stack_size): impl.
24089 * class.c (mono_class_get_field): impl. memberref token
24091 2002-01-16 Veronica De Santis <veron78@@interfree.it>
24093 * icall.h : Added the internal calls mapping for CreateMutex_internal
24094 and ReleaseMutex_internal.
24095 * threads.h : Added the prototype of mutexes internal calls.
24096 * threads.c : Added the implementations of mutexes internal calls.
24098 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
24100 * metaparse.h: removed unused file.
24101 * reflection.c, reflection.h: added stream_data_align () function
24102 to align data in streams and keep stream aligned. Add support for
24103 exception support in method headers.
24105 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
24107 * unicode.c: make iconv_convert () return the number of bytess written
24108 in the output buffer.
24110 2002-01-15 Dick Porter <dick@ximian.com>
24111 * threads.c: Make the runtime's idea of infinite timeouts coincide
24112 with the class library's
24114 Fix a particularly egregious bug in mono_thread_cleanup(). That
24115 code was so utterly bogus it must have been written on a Monday.
24117 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
24119 * reflection.h: add subtypes field to TypeBuilder.
24120 * reflection.c: encode constants for literal fields.
24121 Handle subtypes. Fix user string token (and add a zero byte)
24124 2002-01-14 Dietmar Maurer <dietmar@ximian.com>
24126 * class.c (mono_class_init): bug fix: assign slot numbers for
24129 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24131 * reflection.c: don't try to output a code RVA for abstract methods.
24132 Small fixes for method header format. Output parameter info to the
24133 ParamDef table. Save method overriding info to MethodImpl table.
24134 Fix property support. Allow typedef.extends to be a type in the
24136 * verify.c: fix off-by-one error.
24138 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
24140 * class.c: fix mono_class_from_mono_type () for szarray types.
24141 Remove unused cache check in mono_class_from_type_spec().
24142 * icall.c: *type_from_name () functions handle simple arrays and byref.
24143 * reflection.c: handle byref and szarray types. Handle methods without
24144 body (gets P/Invoke compilation working). Handle types and fields in
24146 * reflection.h: add rank to MonoTypeInfo.
24148 2002-01-10 Dick Porter <dick@ximian.com>
24150 * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
24153 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
24155 * icall.c: initialize class in type_from_handle ().
24156 Loop also in parent classes for get_method ().
24157 * reflection.c: properly encode class and valuetype types.
24158 Start on encoding TypeBuilder types. Handle fieldrefs.
24159 Use correct length when registering a user string.
24160 Handle ConstructorBuilder and MonoMethod in get_token ().
24161 Make mono_type_get_object () aware of cached types.
24162 * object.c: back out change to mono_string_new ().
24164 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
24165 * object.c: mono_string_new should return a NULL when the string
24166 passed in is NULL -- not try to deference it.
24168 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
24170 * icall.c: hack to make IsSubType work for TypeBuilders.
24171 * reflection.c: emit constructors before methods.
24172 Retrieve param names in mono_param_get_objects().
24174 2002/01/05 Nick Drochak <ndrochak@gol.com>
24176 * Makefile.am: fix list of headers and sources so automake 1.5
24177 doesn't complain. Removed \# at end of list.
24179 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
24181 * reflection.c: get token for a method ref. Set return type of
24182 constructor to void.
24183 * loader.c: debug message.
24184 * class.c: typo fix.
24186 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
24188 * icall.c: fix array init with rank > 1. FindMembers
24189 loops in parent class as well.
24190 * image.c: do not insert nested types in name cache.
24191 * reflection.c: warning fix.
24192 * reflection.h: add override method (for interface impl).
24194 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
24196 * metadata.c: fix customattr decoding.
24198 2001-12-21 Miguel de Icaza <miguel@ximian.com>
24200 * rawbuffer.cs: Added native Win32 implementation, avoids using
24201 mmap on Cygwin. This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
24203 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
24205 * class.c: make the low-level routines handle the cache.
24207 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
24209 * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
24211 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
24213 * class.c: fix mono_array_element_size() for objects.
24214 * class.h, class.c: add properties to MonoClass and load them
24216 * icall.c: check with isinst() when assigning a value to an array
24217 instead of requiring the classes to match exactly.
24218 Implemented icall for System.Type::GetType().
24219 Implemented icalls to get ParameterInfo, ProprtyInfo and info about
24220 enums. Handle bindingflags when looking for methods and fields.
24221 * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
24222 and mono_metadata_methods_from_property().
24223 * reflection.h, reflection.c: added structures for propreties,
24224 parameters and enums. Implemented mono_property_get_object() and
24225 mono_param_get_objects().
24227 2001-12-18 Dick Porter <dick@ximian.com>
24229 * file-io.c: Use mono_string_to_utf16() instead of
24230 mono_string_chars()
24232 * object.c: Added mono_string_to_utf16(), which copies the non
24233 NULL-terminated MonoString into a new double-null-terminated
24236 2001-12-17 Dietmar Maurer <dietmar@ximian.com>
24238 * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
24240 2001-12-16 Dietmar Maurer <dietmar@ximian.com>
24242 * file-io.c: raise exceptions if handle is invalid.
24244 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
24246 * assembly.c: yet another check for mscorlib.
24247 * class.c, class.h: load nesting info for classes.
24248 * icall.c: many new functions to support the Reflection classes.
24249 * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
24250 * reflection.h, reflection.c: mono_image_create_token(),
24251 mono_assembly_get_object(), mono_type_get_object(),
24252 mono_method_get_object(), mono_field_get_object(): methods to return
24253 objects that parallel the C representation of assemblies, types,
24256 2001-12-11 Dick Porter <dick@ximian.com>
24259 * file-io.c: Internal calls for file IO.
24261 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
24263 * tabledefs.h: missing FileAttributes.
24264 * verify.h, verify.c: use is_valid_string () to simplify and check for
24265 valid strings more correctly. Fix warnings and speeling.
24266 Check more tables: Filed, File, ModuleRef, StandAloneSig.
24267 Check code: branches, maxstack, method calls.
24269 2001-12-04 Dietmar Maurer <dietmar@ximian.com>
24271 * object.c (mono_object_allocate): removed static, so that the jit
24272 can allocate value types.
24274 * icall.c (ves_icall_System_DateTime_GetNow): impl.
24276 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24278 * class.c: init enum types right away and register the
24279 token->MonoClass map in mono_class_create_from_typedef ().
24280 * verify.h, verify.c: first cut of the verifier.
24281 * pedump.c: add --verify switch to verify metadata tables.
24282 * tabledefs.h: add some missing enums.
24284 2001-11-30 Dietmar Maurer <dietmar@ximian.com>
24286 * class.c (mono_install_runtime_class_init): impl.
24287 (mono_class_init): renamed mono_class_metadata_init to
24288 mono_class_init, also removed the metadata_inited flag
24290 * object.c (mono_object_isinst): use faster algorithm
24292 2001-11-30 Radek Doulik <rodo@ximian.com>
24294 * mono-endian.h: reverted last change
24295 added function prototypes
24297 * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
24298 add mono-endian.c back
24300 * mono-endian.c: returned back, as Paolo pointed out, it's needed
24301 for unaligned access, I've mistaked it with endianess. I am
24303 (mono_read16): fix reverted endianess
24304 (mono_read64): ditto
24305 (mono_read32): ditto
24307 2001-11-30 Dick Porter <dick@ximian.com>
24309 * exception.c: Implement mono_exception_from_name()
24311 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24313 * metadata.h, metadata.c: remove params_size and locals_size and their
24314 calculation from the metadata code: they are only usefult to the
24317 2001-11-29 Radek Doulik <rodo@ximian.com>
24319 * object.c (mono_ldstr): swap bytes here, it's probably not the
24320 best place, but works for me now, I'll redo it once I know mono
24321 better, also note that I add PROT_WRITE and don't reset back, also
24322 note that it's only affects big endians, so x86 should be OK
24324 * mono-endian.h (read16): use just glib macros for both endians
24326 * mono-endian.c: removed as glib macros are used in in
24327 mono-endian.h so we don't need to care about endianess for read
24328 macros as glib does that for us already
24330 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
24332 * class.h, class.h: take minimum alignment into consideration so
24333 that the fields of a class remain aligned also when in an array.
24335 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24337 * loader.h, loader.c: add mono_method_get_param_names().
24338 * class.c: 0-init class fields.
24340 2001-11-26 Dick Porter <dick@ximian.com>
24344 * threads.c: New file that handles System.Threading on all platforms
24347 * object.h: Remove the synchronisation struct from MonoObject,
24348 replace it with a pointer that gets initialised on demand
24350 * Makefile.am: Replace all the system-specific threading code with
24351 a single file that uses the new wrapper library
24353 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
24355 * class.c, class.h: add mono_install_trampoline() so that the runtime
24356 can register a function to create a trampoline: removes the ugly
24357 requirement that a runtime needed to export arch_create_jit_trampoline.
24358 * object.h, object.c: added mono_install_handler() so that the runtime
24359 can install an handler for exceptions generated in C code (with
24360 mono_raise_exception()). Added C struct for System.Delegate.
24361 * pedump.c: removed arch_create_jit_trampoline.
24362 * reflection.c: some cleanups to allow registering user strings and
24363 later getting a token for methodrefs and fieldrefs before the assembly
24365 * row-indexes.h: updates and fixes from the new ECMA specs.
24367 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
24369 * class.h, class.c: add enum_basetype field to MonoClass.
24370 * metadata.h, metadata.c: add mono_metadata_get_constant_index()
24371 to get index in the constant table reated to a field, param or
24373 * reflection.h, reflection.c: handle constructors. Set public-key and
24374 version number of the built assembly to 0.
24375 * row-indexes.h: update from new ECMA spec.
24377 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24379 * class.h, class.c: add a max_interface_id to MonoClass.
24380 * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
24381 since it's used to do that. Added mono_type_type_from_obj().
24382 Make GetType() return NULL instead of segfaulting if the type was not
24383 found. Handle simple arrays in assQualifiedName.
24384 * object.h: add a struct to represent an Exception.
24385 * reflection.c: output call convention in method signature.
24386 Add code to support P/Invoke methods and fixed offsets for fields.
24388 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
24390 * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
24392 * icall.c: use mono_array_addr instead of array->vector: fixes the
24393 reflection image writing.
24394 * reflection.c: init call convention byte to 0 in method signature.
24395 Encode the property signature. Don't output property-related methods
24396 twice. Really process the properties for a type (don't cast a field to
24397 a property, my mom always told me that).
24398 Fix 64 bit issues in pointer alignment in a different and more
24401 2001-11-10 Sean MacIsaac <macisaac@ximian.com>
24403 * loader.h: Removed type class from MonoDefaults, added monotype
24405 * loader.c: Loaded MonoType, removed loading of Type
24407 * icall.c (my_mono_new_object): Now returns a System.MonoType,
24408 and fills in System.Type._impl with a RuntimeTypeHandle rather
24409 than the actual MonoClass *
24411 (ves_icall_type_from_handle): change from type_class to
24414 (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
24417 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
24420 (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
24422 (ves_icall_System_Reflection_Assembly_GetType): implemented
24424 (ves_icall_System_MonoType_assQualifiedName): implemented
24426 (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
24428 2001-11-09 Miguel de Icaza <miguel@ximian.com>
24430 * assembly.c (mono_assembly_open): Implement a cache for the
24433 (mono_assembly_close): only destroy the assembly when the last
24436 2001-11-09 Dick Porter <dick@ximian.com>
24438 * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
24440 2001-11-09 Dietmar Maurer <dietmar@ximian.com>
24442 * class.c (mono_class_metadata_init): bug fix: compute the right slot
24444 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24446 * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
24447 from Martin Weindel.
24448 * object.h: add mono_string_chars ().
24450 2001-11-07 Miguel de Icaza <miguel@ximian.com>
24452 * reflection.c (build_compressed_metadata): Eliminates warnings
24453 and uses 64-bit clean code.
24455 * metadata.c (mono_type_hash): Change signature to eliminate warnings.
24456 (mono_type_equal): Change signature to eliminate warnings.
24458 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24460 * icall.c, loader.c: remove the internalcall array constructors.
24461 Changes to match the new MonoArray structure.
24462 * object.h, object.c: an array object doesn't allocate an extra
24463 vector. Add mono_array_new_full () to create jagged arrays easily.
24465 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24467 * metadata.h, metadata.c: add mono_metadata_field_info () to
24468 retreive all the info about a field from vairous tables.
24469 * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
24470 * class.h, class.c: augment MonoClassField with more info.
24471 Implemented mono_ldtoken for fields. Implemented ExplicitLayout
24472 policy and load a field's RVA if needed.
24474 2001-11-05 Dietmar Maurer <dietmar@ximian.com>
24476 * class.c (mono_class_metadata_init): create a trampoline for all
24477 virtual functions instead of actually compiling them.
24479 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
24481 * class.h, class.c: include name in MonoClassField.
24482 * class.c: fix fundamental type of System.Object and System.String.
24483 Set the right fundamental type for SZARRAY, too. Handle TypeSpec
24485 * icall.c: remove internalcalls for the Reflection stuff that is now
24487 * loader.c: mono_field_from_memberref () implementation.
24488 * mono-endian.c: thinko (s/struct/union/g).
24489 * object.c, object.h: make the mono_string_* prototypes actually use
24490 MonoString instead of MonoObject.
24491 * reflection.c, reflection.h: updates for changes in the reflection
24492 code in corlib: we use C structures that map to the actual C# classes.
24493 Handle SZARRAYs when encoding types. Handle locals in methods. Use a
24494 fat method header if needed and use the info from the ILGenerator for
24495 methods. Handle fields in types. Misc fixes.
24497 2001-10-17 Dietmar Maurer <dietmar@ximian.com>
24499 * class.c (mono_class_metadata_init): bug fix: always allocate
24500 space for static class data
24502 2001-10-25 Dietmar Maurer <dietmar@ximian.com>
24504 * class.c (mono_compute_relative_numbering): use relative
24505 numbering to support fast runtime type checks.
24507 2001-10-17 Sean MacIsaac <macisaac@ximian.com>
24509 * class.c (mono_class_create_from_typeref): added debugging output
24510 to print class name when MonoDummy is returned instead of real class
24512 2001-10-15 Dietmar Maurer <dietmar@ximian.com>
24514 * class.c (mono_class_metadata_init): interface offset table now
24515 contains pointers into the vtable - this is more efficient for the jit
24517 2001-10-12 Dietmar Maurer <dietmar@ximian.com>
24519 * class.c (mono_class_metadata_init): use a temporary vtable (the
24520 old algorithm only worked for the interpreter, but not for the jit)
24522 2001-10-11 Dietmar Maurer <dietmar@ximian.com>
24524 * loader.c (method_from_memberref): use mono_class_get to get the
24525 class of an array instead of using System.Array directly.
24526 (mono_get_method): also add MEMBERREF methods to the method cache
24527 which usefull for arrays.
24529 2001-10-10 Dietmar Maurer <dietmar@ximian.com>
24531 * pedump.c (arch_compile_method): added to compute vtable entry
24533 * metadata.c (mono_metadata_interfaces_from_typedef): also return the
24534 number of interfaces.
24536 * class.h: merged MonoArrayClass into MonoClass
24538 * class.c (mono_class_create_from_typedef): compute the vtable size and
24539 allocate space to include the vtable inside MonoClass
24540 (mono_class_metadata_init): initialize the vtable
24542 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
24544 * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
24545 Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
24546 * image.c: endian fixes by Laurent Rioux.
24547 * object.h, object.c: rename MonoStringObject to MonoString and
24548 MonoArrayObject to MonoArray. Change some function names to conform to
24549 the style mono_<object>_<action>. mono_string_new_utf16 () takes a
24550 guint16* as first argument, so don't use char*.
24551 Provide macros to do the interesting things on arrays in a portable way.
24552 * threads-pthread.c: updates for the API changes and #include <sched.h>
24553 (required for sched_yield()).
24554 * icall.c: updates for the API changes above.
24555 * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
24556 platforms that need them.
24558 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24560 * class.c: set the correct type for all the fundamental
24561 type when loading the class.
24563 2001-10-05 Dick Porter <dick@ximian.com>
24565 * threads-pthread.c (pthread_mutex_timedlock): Simple
24566 compatibility version for C libraries that lack this call.
24568 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24570 * class.c: MonoTypes stored in MonoClass are stored as
24571 fundamental MonoTypes when the class represents a
24572 fundamental type (System.Int32, ...).
24573 The TypeHandle return by ldtoken is a MonoType*.
24574 * icall.c: ves_icall_get_data_chunk () write out all the
24575 PE/COFF stuff. Implement ves_icall_define_method (),
24576 ves_icall_set_method_body (), ves_icall_type_from_handle ().
24577 * image.c: properly skip unknown streams.
24578 * loader.h, loader.c: add type_class to mono_defaults.
24579 * metadata.c, metadata.h: export compute_size () as
24580 mono_metadata_compute_size () with a better interface.
24581 Typo and C&P fixes.
24582 * pedump.c: don't try to print the entry point RVA if there is no entry point.
24583 * reflection.c, reflection.h: many cleanups, fixes, output method
24584 signatures and headers, typedef and typeref info, compress the metadata
24585 tables, output all the heap streams, cli header etc.
24586 * row-indexes.h: typo fixes.
24588 2001-10-04 Dick Porter <dick@ximian.com>
24590 * object.h: Add a synchronisation mutex struct to MonoObject
24592 * object.c (mono_new_object): Initialise the object
24593 synchronisation mutexes
24595 * icall.c: System.Threading.Monitor internal calls
24597 * threads-pthread.h:
24598 * threads-pthread.c: System.Threading.Monitor internal calls
24600 * threads-types.h: New file, includes the system-specific thread
24603 * threads-pthread-types.h:
24604 * threads-pthread-types.c: New files, handle pthread-specific
24605 synchronisation types
24607 * threads-dummy-types.h:
24608 * threads-dummy-types.c: New files of dummy support for
24609 thread-specific types
24613 * pedump.c: include mono-endian.h not endian.h
24615 * Makefile.am: More threads files.
24616 Name mono-endian.h not endian.h
24618 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
24620 * Makefile.am, reflection.h, reflection.c: move here the reflection related
24621 stuff and implement a few more bits.
24622 * icall.c: a field needs to be dereferenced twice. Do not use the same
24623 name for two variables in the same scope.
24624 * image.c, image.h: cleanups.
24626 2001-10-02 Dietmar Maurer <dietmar@ximian.com>
24628 * class.c (mono_class_metadata_init): bug fix: compute the right size
24630 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
24632 * icall.c: implemented some of the Reflection internalcalls.
24633 * image.c, image.h: start writing out the PE/COFF image.
24634 * metadata.h, metadata.c: implement mono_metadata_encode_value ()
24635 that does the reverse than decode_blob_size ().
24636 * object.c: use mono_metadata_encode_value (). Move here
24637 temporary implementation of mono_string_to_utf8 ().
24638 * rawbuffer.c: make malloc_map static.
24640 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24642 * metadata.c: fix type comparison for arrays.
24643 * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
24644 Added a couple of new classes to monodefaults.
24645 * icall.c: added a couple of Reflection-related internalcalls.
24646 * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
24647 Added a byval_arg MonoType to MonoClass.
24649 2001-09-28 Dick Porter <dick@ximian.com>
24652 * threads-pthread.h:
24653 * threads-pthread.c: Implemented internal calls for
24654 LocalDataStoreSlot operations. Applied mutexes around all shared
24655 data. Reworked the thread creation and Start() operations to
24656 avoid a race condition.
24659 * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
24661 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
24663 * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
24665 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
24667 * class.c, loader.c: warn and return NULL instead of erroring out.
24668 * icall.c: added System.AppDomain::getCurDomain().
24669 * loader.c: we don't need to lookup the typedef again for p/invoke calls.
24671 2001-09-25 Dick Porter <dick@ximian.com>
24673 * threads-pthread.h:
24674 * threads-pthread.c: Implemented timed thread joining and added
24675 System.Threading.Thread::Join_internal internal call
24677 * icall.c: Added System.Threading.Thread::Join_internal internal call
24680 * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
24682 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
24684 * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
24685 mono_string_intern () to implement the semantics of the ldstr opcode
24686 and the interning of System.Strings.
24687 * icall.c: provide hooks to make String::IsIntern and String::Intern
24690 2001-09-23 Dick Porter <dick@ximian.com>
24693 * threads-dummy.h: New files of dummy threading routines
24695 * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
24696 support code based on system specifics
24698 Rename PTHREAD_LIBS to THREAD_LIBS
24700 2001-09-23 Dick Porter <dick@ximian.com>
24702 * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
24703 Schedule (called when asked to Sleep for 0 ms) and CurrentThread
24705 (mono_thread_init): Set up a Thread object instance to return when
24706 the main thread calls Thread.CurrentThread
24707 (mono_thread_cleanup): Wait for all subthreads to exit
24709 * icall.c: New internal calls for System.Threading.Thread::Sleep
24710 (including Schedule) and CurrentThread
24712 * threads.h: New file, to insulate thread-specific stuff from the
24715 2001-09-21 Dick Porter <dick@ximian.com>
24717 * threads-pthread.h:
24718 * threads-pthread.c: New file, for handling pthreads-style
24719 threading support. Start() now starts a new thread and executes
24720 the ThreadStart delegate instance.
24722 * icall.c: Added the internalcall for
24723 System.Threading.Thread::Start_internal
24725 * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
24727 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
24729 * loader.c: work around the different signatures for delegates
24730 constructors csc generates in compiled code vs the ones compiled in mscorlib.
24732 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
24734 * class.h, class.c: add mono_class_get_field_from_name ().
24735 * *: Fix C comments and other ANSI C issues.
24737 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
24739 * endian.h, assembly.c: fix some endianness issues.
24741 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
24743 * loader.h, load.c: add delegate_class to mono_defaults.
24744 Handle runtime provided methods in mono_get_method ().
24746 2001-08-29 Dietmar Maurer <dietmar@ximian.com>
24748 * loader.c (mono_get_method): use pinvoke for internal call
24750 * icall.c: use pinvoke for internal call
24752 * loader.c (method_from_memberref): set the method name
24754 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
24756 * metadata.c: help the compiler generate better code for
24757 mono_class_from_mono_type ().
24759 2001-08-28 Dietmar Maurer <dietmar@ximian.com>
24761 * class.c (mono_class_metadata_init): delayed computing of the
24762 class size to mono_class_metadata_init ()
24764 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
24766 * class.c, class.h: add an interfaces member to MonoClass.
24767 * image.c, image.h: add assembly_name field to MonoImage
24768 from the assembly table.
24769 * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
24771 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24773 * class.c: Handle Array in mono_class_from_mono_type ().
24774 * metadata.c, pedump.c: some endian fixes.
24776 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24778 * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
24779 * metadata.c: fix small problem introduced with the latest commit.
24781 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
24783 * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
24784 We don't need a MonoMetadata pointer anymore to compare signatures in
24785 mono_metadata_signature_equal (), update callers.
24786 Reduced memory usage an number of allocations for MonoMethodHeader and
24787 MonoMethodSignature.
24789 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
24791 * metadata.c: added compare for szarray.
24793 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
24795 * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
24796 and add a couple more types to it and mono_defaults. Give an hint on
24797 classes that need implementing in our corlib and are referenced
24800 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
24802 * class.h, class.c: keep track if a class is also an Enum.
24803 * loader.c: Implement a couple more types for use in libffi
24804 marshalling. Gives better diagnostics when failing to dlopen
24805 a library. Set method->klass for P/Invoke methods, too.
24807 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
24809 * class.c, class.h: add a MonoType this_arg to MonoClass that
24810 represents a pointer to an object of the class' type that
24811 can be used by the interpreter and later the type cache.
24812 Add best guess alignment info for valuetype objects.
24814 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
24816 * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
24817 into MonoType: one less level of indirection and allocation and
24818 simplifies quite a bit of code. Added cache for MonoTypes that are
24819 used frequently, so that we don't need to allocate them all the time.
24821 2001-08-24 Dietmar Maurer <dietmar@ximian.com>
24823 * class.c (mono_class_create_from_typedef): System.Enum is also a
24824 value type, although it does not derive from System.ValueType
24825 (maybe a bug in the ms compiler?)
24827 * metadata.c (mono_type_size): return the right size for value types
24829 * loader.c (mono_get_method): only initialize method header if not abstract
24831 * class.c (mono_class_from_mono_type): use mono_default values.
24833 2001-08-23 Dietmar Maurer <dietmar@ximian.com>
24835 * *: use MonoClass pointers instead of <type_tokens>
24837 * class.h: new flag: metadata_inited.
24839 * class.c (mono_class_metadata_init): impl.
24840 (mono_class_instance_size): impl.
24841 (mono_class_data_size): impl.
24843 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24845 * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
24846 MonoClass now has the name and name_space fields.
24847 MonoMethod has a pointer to its MonoClass, instead of MonoImage.
24848 mono_get_method () takes and optional MonoClass as argument.
24849 Removed mono_typedef_from_name() and added mono_class_token_from_name()
24850 instead that takes advantage of a map from class names to typedef
24851 tokens in MonoImage.
24853 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
24855 * metadata.c: zero is not a valid alignment boundary.
24856 Merge MONO_TYPE_VOID in default decoding code.
24858 2001-08-21 Dietmar Maurer <dietmar@ximian.com>
24860 * image.h: merged MonoMetadata into MonoImage
24862 * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
24863 identify the type of elements.
24865 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
24867 * blob.h: fix MONO_TYPE_TYPEDBYREF value.
24868 * cil-coff.h: split MonoMSDOSHeader and add size info.
24869 * image.c: add some consistency checks.
24870 * metadata.c: fix row size computation: one programmer
24871 error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
24872 add explanation for the locator routine.
24873 Fix decoding of size in method header.
24875 2001-08-20 Miguel de Icaza <miguel@ximian.com>
24877 * assembly.c (g_concat_dir_and_file): Use _S for string concat.
24878 (g_concat_dir_and_file): Bring g_concat_dir_and_file
24879 function from gnome-libs. This uses the right path separator
24880 based on the OS, and also works around a bug in some systems where
24881 a double slash is not allowed.
24882 (default_assembly_name_resolver): Use g_concat_dir_and_file
24883 (mono_assembly_open): ditto.
24885 2001-08-20 Dietmar Maurer <dietmar@ximian.com>
24887 * metadata.c (mono_metadata_signature_equal): impl.
24889 * *: void is now a realy MonoType (instead of using NULL)
24891 * metadata.c (do_mono_metadata_parse_type): use
24892 mono_metadata_parse_type to parse void value.
24894 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
24896 * metadata.c, metadata.h: in the signature and method header store
24897 only the space required for holding the loca vars and incoming arguments.
24899 2001-08-15 Dietmar Maurer <dietmar@ximian.com>
24901 * metadata.c (do_mono_metadata_parse_type): treat void like any
24902 other type (instead of assigning NULL);
24904 2001-08-14 Dietmar Maurer <dietmar@ximian.com>
24906 * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
24908 2001-08-09 Dietmar Maurer <dietmar@ximian.com>
24910 * image.c (do_mono_image_open): added a cache for arrays.
24912 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24914 * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
24915 decode a single column from a row in a metadata table and changes
24916 to take advantage of it in the typedef locator (gives a nice speed up).
24917 Store offset info for function params.
24919 2001-08-02 Dietmar Maurer <dietmar@ximian.com>
24921 * image.h (MONO_IMAGE_IS_CORLIB): removed
24923 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
24925 * assembly.c: how could mono_assembly_close () had ever worked?
24926 * metadata.c, metadata.h: provide offset info for local vars.
24927 Implement mono_type_size () to take care of alignment as well
24928 as size (it was mono_field_type_size in cli/class.c before).
24930 2001-08-01 Dietmar Maurer <dietmar@ximian.com>
24932 * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
24934 * assembly.h (CORLIB_NAME): set to corlib.dll
24936 * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
24938 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24940 * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
24941 cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
24942 tokentype.h: massive namespace cleanup.
24944 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24946 * metadata.h, metadata.c: decode exception clauses when parsing method header.
24948 2001-07-27 Dietmar Maurer <dietmar@ximian.com>
24950 * metadata.c (mono_metadata_free_type): added check for type !=
24951 NULL (void) before calling mono_metadata_free_type()
24953 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
24955 * metadata.h, row_indexes.h: added header with enumerations to use
24956 to index in the columns from tables in metadata and to decode coded
24957 tokens: we should start using this instead of embedding magic numbers
24960 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
24962 * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
24963 Move metadata_t info from cli_image_info_t to MonoImage, where
24964 it's easily accessible. Changed all the uses accordingly.
24965 Added the method and class caches to MonoImage.
24966 * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
24967 and mono_metadata_decode_value () signature to be more consistent
24968 with the other parse functions (and simplify code). Taken advantage
24969 of zero-length array allocation with GCC. Removed reduntant (and
24970 wrong) MonoFieldType struct and use MonoParam instead. Changed
24971 mono_metadata_parse_field_type () to use common code for parsing.
24972 Added mono_metadata_typedef_from_field () and
24973 mono_metadata_typedef_from_method () to lookup a typedef index from a
24974 field or method token.
24975 Pack the MonoRetType structure more tightly (fits in 8 bytes now).
24977 2001-07-23 Miguel de Icaza <miguel@ximian.com>
24979 * metadata.c (mono_metadata_parse_field_type): Implement.
24980 (do_mono_metadata_parse_type): Split engine from
24981 mono_metadata_parse_type, so that we can create smaller structures
24982 for things that just have one pointer to the MonoType (look at
24985 2001-07-20 Miguel de Icaza <miguel@ximian.com>
24987 * metadata.c (mono_metadata_parse_mh): Correct the implementation,
24988 as Jan Gray found out, it is incorrect.
24990 2001-07-18 Miguel de Icaza <miguel@ximian.com>
24992 * assembly.c: Implement asssembly loading. This loads an image
24993 and loads all the referenced assemblies. Come to think of it, we
24994 could always do lazy loading of the assemblies.
24996 * image.c (mono_image_open): Keep loaded images in a hashtable.
24998 * image.h (MonoImage): Add reference count.
25000 2001-07-17 Miguel de Icaza <miguel@ximian.com>
25002 * assembly.c (mono_assembly_open): Keep track of the file name in
25003 case the assembly has no ASSEMBLY table.
25005 * metadata.h: Fixed Paolo's quick hack. Put the documnentation
25008 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
25010 * metadata.c, metadata.h: decode local vars in method header
25011 parse function. Change callers accordingly.
25013 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
25015 * metadata.h, cil-coff.h: protect against multiple inclusion.
25016 Added some new structures to hold information decoded from metadata:
25017 MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
25018 and relevant decoding/free functions.
25019 * metadata.c: implement decoding functions. Add warning for out of bounds
25020 index in mono_metadata_locate(). Implement mono_get_method () to retreive
25021 all the info about a method signature and invocation. Remove check on
25022 uninitialized local var in parse_mh() and fix memory leak.
25024 2001-07-12 Miguel de Icaza <miguel@ximian.com>
25026 * metadata.h: More macros.
25028 * tokentype.h: New file.
25030 Fri Jul 6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
25032 * assembly.c: added a consistency check and initialize
25033 some structures with g_new0().
25034 * metadata.c: fixed a couple more bugs in table size computation
25035 and add other checks for out-of bound access to metadata.
25037 Thu Jul 5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
25039 * metatada.c: fix bugs computing table sizes. Spew a
25040 warning when index in string heap is out of bounds.
25042 2001-07-04 Miguel de Icaza <miguel@ximian.com>
25044 * metadata.h: Add a couple of macros to manipulate tokens.
25046 Tue Jul 3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
25048 * assembly.c: g_free(ii->cli_sections) (and avoid double free of
25049 cli_section_tables).
25051 2001-07-01 Miguel de Icaza <miguel@ximian.com>
25053 * metadata.c (mono_metadata_user_string): New function, provides
25054 access to the UserString heap.
25056 2001-06-27 Miguel de Icaza <miguel@ximian.com>
25058 * metadata.c: Add inline documentation.
25060 2001-06-26 Miguel de Icaza <miguel@ximian.com>
25062 * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
25065 2001-06-22 Miguel de Icaza <miguel@ximian.com>
25067 * typeattr.h: New file, TypeAttribute flags.
25069 2001-06-21 Miguel de Icaza <miguel@ximian.com>
25071 * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
25072 mono_assembly_ensure_section): Section loading code.
25073 (load_section_tables): Load the sections.
25075 * mono/metadata/metadata.c (mono_metadata_locate_token,
25076 mono_metadata_locate): Functions to locate the information
25077 definition given a token or a table and an index.
25078 (mono_metadata_compute_table_bases): New.
25079 (compute_size): New function to compute the sizes of the various
25082 * mono/metadata/metadata.h: Finish listing the different index
25085 * mono/metadata/pedump.c: Improve to dump new information.
25087 2001-06-19 Miguel de Icaza <miguel@ximian.com>
25089 * mono/metadata/metadata.c: Entered all the tables matching
25092 * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2