+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 ().
+
+ * appdomain.c (mono_runtime_is_shutting_down): New helper function to
+ determine if the runtime is shutting down.
+
+2003-12-16 Jackson Harper <jackson@ximian.com>
+
+ * icall.c: comment out call to mono_runtime_is_shutting_down to
+ fix build.
+
+2003-12-16 Zoltan Varga <vargaz@freemail.hu>
+
+ * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
+ (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
+
+2003-12-15 Bernie Solomon <bernard@ugsolutions.com>
+
+ * reflection.c: move definition of swap_with_size
+ to before its first call
+
+2003-12-15 Zoltan Varga <vargaz@freemail.hu>
+
+ * appdomain.c (mono_runtime_is_shutting_down): New public function.
+
+ * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
+ icall.
+
+ * object.c: Fix warnings.
+
+ * icall.c (ves_icall_Type_Get...): Only consider inherited static
+ members if FlattenHierarchy is set.
+
+ * reflection.c (mono_image_add_decl_security): New function to emit
+ declarative security.
+
+ * reflection.h reflection.c: Add support for declarative security.
+
+ * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
+
+2003-12-13 Zoltan Varga <vargaz@freemail.hu>
+
+ appdomain.c (MONO_CORLIB_VERSION): Bump version number.
+
+ * appdomain.c verify.c: Moved corlib version checking into its own
+ function in appdomain.c since it needs to create vtables etc.
+
+2003-12-13 Patrik Torstensson <p@rxc.se>
+
+ * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this
+ instead of unwrapped server.
+
+2003-12-12 Zoltan Varga <vargaz@freemail.hu>
+
+ * verify.c (check_corlib): Fix field index.
+
+2003-12-10 Zoltan Varga <vargaz@freemail.hu>
+
+ * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
+ GetGacPath icall.
+
+2003-12-10 Bernie Solomon <bernard@ugsolutions.com>
+
+ * process.c: (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
+ ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
+ cope with sizeof(size_t) != sizeof(guint32).
+
+2003-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
+ in case of failure.
+
+2003-12-10 Mark Crichton <crichton@gimp.org>
+
+ * icall.c: removed the GetNonZeroBytes. We now handle this case
+ in managed code.
+
+ * rand.c, rand.h: Same here. Also cleaned up the clode slightly.
+
+Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
+
+ * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
+ marked as deleted.
+
+2003-12-09 Zoltan Varga <vargaz@freemail.hu>
+
+ * verify.c (check_corlib): Handle the case when the version field is
+ initialized by a static constructor.
+
+2003-12-08 Patrik Torstensson <p@rxc.se>
+
+ * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
+
+2003-12-08 Martin Baulig <martin@ximian.com>
+
+ * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
+ a MonoReflectionGenericParameter, also take the parameter index
+ and name as arguments.
+ (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
+ (ves_icall_MonoGenericParam_initialize): New interncall.
+ (ves_icall_Type_make_byref_type): New interncall.
+
+ * reflection.h (MonoReflectionGenericParam): Derive from
+ MonoReflectionType, not just from MonoObject. Added `refobj' and
+ `index' fields.
+
+ * reflection.c (mono_reflection_define_generic_parameter): Create
+ and return a new MonoReflectionGenericParam; don't initialize the
+ constraints here.
+ (mono_reflection_initialize_generic_parameter): New public method;
+ initializes the constraints and creates the `param->pklass'.
+
+2003-12-08 Zoltan Varga <vargaz@freemail.hu>
+
+ * reflection.h reflection.c: Use the new fields 'num_types',
+ 'num_fields' and 'num_methods' to track the number of types etc.
+
+ * verify.c (check_corlib): Check corlib version number.
+
+2003-12-07 Zoltan Varga <vargaz@freemail.hu>
+
+ * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
+ function works on all methods.
+
+2003-12-07 Lluis Sanchez Gual <lluis@ximian.com>
+
+ * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
+ * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
+ the custom_type_info flag of the transparent proxy.
+ * object.c: Added method mono_object_isinst_mbyref for casting mbyref
+ objects that supports IRemotingTypeInfo.
+ * object.h: Added custom_type_info field in transparent proxy.
+
+2003-12-06 Martin Baulig <martin@ximian.com>
+
+ * class.c (mono_class_create_from_generic): Removed.
+ (mono_class_from_generic): Check `ginst->klass' before doing
+ anything else. This is important to fully support "recursive"
+ generic types.
+
+ * metadata.c (do_mono_metadata_parse_generic_inst): Create an
+ empty `generic_inst->klass' before doing anything else.
+
+2003-12-06 Dick Porter <dick@ximian.com>
+
+ * verify.c:
+ * object.h:
+ * icall.c:
+ * locales.c: Use C structs to access class fields. Don't do a
+ conversion between MonoString and UChar because both are
+ platform-endian UTF-16. Compare now takes startindex and count
+ parameters. Add a char overload for IndexOf. Speed up the
+ invariant string IndexOf.
+
+2003-12-05 Zoltan Varga <vargaz@freemail.hu>
+
+ * Makefile.am (monosn_LDADD): Fix parallel build.
+
+2003-12-04 Martin Baulig <martin@ximian.com>
+
+ * icall.c
+ (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
+ (ves_icall_Type_make_array_type): New interncall.
+
+2003-12-04 Martin Baulig <martin@ximian.com>
+
+ * locales.c: also change it in the !HAVE_ICU case.
+
+2003-12-04 Dick Porter <dick@ximian.com>
+
+ * icall.c:
+ * locales.c: construct_compareinfo is now in CompareInfo, not
+ CultureInfo.
+
+2003-12-04 Zoltan Varga <vargaz@freemail.hu>
+
+ * image.c (mono_image_load_file_for_image): Cache loaded images in the
+ image->files array.
+
+ * image.c (load_class_name): Load class names from the EXPORTEDTYPES
+ table as well.
+
+ * assembly.c (mono_assembly_load_references): Only load references
+ once.
+
+ * class.c (mono_class_from_name): Avoid linear search of the
+ EXPORTEDTYPE table.
+
+ * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
+
+2003-12-03 Zoltan Varga <vargaz@freemail.hu>
+
+ * image.h (MonoImage): Add 'field_cache' field.
+
+ * loader.c (mono_field_from_token): Cache field lookups.
+
+ * reflection.c (mono_module_get_object): Fix name property.
+
+ * icall.c (ves_icall_get_enum_info): Update after changes to
+ mono_metadata_get_constant_index ().
+
+ * icall.c: Get rid of get_type_info icall, use a separate icall for
+ each type property to avoid needless memory allocations. Fixes #51514.
+
+ * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
+ to avoid needless binary searches.
+
+ * class.c (class_compute_field_layout): Move the initialization of
+ field->def_value to mono_class_vtable ().
+
+ * class.c (mono_class_layout_fields): Enable GC aware auto layout for
+ non-corlib types.
+
+ * object.c (mono_object_allocate): Make it inline.
+
+ * object.c (mono_object_allocate_spec): Make it inline.
+
+2003-12-02 Dick Porter <dick@ximian.com>
+
+ * locales.c (create_NumberFormat): NumberFormatInfo construction.
+ Patch by Mohammad DAMT (mdamt@cdl2000.com).
+
+2003-12-01 Dick Porter <dick@ximian.com>
+
+ * threads.c: Fix signature and call in CreateMutex and
+ CreateEvent.
+
+2003-12-01 Dick Porter <dick@ximian.com>
+
+ * icall.c:
+ * locales.c: Implement string compares and searching
+
+ * object.h: Add extra Thread field
+
+2003-11-30 Zoltan Varga <vargaz@freemail.hu>
+
+ * reflection.c (fixup_method): Add support for MonoCMethod.
+
+2003-11-28 Zoltan Varga <vargaz@freemail.hu>
+
+ * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
+
+ * reflection.c (assembly_name_to_aname): Allow extra characters in
+ assembly names. Fixes #51468.
+
+2003-11-26 Zoltan Varga <vargaz@freemail.hu>
+
+ * exception.c (mono_exception_from_name_domain): New helper function.
+
+ * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
+ exception object in the correct domain.
+
+ * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix
+ formatting + make a copy a the input data.
+
+ * loader.c (mono_get_method_from_token): Methods which contain
+ native code do not have entries in the ImplMap.
+
+ (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
+ Thanks to Gonzalo for spotting this.
+
+ * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
+ patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
+
+ * assembly.h (mono_assembly_load_from): Split the second part of
+ assembly loading into a new public function.
+
+ * exception.h (mono_get_exception_bad_image_format): New function.
+
+2003-11-24 Zoltan Varga <vargaz@freemail.hu>
+
+ icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
+ Enumerate all modules inside a dynamic assembly. Fixes #51293.
+
+ * icall.c: Add new icall for creating dynamic methods.
+
+ * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
+
+ * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
+
+ * reflection.c (mono_reflection_create_dynamic_method): New icall to
+ create a dynamic method.
+
+ * reflection.c (resolve_object): New helper function.
+
+ * reflection.c: Generalize ReflectionMethodBuilder and the functions
+ which manipulate it so they can also work on dynamic methods.
+
+ * reflection.c (reflection_method_builder_to_mono_method): Avoid
+ creating the MonoReflectionMethodAux structure if it is not needed.
+
+ * reflection.h verify.c: Update after changes to object layout.
+
+ * reflection.c (method_builder_encode_signature): Fix compilation on
+ gcc 2.95.x.
+
+2003-11-21 Lluis Sanchez Gual <lluis@ximian.com>
+
+ * appdomain.h: Added support for context static fields. Added static_data
+ field to MonoAppContext and renamed thread_static_fields to a more
+ generic special_static_fields in MonoAppDomain, since it can now contain
+ context static fields.
+ * domain.c: Updated hashtable name.
+ * object.c: Replaced field_is_thread_static() for a more generic
+ field_is_special_static() which also checks for context static attribute.
+ In mono_class_vtable(), added support for static context fields.
+ * threads.c: Changed methods that manage thread static fields to more
+ generic methods so they can be reused both for thread and context static
+ data.
+ * threads.h: Declared some new methods.
+
+2003-11-21 Zoltan Varga <vargaz@freemail.hu>
+
+ * reflection.h: Update after changes to the managed types.
+
+ * reflection.c (encode_custom_modifiers): New helper function.
+
+ * reflection.c (method_encode_signature): Emit custom modifiers.
+
+ * reflection.c (field_encode_signature): Emit custom modifiers.
+
+2003-11-18 Zoltan Varga <vargaz@freemail.hu>
+
+ * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
+
+ * icall.c (ves_icall_System_ValueType_Equals): New optimized
+ implementation.
+
+ * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New
+ icall.
+
+ * object.c (mono_field_get_value_object): New function.
+
+ * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
+ specific.
+
+2003-11-17 Zoltan Varga <vargaz@freemail.hu>
+
+ * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
+ return a preallocated out-of-memory exception instance.
+
+ * object.c (out_of_memory): Use the new function.
+
+ * metadata.c (mono_metadata_parse_type): Handle the case when the byref
+ flag is before the custom modifiers. Fixes #49802.
+
+2003-11-16 Martin Baulig <martin@ximian.com>
+
+ * class.c (mono_class_is_open_constructed_type): Implemented the
+ MONO_TYPE_GENERICINST case.
+
+2003-11-16 Zoltan Varga <vargaz@freemail.hu>
+
+ * assembly.c (mono_assembly_fill_assembly_name): New function to
+ fill out the MonoAssemblyName structure.
+ (mono_assembly_open): Use the new function.
+
+ * icall.c (fill_reflection_assembly_name): New helper function.
+
+ * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
+ new function.
+
+ * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
+
+2003-11-15 Martin Baulig <martin@ximian.com>
+
+ * class.c (mono_class_is_open_constructed_type): New public
+ function; checks whether a type is an open constructed type,
+ ie. whether it still contains type parameters.
+ (mono_class_inflate_generic_type): If we're a type parameter and
+ the inflated type is also a MONO_TYPE_(M)VAR, return the original
+ type.
+
+ * class.h (MonoGenericInst): Added `guint32 is_open'.
+
+ * loader.c (method_from_methodspec): Check whether we're an open
+ or closed constructed type and set `ginst->is_open'.
+
+ * reflection.c (mono_reflection_bind_generic_parameters): Check
+ whether we're an open or closed constructed type and set
+ `ginst->is_open'.
+ (mono_reflection_inflate_method_or_ctor): Don't inflate methods
+ from open constructed types.
+
+2003-11-15 Martin Baulig <martin@ximian.com>
+
+ * reflection.c (mono_reflection_bind_generic_parameters): If we're
+ a generic instance (instead of a generic type declaration) with
+ unbound generic parameters, bind them to our actual types.
+
+2003-11-14 Martin Baulig <martin@ximian.com>
+
+ * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
+
+ * reflection.c (mono_reflection_bind_generic_parameters): If we're
+ an interface type, populate `res->interfaces' with instantiated
+ versions of all the interfaces we inherit.
+
+2003-11-13 Aleksey Demakov <avd@openlinksw.com>
+
+ * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
+ when MONO_PATH is set but doesn't contain the install dir.
+
+2003-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * icall.c:
+ (ves_icall_Type_GetInterfaces): don't return an interface twice when
+ it's also implemented in base classes. Fixes bug #50927.
+
+2003-11-13 Zoltan Varga <vargaz@freemail.hu>
+
+ * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
+ if this method is called from a finalizer. Fixes #50913.
+
+2003-11-12 Miguel de Icaza <miguel@ximian.com>
+
+ * threads.c: Implement VolatileRead/VolatileWrite
+
+ * icall.c: Add new icalls for VolatileRead/VolatileWrite
+
+2003-11-12 Zoltan Varga <vargaz@freemail.hu>
+
+ * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied
+ patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
+ 2.95.3.
+
+ * assembly.c (mono_assembly_open): Fix windows build. Applied patch
+ from Peter Ross (pro@missioncriticalit.com).
+
+2003-11-12 Lluis Sanchez Gual <lluis@ximian.com>
+
+ * icall.c: Added internal call for System.Environment::GetMachineConfigPath
+
+2003-11-12 Zoltan Varga <vargaz@freemail.hu>
+
+ * assembly.c (mono_assembly_load_references): Disable check because it
+ triggers on older corlibs which lots of people have.
+
+2003-11-12 Jackson Harper <jackson@ximian.com>
+
+ * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
+ load corlib.dll if mscorlib.dll is not found.
+ * assembly.h: Remove corlib name define.
+ * class.c:
+ * domain.c:
+ * image.c: Change corlib name to mscorlib.
+
+2003-11-12 Zoltan Varga <vargaz@freemail.hu>
+
+ * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
+
+2003-11-11 Miguel de Icaza <miguel@ximian.com>
+
+ * appdomain.h: Added loader_optimization here to sync with the C#
+ code, and add disallow_binding_redirects field.
+
+2003-11-11 Zoltan Varga <vargaz@freemail.hu>
+
+ * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
+
+ * reflection.c (mono_image_build_metadata): Fix crash on modules
+ with no types.
+
+ * reflection.h (MonoMethodInfo): Track changes to the managed structure.
+
+ * icall.c (ves_icall_get_method_info): Return callingConvention as
+ well.
+
+ * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add
+ namespaces from the EXPORTEDTYPE table as well.
+
+ * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
+ from all modules inside the assembly.
+
+2003-11-11 Martin Baulig <martin@ximian.com>
+
+ * reflection.c (mono_reflection_bind_generic_parameters): Make
+ this work for interfaces.
+
+2003-11-11 Martin Baulig <martin@ximian.com>
+
+ * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
+
+2003-11-11 Martin Baulig <martin@ximian.com>
+
+ * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
+ "MonoInflatedMethod" and "MonoInflatedCtor".
+
+2003-11-11 Zoltan Varga <vargaz@freemail.hu>
+
+ * reflection.c (resolution_scope_from_image): Use the assembly table
+ from the manifest module, since other modules don't have it.
+
+ * debug-helpers.c (mono_type_full_name): New helper function.
+
+ * image.h (MonoAssembly): Change 'dynamic' to a boolean.
+
+ * image.c (mono_image_load_file_for_image): New public function which
+ is a replacement for the load_file_for_image in class.c.
+
+ * assembly.c (mono_assembly_load_module): A wrapper for the function
+ above which does assembly association and reference loading too.
+
+ * class.c (mono_class_from_name): Call mono_assembly_load_module.
+
+2003-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * appdomain.c: not all of the attributes for the full assembly name
+ are required and the order doesn't matter. Fixes bug #50787.
+
+2003-11-10 Dick Porter <dick@ximian.com>
+
+ * locales.c: Use platform-endian UTF16
+
+2003-11-10 Zoltan Varga <vargaz@freemail.hu>
+
+ * reflection.c: Emit FILE and EXPORTEDTYPE tables.
+
+2003-11-10 Martin Baulig <martin@ximian.com>
+
+ * metadata.c
+ (mono_metadata_load_generic_params): Make this actually work.
+
+ * reflection.c (mono_reflection_bind_generic_parameters): If our
+ parent is a generic instance, pass all the `types' to it, no
+ matter whether it has the same number of type parameters or not.
+
+2003-11-10 Zoltan Varga <vargaz@freemail.hu>
+
+ * reflection.c: Emit FILE and EXPORTEDTYPE tables.
+
+ * assembly.c (mono_assembly_load_references): Move the image<->assembly
+ assignment code to this function so it gets called recursively for all
+ modules.
+
+ * image.c (load_modules): Remove the assembly assignment since it is
+ now done by mono_assembly_load_references.
+
+ * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
+ Add 'module' argument.
+ (mono_module_get_types): New helper function.
+ (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
+
+2003-11-08 Martin Baulig <martin@ximian.com>
+
+ * class.c (mono_class_inflate_generic_method): Interface method
+ don't have a header.
+
+ * reflection.c (mono_image_get_methodspec_token): Take an
+ additional `MonoGenericInst *' argument instead of reading it from
+ the header; this is necessary to support interfaces.
+ (mono_image_create_token): Pass the `MonoGenericInst *' from the
+ MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
+ (inflated_method_get_object): Take an additional `MonoGenericInst *'
+ argument.
+
+ * reflection.h (MonoReflectionInflatedMethod): Added
+ `MonoGenericInst *ginst'.
+
+2003-11-07 Zoltan Varga <vargaz@freemail.hu>
+
+ * gc.c (mono_domain_finalize): Fix compilation for no GC case.
+
+2003-11-06 Zoltan Varga <zovarga@ws-zovarga2>
+
+ * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
+
+2003-11-06 Zoltan Varga <vargaz@freemail.hu>
+
+ * reflection.c
+ (reflection_methodbuilder_from_method_builder):
+ (reflection_methodbuilder_from_ctor_builder): New helper functions to
+ initialize a ReflectionMethodBuilder structure.
+ (mono_image_get_methodbuilder_token):
+ (mono_image_get_ctorbuilder_token): New functions to emit memberref
+ tokens which point to types in another module inside the same assembly.
+
+ * reflection.c: Use the new helper functions.
+
+ * reflection.c (mono_image_basic_init): Initialize basedir and culture.
+
+ * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image
+ instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
+
+ * reflection.c (resolution_scope_from_image): Emit a moduleref if
+ neccesary.
+
+ * reflection.c (mono_image_build_metadata): Emit metadata only for the
+ current module. Emit the manifest only for the main module.
+
+ * reflection.c (mono_image_create_token): Add assertion when a
+ memberref needs to be created.
+
+ * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
+
+ * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a
+ larger buffer for the custom attribute blob. Fixes #50637.
+
+2003-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * threadpool.c: notify listener on async processing handles after
+ invoking the async callback. Thanks to Zoltan.
+
+2003-11-03 Zoltan Varga <vargaz@freemail.hu>
+
+ * reflection.c (create_dynamic_mono_image): Call mono_image_init to
+ avoid code duplication.
+
+ * reflection.h (MonoDynamicImage): New type which is currently unused,
+ but will be used through the ref.emit code in place of
+ MonoDynamicAssembly.
+
+ * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
+ object layout.
+
+ * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
+ a MonoDynamicImage instead of just a MonoImage.
+
+ * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
+ icalls to ModuleBuilder but keep their semantics, so they will work
+ with moduleb->assemblyb. This will change later.
+
+2003-11-03 Zoltan Varga <vargaz@freemail.hu>
+
+ * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
+ object layout.
+
+ * reflection.c (mono_image_build_metadata): Avoid creation of a default
+ main module, since it is now done by the managed code.
+
+2003-11-03 Martin Baulig <martin@ximian.com>
+
+ * reflection.c (mono_reflection_inflate_method_or_ctor): Set
+ `ginst->klass' here.
+ (method_encode_methodspec): Don't use the `ginst->generic_method's
+ klass if it's a generic instance, use `ginst->klass' in this case.
+
+2003-11-03 Martin Baulig <martin@ximian.com>
+
+ * reflection.c (mono_image_get_generic_method_param_info):
+ Removed, use mono_image_get_generic_param_info() instead.
+ (mono_image_get_type_info): Write the GenericParam table before
+ the Method table. This is neccessary because in the GenericParam
+ table, type parameters of the class (ie. '!0' etc.) must come
+ before the ones from its generic methods (ie. '!!0' etc).
+
+2003-11-03 Zoltan Varga <vargaz@freemail.hu>
+
+ * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
+
+2003-11-02 Martin Baulig <martin@ximian.com>
+
+ * reflection.c (create_generic_typespec): Take a
+ `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
+ the generic parameters from it.
+
+2003-11-02 Martin Baulig <martin@ximian.com>
+
+ * reflection.c (fieldref_encode_signature): Take a `MonoType *'
+ instead of a `MonoClassField *' since we just need the type.
+ (create_generic_typespec): New static function. Creates a
+ TypeSpec token for a generic type declaration.
+ (mono_image_get_generic_field_token): New static function.
+ (mono_image_create_token): If we're a FieldBuilder in a generic
+ type declaration, call mono_image_get_generic_field_token() to get
+ the token.
+
+2003-11-02 Martin Baulig <martin@ximian.com>
+
+ * reflection.h
+ (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
+ `MonoReflectionGenericInst *declaring_type' and
+ `MonoReflectionGenericInst *reflected_type' fields.
+
+ * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
+ `MonoReflectionGenericInst *declaring_type' and a
+ `MonoReflectionGenericInst *reflected_type' argument instead of a
+ single `MonoReflectionGenericInst *type' one. Set
+ `res->declaring_type' and `res->reflected_type' from them.
+ (mono_reflection_inflate_field): Likewise.
+
+2003-11-02 Martin Baulig <martin@ximian.com>
+
+ * class.c (mono_class_setup_vtable): Don't store generic methods
+ in the vtable.
+
+2003-11-02 Martin Baulig <martin@ximian.com>
+
+ * reflection.h (MonoReflectionGenericInst): Added
+ `MonoReflectionType *declaring_type'.
+
+ * reflection.c (mono_reflection_bind_generic_parameters): Use
+ `if (tb->parent)' instead of `klass->parent'.
+
+2003-11-01 Zoltan Varga <vargaz@freemail.hu>
+
+ * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
+ with an empty ASSEMBLY table.
+
+ * reflection.c (mono_image_build_metadata): Avoid using the same loop
+ variable in the inner and outer loops.
+
+2003-10-31 Zoltan Varga <vargaz@freemail.hu>
+
+ * metadata.h (mono_metadata_make_token): Put parentheses around macro
+ argument.
+
+ * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
+
+ * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain
+ icalls. Instead, do everything in managed code. This is needed since
+ it is hard to restore the original domain etc. in unmanaged code in the
+ presence of undeniable exceptions.
+
+ * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef):
+ New icalls to push and pop appdomain refs.
+
+2003-10-31 Martin Baulig <martin@ximian.com>
+
+ * class.c (inflate_generic_type): Renamed to
+ mono_class_inflate_generic_type() and made it public.
+
+ * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
+ New interncall.
+
+ * loader.c (mono_field_from_memberref): Also set the retklass for
+ typespecs.
+
+ * fielder.c (mono_image_get_inflated_field_token): New static
+ method; creates a metadata token for an inflated field.
+ (mono_image_create_token, fixup_method): Added support for
+ "MonoInflatedField".
+ (fieldbuilder_to_mono_class_field): New static function.
+ (mono_reflection_inflate_field): New public function.
+
+ * reflection.h
+ (MonoReflectionGenericInst): Added `MonoArray *fields'.
+ (MonoReflectionInflatedField): New typedef.
+
+2003-10-30 Bernie Solomon <bernard@ugsolutions.com>
+
+ * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
+ for Solaris and other platforms without s6_addr16
+
+2003-10-30 Martin Baulig <martin@ximian.com>
+
+ * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
+ argument instead of two.
+ (mono_class_inflate_generic_signature): Likewise.
+ (inflate_generic_header): Likewise.
+ (mono_class_inflate_generic_method): Likewise. In addition, if
+ `ginst->klass' is set, it becomes the new `method->klass'.
+
+ * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
+ field.
+
+ * reflection.c (encode_generic_method_sig): Write a 0xa as the
+ first byte. [FIXME]
+ (method_encode_methodspec): If we have generic parameters, create
+ a MethodSpec instead of a MethodRef.
+ (fixup_method): Added support for "MonoInflatedMethod" and
+ "MonoInflatedCtor".
+ (mono_image_create_token): Added support for "MonoInflatedMethod"
+ and "MonoInflatedCtor".
+ (inflated_method_get_object): New static function; returns a
+ managed "System.Reflection.MonoInflatedMethod" object.
+ (mono_reflection_bind_generic_method_parameters): Return a
+ `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
+ (mono_reflection_inflate_method_or_ctor): Likewise.
+ (mono_image_get_generic_method_param_info): Initialize unused
+ fields to zero.
+ (mono_image_get_generic_param_info): Likewise.
+
+ * reflection.h (MonoReflectionInflatedMethod): New public
+ typedef. Corresponds to the managed "S.R.MonoInflatedMethod" and
+ "S.R.MonoInflatedCtor" classes.
+
+ * loader.c (method_from_memberref): If we're a TypeSpec and it
+ resolves to a generic instance, inflate the method.
+
+2003-10-28 Dick Porter <dick@ximian.com>
+
+ * object.c (mono_runtime_run_main): Convert command-line arguments
+ into utf8, falling back to the user's locale encoding to do so.
+
+2003-10-27 Zoltan Varga <vargaz@freemail.hu>
+
+ * loader.c (mono_get_method_from_token): Avoid looking up the icalls
+ at this time.
+
+ * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
+
+ * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
+ up icalls at method definition time. Partially fixes #33569.
+
+2003-10-25 Zoltan Varga <vargaz@freemail.hu>
+
+ * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
+ marshalling of arrays. Fixes #50116.
+
+ * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
+
+ * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
+ points to a vtable in the dying appdomain.
+
+ * appdomain.c (mono_domain_unload): Move the notification of OnUnload
+ listeners into unmanaged code inside the lock.
+
+ * object.c (mono_class_vtable): Turn off typed allocation in non-root
+ domains and add some comments.
+
+2003-10-25 Martin Baulig <martin@ximian.com>
+
+ * class.h (MonoGenericInst): Added `MonoClass *klass' field.
+
+ * image.h (MonoImage): Added `GHashTable *typespec_cache'.
+
+ * metadata.c (mono_metadata_parse_generic_inst): Renamed to
+ `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
+ currently parsing. Create the generic class and store it in
+ `generic_inst->klass' before parsing the type arguments. This is
+ required to support "recursive" definitions; see mcs/tests/gen-23.cs
+ for an example.
+ (mono_type_create_from_typespec): Use a new `image->typespec_cache'
+ to support recursive typespec entries.
+
+ * class.c (mono_class_setup_parent): If our parent is a generic
+ instance, we may get called before it has its name set.
+ (mono_class_from_generic): Splitted into
+ mono_class_create_from_generic() and mono_class_initialize_generic().
+
+2003-10-25 Martin Baulig <martin@ximian.com>
+
+ * icall.c (ves_icall_Type_BindGenericParameters): Return a
+ `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
+ ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
+ ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
+
+ * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
+ (create_typespec): Likewise.
+ (mono_reflection_bind_generic_parameters): Return a
+ `MonoReflectionGenericInst *' instead of a `MonoClass *'.
+ (mono_reflection_inflate_method_or_ctor): New public function.
+
+ * reflection.h (MonoReflectionGenericInst): New typedef.
+
+2003-10-24 Zoltan Varga <vargaz@freemail.hu>
+
+ * object.c (mono_class_proxy_vtable): Run the whole vtable construction
+ inside the domain lock. Fixes #49993.
+
+ * object.c (mono_class_vtable): When typed allocation is used,
+ allocate vtables in the GC heap instead of in the mempool, since the
+ vtables contain GC descriptors which are used by the collector even
+ after the domain owning the mempool is unloaded.
+
+ * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
+
+ * domain.c (mono_domain_unload): Rename to mono_domain_free to better
+ reflect what it does. Also invalidate mempools instead of freeing
+ them if a define is set.
+
+ * appdomain.h (MonoAppDomainState): New enumeration to hold the state
+ of the appdomain.
+
+ * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
+ hold the finalizable objects in this domain.
+
+ * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
+ appdomain.
+
+ * appdomain.c (mono_domain_set): New function to set the current
+ appdomain, but only if it is not being unloaded.
+
+ * appdomain.c threads.c threadpool.c object.c: Avoid entering an
+ appdomain which is being unloaded.
+
+ * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
+ unloading of the root appdomain.
+
+ * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
+ icall to execute a method in another appdomain. Intended as a
+ replacement for InternalSetDomain, which can confuse the code
+ generation in the JIT.
+
+ * appdomain.c (mono_domain_is_unloading): New function to determine
+ whenever an appdomain is unloading.
+
+ * appdomain.c (mono_domain_unload): New function to correctly unload
+ an appdomain.
+
+ * assembly.c (mono_assembly_load_references): Check that an assembly
+ does not references itself.
+
+ * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
+ domain manually, it asks the finalizer thread to do it, then waits for
+ the result. Also added a timeout.
+
+ * icall.c: Register the new icalls.
+
+ * threads.h threads.c: Export the mono_gc_stop_world and
+ mono_gc_start_world functions.
+
+ * mempool.h mempool.c (mono_mempool_invalidate): New debugging
+ function to fill out the mempool with 0x2a.
+
+2003-10-22 Zoltan Varga <vargaz@freemail.hu>
+
+ * reflection.h (MonoReflectionMethodAux): New structure to store
+ information which is rarely used, thus is not in the MonoMethod
+ structure.
+
+ * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
+ store the aux info.
+
+ * reflection.c (mono_methodbuilder_to_mono_method): Store param names
+ and marshalling info into the aux structure.
+
+ * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
+ from the aux structure.
+
+ * loader.c (mono_method_get_param_names): Retrieve the param names from
+ the aux structure.
+
+2003-10-21 Zoltan Varga <vargaz@freemail.hu>
+
+ * exception.h exception.c: Add AppDomainUnloadedException && fix
+ warning.
+
+2003-10-21 Dick Porter <dick@ximian.com>
+
+ * socket-io.c
+ (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
+ patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
+
+2003-10-21 Martin Baulig <martin@ximian.com>
+
+ * reflection.c (mono_reflection_bind_generic_parameters):
+ `klass->parent' is NULL for interfaces.
+
+2003-10-21 Martin Baulig <martin@ximian.com>
+
+ * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
+
+2003-10-20 Zoltan Varga <vargaz@freemail.hu>
+
+ * exception.c (mono_exception_from_name_msg): New helper function for
+ creating exceptions and initializing their message field.
+
+ * exception.c: Simplify functions using the new helper.
+
+ * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
+ New function.
+
+ * object.h object.c: Remove G_GNUC_NORETURN from the signature of
+ mono_raise_exception, since otherwise gcc doesn't generate the function
+ epilog for raise_exception, confusing the stack unwinding in the JIT.
+ Fixes #45043.
+
+ * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
+ PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
+ Fixes #49499.
+
+2003-10-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
+ utf8.
+
+2003-10-18 Lluis Sanchez Gual <lluis@ximian.com>
+
+ * icall.c: Removed GetUninitializedObject method because
+ AllocateUninitializedClassInstance does the same.
+
+2003-10-18 Martin Baulig <martin@ximian.com>
+
+ * class.c (inflate_generic_signature): Renamed to
+ mono_class_inflate_generic_signature() and made it public.
+ (my_mono_class_from_generic_parameter): New static function; if we
+ don't already have the generic parameter's MonoClass, create a
+ very simple one which is just used internally in the runtime and
+ not passed back to managed code.
+
+ * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
+
+ * metadata.h (MonoMethodSignature): Moved the
+ `MonoGenericParam *gen_params' to the MonoMethodHeader.
+ (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
+
+ * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
+ ves_icall_MonoMethod_GetGenericArguments(); this is now an
+ interncall on the MonoMethod class, not on MethodInfo.
+ (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
+ calling mono_reflection_bind_generic_method_parameters() directly.
+
+ * loader.c (mono_method_get_signature): If this is a MethodSpec;
+ return the already computed `method->signature'.
+ (method_from_methodspec): New static function to load a method
+ from a MethodSpec entry.
+ (mono_get_method_from_token): Call the new method_from_methodspec()
+ for MethodSpec tokens.
+ (mono_get_method_from_token): If we're a generic method, load the
+ type parameters.
+
+ * reflection.c (mono_image_get_memberref_token): Allow
+ MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
+ table.
+ (fixup_method): Added support for MONO_TABLE_METHODSPEC.
+ (mono_image_create_token): First check whether it's a generic
+ method (so we'd need to create a MethodSpec), then do the other
+ two alternatives.
+ (mono_reflection_bind_generic_method_parameters): Return a
+ `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
+ called directly from the interncall.
+
+2003-10-17 Zoltan Varga <vargaz@freemail.hu>
+
+ * reflection.c (load_public_key): Move loading of the public key
+ into managed code.
+
+ * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
+
+ * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
+ fields.
+
+ * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
+ culture, hash_alg and public_key. Fixes #49555.
+
+2003-10-17 Martin Baulig <martin@ximian.com>
+
+ * class.h (MonoGenericInst): Moved this declaration here and added
+ `MonoMethod *generic_method'.
+
+ * icall.c
+ (ves_icall_MethodInfo_GetGenericArguments): New interncall.
+ (ves_icall_MethodInfo_BindGenericParameters): New interncall.
+
+ * metadata.c (mono_metadata_type_equal): Two types of
+ MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
+ index; ie. don't compare the address of the `MonoGenericParam'
+ structure.
+ (mono_metadata_load_generic_params): Removed the `MonoMethod
+ *method' argument.
+
+ * metadata.h (MonoGenericInst): Moved declaration to class.h.
+ (MonoMethodHeader): Added `MonoGenericInst *geninst'.
+
+ * reflection.c (method_encode_signature): Encode the number of
+ generic parameters.
+ (encode_generic_method_sig): New static function.
+ (method_encode_methodspec): New static function; creates an entry
+ in the MethodSpec table for a generic method.
+ (mono_image_get_methodspec_token): New static function.
+ (mono_image_create_token): Call mono_image_get_methodspec_token()
+ for generic methods.
+ (mono_reflection_bind_generic_method_parameters): New public
+ function. Instantiates a generic method.
+
+2003-10-16 Martin Baulig <martin@ximian.com>
+
+ * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
+ *gen_params' here from MonoMethodHeader.
+
+ * metadata.c (mono_metadata_parse_method_signature): If we have
+ generic parameters, initialize `method->gen_params' and then set
+ the correct `type->data.generic_param' in all the parameters.
+
+2003-10-16 Zoltan Varga <vargaz@freemail.hu>
+
+ * threads.c (mono_threads_get_default_stacksize): New function to
+ return the default stacksize.
+
+ * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
+ termination of the finalizer thread, since the previous method had
+ race conditions. Fixes #49628.
+
+ * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
+ as for the other managed threads.
+
+2003-10-16 Martin Baulig <martin@ximian.com>
+
+ * class.c (inflate_generic_signature): Copy `generic_param_count'
+ and `gen_params'.
+
+ * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
+ New interncall.
+
+ * metadata.c (mono_metadata_parse_method_signature): Actually set
+ the `method->generic_param_count' here.
+ (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
+
2003-10-15 Zoltan Varga <vargaz@freemail.hu>
+ * object.h: Add a new field to TypedRef to simplify the implementation
+ of the REFANY opcodes in the JIT.
+
+ * icall.c: Make use of the new field.
+
* metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
dynamically.