+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
+ call.
+
+ * icall.c (ves_icall_System_ValueType_Equals): Optimize the comparison of enums
+ even more.
+
+ * class.c (mono_class_get_fields): Avoid calling setup_fields_locking () for
+ each iteration.
+
+ * icall.c (ves_icall_System_ValueType_Equals): Avoid traversing all the static
+ fields of an enum.
+
+2008-06-26 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * object.c (mono_value_box): Fix boxing of nullables.
+
+2008-06-26 Kornél Pál <kornelpal@gmail.com>
+
+ * assembly.c (mono_set_rootdir): Use __ImageBase instead of
+ mono_module_handle that is defined by the linker; no initialization required.
+ * coree.h: Remove mono_module_handle, add __ImageBase, update
+ mono_image_open_from_module_handle.
+ * coree.c (_CorValidateImage): Convert platform independent PE32 images to
+ PE32+ on 64-bit Windows that makes the OS able to load CIL images as modules.
+ (MonoFixupCorEE): Export Address Table RVAs are 32-bit unsigned integers so
+ memory has to be allocated for trampolines (x64) or procedure labels (IA64) up
+ to 4 GB away from image base address. IA64 version is not tested but was very
+ easy to implement and should work if we ever need it.
+ * domain.c (mono_init_internal): Avoid system error message boxes.
+ * image.c (mono_image_open_from_module_handle): Replace ref_count argument
+ with has_entry_point. Handle do_mono_image_load fauilre correctly.
+ (mono_image_open_full, mono_image_close): Use has_entry_point instead of
+ coff_attributes that is a more reliable way to detect if _CorDllMain was called.
+ * metadata-internals.h: Add has_entry_point to _MonoImage on Windows.
+
+ Contributed under MIT/X11 license.
+
+2008-06-25 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * class.c, class-internals.h: Export mono_class_get_generic_type_definition
+ as part of the private mono API.
+
+ * loader.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType):
+ Do proper argument checking for methods that belong to generic classes.
+ Do proper type resolution for GMFH/2.
+ Fixes #377324.
+
+2008-06-25 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * verify.c (do_switch): Fix a memory corruption bug with
+ the jump index is out of bound.
+
+2008-06-25 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * verify.c: Disable debug code.
+
+2008-06-25 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * reflection.c (mono_image_get_methodbuilder_token): Use
+ mono_image_get_methodspec_token_for_generic_method_definition
+ instead of mono_image_get_memberref_token. We cache more memberef
+ entries now.
+
+2008-06-24 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * verify.c: Inflate exception clause types.
+ Fixes #402606.
+
+2008-06-24 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * reflection.c (mono_image_get_methodbuilder_token): Don't leak
+ name.
+
+ * reflection.c (mono_image_get_ctorbuilder_token): Same.
+
+ * reflection.c (mono_image_create_method_token): Same.
+
+2008-06-24 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * reflection.c: Added mono_image_get_methodref_token_for_methodbuilder.
+ It does the same as mono_image_get_methodref_token but works on
+ MethodBuilder.
+
+ * reflection.c: Use mono_image_get_methodspec_token_for_generic_method_definition
+ and always generate a methodspec. This follows the old behavior and fixes
+ the regressions in System.Core.
+
+2008-06-24 Zoltan Varga <vargaz@gmail.com>
+
+ * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Collect exceptions for classes where
+ don't event mono_class_get () succeeds. Fixes #402182.
+
+2008-06-20 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * metadata-internals.h: Added MonoDynamicImage::methodspec
+ hashtable to store methodspec tokens created for MethodBuilders.
+
+ * reflection.c (mono_image_get_methodbuilder_token): Encode generic
+ MethodBuilders as open instantiations if a methodspec was requested.
+
+ * reflection.c (fixup_method): Skip MethodBuilder with methodspec tokens.
+
+ * reflection.c (create_dynamic_mono_image): Create the methodspec hashtable.
+
+ * reflection.c (mono_dynamic_image_free): Release the methodspec hashtable.
+
+ Fixes bug #349190.
+
+2008-06-20 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * loader.c (method_from_methodspec): Avoid crashing if the
+ method lookup fails.
+
+2008-06-20 Dick Porter <dick@ximian.com>
+
+ * socket-io.c (get_socket_assembly): Cope with Moonlight network
+ classes being in a different assembly. Fixes bug 399184.
+
2008-06-20 Zoltan Varga <vargaz@gmail.com>
* loader.c (mono_loader_init): Make this callable multiple times.