2008-07-28 Marek Habersack <mhabersack@novell.com>
[mono.git] / mono / metadata / ChangeLog
index 4ee1c1e84b0ff4a8f2a44e0fe09faf2f94900889..b03242509a4314cccce798dd60ad8c00b2d57e14 100644 (file)
@@ -1,3 +1,350 @@
+2008-07-27  Andreas Färber  <andreas.faerber@web.de>
+
+       * object.c (CHECK_ADD_OVERFLOW_UN): Add missing bracket. Fixes #412499.
+
+2008-07-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * appdomain.c (unload_thread_main): Attach the unload thread to the runtime.
+
+2008-07-27  Robert Jordan  <robertj@gmx.net>
+
+       * class.c (mono_class_init): Don't compute class.has_finalize for
+       valuetypes. Fixes #412477.
+
+2008-07-25 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c: Implement constraint equivalence checking.
+       This is required when a generic parameter is used as
+       argument to a constrained one.
+
+       Fixes #410637.
+
+2008-07-24  Zoltan Varga  <vargaz@gmail.com>
+
+       * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
+
+       * domain-internals.h (struct _MonoDomain): Add 'method_code_hash' field.
+
+       * object-internals.h (struct _MonoDelegate): Add 'method_code' field,
+       synch with managed object layout.
+
+2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (do_branch_op): Handle valuetypes and generic
+       arguments properly.
+
+       * verify.c (do_cmp_op): Same.
+
+       Fixes #410383.
+
+2008-07-24  Mark Probst  <mark.probst@gmail.com>
+
+       * generic-sharing.c: Fix memory leaks.
+
+       * class.c, class-internals.h: Make
+       mono_class_inflate_generic_type_with_mempool() non-static.
+
+2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * pedump.c (dump_verify_info): Dump full class name.
+
+2008-07-24  Mark Probst  <mark.probst@gmail.com>
+
+       * generic-sharing.c: Removed some old code that didn't do anything.
+
+2008-07-24  Massimiliano Mantione  <massi@ximian.com>
+       * profiler.c: Added runtime_initialized_event,
+       mono_profiler_install_runtime_initialized and
+       mono_profiler_runtime_initialized. This new hook tells the profiler
+       when the runtime is sufficiently initialized to be able to call
+       mono_thread_attach on the root appdomain.
+       * profiler.h, profiler-private.h: Likewise.
+
+2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (do_cast): Do boxing for generic arguments as well.
+
+       * class.c (is_nesting_type): Drop generic instantiations before
+       checking for nesting.
+
+       * class.c (can_access_instantiation): Allow access to generic
+       arguments.
+
+2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (verify_class_for_overlapping_reference_fields):
+       On some cases, the field size might be zero, guard against that.
+       Fix the explicit layout check to work as expected.
+
+2008-07-23  Zoltan Varga  <vargaz@gmail.com>
+
+       * threads.c (ves_icall_System_Threading_Thread_Abort): Avoid calling 
+       mono_thread_resume () during shutdown, since the thread we want to abort
+       might be suspended.
+
+2008-07-22  Zoltan Varga  <vargaz@gmail.com>
+
+       * mono-debug-debugger.c (mono_debugger_check_breakpoints): Fix a 
+       warning.
+
+       * debug-mono-symfile.c: Fix a warning.
+
+       * mono-perfcounters.c (get_cpu_times): Fix a warning.
+
+       * object.c (mono_class_vtable): Check if exception_type is set, and return
+       NULL as defined by the function comments.
+
+2008-07-22  Mark Probst  <mark.probst@gmail.com>
+
+       * mempool.c: Use malloc for every single mempool allocation if the
+       configure option is set.  This makes it easier to track mempool
+       allocations with tools like Valgrind.
+
+2008-07-22  Jb Evain  <jbevain@novell.com>
+
+       * reflection.c (create_dynamic_mono_image): emit the same
+       metadata version that SL2 does when creating a SL2 image.
+
+2008-07-21 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * icall-def.h:
+       * icall.c: New icall System.Enum:get_hashcode. This function
+       avoids the overhead of boxing the enum to the underlying type.
+
+2008-07-21  Mark Probst  <mark.probst@gmail.com>
+
+       * reflection.c (mono_method_get_object): Don't let static RGCTX
+       invoke wrappers get into MonoReflectionMethods.
+
+2008-07-17 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * object-internals.h:
+       * object.c: New mono_runtime_class_init_full function
+       that makes throwing the exception optinal.
+
+       * class-internals.h: New exception type MONO_EXCEPTION_OBJECT_SUPPLIED
+       for the case where the exception object is supplied.
+
+2008-07-16  Kornél Pál  <kornelpal@gmail.com>
+
+       * coree.h: Define __ImageBase as _image_base__ on cygwin that fixes build with
+       old ld versions.
+
+       Contributed under MIT/X11 license.
+
+2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * string-icalls.c (ves_icall_System_String_InternalSplit):
+       Optimize array allocation by caching the MonoClass of the
+       array type.
+
+       * icall.c (ves_icall_Type_GetMethodsByName): Same.
+
+       * reflection.c (mono_param_get_objects): Same.
+
+2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * icall-def.h:
+       * icall.c: New ves_icall_MonoGenericClass_InflateType icall.
+       It inflates the given type using the class context.
+
+2008-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * object.c (mono_class_try_get_vtable): New function. Tries to fetch
+       the vtable if it already exists.
+
+       * object-internals.h: Add mono_class_try_get_vtable as part of the
+       internal API.
+
+       * reflection.c (mono_type_get_object): Use the MonoObject from the
+       vtable when possible. Reduces locking contention on reflection heavy
+       code.
+
+2008-07-15  Zoltan Varga  <vargaz@gmail.com>
+
+       * decimal.c (my_g_bit_nth_msf): Implement this directly without calling
+       g_bit_nth_msf () since that macro is not implemented in eglib.
+
+2008-07-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (mono_class_generic_sharing_enabled): Always disable generic sharing
+       on platforms which do not support it.
+
+2008-07-12  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (mono_signature_to_name): Encode sig->hasthis as well.
+
+2008-07-11  Martin Baulig  <martin@ximian.com>
+
+       * mono-debug-debugger.h
+       (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_INTERRUPTION_REQUEST'.
+
+       * mono-debug-debugger.c
+       (_mono_debugger_interruption_request): New global volatile variable.
+       (mono_debugger_check_interruption): New public function.
+
+       * threads.c
+       (mono_thread_current_check_pending_interrupt): Call
+       mono_debugger_check_interruption().
+       (mono_thread_interruption_checkpoint_request): Likewise.
+
+2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c: Add more type checks for loaded types. Verify the result
+       handle from ldtoken.
+
+2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * loader.c (field_from_memberref): Don't crash if the field
+       wasn't found.
+
+2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c: Verify if type and method instantiations
+       don't have invalid VAR or MVAR arguments.
+
+2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c: Fix double free of function pointer list.
+
+2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * object.c (mono_string_to_utf8): Comment the new code as it
+       breaks under eglib.
+
+2008-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * object.c (mono_string_to_utf8): Avoid allocating a temp array.
+
+2008-07-07  Bill Holmes  <billholmes54@gmail.com>
+
+       * threads.c : Thread.Interrupt changes to ensure that ThreadInterruptedException
+         is not throw too many times.
+
+       Code is contributed under MIT/X11 license.
+
+2008-07-07  Zoltan Varga  <vargaz@gmail.com>
+
+       * mono-debug.c (mono_debug_find_method): Allow this to be called even when
+       debugging is turned off.
+
+2008-07-06  Zoltan Varga  <vargaz@gmail.com>
+
+       * generic-sharing.c (mono_method_lookup_rgctx): Fix a warning.
+
+2008-07-04  Mark Probst  <mark.probst@gmail.com>
+
+       * class-internals.h, class.c: Added new generic sharing option:
+       Share only stuff in System.Collections.Generic, which is now the
+       default.
+
+2008-07-04  Mark Probst  <mark.probst@gmail.com>
+
+       * generic-sharing.c, class-internals.h: New function for getting a
+       generic method in a generic class given the corresponding method
+       for a different instantiation of the class.  Partly refactored
+       from mini-trampolines.c.
+
+       * class.c: Make sure generic methods have a class_inst if they are
+       part of a generic class.
+
+       * metadata.c (mono_type_stack_size_internal): Handle type
+       variables.
+
+2008-07-04  Mark Probst  <mark.probst@gmail.com>
+
+       * domain-internals.h: New field (has_this) in MonoGenericJitInfo.
+       Signifies whether information on the this/vtable/mrgctx variable
+       is available.
+
+2008-07-04  Mark Probst  <mark.probst@gmail.com>
+
+       * object.c, object-internals.h, icall.c: New function
+       mono_delegate_ctor_with_method(), which does the same as
+       mono_delegate_ctor(), but takes an explicit method argument
+       instead of taking the method from the jit info.
+
+       * marshal.c: When creating a delegate with an inflated method take
+       the "this" argument as the target class for the castclass.
+
+2008-07-03  Mark Probst  <mark.probst@gmail.com>
+
+       * domain.c (mono_jit_info_table_find): Fixed a bug that caused
+       mono_jit_info_table_find() to perform very badly in some cases.
+
+2008-07-02  Zoltan Varga  <vargaz@gmail.com>
+
+       * icall.c (type_from_typename): Handle 'string'.
+
+       * marshal.c (mono_marshal_get_runtime_invoke): Don't insert runtime invoke
+       wrappers into the wrapper_hash, since the key is not a MonoMethod.
+
+2008-07-01  Zoltan Varga  <vargaz@gmail.com>
+
+       * icall.c (mono_get_jit_icall_info): New function to return the jit icall hash table.
+
+       * *-gc.c (mono_gc_get_managed_allocator_types): New function to return the
+       number of available managed allocator types.
+
+       * marshal.c (mono_marshal_init): Register Thread:ResetAbort as an icall ().
+       (mono_marshal_get_runtime_invoke): Call ResetAbort as an icall.
+
+2008-06-30  Zoltan Varga  <vargaz@gmail.com>
+
+       * domain-internals.h (struct _MonoDomain): Add 'jit_code_hash_lock' field,
+       which is a low level lock protecting just the 'jit_code_hash' hash table.
+
+       * domain.c: Initialize+cleanup jit_code_hash_lock.
+       
+2008-06-30  Kornél Pál  <kornelpal@gmail.com>
+
+       * coree.c (mono_load_coree): Set coree_module_handle global variable only
+       after initialization.
+
+       * coree.h: Make MonoFixupExe internal.
+
+       Contributed under MIT/X11 license.
+
+2008-06-30  Kornél Pál  <kornelpal@gmail.com>
+
+       * coree.c (_CorValidateImage): Retain IMAGE_DIRECTORY_ENTRY_SECURITY
+       because that is platform independent. Check NumberOfRvaAndSizes in PE32
+       as well.
+       (MonoLoadImage): New wrapper function around LoadLibrary to ensure that the
+       image being loaded is a CLI image and _CorValidateImage gets called.
+
+       * coree.h: Add MonoLoadImage.
+
+       * image.c (mono_image_open_full): Load CLI images using MonoLoadImage
+       instead of LoadLibrary.
+
+       Contributed under MIT/X11 license.
+
+2008-06-29 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * icall.c (ves_icall_System_ValueType_Equals): Avoid allocating objects
+       for any primitive type.
+
+2008-06-29  Zoltan Varga  <vargaz@gmail.com>
+
+       * object.c (mono_array_new_specific): Optimize this and the other allocation
+       functions a bit.
+       
+       * object.c (mono_class_create_runtime_vtable): Use typed allocation in other
+       domains too if mono_dont_free_domains is set.
+
+       * domain-internals.h (mono_dont_free_domains): New internal option controlling
+       whenever to free appdomain data after it has been unloaded.
+
+       * domain.c (mono_domain_free): Don't free appdomain data if the option is set.
+       
+2008-06-28  Zoltan Varga  <vargaz@gmail.com>
+
+       * icall.c (ves_icall_System_Enum_get_underlying_type): New icall.
+       (mono_method_get_equivalent_method): Fix a warning.
+
+       * object.c (mono_message_init): Avoid looking up array types for each call.
+
 2008-06-27  Zoltan Varga  <vargaz@gmail.com>
 
        * object.c (mono_message_invoke): Avoid looking up the object[] type for each