Ops, forgot to mention bug number on changelog.
[mono.git] / mono / metadata / ChangeLog
index c00bee380f5c83c403d1822151e9d7e99ddd642d..d7e60368700540bf60235328ac904dfb26d36718 100644 (file)
@@ -1,3 +1,241 @@
+2009-12-02  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (mono_class_has_default_constructor): Check fror broken signatures.
+
+       * verify.c (verify_delegate_compatibility): Ditto.
+
+       * verify.c (do_newobj): Ditto.
+
+       Fixes #558046.
+
+2009-12-02  Mark Probst  <mark.probst@gmail.com>
+
+       * sgen-gc.c: Use a gray queue instead of requiring that gray
+       objects are in a contiguous region.
+
+       * sgen-gray.c: The gray queue implementation.
+
+       * Makefile.am: sgen-gray.c added.
+
+2009-12-02  Mark Probst  <mark.probst@gmail.com>
+
+       * appdomain.c: When unloading a domain, zero its static data and
+       perform a minor collection when using SGen.  That will get rid of
+       all the remsets pointing into that domain's static data.
+
+       * sgen-gc.c: Allow remsets into static data.  By doing this we
+       need less checks so we're more efficient.
+
+2009-12-01  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (mono_method_verify): Check for catch clauses with broken
+       types.
+
+       Fixes #558465.
+
+2009-12-01  Jb Evain  <jbevain@novell.com>
+
+       * class.c (make_generic_param_class): set the namespace of
+       the generic parameter class from its owner, if available.
+
+2009-12-01  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (code_bounds_check): Do proper overflow checking.
+
+       * verify.c (mono_method_verify): The number of switch entries is
+       an unsigned int. Properly bounds check it.
+
+       Fixes #558594.
+
+2009-12-01  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * metadata.c: Kill mono_metadata_get_param_attrs_checked. Add
+       mono_metadata_method_has_param_attrs which only checks if a given param
+       list has a non zero flags entry.
+
+       * metadata.c (mono_metadata_get_param_attrs): Add param_count parameter
+       to inform how many params should we expect to decode.
+
+       * loader.c (mono_method_signature): Use mono_metadata_method_has_param_attrs
+       as it's faster than mono_metadata_get_param_attrs.
+
+       * metadata-internals.h: Fix mono_metadata_get_param_attrs signature and
+       add mono_metadata_method_has_param_attrs.
+
+2009-12-01  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (mono_class_setup_vtable_general): Check for mono_method_get_vtable_slot
+       failures.
+
+       * class.c (mono_method_get_vtable_slot): Don't assert if the computed method slot
+       is -1 but its class is broken.
+
+       Fixes #558522.
+
+2009-12-01  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * metadata.c: Introduce mono_metadata_get_param_attrs_checked which checks
+       for parameter overflow.
+
+       * metadata.c (mono_metadata_parse_method_signature_full): Use checked version
+       of mono_metadata_get_param_attrs.
+
+       * metadata-internals.h: Add mono_metadata_get_param_attrs_checked to the internal
+       API.
+
+       * loader.c (mono_method_signature): Use checked version of mono_metadata_get_param_attrs.
+
+2009-12-01  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (mono_class_setup_fields): Check for fields with broken types.
+
+       Fixes #558741.
+
+2009-11-28  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * reflection.c (ensure_generic_class_runtime_vtable): Split this function in 2
+       so we can avoid calling ensure_runtime_vtable multiple times for the GTD during
+       its TypeBuilder::CreateType ().
+
+       * reflection.c (ensure_generic_class_runtime_vtable): Avoid initializing interfaces
+       if not needed.
+
+       * reflection.c: Every time we change the interface array, set interfaces_packed to NULL
+       to make setup_interface_offsets happy.
+
+       * reflection.c (remove_instantiations_of_and_ensure_contents): Fix instances again as corlib
+       compilation now works.
+
+2009-11-28  Zoltan Varga  <vargaz@gmail.com>
+
+       * appdomain.c (create_exceptions): New helper function extracted from
+       mono_runtime_init () to precreate objects used during exception handling.
+       (mono_runtime_init): Call it.
+       (mono_domain_create_appdomain_internal): Ditto. Fixes #555264.
+
+2009-11-27  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * reflection.c (remove_instantiations_of_and_ensure_contents): Temp hack to fix corlib
+       compilation until the proper one is found.
+
+2009-11-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (mono_class_setup_vtable_general): Cache the result of
+       get_virtual_methods () since it can be slow because of the metadata
+       optimization.
+
+       * metadata-internals.h (_MonoImage): Change 'method_cache' to a GHashTable
+       from a MonoValueHashTable for now, since the later is based on an earlier
+       version of hpj's internal probing code and seems to have serious collision
+       issues.
+
+       * loader.c (mono_get_method_full): Update after the change above.
+
+2009-11-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * class-internals.h (MonoCachedClassInfo): Add 'is_generic_container' field.
+
+2009-11-26  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * reflection.c (get_field_on_inst_generic_type): Try to fallback using the field from
+       the GTD instead of the DGC instead of crashing.
+
+       * reflection.c (ensure_generic_class_runtime_vtable): Only reinflate stuff that is
+       required. Inflate fields if needed.
+
+       * reflection.c (remove_instantiations_of): Ensure generic instances are properly
+       finished. Renamed.
+
+2009-11-26  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (check_interface_method_override): Check for NULL signatures and fail
+       the type.
+
+       * debug-helpers.c (mono_signature_get_desc): Return a fixed string for NULL signatures.
+
+       Fixes #553428.
+
+2009-11-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (mono_class_get_virtual_methods): Call decode_row_col to obtain
+       the MONO_METHOD_FLAGS column instead of decoding the whole row.
+
+2009-11-25  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * loader.c (field_from_memberref): Resolve the class first then the field
+       signature. Remove a lot of duplicated code and make sure we don't pass valid
+       values to mono_loader_set_error_field_load.
+
+       Fixes #553306.
+
+2009-11-25  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (inflate_generic_type): Change code to use new signature of
+       mono_error_set_bad_image.
+
+       Fixes #558124.
+
+2009-11-25  Sebastien Pouliot  <sebastien@ximian.com> 
+
+       * verify.c (mono_method_verify): Don't free ctx.params items if 
+       we aborted while inflating the ctx.locals. Complete previous fix
+
+2009-11-25  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * verify.c (mono_method_verify): Use the uninflated type name, 
+       when the inflated is null, to report errors. Also take care when
+       freeing, not to free everything since, in case of an error, some
+       stuff would be copies (i.e. not allocated by the function itself)
+       Fix bug #558145
+
+2009-11-24  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (stack_push, stack_pop, stack_pop_safe): Assert if we underflow
+       or overflow. The caller must have done this check explicitly. This guard us
+       from accessing invalid memory.
+
+       * verify.c (do_push_static_field): Check for stack overflow.
+
+       Fixes #553333.
+
+2009-11-24  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * loader.c (find_method_in_class): Don't crash if the signature cannot
+       be resolved.
+
+       * metadata.c (mono_metadata_parse_generic_param): Return NULL instead
+       of asserting for the case of invalid params.
+
+       Fixes #553304.
+
+2009-11-24  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * image.c (mono_image_load_module): Fix crash when a bad assembly
+       has no module at all (fix bug #553412) and also replace the 
+       g_assert with a return NULL (documented return value for failure)
+
+2009-11-23  Zoltan Varga  <vargaz@gmail.com>
+
+       * debug-helpers.c (mono_type_get_desc): Handle typedbyref.
+
+2009-11-23  Miguel de Icaza  <miguel@novell.com>
+
+       * file-io.c: Change FindFirst/FindNext/FindClose API to return the
+       file attribute to managed code and avoid doing the mask/attribute
+       checks here. 
+
+2009-11-22  Miguel de Icaza  <miguel@novell.com>
+
+       * file-io.c: Surface a smart FindFirst/FindNext/FindClose API to
+       the managed world.
+
+       * icall-def.h: New entry points.
+       
+2009-11-19  Mark Probst  <mark.probst@gmail.com>
+
+       * process.c: Don't put references to managed objects into a
+       g_ptr_array.
+
 2009-11-18  Sebastien Pouliot  <sebastien@ximian.com>
 
        * class.c (can_access_internals): Allow CoreCLR to participate in