Ops, forgot to mention bug number on changelog.
[mono.git] / mono / metadata / ChangeLog
index 295beb39916e3ff03b62c90a106f4317d362bd3b..d7e60368700540bf60235328ac904dfb26d36718 100644 (file)
@@ -1,3 +1,405 @@
+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
+       allowing (or not) [InternalsVisibleTo] between assemblies.
+       * security-core-clr.c|h: Make sure that only trusted code (a 
+       superset of platform code) can access the internals of platform
+       code.
+
+Mon Nov 16 16:28:11 CET 2009 Paolo Molaro <lupus@ximian.com>
+
+       * reflection.c: use the correct base class to get the virtual method
+       "get_UnderlyingSystemType" and speed up the icall. Fixes bug #555013.
+
+2009-11-16  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * security-core-clr.c (get_caller_no_reflection_related): 
+       [Mono]Type.InvokeMember is outside System.Reflection[.Emit] but
+       it's still reflection and must be filtered correctly.
+
+2009-11-16  Mark Probst  <mark.probst@gmail.com>
+
+       * object.c (compute_class_bitmap): Fix for large bitmaps.
+
+2009-11-15  Zoltan Varga  <vargaz@gmail.com>
+
+       (mono_gc_get_suspend_signal): Fix the build with a system libgc.
+
+       * boehm-gc.c (mono_gc_base_init): Applied patch from DKoushik K. Dutta (
+       koush@koushikdutta.com). Disable GC_no_dls on android.
+
+2009-11-12  Mark Probst  <mark.probst@gmail.com>
+
+       * sgen-gc.c (find_tlab_next_from_address): Handle the case where
+       tlab_next points outside the TLAB because the allocator was
+       interrupted.
+
+2009-11-09  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * reflection.c (mono_image_module_basic_init): Handle exceptions correctly.
+
+2009-11-09  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * object-internals.h: Change signature for mono_string_to_utf8_image.
+
+       * object.c (mono_string_to_utf8_image): Change signature to take a MonoError
+       argument.
+
+       * reflection.c: Take care of mono_string_to_utf8_image change and avoid raising
+       exceptions due to mono_string_to_utf8.
+
+2009-11-09  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * object-internals.h: Change signature for mono_string_to_utf8_mp.
+
+       * object.c (mono_remote_class): Make sure all resources are released before
+       raising an exception.
+
+       * object.c (mono_print_unhandled_exception): Avoid raising an exception.
+
+2009-11-09  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mono-perfcounters.c (network_get_impl): Change variable initialization
+       ordering to fix potential memory leak in case of exceptions.
+
+       * mono-perfcounters.c (mono_perfcounter_create): Properly handle badly
+       encoded strings.
+       
+2009-11-09  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): Change
+       variable initialization ordering to fix potential memory leak in case
+       of exceptions.
+
+2009-11-09  Zoltan Varga  <vargaz@gmail.com>
+
+       * icall.c (mono_ArgIterator_Setup): Remove the MONO_ARCH_REGPARMS stuff, its not
+       needed.
+
+2009-11-07  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * appdomain.c: Fix shadow path code to better deal with exceptions.
+
+2009-11-07  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * appdomain.c: Use checked version of mono_string_to_utf8 to avoid raising an
+       exception in the middle of the runtime code.
+
+2009-11-07  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): Don't
+       leak memory with broken envvar value.
+
+2009-11-06  Mark Probst  <mark.probst@gmail.com>
+
+       * reflection.c (mono_reflection_setup_internal_class): Because
+       nested classes are not added to the name cache, we must put them
+       in the reflection_info_unregister_classes list.
+
+2009-11-05  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * class.c: When CoreCLR is enabled don't call mono_init_com_types
+       if MONO_CLASS_IS_IMPORT return true unless the type reside in 
+       platform (trusted) code. Instead we return a TypeLoadException to
+       be thrown later. This is the exception thrown by Silverlight 2 if
+       a type, inside application (user) code is marked with [ComImport]
+
+2009-11-05  Zoltan Varga  <vargaz@gmail.com>
+
+       * icall.c (ves_icall_System_Diagnostics_Debugger_IsAttached_internal): Call
+       mono_is_debugger_attached () too.
+
+       * mono-debug.c (mono_is_debugger_attached): New helper function.
+       (mono_set_is_debugger_attached): Ditto.
+
+2009-11-05  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * object-internals.h: Add mono_string_to_utf8_checked.
+
+       * object.c: Implement mono_string_to_utf8_checked.
+
+2009-11-05  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c: Add missing check for load errors after every
+       call to mono_class_setup_fields
+
+       Fixes #552282.
+
+2009-11-05  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       metadata-verify.c (verify_tables_schema): Fix the error message.
+
+2009-11-05  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * metadata.c: Change event table schema to use TDOR for event type
+       as this is what it's meant to be.
+
+       * metadata.c (mono_metadata_compute_size): Change MONO_TABLE_ASSEMBLYPROCESSOR
+       to MONO_TABLE_ASSEMBLYREFPROCESSOR, which is table that has a MONO_MT_TABLE_IDX
+       entry.
+
+       * metadata.c (mono_metadata_compute_size): Trim MT_TABLE_IDX of code that no
+       longer makes sense: remove MONO_TABLE_EVENT and remove checks for non-existent
+       rows in MONO_TABLE_GENERICPARAM.
+
+       Fixes #552289.
+
+2009-11-05  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (mono_image_add_to_name_cache): Assert on duplicate
+       insertion.
+
+       * reflection.c (mono_reflection_setup_internal_class): Avoid
+       registering a gc root the same MonoClass multiple times.
+       Don't register nested types on the global scope as they should
+       not be available there.
+
+2009-11-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
+
+       * culture-info-tables.h: regenerated.
+
+2009-11-04 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * debug-helpers.c: avoid g_strdup() in mono_type_full_name().
+
 2009-11-04  Sebastien Pouliot  <sebastien@ximian.com>
 
        * string-icalls.c|h: Remove string internal calls that are not