2010-02-05 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / metadata / ChangeLog
index d3d3dac04aeb323a626637cac89bc6e91f396eae..24a25292e80a27beb4661613a3950f7e66e29ab6 100644 (file)
@@ -1,3 +1,412 @@
+2010-02-05  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * icall-def.h: Rename get_MetadataToken to GetMetadataToken.
+
+2010-02-04  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (mono_method_verify): Use the new basic block formation pass
+       to avoid verifying dead basic blocks. This is the same behavior as the
+       runtime MS verifier. 
+
+2010-02-04  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mono-basic-block.c:
+       * mono-basic-block.h: New implementation of a basic block formation pass.
+       The formation pass does static liveness analysis as well to detect dead
+       basic blocks.
+
+2010-02-04  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (mono_marshal_get_native_wrapper): Emit a null check for the
+       'this' argument in icalls.
+
+2010-02-02  Zoltan Varga  <vargaz@gmail.com>
+
+       * reflection.c (resolve_object): Handle MonoArrayMethod. Fixes #575955.
+
+2010-02-01  Mark Probst  <mark.probst@gmail.com>
+
+       * object.c, domain.c: When using SGen, we must register
+       vtable->type as a root if it's not a MonoType, because then it
+       wasn't pin-alloced.
+
+2010-02-01  Mark Probst  <mark.probst@gmail.com>
+
+       * sgen-gc.c: Reset to_space_bumper to to_space_section->next_data
+       at the start of nursery collections, because we might have had
+       degraded allocations which changed next_data.
+
+2010-01-30  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (mono_marshal_get_managed_wrapper): Avoid constructing the
+       custom attr so this function works in cross-compiling mode.
+
+2010-01-29  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (make_generic_param_class): Initialize interface offsets since we
+       set klass->inited. Fixes #574819.
+
+2010-01-28  Zoltan Varga  <vargaz@gmail.com>
+
+       * domain.c (mono_domain_free): Send the END_UNLOAD profiler event before
+       calling the JIT domain cleanup hook.
+
+2010-01-28  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * pedump.c (main): Properly set the verifier mode when running the metadata
+       verifier.
+
+2010-01-28  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (verify_class_for_overlapping_reference_fields): Properly verify
+       overlapping fields now that we're called before has_references is set.
+
+       * pedump.c (dump_verify_info): Clear any loader error before verifying another
+       method. Otherwise all sort of weird stuff happens.
+
+2010-01-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * object.c (mono_field_get_value_object): Handle nullable types correctly.
+       Fixes #572874.
+
+2010-01-25  Zoltan Varga  <vargaz@gmail.com>
+
+       * icall.c (ves_icall_System_Array_SetValueImpl): Handle nullable types correctly.
+       Fixes #573322.
+
+2010-01-23  Mark Probst  <mark.probst@gmail.com>
+
+       * sgen-pinning.c (evacuate_pin_staging_area): Don't assume
+       pin_staging_area_index is greater than 0.
+
+2010-01-22 Miguel de Icaza (miguel@novell.com)
+
+       * loader.c: Since we do nothing with the error returned, pass NULL
+       to ignore the error.
+
+2010-01-21  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * reflection.c (typebuilder_setup_fields): Pretend field setup already
+       happened before starting to encode the actual fields. This avoid ciclic
+       dependencies and eventual crashes.
+
+       Fixes #572660.
+
+2010-01-21  Mark Probst  <mark.probst@gmail.com>
+
+       * sgen-gc.c, gc-internal.h, object.c: Make string allocation
+       atomic and remove the half-constructed hack in SGen.
+
+2010-01-21  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * metadata-verify.c (parse_generic_inst): Fail a type signature if it 
+       has a recursive reference to itself.
+
+       Fixes #571863.
+
+2010-01-21  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * loader.c (mono_method_signature): Fix error message.
+
+2010-01-21  Mark Probst  <mark.probst@gmail.com>
+
+       * sgen-gc.c: Reuse to-space sections between nursery collections.
+
+2010-01-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * icall.c: don't raise AppDomain.TypeResolve when the type is loaded
+       from the current assembly or mscorlib. Fixes bug #322957.
+
+2010-01-20  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c: Calculate the target class of the delegete invoke wrappers using
+       get_wrapper_target_class.
+
+2010-01-19  Mark Probst  <mark.probst@gmail.com>
+
+       * sgen-gc.c: Fix warnings.
+
+2010-01-19  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (store_local): Better error message.
+
+2010-01-19  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * object.c (mono_object_get_virtual_method): Handle generic interfaces with variant
+       arguments.
+
+2010-01-19  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * icall.c (ves_icall_Remoting_RemotingServices_GetVirtualMethod): This
+       function is generics variance aware.
+
+2010-01-19  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * security-core-clr.c (mono_security_core_clr_can_access_internals):
+       Handle the case where 'basedir' can be NULL (e.g. SRE assemblies)
+
+2010-01-19  Sylvain Dupont <duposyl@gmail.com>
+
+       * cominterop.c marshal.c: Added support for marshalling in, in/byref,
+         in/out, in/out/byref parameters of type SAFEARRAY[VARIANT].
+
+       Code is contributed under MIT/X11 license.
+
+2010-01-19  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Handle inflated generic methods
+       on a GTD.
+
+2010-01-19  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (mono_marshal_wrapper_info_from_wrapper): New helper function to
+       return a point to a wrapper specific info structure describing the wrapper.
+       (mono_marshal_get_array_address): Store the rank+elem_size in the wrapper info.
+2010-01-18  Mark Probst  <mark.probst@gmail.com>
+       * sgen-gc.c: Make minor collection section allowance adaptive,
+       depending on the amount of memory reclaimed in the last major
+       collection.  If more memory was reclaimed (i.e. more garbage
+       produced), do the next collection earlier.
+
+2010-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * metadata-verify.c (parse_type): Fail a type signature if it has a recursive reference
+       to itself.
+
+       * metadata-verify.c (mono_verifier_verify_typespec_signature): Change signature to take
+       the token as parameter.
+
+       * verify-internals.h: Ditto.
+
+       * metadata.c (mono_type_create_from_typespec): Pass token to verifier.
+
+       Fixes #571460.
+
+2010-01-18  Mark Probst  <mark.probst@gmail.com>
+
+       * sgen-gc.c: Make store_remset_buffer_index long.
+
+2010-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (mono_class_from_typeref): Fail loading of self-referencing typeref tokens.
+
+       Fixes #569579.
+
+2010-01-18  Zoltan Varga  <vargaz@gmail.com>
+
+       * sgen-gc.c (mono_gc_base_init): Add 'conservative_stack_mark' option to turn
+       off precise marking if it is available.
+       (mono_gc_get_bitmap_for_descr): Fix the handling of run length descriptors.
+
+2010-01-17  Zoltan Varga  <vargaz@gmail.com>
+
+       * sgen-gc.c (mono_gc_conservatively_scan_area): Resurrect this.
+
+       * sgen-pinning.c (evacuate_pin_staging_area): Don't assert if there are no
+       pinned objects.
+
+       * sgen-gc.c (create_allocator): Add the missing n > MONO_ARRAY_MAX_INDEX check
+       to the array allocator.
+
+2010-01-16  Zoltan Varga  <vargaz@gmail.com>
+
+        * generic-sharing.c (instantiate_other_info): Don't create ftnptr's from the
+        result of mono_compile_method (), it already includes an ftnptr.
+
+2010-01-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * metadata.c (get_image_set): Remove an assert which can happen in normal use.
+
+2010-01-15  Zoltan Varga  <vargaz@gmail.com>
+
+       * metadata.c (mono_metadata_str_hash): New helper function to compute a stable
+       hash value which doesn't depend on glib/eglib versions.
+       (mono_metadata_type_hash): Use it.
+
+       * object.c (mono_method_get_imt_slot): Ditto.
+
+2010-01-14  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (mono_type_has_exceptions): Check the generic instance. It can fail
+       independently of the GTD.
+
+       * class.c (mono_class_setup_fields): Fail if field has negative offset.
+
+       * class.c (mono_class_setup_fields): Fail if valuetype has zero size. Add sizeof(MonoObject)
+       to the upper limit since instance_size includes this amount.
+
+       * class.c (mono_class_layout_fields): Check if the types of the static fields have failed.
+
+       Fixes #569544.
+
+2010-01-14  Zoltan Varga  <vargaz@gmail.com>
+
+       * object.c (build_imt_slots): Compute the vtable slot correctly for interfaces
+       with static methods.
+
+       * object.c (build_imt_slots): Avoid asserting when static methods are
+       encountered in an interface.
+
+2010-01-13  Mark Probst  <mark.probst@gmail.com>
+
+       * sgen-gc.c (to_space_expand): Fix assertion.
+
+Wed Jan 13 15:42:28 CET 2010 Paolo Molaro <lupus@ximian.com>
+
+       * string-icalls.c: missing declaration fixes.
+       * sgen-gc.c: portability fixes.
+
+2010-01-12  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (mono_class_get_implemented_interfaces): Now take a MonoError argument.
+
+       * class.c:
+       * cominterop.c:
+       * icall.c:
+       * object.c: 
+       * class-internals.h: Adjust for new signature of mono_class_get_implemented_interfaces.
+
+2010-01-12  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (mono_class_setup_interfaces): Now take a MonoError argument and
+       it can fail loading the type.
+
+       * class.c: Add mono_class_inflate_generic_class_checked.
+
+       * class.c:
+       * verify.c:
+       * class-internals.h: Adjust for new signature of mono_class_setup_interfaces.
+
+2010-01-11  Zoltan Varga  <vargaz@gmail.com>
+
+       * loader.c (mono_method_signature_checked): New internal function taking an
+       MonoError argument.
+
+       * socket-io.c (AI_ADDRCONFIG): Applied patch from John Lightsey (jd@cpanel.net).
+       Fixes build on rh 7.3.
+
+2010-01-10  Aaron Bockover  <abockover@novell.com>
+
+       * assembly.c (mono_set_rootdir): Support finding the mono paths on OS X
+       at runtime in the same way as on Windows, which yields a relocatable
+       Mono. Uses dyld's _NSGetExecutablePath and realpath to resolve the path
+       of the running mono process.
+
+       On TARGET_ARM, fallback () will always be executed.
+
+2010-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * icall.c (ves_icall_Type_GetInterfaceMapData): This function is generics variance aware.
+
+2010-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (mono_class_is_assignable_from_slow): Support variant
+       generic delegates.
+
+       * class.c (mono_class_implement_interface_slow): Support types with
+       variant generic arguments.
+
+2010-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c: Remove some code duplication.
+
+2010-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * object.c: Update docs.
+
+2010-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * object.c (add_imt_builder_entry): Improve DEBUG_IMT spew.
+
+       * object.c (build_imt_slots): Interfaces with variant generic arguments use the
+       fallback trampoline as well.
+
+       * class.c (mono_class_interface_offset_with_variance): Add new non_exact_match
+       out argument that is set to TRUE if the match was direct. 
+
+       * class.c (mono_class_is_assignable_from): Delegates require variance testing as well.
+
+       * class-internal.h: Update prototype of mono_class_interface_offset_with_variance.
+
+2010-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c: Add mono_class_interface_offset_with_variance function that does same
+       as mono_class_interface_offset but takes variance into account.
+
+       * class-internal.h: Export mono_class_interface_offset_with_variance.
+
+       * object.c: Fix and improve DEBUG_IMT. Added an assert for IMT thunk building.
+
+2010-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * object.c:
+       * icall.c:
+       * class.c: Add some FIXME for due to variant generic arguments.
+
+       object.c (mono_object_isinst_mbyref): Interfaces with variant generic arguments
+       can't use the simple bitfield check, so call mono_class_is_assignable_from if
+       the bitfield check fails.
+
+2010-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (mono_class_is_assignable_from): Rework the generics variance code
+       to be easier to read and fix bugs in the case a non generic type implements a variant
+       interface.
+
+       * class.c (mono_class_has_variant_generic_params): Make non static.
+
+       * class-internals.h: Export mono_class_has_variant_generic_params as part of
+       the private API.
+
+2010-01-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * assembly.c: fix MONO_PATH debug output.
+
+2010-01-06  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * culture-info-table.h : regenerated.
+
+2010-01-04  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (mono_verifier_verify_class): Properly check for broken parent. Ignore
+       types that are meant to not have a parent.
+
+2010-01-04  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (mono_marshal_get_runtime_invoke): Make a copy of the signature
+       from the image mempool, so it is not leaked.
+
+2010-01-04  Zoltan Varga  <vargaz@gmail.com>
+
+       * metadata-internals.h (_MonoImage): Remove unused generic_class_cache field.
+
+2010-01-04  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * verify.c (verify_valuetype_layout_with_target): Fix case
+       that can lead to infinite recursion. Fix bug #567861
+
+2010-01-04  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * pedump.c: Run code verifier even if image verification fails
+       due to a failed type we. This allows more errors to be shown.
+
+2010-01-04  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (count_virtual_methods): Remove the assert and now
+       fail properly.
+       
+       * class.c (setup_interface_offsets): This can fail now.
+
+       * class.c (mono_class_setup_vtable_general): Check for parent vtable
+       errors. Check setup_interface_offsets errors.
+
+       * class.c (setup_interface_offsets): Simplify the return error logic
+       and remove class_init_ok.
+
+       Fixes #560327.
+
 2010-01-04  Rodrigo Kumpera  <rkumpera@novell.com>
 
        * class.c (mono_class_init): Do class verification at the beginning. Add