X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2FChangeLog;h=5f9d48644f0bf31753c4fd75f0c17c0c2a2086e6;hb=75c9137998ed0b72d877f86e060faa0371384f44;hp=6a476a9ae00ff8f8e68bc447b5543f22d2359144;hpb=e24c138562c9d00641b6fc5e12bbf43b6875a9d7;p=mono.git diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index 6a476a9ae00..b10c3948216 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,7 +1,1522 @@ +2004-02-02 Zoltan Varga + + * 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 + + * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for + method type arguments. + +2004-01-30 Duncan Mak + + * 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 + + * 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 + + * marshal.c (mono_marshal_get_native_wrapper): Add support for + custom marshalling of valuetypes. + + * marshal.c: Fix some warnings. + +2004-01-29 Martin Baulig + + * 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 + + * class.c (mono_class_from_generic_parameter): Fix warning. + +2004-01-27 Martin Baulig + + * class.c (mono_class_from_generic_parameter): Don't create + `klass->methods' here. + +2004-01-26 Zoltan Varga + + * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll + extension since it does not work with libraries named lib.dll.so. + +2004-01-25 Martin Baulig + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * threadpool.c: just return instead of ExitThread to allow for thread + clean up earlier. + +2004-01-21 Zoltan Varga + + * 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 + + * 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 + + * reflection.c (fixup_cattrs): New function to fixup the methoddef + tokens in the cattr table. Fixes #53108. + +2004-01-20 Gonzalo Paniagua Javier + + * 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 + + * 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 . Throw + proper exceptions on DllImport problems. + +Mon Jan 19 17:50:27 CET 2004 Paolo Molaro + + * class.c, metadata.c: eliminate CSIZE macro. + +2004-01-19 Lluis Sanchez Gual + + * 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 + + * reflection.c (mono_reflection_get_custom_attrs): Add support + for Modules. + +2004-01-16 Zoltan Varga + + * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder + marshalling. + (mono_marshal_method_from_wrapper): Add null pointer check. + +2004-01-16 Martin Baulig + + * debug-mono-symfile.h: Set version number to 36 and reflect + latest symbol writer changes. + +2004-01-16 Zoltan Varga + + * 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 + + * 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 + + * 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 + + * string-icalls.c: fix stringbuilder regression as suggested by + Iain McCoy . + +2004-01-13 Zoltan Varga + + * 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 + + * 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 + + * 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 + + * 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 + + * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net). + Fix #52451. + +2004-01-08 Gonzalo Paniagua Javier + + * appdomain.c: + * assembly.c: escape the uri before passing it to g_filename_from_uri. + Fixes bug #52630. + +2004-01-07 Zoltan Varga + + * 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 + + * 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 + + * mono-debug-debugger.h + (MonoDebuggerIOLayer): Added `GetCurrentThreadID'. + +2004-01-06 Miguel de Icaza + + * 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 + + * 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 + + * file-io.c : On Windows, there are much more invalid_path_chars. + +Fri Jan 2 13:35:48 CET 2004 Paolo Molaro + + * class.h, object.c: prepare for GetType () speedup. + +2003-12-24 Atsushi Enomoto + + * profiler.c: workaround for --profile null reference exception on + cygwin. Patch by Patrik Torstensson. + +2003-12-22 Bernie Solomon + + * 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 + + * class.c: small cleanup (class->fields [i] -> field). + * image.c: check address of metadata is valid. + +2003-12-22 Zoltan Varga + + * 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 + + * 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 + + * 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 + + * locales.c: include string.h for memxxx prototypes + +2003-12-19 Zoltan Varga + + * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class + constructor when accessing literal fields. + +2003-12-17 Zoltan Varga + + * 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 + + * icall.c: comment out call to mono_runtime_is_shutting_down to + fix build. + +2003-12-16 Zoltan Varga + + * 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 + + * reflection.c: move definition of swap_with_size + to before its first call + +2003-12-15 Zoltan Varga + + * 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 + + 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 + + * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this + instead of unwrapped server. + +2003-12-12 Zoltan Varga + + * verify.c (check_corlib): Fix field index. + +2003-12-10 Zoltan Varga + + * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New + GetGacPath icall. + +2003-12-10 Bernie Solomon + + * 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 + + * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError + in case of failure. + +2003-12-10 Mark Crichton + + * 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 + + * class.h, class.c, icall.c, marshal.c, object.c: ignore fields + marked as deleted. + +2003-12-09 Zoltan Varga + + * verify.c (check_corlib): Handle the case when the version field is + initialized by a static constructor. + +2003-12-08 Patrik Torstensson + + * rand.c (InternalGetBytes): Implemented win32 version with cryptapi + +2003-12-08 Martin Baulig + + * 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 + + * 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 + + * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this + function works on all methods. + +2003-12-07 Lluis Sanchez Gual + + * 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 + + * 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 + + * 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 + + * Makefile.am (monosn_LDADD): Fix parallel build. + +2003-12-04 Martin Baulig + + * 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 + + * locales.c: also change it in the !HAVE_ICU case. + +2003-12-04 Dick Porter + + * icall.c: + * locales.c: construct_compareinfo is now in CompareInfo, not + CultureInfo. + +2003-12-04 Zoltan Varga + + * 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 + + * 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 + + * locales.c (create_NumberFormat): NumberFormatInfo construction. + Patch by Mohammad DAMT (mdamt@cdl2000.com). + +2003-12-01 Dick Porter + + * threads.c: Fix signature and call in CreateMutex and + CreateEvent. + +2003-12-01 Dick Porter + + * icall.c: + * locales.c: Implement string compares and searching + + * object.h: Add extra Thread field + +2003-11-30 Zoltan Varga + + * reflection.c (fixup_method): Add support for MonoCMethod. + +2003-11-28 Zoltan Varga + + * 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 + + * 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 + + 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * class.c (mono_class_is_open_constructed_type): Implemented the + MONO_TYPE_GENERICINST case. + +2003-11-16 Zoltan Varga + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * threads.c: Implement VolatileRead/VolatileWrite + + * icall.c: Add new icalls for VolatileRead/VolatileWrite + +2003-11-12 Zoltan Varga + + * 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 + + * icall.c: Added internal call for System.Environment::GetMachineConfigPath + +2003-11-12 Zoltan Varga + + * assembly.c (mono_assembly_load_references): Disable check because it + triggers on older corlibs which lots of people have. + +2003-11-12 Jackson Harper + + * 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 + + * debug-mono-symfile.c: Add patch from FreeBSD ports tree. + +2003-11-11 Miguel de Icaza + + * appdomain.h: Added loader_optimization here to sync with the C# + code, and add disallow_binding_redirects field. + +2003-11-11 Zoltan Varga + + * 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 + + * reflection.c (mono_reflection_bind_generic_parameters): Make + this work for interfaces. + +2003-11-11 Martin Baulig + + * mono-debug.c (mono_debug_add_type): Ignore unknown modules. + +2003-11-11 Martin Baulig + + * reflection.c (mono_reflection_inflate_method_or_ctor): Allow + "MonoInflatedMethod" and "MonoInflatedCtor". + +2003-11-11 Zoltan Varga + + * 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 + + * 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 + + * locales.c: Use platform-endian UTF16 + +2003-11-10 Zoltan Varga + + * reflection.c: Emit FILE and EXPORTEDTYPE tables. + +2003-11-10 Martin Baulig + + * 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 + + * 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 + + * 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 + + * gc.c (mono_domain_finalize): Fix compilation for no GC case. + +2003-11-06 Zoltan Varga + + * appdomain.c (mono_domain_unload): Add a workaround for bug #27663. + +2003-11-06 Zoltan Varga + + * 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 + + * threadpool.c: notify listener on async processing handles after + invoking the async callback. Thanks to Zoltan. + +2003-11-03 Zoltan Varga + + * 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 + + * 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 + + * 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 + + * 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 + + * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469. + +2003-11-02 Martin Baulig + + * reflection.c (create_generic_typespec): Take a + `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get + the generic parameters from it. + +2003-11-02 Martin Baulig + + * 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 + + * 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 + + * class.c (mono_class_setup_vtable): Don't store generic methods + in the vtable. + +2003-11-02 Martin Baulig + + * 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 + + * 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 + + * 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 + + * 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 + + * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix + for Solaris and other platforms without s6_addr16 + +2003-10-30 Martin Baulig + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * exception.h exception.c: Add AppDomainUnloadedException && fix + warning. + +2003-10-21 Dick Porter + + * 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 + + * reflection.c (mono_reflection_bind_generic_parameters): + `klass->parent' is NULL for interfaces. + +2003-10-21 Martin Baulig + + * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR. + +2003-10-20 Zoltan Varga + + * 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 + + * icall.c: OutputDebugStringW expects 16-bit unicode characters, not + utf8. + +2003-10-18 Lluis Sanchez Gual + + * icall.c: Removed GetUninitializedObject method because + AllocateUninitializedClassInstance does the same. + +2003-10-18 Martin Baulig + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 - * class.c (inflate_generic_signature): Copy `generic_param_count'. - (inflate_generic_header): Copy `gen_params'. + * class.c (inflate_generic_signature): Copy `generic_param_count' + and `gen_params'. * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition): New interncall.