2004-03-22 Ben Maurer <bmaurer@users.sourceforge.net>
[mono.git] / mono / metadata / ChangeLog
index 20625b1e60fc9d6ba87041c58fde8f4396a5035f..ace04aa8e235f20ae693cb4aebcbfb1f4f616ed0 100644 (file)
@@ -1,3 +1,380 @@
+2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * class.c: do not insert non-virtual methods in the vtable.
+       * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
+       that means the method is non-virtual. This never would have
+       happened before.
+
+2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
+
+       * profiler.c: Added lock for accessing coverage_hash.
+
+2004-03-22  Martin Baulig  <martin@ximian.com>
+
+       * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
+       `method->method->signature->generic_param_count != 0' to make it
+       work for interface methods.
+
+2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * process.c: quote the string passed to the shell using g_shell_quote.
+
+2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * threads.c:
+       (mono_threads_manage): don't remove the finalizer thread and self
+       from the threads hash table so that mono_thread_manage can be called
+       more than once.
+
+2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * process.c: quote the arguments when UseShellExecute is true. Fixes
+       bug #55790.
+
+2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * threads.c: set mono_thread_detach as a cleanup routine for every
+       thread. This way it's always executed upon thread termination, either
+       aborted or finished normally. No more xsp hangs!
+
+2004-03-17  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoGenericInst): Replaced the `GList *nested' with an
+       `int count_nested' and a `MonoType **nested'.
+
+       * reflection.c (mono_reflection_bind_generic_parameters): Moved
+       most of the functionality into a new static
+       do_mono_reflection_bind_generic_parameters() and don't take a
+       `MonoType *nested_in' argument any more.  Don't compute nested
+       types here.
+       (mono_reflection_generic_inst_get_nested_types): New public method
+       to get nested types.
+
+       * class.c (mono_class_create_generic): Set `klass->nested_in' if
+       we're a nested class.
+
+       * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
+       mono_reflection_generic_inst_get_nested_types() to compute the
+       nested types.
+
+2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
+
+       * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
+       descriptive error message under windows.
+       
+2004-03-17  Martin Baulig  <martin@ximian.com>
+
+       * class.c (dup_type): Added `const MonoType *original' argument;
+       copy the attrs from the original type.
+
+2004-03-17  Martin Baulig  <martin@ximian.com>
+
+       * metadata.c (do_mono_metadata_parse_generic_inst): Use the
+       `m->generic_inst_cache' here.
+
+2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
+
+       * exception.h exception.c: Add stack_overflow_exception.
+
+2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * threadpool.c:
+       (overlapped_callback): call SetEvent *after* invoking the callback.
+       No need to call CloseHandle.
+
+2004-03-16  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (mono_image_get_fieldref_token): Take a
+       `MonoReflectionField *' instead of a `MonoClassField *' and a
+       `MonoClass *'; store the `MonoReflectionField *' in the hash.
+
+2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * appdomain.c: don't add the culture to the filename we're looking for
+       if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
+
+2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * locales.c: don't ignore symbols when doing case insensitive compares.
+       Thanks Dick! Fixes bug #54046.
+
+       * threads.c: surround 'threads' usage with enter/leave in
+       mono_thread_manage.
+
+2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
+
+       * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
+       implicitly marshalled as [Out]. Fixes #55450.
+
+       (mono_marshal_get_runtime_invoke): Zero out the result if there is
+       an exception.
+
+2004-03-16  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_from_generic_parameter): Use the actual
+       parameter name. 
+
+2004-03-16  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (type_get_signature_size): New static function.
+       Compues the size of the type in a method signature.
+       (method_get_signature_size): New static function; calls
+       type_get_signature_size() to compute the actual size of the
+       method's signature.
+       (method_encode_signature): Use method_get_signature_size() to get
+       the signature's size rather than using `nparams * 10'.
+
+2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * file-io.h: define here WapiOverlapped on windows. I don't want the
+       regular OVERLAPPED one.
+
+       * file-io.c:
+       * threadpool.c: somehow, BindIoCompletionCallback is not found.
+       Disabling AIO on windows.
+
+2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
+       bug #55385.
+
+2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * appdomain.c: upgraded corlib version.
+
+       * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
+       and BeginWrite. Allow opening files for asynchrnous operations.
+
+       * file-io.h: new struct that maps FileStreamAsyncResult.
+       * icall.c: added new icalls.
+       * process.[ch]: support setting child process environment variables
+       and use the SHELL or COMSPEC when UseShellExecute is true.
+
+       * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
+       callback for async. IO is here and also BindHandle.
+
+       * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
+       from here.
+
+2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c (create_custom_attr): Allow len == 0.
+
+       * object.c (mono_class_compute_gc_descriptor): Fix descriptor
+       computation on big-endian machines.
+
+2004-03-13  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoGenericInst): Added `int count_ifaces'.
+
+       * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
+       `ginst->count_ifaces' instead `klass->interface_count' since we
+       may get called before the vtable is created.
+
+       * loader.c (mono_method_get_param_names): If we're a generic
+       instance, return and don't initialize the class.
+
+       * reflection.c (mono_reflection_setup_generic_class): Don't call
+       ensure_runtime_vtable().
+       (mono_reflection_bind_generic_parameters): Set
+       `ginst->count_ifaces'.
+
+2004-03-11  Jackson Harper <jackson@ximian.com>
+
+       * icall.c:
+       * unicode.c:
+       * unicode.h: Remove unused System.Char icalls.
+       
+2004-03-11  Miguel de Icaza  <miguel@ximian.com>
+
+       * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
+       code when we P/Invoke the first library in Windows.Forms, instead
+       of when we first open the assembly.
+
+       * assembly.c: Drop the lookup from here.
+
+2004-03-10  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (mono_reflection_get_custom_attrs): Use the correct
+       class for properties, fields and events.  Finally fixes #54945.
+
+2004-03-10  Martin Baulig  <martin@ximian.com>
+
+       * metadata.c (mono_metadata_class_equal): New static function;
+       checks whether two generic instances or two generic parameters are
+       equal.
+       (mono_metadata_type_equal): Use mono_metadata_class_equal() to
+       compare classes.        
+
+2004-03-10  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
+
+       * reflection.c (inflate_mono_method): Added `MonoObject *obj'
+       argument and write it into the `reflection_info' field.
+
+       * icall.c
+       (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
+       (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
+
+2004-03-09  Jackson Harper  <jackson@ximian.com>
+
+       * char-conversions.h: use 8 bits for numeric data its all we need
+       * icall.c: numeric data is only 8 bits now.
+
+2004-03-09  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
+
+       * class.c (init_properties, init_events): Initialize the new
+       `parent' field.
+
+       * reflection.c (typebuilder_setup_properties): Likewise.
+       (typebuilder_setup_events): Likewise.
+
+       * reflection.h (MonoEventInfo): Replaced `parent with
+       `declaring_type' and `reflected_type'.
+
+       * icall.c (ves_icall_get_property_info): Distinguish between
+       declaring and reflected type.
+       (ves_icall_get_event_info): Likewise.
+
+2004-03-09  Martin Baulig  <martin@ximian.com>
+
+       * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
+       (ves_icall_Type_GetField): Correctly set field->klass.
+
+2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
+
+       * loader.h: Fix warning.
+
+2004-03-08  Miguel de Icaza  <miguel@ximian.com>
+
+       *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
+       library routine if present.  Notice that it will still continue
+       executing even if its missing, for those working on the Gtk#
+       edition of Windows.Forms.
+
+       * assembly.c (do_mono_assembly_open): If loading the
+       System.Windows.Forms call mono_loader_wini_init.
+
+2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
+
+       * class.h: Added MonoRemoteClass struct.
+       * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
+       function for MonoStrings.
+       * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
+       Added internal call for getting the proxy type.
+       * marshal.c: Get the type of transparent proxies from its remote_class.
+       Added methods that generate the IL for type checks and casts:
+       mono_marshal_get_isinst, mono_marshal_get_castclass, 
+       mono_marshal_get_proxy_cancast.
+       * marshal.h: Declaration of the previous new methods.
+       * object.c: Added new moethods for creating and updating MonoRemoteClass
+       instances: mono_remote_class, mono_upgrade_remote_class, 
+       * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
+       * verify.c: FIx transparent_proxy_fields layout.
+       * appdomain.c: Bump corlib version.
+
+2004-03-04  Jackson Harper  <jackson@ximian.com>
+
+       * icall.c: Add icall to access char conversion tables.
+       * char-conversions.h: Character conversion tables.
+       * Makefile.am: Add char-conversions.h private header file.
+       
+2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
+
+       * appdomain.c (unload_thread_main): Increase unloading timeout to
+       10 sec as a temporary workaround for Nant problems.
+
+2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
+
+       * gc.c: Add checks for GC_enable and GC_disable.
+
+       * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
+       (jaak@zd.com.pl). Fix memory corruption in String.Replace 
+       (bug #54988).
+       
+2004-02-27  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (mono_reflection_bind_generic_parameters): Take a
+       `MonoReflectionType *' instead of a `MonoType *'.
+
+2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
+
+       * gc.c (run_finalize): Avoid finalizing the object representing the
+       finalizer thread.
+       (finalizer_thread): Fix warning.
+
+2004-02-25  Martin Baulig  <martin@ximian.com>
+
+       * class.c (_mono_class_get_instantiation_name): Added `int offset'
+       argument for nested types.
+       (mono_class_create_generic): Added support for nested generictypes.
+
+       * class.h (MonoGenericInst): Added `MonoType *nested_in' and
+       `GList *nested'.
+
+       * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
+
+       * reflection.c (method_encode_signature): Increase the minimum
+       value of `size' from 10 to 11.
+       (mono_reflection_bind_generic_parameters): Take `int type_argc'
+       and `MonoType **types' arguments instead of the `MonoArray
+       *types'; added `MonoType *nested_in'.  Recursively instantiate
+       nested classes. 
+
+2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
+
+       * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
+       stack_overflow_ex members which are used by exception handling.
+
+       * appdomain.c (mono_runtime_init): Initialize the new members.
+
+       * gc.c (mono_gc_enable): New helper function.
+       * gc.c (mono_gc_disable): New helper function.
+
+2004-02-23  Martin Baulig  <martin@ximian.com>
+
+       * icall.c: I must have been really stupid - make it actually work
+       this time ;-)
+
+2004-02-23  Martin Baulig  <martin@ximian.com>
+
+       * loader.c (method_from_memberref): Only inflate the method if
+       it's in another klass.
+
+2004-02-23  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_inflate_generic_type): Fixed two bugs.
+       (mono_class_init): If we're a generic instance and an interface,
+       compute `class->interface_id'; also create `class->interfaces'
+       here and inflate them.
+
+       * metadata.c (do_mono_metadata_parse_generic_inst): Compute
+       `ginst->is_open'.
+       (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
+
+       * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
+
+2004-02-15  Miguel de Icaza  <miguel@ximian.com>
+
+       * reflection.c (method_encode_code): Improved the error message
+       generated by the exception.
+
+2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * icall.c: Martin did not do what he said in the ChangeLog for
+       2004-02-18, but put back the changes for properties and events.
+       Commenting those changes out again and adding comment to bug #54518.
+       
+       * process.c: removed warning.
+
+2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
+
+       * marshal.c (emit_struct_conv): Print an error message instead of
+       asserting when a type does not have the StructLayout attribute.
+
 2004-02-20  Martin Baulig  <martin@ximian.com>
 
        * reflection.c (mono_type_get_object): Also use the cache for