2009-01-26 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
index 4d56f03013755cb5dfa7148b01919692328ff66a..6f59787974c4cad023b42bb361792006aae8b664 100644 (file)
@@ -1,3 +1,369 @@
+2009-01-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (mono_marshal_load_type_info): Fill out info->min_align.
+       (mono_class_native_size): Use klass->marshal_info->min_align instead of
+       klass->min_align, since klass->min_align contains the managed alignment,
+       while the native alignment can be different, like for longs on x86.
+       Fixes #469135.
+
+       * class-internals.h (MonoMarshalType): Add a min_align field.
+
+2009-01-26 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * assembly.c (mono_assembly_try_decode_skip_verification): Add a hack to check
+       the 1.0 format.
+
+2009-01-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * domain-internals.h (struct _MonoJitInfo): Add a 'from_aot' field plus
+       some comments about the usage of the used_regs field.
+
+       * marshal.c (emit_marshal_ptr): Allow pointers to blittable structures.
+       Fixes #469217.
+
+2009-01-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * appdomain.c: return NULL instead of throwing FileNotFoundException
+       when LoadAssembly() fails.
+
+2009-01-23  Mark Probst  <mark.probst@gmail.com>
+
+       * metadata.c (mono_metadata_generic_param_equal): Only compare the
+       image if the owner is NULL.  Fixes the AOT failures.
+
+2009-01-23  Zoltan Varga  <vargaz@gmail.com>
+
+       * metadata.c (mono_metadata_load_generic_params): Initialize the 
+       MonoGenericParam structure using memset so the image field is initialized
+       as well.
+
+2009-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * appdomain.c (mono_domain_unload): Change the InterlockedIncrement to
+       a plain store.
+
+2009-01-21  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (mono_class_setup_vtable_general): In the generic instance
+       optimization, set method->slot for abstract virtual methods. Fixes part of
+       #467834.
+
+2009-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * domain-internals.h: Add new appdomain state MONO_APPDOMAIN_UNLOADING_START
+       which signals that the unloading has started but all appdomain services must
+       remain operational.
+
+       * appdomain.c (mono_domain_unload): The initial state for unloading now
+       is unloading_start and we switch to unloading after the managed call to
+       AppDomain::DomainUnload has finished.
+
+       The new unloading state has to be created because managed code in the
+       DomainUnload event can depend on things like the threadpool still working.
+       The domain must remain fully functional while the event executes.
+
+       This shown as an issue due to Process::WaitForExit, which waits for
+       async reads of stdout and stderr to complete. Since those are processed
+       in the threadpool the code deadlocks because the DomainUnload callback 
+       waits for the async read finished event, which should have been set by a
+       threadpool job but has been discarded due to the domain been in unload
+       state.
+
+2009-01-21  Mark Probst  <mark.probst@gmail.com>
+
+       * metadata.c (mono_metadata_generic_param_equal): Owner as well as
+       image must match.
+
+2009-01-21  Mark Probst  <mark.probst@gmail.com>
+
+       * reflection.c (resolve_object): For fields, inflate the class and
+       then get the field in the inflated class.
+
+2009-01-20  Mark Probst  <mark.probst@gmail.com>
+
+       * object-internals.h (struct _MonoException): Added a comment
+       explaining the new use of trace_ips.
+
+2009-01-20  Mark Probst  <mark.probst@gmail.com>
+
+       * generic-sharing.c (inflate_other_data): Inflate array methods
+       correctly.
+
+       * loader.c, class-internals.h: Rename search_in_array_class() to
+       mono_method_search_in_array_class() and make it non-static.
+
+2009-01-19  Zoltan Varga  <vargaz@gmail.com>
+
+       * metadata.c (inflated_signature_in_image): Call signature_in_image as well.
+       Hopefully fixes #458168.
+
+2009-01-19  Christian Hergert  <christian.hergert@gmail.com>
+
+       * object.c (mono_raise_exception): Remove call to InterlockedIncrement
+       as it is performed elsewhere.
+
+       Code is contributed under MIT/X11 license
+
+2009-01-19  Christian Hergert  <christian.hergert@gmail.com>
+
+       * mono-perfcounters-def.h: Add counters for asp.net requests total and
+       requests queued.
+       * object.c (mono_raise_exception): Increment the exceptions total
+       counter when an exception is thrown.
+       * class-internals.h: Add a location for storing the total number of
+       asp.net requests served.
+       * mono-perfcounters.c: Implement update support for asp.net counters
+       from the class libraries. Implement read support for asp.net counters
+       and exceptions total counter.
+
+2009-01-19  Zoltan Varga  <vargaz@gmail.com>
+
+       * loader.c (search_in_array_class): Call mono_class_setup_methods () before
+       accessing klass->methods. Fixes #467385.
+
+2009-01-18  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (emit_marshal_custom): Avoid calling MarshalNativeToManaged
+       for byval arguments without an [Out] attribute. Fixes #467212.
+
+       * attach.c: Applied patch from Koushik Dutta (koush@koushikdutta.com). 
+       Fix compilation under android.
+       
+       * sgen-gc.c: Instead of scanning gray objects after all roots have been 
+       processed, scan them directly after they are copied, to achieve better locality
+       and cache usage.
+
+       * socket-io.c: Applied patch from Koushik Dutta
+       (koush@koushikdutta.com). Disable IPV6 when running under android.
+
+2009-01-18  Zoltan Varga  <vargaz@gmail.com>
+
+       * icall.c (ves_icall_InternalExecute): Add write barriers.
+
+       * marshal.c (mono_marshal_get_write_barrier): Remove, this is now done in
+       the GC code.
+
+       * sgen-gc.c: Implement write barriers in IL code.
+
+2009-01-17  Geoff Norton  <gnorton@novell.com>
+
+       * image.c: Avoid trying to walk the reference table of dynamic assemblies.
+
+2009-01-17  Geoff Norton  <gnorton@novell.com>
+
+       * image.c: When unloading the image->references table, there can be gaps
+       in it.  Ensure that we iterate every entry to avoid leaking assembly references
+       when unloading an appdomain.
+
+2009-01-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * sgen-gc.c: Add support for allocating a nursery at an aligned address, to
+       speed up ptr-in-nursery checks.
+
+       * threads.c (mono_threads_abort_appdomain_threads): Abort threads outside the
+       threads_lock () to prevent deadlocks.
+
+       * sgen-gc.c gc-internal.h: Add a new root type root-with-wbarrier, which
+       does not need to be scanned during minor collections, since writes to it
+       must use write barriers.
+
+2009-01-15 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * metadata-verify.c: Add pe nt header verification.
+       
+2009-01-15  Zoltan Varga  <vargaz@gmail.com>
+
+       * gc.c: Fix a few warnings when using SGEN.
+
+2009-01-14 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * metadata-verify.c: Add pe optional header verification.
+
+2009-01-15  Zoltan Varga  <vargaz@gmail.com>
+
+       * sgen-gc.c: Add support for user defined marker functions, used by
+       MonoGHashTable to avoid registering a GC root for every hash node.
+
+2009-01-14  Zoltan Varga  <vargaz@gmail.com>
+
+       * sgen-gc.c: Fix warnings. Optimize copy_object () a bit. Split pinned/
+       non-pinned roots into separate hashes to avoid having to traverse them
+       in functions which are only interested in one kind.
+
+2009-01-13 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * metadata-verify.c: Add pe header machine field verification.
+       
+2009-01-13 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * metadata-verify.c: Add pe header size verification.
+
+2009-01-14  Zoltan Varga  <vargaz@gmail.com>
+
+       * reflection.c (ALLOC_REFENTRY): Don't allocate the ReflectionEntry structures
+       using the GC, they don't contain references.
+
+       * domain.c (mono_domain_create): Create ldstr_table using MONO_HASH_KEY_VALUE_GC.
+
+2009-01-13  Geoff Norton  <gnorton@novell.com>
+
+       * appdomain.c|h: Expose mono_domain_unload to the embedding api so that 
+       AppDomains created on the native side can be cleaned up on the native side.
+
+2009-01-13  Geoff Norton  <gnorton@novell.com>
+
+       * appdomain.c: Ensure that we call mono_context_init for the embedding api
+       as well as the managed api.
+
+2009-01-13  Geoff Norton  <gnorton@novell.com>
+
+       * appdomain.h|c: New API for creating a MonoDomain in the embedding api
+       with a MonoAppDomain initialized against it.
+
+2009-01-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * reflection.c (MOVING_GC_REGISTER): Fix a warning.
+       
+       * reflection.c (mono_image_get_generic_param_info): Use MOVING_GC_REGISTER.
+
+       * marshal.c: Avoid setting the exception clauses after a method has been entered 
+       into the wrapper caches. Fixes #465700.
+
+       * method-builder.c (mono_mb_set_clauses): New function to set the clauses of the
+       method builder.
+       (mono_mb_create_method): Set the clauses from the method builder.
+
+2009-01-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * threadpool.c: include sys/socket.h. Fixes compilation on FreeBSD.
+       Patch from Makoto Kishimoto.
+
+2009-01-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * sgen-gc.c (mono_gc_make_descr_from_bitmap): Handle large bitmaps by 
+       encoding them as ROOT_DESC_COMPLEX.
+       (precisely_scan_objects_from): Implement support for ROOT_DESC_COMPLEX.
+
+2009-01-12  Zoltan Varga  <vargaz@gmail.com>
+
+       * sgen-gc.c (scan_from_remsets): Clear the global remset of pointers which
+       no longer point to the nursery.
+
+       * sgen-gc.c: Add a few comments/FIXMEs.
+       
+       * sgen-gc.c: Implement scanning of the alloc_pinned objects.
+
+       * marshal.c (mono_marshal_get_synchronized_wrapper): Make the 
+       initialization of the various _method variables thread safe. Fixes
+       #465377.
+
+2009-01-12  Mark Probst  <mark.probst@gmail.com>
+
+       * domain.c, domain-internals.h: Remove the shared_generics_hash
+       and its lookup functions.
+
+2009-01-12  Bill Holmes  <billholmes54@gmail.com>
+
+       * socket-io.c:  Fixing the MSVC build. 
+
+       Code is contributed under MIT/X11 license.
+
+2009-01-12 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * metadata-verify.c: Add pe header watermark verification.
+
+2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * metadata-verify.c: Add lfanew verification.
+
+2009-01-12  Jb Evain  <jbevain@novell.com>
+
+       * tabldefs.h: rename METHOD_ATTRIBUTE_CHECK_ACCESS_ON_OVERRIDE to
+       METHOD_ATTRIBUTE_STRICT to match the ECMA terminology.
+
+2009-01-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * socket-io.c: Fix the build.
+
+       * environment.c: Fix an #ifdef.
+
+2009-01-09  Zoltan Varga  <vargaz@gmail.com>
+
+       * threadpool.c (async_invoke_thread): Handle the wait function returning
+       WAIT_IO_COMPLETION as well.
+       (async_invoke_io_thread): Ditto.
+
+2009-01-09  Bill Holmes  <billholmes54@gmail.com>
+
+       * threads.c: Fixing the Windows build.
+
+       Code is contributed under MIT/X11 license.
+
+2009-01-09  Zoltan Varga  <vargaz@gmail.com>
+       * threads.c (signal_thread_state_change): Call wapi_interrupt_thread () to
+       interrupt a wait.
+       (mono_thread_execute_interruption): Call wapi_clear_interruption () to enable
+       the thread to wait again.
+
+2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * metadata-verify.c: Initial skeleton of the metadata verifier.
+
+       * pedump.c: Add support for the metadata verifier.
+
+       * verify-internal.h: Export the whole assembly metadata verifier function.
+
+2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * gc.c (mono_gc_init): Fix the comments about deadlock on windows.
+
+2009-01-09  Zoltan Varga  <vargaz@gmail.com>
+
+       * Makefile.am: Upgrade dtrace-prelink.sh location.
+
+2009-01-08 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * gc.c (mono_gc_init): Wait for finalizer thread to init on windows as
+       well. Otherwise the shutdown deadlock that happens on unix will can happen
+       as well.
+       If the main thread code finishes too fast it's possible that the finalizer
+       thread won't have executed yet, won't record itself as the finalizer thread
+       and the shutdown sequence will wait on it forever.
+
+2009-01-08 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * threads.c (mono_thread_current): Make THREAD_DEBUG work on windows
+       with MSVC.
+
+2009-01-08  Miguel de Icaza  <miguel@novell.com>
+
+       * appdomain.c: Initialize the mono_strtod_mutex here, thanks to
+       Robert Jordan for pointing this out.
+
+2009-01-08  Christian Prochnow  <cproch@seculogix.de>
+
+       * icall.c
+       * icall-def.h: added internal calls ves_icall_System_IO_DriveInfo_GetDiskFreeSpace,
+       ves_icall_System_IO_DriveInfo_GetDriveType.
+
+2009-01-07  Miguel de Icaza  <miguel@novell.com>
+
+       * icall.c: Wrap calls to mono_strtod in CriticalSection
+       invocations when using eglib, to work around #464316.
+
+2009-01-07 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * file-io.c (ves_icall_System_IO_MonoIO_GetCurrentDirectory): Double check the
+       return value of GetCurrentDirectory to never access unitialized memory.
+
+2009-01-07 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * file-io.c (ves_icall_System_IO_MonoIO_GetCurrentDirectory): Properly check the
+       return value of GetCurrentDirectory and expand the buffer if needed.
+
+       Fixes #459094.
+
 2009-10-07 Tom Hindle  <tom_hindle@sil.org>
 
        * marshal.c (GetIUnknownForObjectInternal, GetIUnknownForObjectInternal) :