2006-09-27 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
index f30db4b97aa7f5aef4c4bae691ea6ecf766d202f..a6e7ebe6766c0c333760db4b5dac89db30411b77 100644 (file)
@@ -1,3 +1,382 @@
+2006-09-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
+
+       * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
+       #79217.
+
+2006-09-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
+       could be generated from it.
+
+Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
+
+       * rand.c: fix read loop to correctly handle EINTR.
+
+Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
+
+       * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
+       internal calls are defined to keep methods closer to the declaring
+       type and allow a significant reduction in runtime relocations and
+       memory usage.
+
+2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
+
+        * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
+        exception message to have FileNotFoundException use the default
+        assembly load error message. Fixes bug #79426.
+        * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
+
+2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * threadpool.c: (start_thread_or_queue) use the root domain when
+       creating the thread instead of the async object one.
+
+Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
+
+       * class.c, object.c, class-internals.h, reflection.c:
+       for arrays, store element_size inside MonoClass (speedup
+       for array object creation).
+
+Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
+
+       * icall.c: fixed CodeBase to use the file name and not the module
+       name (bug #79365).
+
+Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mono-debug.c, mono-debug.h: export find_method as
+       mono_debug_find_method ().
+
+Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
+
+       * debug-helpers.c, class-internals.h: added a few functions useful
+       when debugging under gdb.
+
+2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
+       characters that need special handling.
+
+Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mono-config.c: make the os/cpu specification more flexible,
+       allowing lists and negation.
+
+2006-09-18  Jonathan Chambers  <joncham@gmail.com>
+
+       * marshal.c: COM Interop fixes. Handle case where method->klass.
+       is interface. Handle BSTR/MonoString when null. Use CDECL as 
+       calling convention on non-windows platforms. This is for
+       compatibility with XPCOM and MainWin COM.
+       
+       Code is contributed under MIT/X11 license.
+       
+
+2006-09-18  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
+       correctly. Fixes #79217.
+
+       * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
+
+Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mono-config.c: allow both an os and cpu attribute for dllmap
+       and dllentry elemnets to enable a single config file to be used
+       for multiple architectures.
+
+2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * loader.c: MonoLoaderError was cleared too soon on load failure.
+       Fixes bug #79424.
+
+Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
+
+       * icall.c: use the defining class vtable when accessing a
+       static field, not a pobblibly derived class.
+
+2006-09-17  Zoltan Varga  <vargaz@gmail.com>
+
+       * icall.c string-icalls.c: Remove references to unicode.h.
+
+       * unicode.h unicode.c Makefile.am: Remove these unused source files.
+
+       * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
+
+       * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
+       indicating the image where custom marshaller types should be looked up.
+       (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
+       custom marshallers, instead of corlib. Fixes #79425.
+
+2006-09-14  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
+
+2006-09-14  Jonathan Chambers  <joncham@gmail.com>
+
+       * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
+       Implement Environment.ProcessorCount.
+       
+       * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
+       Implement Environment.ProcessorCount.
+       
+       * icall.c: 
+       Add Environment.ProcessorCount icall.
+       
+       Patch by Jason McFall.
+
+2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * assembly.c: don't append .exe/.dll when the filename already contains
+       one of those extensions.
+
+2006-09-12  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_bounded_array_class_get): Also add `IList<object>'
+       to array interfaces.
+
+2006-09-11  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (mono_image_build_metadata): Create the
+       MethodImpl's after emitting all types and methods, so we don't
+       need another fixup pass for them.
+
+2006-09-11  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (mono_class_from_name_case): Fix regression introduced by the last
+       change.
+
+Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
+
+       * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
+       unload.
+
+2006-09-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
+       args is not set. Fixes #78926.
+
+2006-09-08  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
+
+       * image.c (load_class_names): Move this to class.c, and rename it to 
+       'mono_image_init_name_cache'.
+       (load_modules): Fix a warning.
+
+       * class.c icall.c image.c: Initialize image->name_cache lazily.
+
+       * class-internals.h (MonoGetClassFromName): New hook function to find a class based
+       on its name using information in the AOT file.
+
+       * class.c (mono_class_from_name): Use the new hook function.
+
+2006-09-06  Zoltan Varga  <vargaz@gmail.com>
+
+       * reflection.c (mono_param_get_objects): Handle enum default parameter values
+       correctly.
+
+       * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
+       Fixes #79289.
+       
+2006-09-06  Martin Baulig  <martin@ximian.com>
+
+       * icall.c (mono_lookup_internal_call): Small fix.
+
+2006-09-05  Raja R Harinath  <rharinath@novell.com>
+
+       * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
+       double g_free.
+
+2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
+       when --debug is specified.
+
+2006-09-04  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (setup_generic_array_ifaces): Fix a warning.
+
+2006-09-04  Miguel de Icaza  <miguel@novell.com>
+
+       * Temporarily remove the patch to assemly.c that checks the
+       assembly versions as it breaks our gacutil.
+
+2006-09-03  Zoltan Varga  <vargaz@gmail.com>
+
+       * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
+
+       * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
+       a net 1.0 runtime.
+
+       * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
+       created using the default ctor. Fixes #79152.
+       (mono_string_builder_to_utf16): Ditto.
+
+2006-09-01  Martin Baulig  <martin@ximian.com>
+
+       Fix handling of the generic array interfaces.
+
+       * class-internals.h
+       (MonoDefaults): Removed `generic_array_class' and added
+       `generic_ilist' class.
+
+       * class.c
+       (mono_bounded_array_class_get): Add the new generic array interfaces.
+       (setup_generic_array_ifaces): New static method; create vtable
+       entries for each method in the generic array interfaces.
+
+       * metadata.c
+       (select_container): Allow "parent-less" generic methods.
+
+       * marshal.c
+       (mono_marshal_get_generic_array_helper): New public method.
+
+       * icall.c
+       (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
+       Renamed into ves_icall_System_Array_GetGenericValueImpl() and
+       moved the interncall into System.Array.
+
+2006-09-01  Raja R Harinath  <rharinath@novell.com>
+
+       A few more cases of avoiding work on types with ->byref set.
+       Has the real fix for #79238
+       * icall.c (is_generic_parameter): New helper.
+       (ves_icall_Type_GetGenericParameterPosition): Use it.
+       (ves_icall_Type_GetGenericParameterAttributes): Likewise.
+       (ves_icall_MonoType_get_IsGenericParameter): Likewise.
+       (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
+       (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
+       reference types.
+       (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
+       reference types.
+       (ves_icall_Type_get_IsGenericInstance): Likewise.
+       (ves_icall_Type_get_IsGenericType): Likewise.
+
+2006-09-01  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
+       class if possible.
+
+       * mempool.h (mono_mempool_get_allocated): New helper function.
+
+       * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
+       change.
+
+       * mempool.c: Fix warnings and the calculation of stats.
+
+       * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
+
+       * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
+
+       * loader.c (mono_get_method_from_token): Update method_count stat.
+
+       * class-internals.h (MonoStats): Add some stats.
+
+2006-08-31 Robert Jordan  <robertj@gmx.net>
+
+       * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
+       with managed variants.
+       All code is contributed under the MIT/X11 license.
+       
+2006-08-31  Zoltan Varga  <vargaz@gmail.com>
+
+       * reflection.c (reflection_methodbuilder_to_mono_method): Set 
+       method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
+
+       * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
+
+       * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
+       with cycles in classes.
+
+       * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
+
+       * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
+       missing a [MarshalAs] directive. Fixes #79203.
+
+       * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
+       klass->marshal_info. Fixes #79217.
+
+2006-08-30  Martin Baulig  <martin@ximian.com>
+
+       Committing a patch from Joachim Ante <joe@otee.dk>:
+       Add support for binary data symbol stores.
+
+       * debug-mono-symfile.c
+       (mono_debug_open_mono_symbol_file): Renamed into
+       mono_debug_open_mono_symbols() and added `raw_contents' and `size'
+       arguments.
+
+       * mono-debug.c
+       (mono_debug_open_image): Added `raw_contents' and `size' args.
+       (mono_debug_init_2_memory): New public function.
+
+Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
+
+       * icall.c: handle TypedReference in GetTypeCode (bug #79150).
+
+2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * appdomain.c: implement support for ShadowCopyFiles.
+
+2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
+       when value is NULL (and should remove CID #51).
+
+2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * image.c: moved 2 functions to ../utils.
+
+Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
+
+       * gc.c: cope with the target object of a GC handle being NULL
+       (bug #78877).
+
+Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
+
+       * class.c: recursively check parent's explicit implementations
+       of interface methods (fixes bug #79125).
+
+2006-08-19  Miguel de Icaza  <miguel@novell.com>
+
+       * filewatcher.c: Avoid warnings when building, do not redefine
+       constants that are defined.
+
+       Remove warnings.
+
+2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * image.c: don't fail when the link points to an absolute path.
+
+2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
+       Fix CID #3.
+
+2006-08-17  Miguel de Icaza  <miguel@novell.com>
+
+       * image.c (full_path): A new method used to obtain the actual path
+       of an assembly even in the presence of symbolic links.  
+
+       This is necessary for the case where we are running a binary that
+       has been GACed, but we are using the "published" path name
+       ($prefix/mono/1.0/blah.exe) which happens to point to the real
+       file in the GAC.
+
+       This was the source of the failure for the `xsp' command with the
+       recent AppDomain changes, as far as the runtime was concerned,
+       there were two different assemblies: $prefix/mono/1.0/blah.exe and
+       $prefix/mono/gac/blah/version/blah.exe.
+
+       (do_mono_image_open): use full path
+
+2006-08-17  Zoltan Varga  <vargaz@gmail.com>
+
+       * object.c (mono_class_create_runtime_vtable): Add a FIXME.
+
 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
 
        * marshal.c: Fix mono_marshal_check_domain_image if an invalid