2004-02-02 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / metadata / ChangeLog
index 2e0c2ad99e9cd4996a4ca846fdea884d7cc86642..b10c39482168bf21496505279732ee199c710886 100644 (file)
@@ -1,5 +1,440 @@
+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.
+
+       * 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
+       tokens in the cattr table. Fixes #53108.
+
+2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * loader.c: don't trim ".dll" before looking up in the config file.
+       Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
+
+2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
+
+       * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
+       Return the module which contains the resource as well.
+       (ves_icall_System_Reflection_Module_Close): New icall.
+
+       * appdomain.c: Bump corlib version number.
+
+       * image.c (mono_image_addref): New public function.
+
+       * assembly.c: Call mono_image_addref.
+
+       * reflection.c (mono_module_get_object): Increase reference count of 
+       the image.
+
+       * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
+       Fixes #22532.
+
+       * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
+       Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
+       proper exceptions on DllImport problems.
+
+Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
+
+       * class.c, metadata.c: eliminate CSIZE macro.
+
+2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
+
+       * icall.c: Added ves_icall_type_IsInstanceOf internal call.
+       * object.h: Added async_callback field in MonoAsyncResult.
+       * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
+       * verify.c: Added async_callback in MonoAsyncResult layout.
+
+2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c (mono_reflection_get_custom_attrs): Add support
+       for Modules.
+
+2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
+
+       * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
+       marshalling.
+       (mono_marshal_method_from_wrapper): Add null pointer check.
+
+2004-01-16  Martin Baulig  <martin@ximian.com>
+
+       * debug-mono-symfile.h: Set version number to 36 and reflect
+       latest symbol writer changes.
+
+2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
+
+       * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
+       multi-dimensional arrays.
+       (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
+       (mono_class_from_mono_type): Use bounded_array_class_get.
+       
+       * class.c (mono_bounded_array_class_get): New function which takes
+       a 'bounded' bool argument to distinguish vectors from one dimensional
+       arrays.
+
+       * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
+       bounded_array_class_get if the array has bounds.
+
+       * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
+       Search modules loaded using AssemblyBuilder:AddModule as well.
+
+2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * appdomain.c: increased corlib version.
+       * filewatcher.c: removed g_print.
+       * icall.c:
+       (get_property_info): only allocate what is actually requested.
+       (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
+
+2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * Makefile.am: added filewatcher.[ch]
+       * filewatcher.[ch]: FileSystemWatcher runtime support.
+       * icall.c: added new FSW icalls.
+
+Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
+
+       * string-icalls.c: fix stringbuilder regression as suggested by
+       Iain McCoy <iain@mccoy.id.au>.
+
+2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
+
+       * process.c (process_read_stringtable_block): Recognize '007f' as
+       a language neutral stringtable block.
+
+2004-01-12  Patrik Torstensson
+
+       * object.h (MonoStringBuilder) : Changed layout to support our
+       new stringbuilder class.
+       * marshal.c: Change marshalling to support the new layout of 
+       string builder.
+       * appdomain.c: increased version number because new layout of
+       string builder.
+
+2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
+
+       * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
+       assembly name as an string instead of an AssemblyName, since it is
+       easier to extract info from it.
+
+       * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
+       the culture subdirectories too. Fixes #52231.
+
+2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
+       It takes 2 new parameters with an optional name for the method to look
+       for and case ignoring info.
+
+       * threadpool.c: removed unused variable.
+
+2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
+       It takes 2 new parameters with an optional name for the property to look
+       for and case ignoring info.
+       Fixes bug #52753.
+
+2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
+       Fix #52451.
+
+2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * appdomain.c:
+       * assembly.c: escape the uri before passing it to g_filename_from_uri.
+       Fixes bug #52630.
+
+2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.c: Add support for more than one unmanaged resource.
+
+       * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
+       in field->def_value, as done in all other cases.
+
+       * reflection.c (mono_reflection_get_custom_attrs): Add support for
+       TypeBuilders.
+
+       * reflection.c (mono_reflection_create_runtime_class): Remove 
+       errorneous assignment to klass->element_class, since it is already
+       done in mono_reflection_setup_internal_class.
+
+2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * gc.c: added missing LeaveCriticalSection.
+       * icall.c: indented a couple of lines.
+       * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
+       if we call EndInvoke inside a callback. Fixes bug #52601.
+
+2004-01-07  Martin Baulig  <martin@ximian.com>
+
+       * mono-debug-debugger.h
+       (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
+
+2004-01-06  Miguel de Icaza  <miguel@ximian.com>
+
+       * appdomain.c: Use messages in NotImplementedException.
+
+       * exception.c (mono_get_exception_not_implemented): Now this takes
+       a message argument.
+
+       * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
+       exception instead of g_asserting an aborting when something is not
+       implemented.
+
+       Add some inline docs.
+
+2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
+
+       * reflection.h: Update after changes to object layout.
+
+       * reflection.c: Implement saving of unmanaged aka win32 resources.
+
+       * appdomain.c: Bump version number.
+
+       * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
+       Handle missing domains gracefully.
+
+2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
+
+       * file-io.c : On Windows, there are much more invalid_path_chars.
+
+Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
+
+       * class.h, object.c: prepare for GetType () speedup.
+
+2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
+
+       * profiler.c: workaround for --profile null reference exception on
+         cygwin. Patch by Patrik Torstensson.
+
+2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
+
+       * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
+       make work for unaligned access.
+
+Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
+
+       * class.c: small cleanup (class->fields [i] -> field).
+       * image.c: check address of metadata is valid.
+
+2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
+
+       * assembly.h assembly.c (mono_assembly_loaded): New public function to
+       search the list of loaded assemblies.
+
+       * reflection.c (mono_reflection_type_from_name): Use 
+       mono_assembly_loaded instead of mono_image_loaded.
+
+       * reflection.c: Fix warnings.
+
+2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
+
+       * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
+       is dynamic. This is needed since an assembly can contain both dynamic and
+       non-dynamic images.
+
+       * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
+       assembly->dynamic.
+
+       * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
+
+       * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
+       to store modules loaded using AddModule.
+
+       * reflection.c (mono_image_fill_file_table): Generalize this so it works
+       on Modules.
+
+       * reflection.c (mono_image_fill_export_table_from_class): New helper function.
+
+       * reflection.c (mono_image_fill_export_table_from_module): New function to
+       fill out the EXPORTEDTYPES table from a module.
+
+       * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
+       into a separate function. Also handle loaded non-dynamic modules.
+
+       * reflection.c (mono_image_basic_init): Fix memory allocation.
+
+       * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
+
+       * assembly.c (mono_assembly_load_references): Make this public.
+
+2003-12-19  Martin Baulig  <martin@ximian.com>
+
+       * class.c (mono_class_initialize_generic): Made this static, take
+       a `MonoGenericInst *' instead of a `MonoClass *'.
+       (mono_class_from_generic): Call mono_class_initialize_generic()
+       unless we're already initialized or being called from
+       do_mono_metadata_parse_generic_inst().
+
+       * class.h (MonoGenericInst): Added `initialized' and
+       `init_pending' flags.
+
+       * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
+       `mono_class_init (gklass)' or mono_class_initialize_generic()
+       here; set `generic_inst->init_pending' while parsing the
+       `type_argv'.
+
+2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
+
+       * locales.c: include string.h for memxxx prototypes
+
+2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
+
+       * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
+       constructor when accessing literal fields.
+
 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
 
+       * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
+
+       * reflection.c (assembly_add_resource_manifest): New function to fill
+       the MANIFESTRESOURCE table.
+
+       * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
+
+       * reflection.h: Update to changes in class layout.
+
        * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
        Reenable call to mono_runtime_is_shutting_down ().