+2007-07-22 Zoltan Varga <vargaz@gmail.com>
+
+ * loader.c (mono_method_get_param_token): Make this work on generic methods.
+ Return 0x8000000 for return parameters. Fixes #82161.
+
+2007-07-21 Marek Habersack <grendello@gmail.com>
+
+ * appdomain.c (get_shadow_assembly_location): append the current
+ ticks value to the path. Avoids overwriting the same assemblies by
+ several threads at the same time.
+
+2007-07-20 Atsushi Enomoto <atsushi@ximian.com>
+ and Raja R Harinath <rharinath@novell.com>
+
+ * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
+ Simplify slightly.
+ (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
+ property for testing if a method is a generic method definition.
+
+2007-07-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
+
+2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * verify.c: used function from private branch, reverted to the one in class.h
+
+2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * verify.c: a typo slipped in and the code wont compile
+
+2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
+ disabled box instruction as it is doing the wrong thing
+ improved stack dump messages, now it is easier to debug type related issues
+
+
+2007-07-19 Juraj Skripsky <js@hotfeet.ch>
+
+ * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak.
+
+2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from
+ TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
+ grouped with class and valuetype. This change will simply
+ the code as it should be handled just like unmanaged pointers.
+
+2007-07-19 Mark Probst <mark.probst@gmail.com>
+
+ * class.c (concat_two_strings_with_zero): Fixed a silly bug.
+
+2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * verify.c: several stack merge issues fixed, reference comparisons now
+ check the type size. strict type check now works correctly.
+ added more uses of IS_MANAGED_POINTER macro.
+ fixed issues pointed by running the test suite against .net.
+
+
+2007-07-19 Mark Probst <mark.probst@gmail.com>
+
+ * class.c, loader.c, class-internals.h: Removed the
+ MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
+ defines.
+
+ * icall.c: Better error checking in some internal reflection
+ methods.
+
+2007-07-18 William Holmes <billholmes54@gmail.com>
+
+ * filewatcher.c : removed unused variable 'filename' in
+ ves_icall_System_IO_FSW_SupportsFSW
+
+Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+ * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
+ obsolete, removed.
+
+2007-07-15 Zoltan Varga <vargaz@gmail.com>
+
+ * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
+
+ * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
+
+2007-07-14 Zoltan Varga <vargaz@gmail.com>
+
+ * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken):
+ Implement generics support.
+ (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
+
+ * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
+ type_args and method_args arguments.
+ (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
+ (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
+ (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
+
+2007-07-13 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * reflection.c: patch from Thong Nguyen to fix atribute resolution.
+ It adds a rootimage parameter to mono_reflection_get_type_internal,
+ adds new function mono_reflection_get_type_with_rootimage and use
+ the rootimage to resolve the types instead of the current image
+
+2007-07-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
+
+ * culture-info-table.h: Forgot to update after r78304.
+
+2007-07-13 Raja R Harinath <rharinath@novell.com>
+
+ * class.c (mono_class_is_open_constructed_type)
+ <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
+
+2007-07-12 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * class.c (mono_bounded_array_class_get): method fails if used with
+ an incomplete TypeBuilder enum (no basetype field), fixed it by
+ avoiding calculating the size for such array as it cannot be instantiated.
+ Fix bug #82015
+
+2007-07-12 Raja R Harinath <rharinath@novell.com>
+
+ * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
+ field.
+ * metadata.c, reflection.c: Update to changes.
+
+2007-07-11 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
+ mono_class_is_valid_enum, they are used to valide a enum when loading.
+ * reflection.c: used new functions to throw TypeLoadException when and
+ invalid enum is build with TypeBuilder. Fixes #82018
+
+Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+ * object.c: forgot commit of mono_class_setup_methods () to access
+ iface->methods.
+ * object-internals.h: added a few more handy fields to
+ MonoIMTCheckItem.
+
+2007-07-11 Zoltan Varga <vargaz@gmail.com>
+
+ * object.c (build_imt): Call mono_class_setup_methods () before accessing
+ iface->methods.
+
+Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+ * class-internals.h, object-internals.h, object.c: IMT-based
+ interface invocation core from Massimiliano Mantione
+ (massi@ximian.com) with a reworked arch-specific interface,
+ bsearch implementation and a few bugfixes and memory savings by me.
+
+2007-07-10 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * class.c (mono_class_create_from_typedef): mono would segfault if
+ an enum did not have a __value field. It now throws a TypeLoadException
+ for such cases. Fix bug #82022
+
+2007-07-10 Zoltan Varga <vargaz@gmail.com>
+
+ * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
+
+2007-07-09 Mark Probst <mark.probst@gmail.com>
+
+ * class.c (mono_class_init): If a class is already inited but has
+ an exception_type set, return FALSE, not TRUE. Fixes: 82050.
+
+2007-07-09 Mark Probst <mark.probst@gmail.com>
+
+ * class.c: Properly handle the case of an unimplemented interface
+ method. Fixes: 81673.
+
+Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+ * class-internals.h, object.c: cleanup patch from massi: use
+ MonoVTable->interface_bitmap since the vtable interfaces offset array
+ is going away.
+
+2007-07-10 Zoltan Varga <vargaz@gmail.com>
+
+ * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
+ GetMDStreamVersion icall instead.
+
+Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+ * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
+ not use mono_dl_build_path() with a full library name: makes
+ fallbacks to libgaim and libfam work.
+
+2007-07-06 William Holmes <billholmes54@gmail.com>
+
+ * assembly.c: Added a continue statement in probe_for_partial_name when
+ parse_assembly_directory_name fails. Fixes : 82002
+
+2007-07-06 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
+ and added a verification for TYPEDBYREF.
+ * verify.c (verify_stack_type_compatibility): fix handling of byref types,
+ make native int interchangeable with int32 and some small cleanup and formating.
+ * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
+ handle byref of byref.
+ * verify.c (push_local): handle byref of byref.
+ * verify.c (do_binop): invalid mix of values is unverifiable
+ * verify.c (do_invoke_method): fixed the handling of bad params on stack and
+ added visibility checks
+ * verify.c (field related method): added visibility checks
+ * verify.c (do_push_field): cannot take the address of a temporary valuetype field
+
+2007-07-06 Zoltan Varga <vargaz@gmail.com>
+
+ * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
+ string.
+
+2007-07-05 Zoltan Varga <vargaz@gmail.com>
+
+ * profiler.c (mono_profiler_load): Fix an off-by-one error.
+
+ * marshal.c (emit_marshal_string): When returning a string from managed code,
+ allways make a copy even for unicode strings. Fixes #81990.
+
+Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+ * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
+ of byref generic inst types (bug #81997).
+
+2007-07-03 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
+ * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
+
+2007-07-02 Zoltan Varga <vargaz@gmail.com>
+
+ * marshal.c (emit_marshal_string): Add support for unicode strings in
+ MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
+
+2007-07-02 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * verify.c: field load/store are now verified, missing only access checks now
+
+2007-06-28 Martin Baulig <martin@ximian.com>
+
+ * mono-debug.c (mono_debug_debugger_version): New public variable.
+
+2007-06-24 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * locales.c: When constructing DateTimeFormat or NumberFormat for
+ MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
+ MonoCultureInfo contructed from the current locale is always
+ read-only and has UseUserOverride set to true. All MonoCultureInfo
+ instances returned for GetCultures have both IsReadOnly and
+ UseUserOverride set to true. Fixes part of bug #81930.
+
+2007-06-22 Jonathan Chambers <joncham@gmail.com>
+
+ * icall-def.h: Update System.__ComObject icalls
+ * marshal.c: Avoid managed transition (and object creation)
+ when looking up COM interface in RCW.
+ * marshal.h: Ditto.
+
+ Code is contributed under MIT/X11 license.
+
+2007-06-22 Zoltan Varga <vargaz@gmail.com>
+
+ * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
+ to avoid crashes during assembly unloading.
+
+2007-06-22 Raja R Harinath <rharinath@novell.com>
+
+ Fix MethodInfo.IsGenericMethodDefinition
+ * reflection.c (mono_reflection_bind_generic_method_parameters):
+ Rearrange code to ensure we always uses a generic method definition.
+ * class.c (mono_class_inflate_generic_method_full): Set
+ 'generic_container' field only for generic method definitions.
+ * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
+ Use presense of 'generic_container' field as indication of being a
+ generic method definition.
+
+2007-06-21 Zoltan Varga <vargaz@gmail.com>
+
+ * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
+
+ * object-internals.h: Reflect changes in the layout of the managed Delegate
+ class.
+
+ * object-internals.h reflection.c icall-def.h: Applied patch from Robert
+ Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
+ runtime memory used by the dynamic method. Fixes #77146.
+
+2007-06-21 Dick Porter <dick@ximian.com>
+
+ * file-io.h:
+ * file-io.c (convert_share): Cope with FileShare.Delete. Patch
+ from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
+ 81767.
+
+2007-06-21 Raja R Harinath <rharinath@novell.com>
+
+ * reflection.c (method_encode_methodspec): Add a tripwire.
+ * class.c (inflate_generic_type): The fully open generic type is
+ not the same as the generic type definition.
+
+2007-06-21 Martin Baulig <martin@ximian.com>
+
+ * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
+
+ * mono-debug-debugger.h
+ (MonoDebuggerBreakpointInfo): Removed.
+ (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
+ (mono_debugger_remove_breakpoint): Likewise.
+ (mono_debugger_breakpoint_callback): Likewise.
+ (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
+
+2007-06-21 Raja R Harinath <rharinath@novell.com>
+
+ * metadata.c (mono_metadata_lookup_generic_class): The fully open
+ generic type is not the same as the generic type definition.
+ * class.c (mono_generic_class_get_class): Likewise.
+
+2007-06-20 Geoff Norton <gnorton@customerdna.com>
+
+ * icall.c: The second argument to
+ System.Reflection.MethodBase.GetMethodFromHandleInternalType
+ is a MonoType not a MonoClass.
+
+2007-06-20 Rodrigo Kumpera <kumpera@gmail.com>
+
+ * verify.c: support for function pointers in the verifier
+
+2007-06-20 Rodrigo Kumpera <kumpera@gmail.com>
+
+ * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
+
+Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+ * assembly.c: removed Mono.Data.SqliteClient from the list of
+ forward-compatible assemblies as it breaks the ABI (bug #81899).
+
+2007-06-19 Raja R Harinath <rharinath@novell.com>
+
+ * metadata.c (mono_metadata_lookup_generic_class): Protect cache
+ lookup/update with the loader lock.
+ * reflection.c (mono_class_bind_generic_parameters): No need to
+ protect mono_metadata_lookup_* with the loader lock.
+ * class.c (inflate_generic_type): Likewise.
+
+ * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
+ on a generic instantiated type.
+
+2007-06-18 Rodrigo Kumpera <kumpera@gmail.com>
+
+ *verify.c: produce meanfull error messages on verification error
+ *verify.c: fixed some cases of verification errors reported as validation errors
+ *pedump.c: fixed the error name array, now it shows validation errors properly
+ *verify.h: fixed the contant that should be used for verification errors
+
+Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+ * metadata.c, image.c, metadata-internals.h: part of the fixes needed
+ for bug #77596, 81858 and 80743 (generics data structures on domain
+ unload).
+
+2007-06-15 Raja R Harinath <rharinath@novell.com>
+
+ Avoid allocating 'MonoGenericContext' on the heap.
+ * class-internals (_MonoMethodInflated::context): Make field
+ inline, not a pointer.
+ * loader.c (method_from_methodspec): Allocate 'new_context' on the
+ stack. Use the context embedded within the inflated method as the
+ hash key, rather than 'new_context'.
+ * class.c (inflate_generic_context): Simplify. Return a struct
+ rather than allocating on the heap.
+ (mono_class_inflate_generic_method_full): Update to changes. Now,
+ doesn't salt away a copy of the context -- simplifying the
+ lifetime rules of a 'MonoGenericContext *'.
+ (mono_method_get_context): Return pointer to embedded context.
+ (setup_generic_array_ifaces): Allocate temporary context on stack.
+ * reflection.c (inflate_mono_method): Likewise.
+ (mono_reflection_bind_generic_method_parameters): Likewise.
+ Use the context embedded within the inflated method as the hash key.
+
+ Avoid a source of allocation of 'MonoGenericContext'.
+ * class-internals.h (_MonoGenericClass::context): Combine 'inst'
+ and 'cached_context' fields into embedded 'MonoGenericContext' field.
+ * class.c: Update to changes.
+ (mono_generic_class_get_context): Simplify drastically. Now just
+ returns a pointer to the field.
+ * metadata-internals.h (mono_metadata_generic_context_hash): Mark
+ argument as a const pointer.
+ (mono_metadata_generic_context_equal): Likewise.
+ * metadata.c, loader.c, icall.c, reflection.c, verify.c:
+ Update to changes.
+
+2007-06-14 Rodrigo Kumpera <kumpera@gmail.com>
+
+ * verify.c improved the handling of brtrue/brfalse, factored out common code
+
+2007-06-14 Raja R Harinath <rharinath@novell.com>
+
+ Kill MonoGenericMethod.
+ * class-internals.h (MonoGenericContext::method_inst): Rename from
+ 'gmethod' and convert to a MonoGenericInst.
+ (MonoGenericMethod): Remove.
+ * metadata.h (MonoGenericMethod): Note that the name is obsolete.
+ * loader.c (method_from_methodspec): Update to changes. Use a
+ MonoGenericContext as the key to the hashtable.
+ * metadata.c (mono_metadata_generic_context_equal): Rename from
+ 'mono_metadata_generic_method_equal' and take MonoGenericContext.
+ (mono_metadata_generic_context_hash): Likewise from
+ 'mono_metadata_generic_method_hash'. Change hash function.
+ (mono_metadata_load_generic_params): Update to changes.
+ (mono_get_shared_generic_method): Remove.
+ * metadata-internals.h (mono_get_shared_generic_method): Remove.
+ * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
+ (inflate_generic_context): Likewise.
+ (mono_class_inflate_generic_method_full): Likewise.
+ (setup_generic_array_ifaces): Likewise.
+ (mono_class_create_from_typespec): Likewise.
+ * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
+ (method_encode_methodspec): Update callsite.
+ (reflection_methodbuilder_to_mono_method): Update to changes.
+ (mono_reflection_bind_generic_method_parameters): Likewise. Use a
+ MonoGenericContext as the key to the hashtable.
+ (inflate_mono_method): Update to changes.
+
+ * class-internals.h (MonoGenericMethod::container): Remove.
+ * class.c, loader.c, metadata.c, reflection.c: Update to changes.
+
+Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+ * profiler-private.h, profiler.c, profiler.h: added API to profile
+ exception events.
+
+2007-06-13 Rodrigo Kumpera <kumpera@gmail.com>
+
+ * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments
+
+2007-06-13 Rodrigo Kumpera <kumpera@gmail.com>
+
+ * verify.c: method invocation is now validated, now we verify parameter types on stack.
+ Fixed overflow and underflow not aborting the verification process.
+
+2007-06-13 Mark Probst <mark.probst@gmail.com>
+
+ * class-internals.h (MonoStats): Added stats entries for dynamic
+ code allocations.
+
+2007-06-12 Zoltan Varga <vargaz@gmail.com>
+
+ * loader.c (mono_free_method): Free header->locals and header->clauses.
+
+ * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
+ dynamic case.
+
+ * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
+
+ * class.c (setup_interface_offsets): Allocate memory from the image mempool.
+
+2007-06-12 Raja R Harinath <rharinath@novell.com>
+
+ * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
+ the tables.
+
+2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
+
+ *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
+
+2007-06-11 Raja R Harinath <harinath@gmail.com>
+
+ MonoGenericMethod on a diet
+ * class-internals.h (_MonoMethodInflated::reflection_info): Move
+ here ...
+ (_MonoGenericMethod::reflection_info): ... from here.
+ * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
+ Update to changes.
+ * reflection.c (inflate_mono_method): Likewise.
+ (mono_reflection_bind_generic_method_parameters): Likewise.
+
+2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
+
+ *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
+ *verify.c: factored long ldarg forms to share code with short forms
+
+2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
+
+ *verify.c: fixed code formating factored some duplicate code
+ into a new function
+
+ *verify.h: fixed binary incompatibility introduced earlier
+
+ *pedump.c: fixed formating
+
+2007-06-11 Raja R Harinath <harinath@gmail.com>
+
+ Fix assertion when disassembling Mono.C5.dll
+ * loader.c (method_from_methodspec): Avoid inflating a method
+ twice with the same context. If the methodref is inflated, use
+ the declaring method instead.
+
+ * class.c (mono_class_from_generic_parameter): Fix case similar to
+ bug #81830 handled below, but for method containers.
+
2007-06-10 Raja R Harinath <harinath@gmail.com>
+ * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
+ get_shared_generic_class. Directly inflate the instance.
+ [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
+ (inflate_generic_class): Delete.
+ (get_shared_generic_class): Delete. Move setting of
+ 'cached_class' and 'cached_context' ...
+ * metadata.c (mono_metadata_lookup_generic_class): ... here.
+
+ * metadata.c (mono_metadata_lookup_generic_class): Change
+ signature to take the components of a MonoGenericClass rather than
+ an allocated MonoGenericClass. Change semantics to be intern-like.
+ * reflection.c (mono_class_bind_generic_parameters): Update to
+ changes. Make locking region tighter.
+ * class.c (inflate_generic_class): Update to changes.
+ (get_shared_generic_class): Likewise.
+ * metadata-internals.h: Likewise.
+
* reflection.c (mono_class_bind_generic_parameters): Take and
return a MonoClass*, not a MonoType*. Add 'is_dynamic' parameter.
(mono_reflection_bind_generic_parameters): Use