2004-03-13 Martin Baulig <martin@ximian.com>
[mono.git] / mono / metadata / ChangeLog
index 675fa72504fbe8c2eb4409f27c9f7ea86b416743..723f5d9334b51811db19cad2616f228e6460b342 100644 (file)
@@ -1,3 +1,728 @@
+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
+       generic instances.
+       (mono_reflection_bind_generic_parameters): Always compute
+       `ginst->ifaces'.        
+
+2004-02-20  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoGenericMethod): Removed `klass'.
+
+       * class.c (mono_class_inflate_generic_method): Added `MonoClass
+       *klass' argument.
+
+2004-02-20  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (method_encode_methodspec): Actually use the
+       uninflated signature for the memberref.
+
+2004-02-20  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoGenericMethod): Removed `declaring'.
+
+       * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
+       is NULL, compute it here.
+
+2004-02-20  Martin Baulig  <martin@ximian.com>
+
+       * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
+
+       * metadata.c (mono_metadata_generic_inst_hash): New method.
+       (mono_metadata_generic_inst_equal): New method.
+
+       * reflection.c (mono_reflection_bind_generic_parameters): Use the
+       `klass->image->generic_inst_cache' cache to avoid creating
+       duplicate MonoGenericInst's.
+
+       * class.c (mono_class_inflate_generic_type): Use the cache.
+
+Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
+
+       * object.c: fixed gc descriptor calculation for embedded valuetypes.
+
+2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * icall.c: added Socket.WSAIoctl icall.
+
+       * socket-io.[ch]: implemented
+       ves_icall_System_Net_Sockets_Socket_WSAIoctl.
+
+2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
+
+2004-02-18  Urs C Muff  <umuff@quark.com>
+
+       * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
+       this work on PPC and other big-endian architectures.
+
+       * debug-mono-symfile.h: Prepended the names of all the `guint32'
+       fields with an underscore to make sure they're only accessed by
+       the read32() macro.
+
+2004-02-18  Martin Baulig  <martin@ximian.com>
+
+       * icall.c: Put the klass->refclass changes back for methods and
+       fields, but not for properties and events.  We're currently not
+       distinguishing between DeclaringType and ReflectedType for
+       properties and events, that's what caused the regressions.
+
+2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * object.c:
+       (mono_async_result_new): the handle can be NULL.
+
+       * threadpool.c: Use an event instead of a semaphore, don't initialize
+       it until needed. This saves quite a few semaphores from being created
+       when using the threadpool.
+
+2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
+
+       * object.c (mono_string_is_interned_lookup): Fix interning of long
+       strings. Fixes #54473.
+
+       * domain.c (ldstr_equal): Optimize if the two strings are equal.
+
+       * icall.c: Revert the klass->refclass changes since they introduce
+       regressions (bug #54518).
+
+2004-02-18  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_init): If we're a generic instance and don't
+       come from a TypeBuilder, inflate our members here.
+       (mono_class_from_generic): Removed; just use `ginst->klass' instead.
+       (mono_class_create_generic): New public method.
+       (mono_class_initialize_generic): Removed.
+       (get_instantiation_name): Renamed to
+       _mono_class_get_instantiation_name() and made it public.
+
+2004-02-18  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_inflate_generic_type): Clear the new
+       instance's `nginst->klass' when inflating a generic instance.
+       (mono_class_is_subclass_of): Added (basic) support for generic
+       instances.
+
+Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
+
+       * appdomain.h, domain.c: use a MonoCodeManager instead of a
+       MonoMempool to hold compiled native code.
+
+2004-02-17  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoDynamicGenericInst): Added `count_properties' and
+       `properties'.
+
+       * reflection.c (mono_reflection_generic_inst_initialize): Added
+       `MonoArray *properties' argument.
+
+       * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
+
+2004-02-17  Martin Baulig  <martin@ximian.com>
+
+       * icall.c (ves_icall_Type_GetFields): Renamed to
+       ves_icall_Type_GetFields_internal() and added a
+       `MonoReflectionType *rtype' argument; pass it to
+       mono_field_get_object() to set the field's "reflected" type.
+       (ves_icall_Type_GetConstructors): Likewise.
+       (ves_icall_Type_GetEvents): Likewise.
+       (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
+       argument; pass it to mono_method_get_object() to set the method's
+       "reflected" type.       
+
+2004-02-17  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoDynamicGenericInst): New type.
+       (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
+
+       * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
+       (ves_icall_MonoGenericInst_GetConstructors): New interncall.
+       (ves_icall_MonoGenericInst_GetFields): New interncall.
+
+       * class.c (mono_class_from_generic): Don't call
+       mono_class_initialize_generic() if this is a dynamic instance;
+       ie. it's being created from a TypeBuilder.
+       Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
+       `class->byval_arg.type'.
+
+       * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
+       to `inflate_method' and made static.
+       (mono_reflection_inflate_field): Removed.
+       (mono_reflection_generic_inst_initialize): New public method.
+
+       * reflection.h (MonoReflectionGenericInst): Removed `methods',
+       `ctors' and `fields'; added `initialized'.
+
+2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
+
+       * debug-helpers.c (mono_method_full_name): Fix output for empty
+       namespaces.
+
+2004-02-12  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoClassField): Added `MonoType *generic_type'.
+
+       * reflection.c (mono_image_get_fieldref_token): Added support for
+       instantiated generic types.
+       (field_encode_inflated_field): Removed.
+       (mono_image_get_inflated_field_token): Removed.
+       (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
+
+       * reflection.h (MonoReflectionInflatedField): Removed.
+
+2004-02-12  Martin Baulig  <martin@ximian.com>
+
+       * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
+       `gen_method' field from MonoMethodHeader to MonoMethodSignature.
+
+       * reflection.c (mono_image_get_methodspec_token): Take a
+       `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
+       (mono_image_create_token): Check whether we have a
+       `method->signature->gen_method' and call
+       mono_image_get_methodspec_token() if appropriate.
+       (inflated_method_get_object): Removed.
+       (mono_reflection_bind_generic_method_parameters): Return a
+       `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
+       (mono_reflection_inflate_method_or_ctor): Likewise.
+
+       * reflection.h (MonoReflectionInflatedMethod): Removed.
+
+2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
+
+       * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
+       for custom valuetype marshalling.
+
+       * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
+
+2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * icall.c: fixed WSAGetLastError_internal name.
+
+2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
+
+       * threads.c (mono_thread_attach): Allow this to be called multiple
+       times for a thread.
+       
+       * threads.c (build_wait_tids): Do not wait for ourselves.
+
+       * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
+       appdomain list is empty.
+
+       * marshal.c (mono_marshal_get_native_wrapper): Do not free the
+       memory returned by mono_string_builder_to_utf16, since it points into
+       managed memory. Thanks to Bernie Solomon for noticing this.
+
+       * icall.c: Add AppDomainSetup icalls.
+
+       * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
+
+       * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
+       types.
+
+       * reflection.c (reflection_methodbuilder_to_mono_method): Save
+       custom attributes to the method_aux struct. Also fix array indexes etc.
+
+       * loader.c (mono_method_get_param_names): Make dynamic case work again.
+       
+Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
+
+       * icall.c, loader.c: icall cleanup: we save quite a bit of memory
+       (both static and runtime) and reduce startup time.
+
+2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
+
+       * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
+       AsAny marshalling conversion instead of crashing.
+
+       * marshal.c: Fix warnings.
+
+2004-02-09  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
+
+       * reflection.h (MonoReflectionInflatedMethod): Removed the
+       `declaring' field, it's now in the unmanaged MonoGenericMethod.
+
+       * reflection.c (method_encode_methodspec): Removed the `method'
+       argument; we get it from `gmethod->declaring'.
+       (inflated_method_get_object): Removed the `declaring' argument.
+
+2004-02-09  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoGenericMethod): New type.
+       (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
+       `generic_method'.
+
+       * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
+       a `MonoGenericMethod *gen_method' one.
+
+       * class.c (mono_class_inflate_generic_type): Take an additional
+       `MonoGenericMethod * argument.  This is only non-NULL if we're
+       inflating types for a generic method.   
+       (mono_class_inflate_generic_signature): Renamed to
+       inflate_generic_signature() and made static; take a
+       `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
+       (inflate_generic_header): Take a `MonoGenericMethod *' argument
+       instead of a `MonoGenericInst *' one.
+       (mono_class_inflate_generic_method): Likewise.
+
+       * reflection.c (encode_generic_method_sig): Take a
+       `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
+       (method_encode_methodspec): Likewise.
+       (inflated_method_get_object): Likewise. 
+
+       * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
+       field with a `MonoGenericMethod *gmethod' one.  
+
+2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
+
+       * class.h (mono_class_has_parent): add parens to expansion
+       so you can ! this.
+
+2004-02-08  Martin Baulig  <martin@ximian.com>
+
+       * image.h (MonoImage): Removed `generics_cache'.
+
+       * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
+       instead of a `MonoType *' argument; removed the `inflate_methods'
+       argument.  Don't inflate methods here.
+
+       * loader.c (find_method): If it's a generic instance, call
+       mono_class_init() on the `sclass->generic_inst->generic_type'.
+
+       * metadata.c (mono_type_size): Make this work on uninitialized
+       generic instances; call it on the `ginst->generic_type's class.
+
+       * reflection.c (mono_reflection_bind_generic_parameters): Call
+       mono_class_from_generic() to create the `ginst->klass'.
+
+2004-02-08  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoClass): Changed type of `generic_inst' from
+       `MonoType *' to `MonoGenericInst *'.
+
+2004-02-08  Martin Baulig  <martin@ximian.com>
+
+       * icall.c (ves_icall_Type_BindGenericParameters): Just call
+       mono_type_get_object(), this is now creating a `MonoGenericInst'
+       for MONO_TYPE_GENERICINST.
+       (ves_icall_MonoGenericInst_GetParentType): Likewise.
+       (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
+
+       * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
+       instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
+       (inflated_method_get_object): Added `MonoClass *refclass' argument.
+       (mono_reflection_inflate_method_or_ctor): Correctly set declaring
+       and reflected type.
+
+       * reflection.h (MonoReflectionInflatedMethod): Removed
+       `declaring_type' and `reflected_type'.
+
+2004-02-08  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoGenericInst): Added `MonoType *parent' and
+       `MonoType **ifaces'.
+
+       * reflection.h (MonoReflectionGenericInst): Removed `klass',
+       `parent' and `interfaces'.
+
+       * reflection.c (mono_reflection_bind_generic_parameters): Take a
+       `MonoType *' argument and return a `MonoType *'.
+
+       * icall.c
+       (ves_icall_MonoGenericInst_GetParentType): New interncall.
+       (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
+
+2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
+
+       * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
+       valuetype marshalling.
+
+2004-02-06  Martin Baulig  <martin@ximian.com>
+
+       * class.c
+       (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
+       (my_mono_class_from_generic_parameter): Likewise.
+
+2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
+
+       * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
+       contents of the symbol files lazily.
+
+       * object.h (MonoThread): Add 'name' and 'name_len' fields.
+
+       * threads.h threads.c icall.c: New icalls for getting and setting the
+       threads name.
+
+2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
+
+       * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
+       Raise an exception when the domain is not found.
+
+2004-02-03  Martin Baulig  <martin@ximian.com>
+
+       * reflection.c (mono_image_get_methodspec_token): Use the
+       uninflated signature; fixes gen-33.
+
+2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
+
+       * gc.c threads.c: Make the finalizer thread a normal managed thread so
+       the finalizer code can use thread functionality.
+
+       * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
+       the finalizer thread.
+
+       * threads.c: Make some functions more robust.
+
+       * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
+
+       * metadata.h: Add new marshalling conventions.
+
+       * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
+       stringbuilder marshalling. Fixes #53700.
+
+       * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
+
+       * reflection.c (mono_image_get_type_info): Save declarative security
+       info.
+
+       * reflection.c (mono_image_get_field_info): Handle uninitialized 
+       unmanaged fields as well.
+
+       * appdomain.c: Bump corlib version.
+
+2004-02-01  Martin Baulig  <martin@ximian.com>
+
+       * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
+       method type arguments.  
+
+2004-01-30  Duncan Mak  <duncan@ximian.com>
+
+       * marshal.h: Add prototype for
+       "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
+       and
+       "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
+       fix the build.
+
+2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
+
+       * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
+       (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
+
+2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
+
+       * marshal.c (mono_marshal_get_native_wrapper): Add support for
+       custom marshalling of valuetypes.
+
+       * marshal.c: Fix some warnings.
+
+2004-01-29  Martin Baulig  <martin@ximian.com>
+
+       * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
+       for generic method parameters.
+
+       * reflection.c (method_encode_methodspec): Write the uninflated
+       signature into the methodspec table.
+       (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
+       is always the uninflated method.
+       (reflection_methodbuilder_to_mono_method): Copy the generic
+       parameters from the MethodBuilder into `header->gen_params'.
+
+2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
+
+       * class.c (mono_class_from_generic_parameter): Fix warning.
+
+2004-01-27  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_from_generic_parameter): Don't create
+       `klass->methods' here.  
+
+2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
+
+       * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
+       extension since it does not work with libraries named lib<FOO>.dll.so.
+
+2004-01-25  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_inflate_generic_type): Added support for
+       MONO_TYPE_GENERICINST.
+
+       * reflection.c (mono_reflection_inflate_method_or_ctor): Also
+       inflate methods on open constructed types.      
+
+2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * object.c: fire ProcessExit event in the root AppDomain after running
+       Main. Fixes bug #53299.
+
+Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
+
+       * socket-io.c: include the new socket-wrappers.h header.
+       Use the wrappers instead of the unix socket functions to make the code
+       more clear.
+
+2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
+
+       * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
+
+       * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
+       Fixes #22532.
+
+2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c (mono_image_create_pefile): Handle the case when the
+       entry point is not a MethodBuilder.
+
+       * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
+       field to ReflectionMethod since it is not allways a builder.
+
+       * reflection.c (type_get_fully_qualified_name): New helper function to
+       return the fully qualified name of a type.
+
+       * reflection.c (encode_marshal_blob): Always emit the fully qualified
+       type name for custom marshallers.
+
+       * reflection.c (mono_marshal_spec_from_builder): Ditto.
+
+       * class.c (mono_class_setup_vtable): If a parent class already 
+       implements an interface, use the implementing methods from that class.
+       Fixes #53148.
+
+2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * threadpool.c: just return instead of ExitThread to allow for thread
+       clean up earlier.
+
+2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
+
+       * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
+       when closing resource modules.
+
+       * reflection.c (mono_image_create_pefile): Handle the case when the
+       entry point is not a MethodBuilder.
+
+       * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
+       field to ReflectionMethod since it is not allways a builder.
+
+2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
+
+       * marshal.c (mono_marshal_get_managed_wrapper): 
+       mono_marshal_alloc takes native int so CONV_I
+       the arg for 64bits.
+
 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
 
        * reflection.c (fixup_cattrs): New function to fixup the methoddef