diff options
Diffstat (limited to 'mono/metadata/ChangeLog')
-rw-r--r-- | mono/metadata/ChangeLog | 9792 |
1 files changed, 9792 insertions, 0 deletions
diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index 11dd01a2afe..0d96d5596a7 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,3 +1,9795 @@ +2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: use memmove in BlockCopyInternal when the source and + destination arrays are the same. + +2004-11-09 Martin Baulig <martin@ximian.com> + + * class-internals.h (MonoGenericContainer): Removed `method' and + `signature', replaced them with `is_method' and `is_signature' + flags. Added `context'. + + * loader.c (method_from_methodspec): Take a `MonoGenericContext *' + instead of a `MonoGenericContainer *'. + + * metadata.c (mono_metadata_generic_param_equal): Removed the hack + for dynamic type parameters. + (mono_metadata_load_generic_params): Setup `container->context'. + + * reflection.c (mono_reflection_setup_generic_class): Setup + `tb->generic_container->context'. + (do_mono_reflection_bind_generic_parameters): Use + mono_class_inflate_generic_type() to correctly inflate types, + rather than using our own hack just for MONO_TYPE_VAR. + +2004-11-09 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_inflate_generic_method): Small fix; don't + crash here. + + * icall.c + (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types. + (ves_icall_Type_get_IsGenericTypeDefinition): Likewise. + (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise. + (ves_icall_Type_BindGenericParameters): Likewise. + (ves_icall_Type_get_IsGenericInstance): Likewise. + (ves_icall_Type_GetGenericParameterPosition): Likewise. + (ves_icall_MonoType_get_HasGenericArguments): Likewise. + (ves_icall_MonoType_get_IsGenericParameter): Likewise. + (ves_icall_MonoType_get_DeclaringMethod): Likewise. + +2004-11-09 Zoltan Varga <vargaz@freemail.hu> + + * assembly.c (mono_assembly_names_equal): Reenable the comparison of + assembly versions and public key tokens. Fixes #69113. + +Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com> + + * metadata.c: fix bug introduced with the type cache changes + on 2004-11-06. + +Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com> + + * metadata.h, metadata.c, domain-internals.h, marshal.c: include + the MonoClass pointer instead of the token in exception clauses. + * reflection.c: updates for the above and make the code not depend + on the structure of MonoExceptionClause. + +2004-11-08 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): + Add support for dynamic assemblies. Fixes #69114. + + * loader.c (mono_method_get_header): Handle icalls and pinvoke methods. + +2004-11-07 Ben Maurer <bmaurer@ximian.com> + + * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke + since most only those methods use it. the code member of + MonoMethodPInvoke was dead, so that can be removed too. Also, + remove inline_count (again, not used), and move slot so that it + can share bits with some other flags. This saves 8 bytes in the + structure and gives us about 50 kb back for mcs helloworld.cs + + * *.[ch]: Do naming changes for the above. + + * loader.c (mono_method_get_header): Lazily init the header + on first access. + (mono_get_method_from_token): don't init the header here + (mono_free_method): the header may never be allocated + + Overall, this saves 150 kb of unmanaged allocations + for mcs helloworld.cs. That accounts for 10% of the unmanaged + memory at runtime. + + * loader.c, loader.h (mono_method_get_header): new accessor. + + * *.[ch]: use the above method. Prepares us to lazily load + the header. + + * *.[ch]: Clean up all the pesky warnings. gcc now only gives + three warnings, which are actual bugs (see 69206). + + * class-internals.h (MonoMethod): Remove remoting_tramp. It is + unused. Saves a cool 4 bytes / method. + +2004-11-06 Ben Maurer <bmaurer@ximian.com> + + * metadata.c (builtin_types): Add types for System.Object here. + (mono_metadata_parse_type_full): Cache MonoType*'s that are + for a class or valuetype from klass->this_arg or klass->byval_arg. + + On mcs for a hello world, this gets us down from 21836 MonoType's + to 14560. + + (mono_metadata_free_type): Account for the above change. + +2004-11-06 Zoltan Varga <vargaz@freemail.hu> + + * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an + exception instead of asserting if name is null. + (ves_icall_System_AppDomain_GetData): Ditto. + +2004-11-05 Zoltan Varga <vargaz@freemail.hu> + + (ves_icall_get_enum_info): Avoid crash when called on a non-finished + EnumBuilder. + + * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): + Return NULL when the domain does not have entry_assembly set. + + * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): + Add a 'resource_modules' argument. + (ves_icall_type_GetTypeCode): Fix typecode of byref types. + + * reflection.c (mono_reflection_create_runtime_class): Move setting + of wastypebuilder here, so mono_get_type_object () returns a MonoType + for enums too. + + * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior. + (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len): + Throw an ArgumentNullException if 'ptr' is null. + + * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic + assemblies here. Fixes #69020. + +2004-11-05 Geoff Norton <gnorton@customerdna.com> + + * reflection.c (build_compressed_metadata): Fix the previous patch for + big endian systems. GUINT32_FROM_LE isn't needed on strlen and was overwriting + the stack. + +2004-11-04 Zoltan Varga <vargaz@freemail.hu> + + * assembly.c (mono_assembly_names_equal): Allow a match if one of + the cultures is false. Fixes #69090. + + * reflection.c (build_compressed_metadata): Fix invalid memory read + detected by valgrind. + + * reflection.c (mono_reflection_get_type): Avoid triggering a + TypeResolve multiple times for the same type. Fixes #65577. + +2004-11-04 Ben Maurer <bmaurer@ximian.com> + + * marshal.c: Avoid using ldftn to call managed functions. It is + much slower than just a call. + + * reflection.c (mono_module_get_object): free the basename we + allocate here from glib. + + * reflection.c (ensure_runtime_vtable): make sure to free + overrides. Also, we were allocating an array of MonoMethod not an + array of MonoMethod*. + + * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here. + + * image.c (mono_image_close): free image->guid here. + +2004-11-02 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c: Fix some spec conformance issues with the PE file + structures so mcs compiled apps run on the Net 2.0 beta. + +2004-11-01 Zoltan Varga <vargaz@freemail.hu> + + * string-icalls.c (ves_icall_System_String_ctor_encoding): + Implement this. Fixes #67264. + + * debug-helpers.h debug-helpers.c marshal.c: Move + mono_find_method_by_name to debug-helpers.c. + +2004-10-31 Zoltan Varga <vargaz@freemail.hu> + + * object.c (mono_release_type_locks): type_initialization_hash is + a GHashTable. + + * reflection.c object.c object-internals.h: Fix warnings. + + * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties + without accessors. Fixes #61561. + + * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit + application base from the root domain if not set. Fixes #65641. + (mono_runtime_init): Fix warning. + +2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: call mono_thread_pool_init. + * threadpool.[ch]: new mono_thread_pool_init that sets the max. number + of worker threads based on the number of CPUs and the environment + variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25) + for non-windows (windows) systems. + +2004-10-27 Chris Toshok <toshok@ximian.com> + + * mono-debug-debugger.c (write_class): don't call mono_class_init + here, as even with the check for (!klass->init_pending), we get + into a situation where we're hitting cycles in class + initialization. Fixes #68816. + +2004-10-25 Zoltan Varga <vargaz@freemail.hu> + + * image.c: Avoid overwriting values in the loaded_images_hash when an + assembly is loaded multiple times. Fixes #61152. + + * assembly.c (mono_assembly_names_equal): Compare the cultures as well, + so multiple satellite assemblies for the same name can be loaded. + Fixes #68259. + + * mono_domain_assembly_preload: Actually return the loaded assembly, + not NULL. + + * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types. + (ves_icall_type_is_assignable_from): Ditto. Fixes #68582. + + * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so + pending finalizers are not invoked after the appdomain has been + unloaded. Fixes #67862. + +2004-10-22 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c + (mono_debugger_runtime_invoke): Don't box valuetypes. + +2004-10-22 Chris Toshok <toshok@ximian.com> + + * mono-debug-debugger.c (do_write_class): handle .cctors too, and + don't hide private methods. + +2004-10-22 Sebastien Pouliot <sebastien@ximian.com> + + * icall.c: Allows the runtime to "share" (when known) the public key + token of an assembly. This avoid the need to recalculate the token + (from the public key) in managed code. + +2004-10-21 Chris Toshok <toshok@ximian.com> + + * debug-helpers.c (append_class_name): argh, revert last patch. + +2004-10-21 Chris Toshok <toshok@ximian.com> + + * debug-helpers.c (append_class_name): use '+' as the delimiter, + not '/', so that it matches what the debugger uses to look up + methods. + +2004-10-21 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c (mono_debugger_throw_exception): New + public method; this is called each time an exception is thrown and + allows the debugger to use exception catch points. + +2004-10-21 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c (mono_debugger_handle_exception): Write + the stack pointer and the exception object in some struct and pass + that to the debugger. + +2004-10-21 Chris Toshok <toshok@ximian.com> + + * mono-debug-debugger.c (do_write_class): add instance/static + event support. We don't expose "raise" or "other" yet. + (event_is_static): new method. + +2004-10-20 Bernie Solomon <bernard@ugsolutions.com> + + * mono-debug-debugger.c + (mono_debugger_handle_exception): Remove + bogus return value for fussy compilers. + +2004-10-20 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c + (mono_debugger_unhandled_exception): Added `gpointer stack' argument. + (mono_debugger_handled_exception): Likewise. + +2004-10-20 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.h (MonoDebuggerEvent): Added + MONO_DEBUGGER_EVENT_EXCEPTION. + + * mono-debug-debugger.c (mono_debugger_handle_exception): New + public function to send the debugger a notification for an + exception and inform it about a catch/finally clause. + +2004-10-19 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e + Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really + fix 2.95 build. + + * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95. + +2004-10-18 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is + marshalled as [In,Out]. Fixes #58325. + +2004-10-14 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (mono_method_body_get_object): Implement some fields. + +2004-10-12 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_reflection_bind_generic_parameters): Small + fix, correctly retrieve our parent from a generic instance. + +2004-10-12 Martin Baulig <martin@ximian.com> + + * metadata.c (mono_metadata_generic_param_equal): We always have + an owner. + + * class.c + (mono_class_from_generic_parameter): We need to have an owner. + (my_mono_class_from_generic_parameter): Likewise. + + * reflection.c (mono_reflection_setup_generic_class): Renamed to + mono_reflection_create_generic_class() and added a new + mono_reflection_setup_generic_class(). + (mono_reflection_initialize_generic_param): If we're a nested + generic type and inherited from the containing class, set our + owner to the outer class. + +2004-10-11 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall. + + * reflection.c (mono_method_body_get_object): New function to create + a MethodBody object. + + * object-internals.h object.h: Add MonoReflectionMethodBody structure. + +2004-10-11 Martin Baulig <martin@ximian.com> + + * metadata.c (_mono_metadata_type_equal): Renamed to + do_mono_metadata_type_equal() and made static. + +2004-10-11 Martin Baulig <martin@ximian.com> + + * appdomain.c: Bump corlib version number to 28. + +2004-10-10 Martin Baulig <martin@ximian.com> + + * class-internals.h + (MonoGenericInst): Added `MonoGenericContainer *container'. + (MonoGenericMethod): Likewise. + (MonoGenericContext): Likewise. + (MonoGenericParam): Added `MonoGenericContainer *owner'. + + * metadata.c + (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument. + (do_mono_metadata_parse_generic_inst): Likewise. + (mono_metadata_parse_type_full): New public method. This is the actual + mono_metadata_parse_type() implementation - with an additional + `MonoGenericContainer *' argument. + (mono_metadata_parse_array_full): Likewise. + (mono_metadata_parse_signature_full): Likewise. + (mono_metadata_parse_method_signature_full): Likewise. + (mono_metadata_parse_mh_full): Likewise. + (mono_type_create_from_typespec): Likewise. + (mono_metadata_interfaces_from_typedef_full): New public method; + this is similar to the other _full() methods, but we take a + `MonoGenericContext *' since we have to pass it to mono_class_get_full(). + (mono_metadata_parse_generic_param): Take an additional + `MonoGenericContainer *' argument and lookup the MonoGenericParam + from that container. + (mono_metadata_generic_param_equal): New static method to compare + two type parameters. + (_mono_metadata_type_equal): New static method; takes an + additional `gboolean signature_only' argument - if true, we don't + compare the owners of generic parameters. + (mono_metadata_signature_equal): Call _mono_metadata_type_equal() + with a TRUE argument - do a signature-only comparision. + + * loader.c: Use the new _full() methods and pass the + MonoGenericContainer to them. + + * object-internals.h (MonoReflectionTypeBuilder): Added + `MonoGenericContainer *generic_container' field. + (MonoReflectionMethodBuilder): Likewise. + +2004-10-08 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special + case initial images of dynamic assemblies. + + * reflection.c (mono_image_basic_init): Set 'initial_image' field. + + * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field. + + * reflection.c (mono_reflection_event_builder_get_event_info): Fix + length of event->other array. + (typebuilder_setup_events): Ditto. + + * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to + 'assembly_by_name' and add an 'assemblies' list. + + * assembly.h assembly.c: Add a new search hook for determining whenever + an assembly is already loaded. Use this instead of searching in the + loaded_assemblies list. + + * domain.c appdomain.c: Implement the new search hook so loaded + assemblies are now scoped by appdomain. Fixes #67727. + +2004-10-07 Zoltan Varga <vargaz@freemail.hu> + + * threads.c (mono_thread_attach): Initialize synch_lock field so + mono_thread_detach works again. + + * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with + 'lib' too. Fixes #63130. + +2004-10-06 Jackson Harper <jackson@ximian.com> + + * culture-info-tables.h: regenerated. + +2004-10-06 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_Type_GetInterfaces): Include interfaces + implemented by other interfaces in the result. Fixes #65764. + + * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): + Handle unloadable modules without crashing. + + * image.c (load_modules): Revert the previous patch since modules must + have a fixed index inside the array. + + * image.c (load_modules): Don't include native modules in the modules + array. + +2004-10-05 Zoltan Varga <vargaz@freemail.hu> + + * reflection.h: Add param_defaults field. + + * reflection.c: Add support for parameter defaults in dynamic methods. + Fixes #64595. + + * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of + an empty string when a type has no namespace. Fixes #64230. + +2004-10-04 Sebastien Pouliot <sebastien@ximian.com> + + * tabledefs.h: Added "internal" security actions to support non-CAS + permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. + Note: they do not seems to be used anymore in 2.0 (new metadata format) + +2004-10-04 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_InternalInvoke): Throw an exception when calling + constructor of abstract class. Fixes #61689. + +2004-10-04 Martin Baulig <martin@ximian.com> + + * class-internals.h (MonoGenericContainer): New type. + (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with + `MonoGenericContainer *generic_container'. + (MonoClass): Replaced `gen_params' and `num_gen_params' with + `MonoGenericContainer *generic_container'. + + * metadata.c (mono_metadata_load_generic_params): Return a + `MonoGenericContainer *' instead of a `MonoGenericParam *'; + removed the `num' argument. + +2004-10-03 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support + for dynamic images. + + * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and + machine fields. + + * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields. + + * reflection.c: Save pe_kind and machine values into the generated + image file. + + * appdomain.c: Bump corlib version number. + + * object-internals.h: Reorganize layout of LocalBuilder. + + * class-internals.h class.c (mono_class_get_implemented_interfaces): + New helper function. + + * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the + created MonoType for dynamic types. Fixes #66180. + +2004-10-02 Ben Maurer <bmaurer@ximian.com> + + * threadpool.c: the ares hashtable needs a critical section around it. + this prevents some nasty segfaults + +2004-10-02 Massimiliano Mantione <massi@ximian.com> + + * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe + on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see + bug 67324). + +2004-09-30 Zoltan Varga <vargaz@freemail.hu> + + * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field. + +2004-09-30 Lluis Sanchez Gual <lluis@novell.com> + + * image.c: Always canonicalize image file names, to avoid loading + the same assembly twice when referenced using a relative path. + +2004-09-30 Zoltan Varga <vargaz@freemail.hu> + + * marshal.h marshal.c icall.c: Fix bugs in previous patch. + + * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall. + + * marshal.c: Fix warnings. + +2004-09-29 Geoff Norton <gnorton@customerdna.com> + + * marshal.c (mono_ftnptr_to_delegate): This method was improperly + attempting to marshal the delegate_trampoline as the method_addr. + This patch has a static hashtable of marshalled delegates so that + we can map delegate_trampoline addresses back to delegates. This + allows a delegate passed to managed code to be passed back into native + code. Fixes #67039 + +2004-09-28 Zoltan Varga <vargaz@freemail.hu> + + * icall.c: Add GetFunctionPointerForDelegateInternal icall. + + * reflection.c (method_encode_code): Align method headers properly. + Fixes #66025. + +2004-09-28 Lluis Sanchez Gual <lluis@novell.com> + + * marshal.c: In the runtime invoke wrapper, reset the abort + exception if it is cached. This avoids the automatic rethrowal of + the exception after the catch of the wrapper. Also check for pending + interruptions before calling the managed method. This is done using + the new method emit_thread_force_interrupt_checkpoint, since the + normal checkpoint method is ignored when running the invoke wrapper. + * object.c: If the abort exception is rethrown, set the abort_exc + field of the thread, so it will be rethrown aftere every catch. + * threadpool.c: Only run an interruption checkpoint if what has been + requested is a stop of the thread (aborts will be ignored). + * threads.c: By default, a thread will now never be interrumped while + running the runtime invoke wrapper (this ensures that runtime_invoke + will always return to the caller if an exception pointer is provided). + There is a new special method mono_thread_force_interruption_checkpoint() + to force an interruption checkpoint even if running a protected + wrapper, which is used by the same runtime invoke wrapper to do a check + at a safe point. + +2004-09-28 Lluis Sanchez Gual <lluis@novell.com> + + * object.c, object-internals.h: Implemented mono_release_type_locks, + which releases the cctor locks held by a thread. + * threads.c, threads.h: In thread_cleanup, release cctor locks held + by a thread. Added mono_thread_exit() method to be used to safely stop + a thread. + +2004-09-28 Raja R Harinath <rharinath@novell.com> + + * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): + Move null check before dereference. Avoid indexing beyond the end + of the 'modules' array. + +2004-09-28 Raja R Harinath <rharinath@novell.com> + + * metadata-internals.h (MonoImage): Add module_count field. + * image.c (load_modules): Set image->module_count. + (mono_image_load_file_for_image): Use image->module_count. + * reflection.c (mono_image_load_module): Append to image->modules array + of dynamic assembly. + (mono_module_get_object): Fix loop to actually increment index. + Use image->module_count. + * assembly.c (mono_assembly_load_references): Use image->module_count. + * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): + Likewise. + +2004-09-28 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): + Avoid assert on generic types. + +2004-09-26 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall. + + * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field. + + * reflection.c (mono_reflection_marshal_from_marshal_spec): New + function to convert a MarshalSpec structure to its managed counterpart. + + * reflection.c: Fix warnings. + + * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl + field. + + * icall.c (mono_create_icall_signature): Fix build. + +2004-09-25 Zoltan Varga <vargaz@freemail.hu> + + * icall.c: Add MakePointType icall. + + * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix + warnings. + +2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threadpool.c: reuse allocated slots in the queue. + +2004-09-24 Zoltan Varga <vargaz@freemail.hu> + + * object-internals.h (MonoReflectionDllImportAttribute): New structure. + + * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset. + + * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert + previous change. + + * tabledefs.h: Add constants for pinvoke attributes BestFit and + ThrowOnUnmappableChar. + + * icall.c (ves_icall_Type_GetPacking): New icall. + +2004-09-24 Martin Baulig <martin@ximian.com> + + * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall. + +2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: + (mono_domain_set): allow setting a domain that is being unloaded. + (mono_domain_unload): invoke the DomainUnload callbacks in the domain + being unloaded. + +2004-09-23 Zoltan Varga <vargaz@freemail.hu> + + * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to + the GetCustomAttributes icall. + +2004-09-23 Martin Baulig <martin@ximian.com> + + * object-internals.h (MonoReflectionGenericParam): Replaced + 'has_ctor_constraint', `has_reference_type' and `has_value_type' + with `guint32 attrs'. + +2004-09-23 Martin Baulig <martin@ximian.com> + + * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall. + +2004-09-23 Martin Baulig <martin@ximian.com> + + * object-internals.h (GenericParameterAttributes): New enum. + +2004-09-23 Zoltan Varga <vargaz@freemail.hu> + + * object-internals.h (MonoEventInfo): Add 'other_methods' field. + + * class.c (init_events): Fill out event->other field. + + * class.c: Fix warnings. + + * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field. + +Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * class-internals.h, icall.c, loader.c, loader.h: added a faster stack + walk which doesn't supply the IL offset. + +2004-09-22 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_reflection_setup_internal_class): If we're + System.ValueType, System.Object or System.Enum, set + `klass->instance_size' and create the vtable. + (mono_reflection_create_internal_class): If we're an enum type, + get the base class from our current corlib. + +2004-09-22 Zoltan Varga <vargaz@freemail.hu> + + * reflection.h (MonoResolveTokenError): New type. + + * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New + icall. + + * icall.c: Add an 'error' argument to the ResolveToken icalls. + +2004-09-22 Lluis Sanchez Gual <lluis@novell.com> + + * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute. + Support also calling constructors, but only for already allocated objects. + +2004-09-17 Geoff Norton <gnorton@customerdna.com> + + * reflection.c (type_get_qualified_name): If the klass is null + return the typename to avoid a NullRefEx. + (encode_cattr_value): Get the qualified name of the boxed type, + not the underlying enumtype. Fixes #62984. + +2004-09-21 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c: Fix problems with previous checkin. + +2004-09-21 <vargaz@freemail.hu> + + * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the + existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows. + + * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free. + +2004-09-21 Geoff Norton <gnorton@customerdna.com> + + * icall.c (ves_icall_MonoType_GetElementType): GetElementType + should only return a type for pointers, arrays, and passbyref types. + Fixes bug #63841. + +2004-09-21 Martin Baulig <martin@ximian.com> + + * domain.c (mono_debugger_check_runtime_version): New public + function. + + * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall. + +2004-09-20 Sebastien Pouliot <sebastien@ximian.com> + + * reflection.c: Added missing sort to the declarative security + attributes table. MS implementation stops seeing the attributes if the + token number regress in the table (as shown by ildasm and permview). + +2004-09-20 Zoltan Varga <vargaz@freemail.hu> + + * object-internals.h (MonoReflectionModule): Add 'token' field. + + * reflection.c (mono_reflection_get_token): Add support for Module + and Assembly. + (mono_module_get_object): Set 'token' field. + (mono_module_file_get_object): Set 'token' field. + + * icall.c: Add new Assembly and Module icalls. + + * appdomain.c: Bump corlib version. + +2004-09-19 Zoltan Varga <vargaz@freemail.hu> + + * loader.h loader.c class.h class.c: Add helper functions for obtaining + tokens of metadata objects. + + * reflection.h reflection.c (mono_reflection_get_token): New function + to obtain the token of a metadata object. + + * icall.c: Add icalls for MetadataToken and ModuleHandle methods. + +2004-09-17 Zoltan Varga <vargaz@freemail.hu> + + * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well. + + * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling. + +2004-09-16 Sebastien Pouliot <sebastien@ximian.com> + + * appdomain.c: Bumped MONO_CORLIB_VERSION to 25. + * object-internals.h: Added 3 MonoArray* members to MonoReflection + AssemblyBuilder to access the permissions set in the class lib. + * reflection.c: Added security attributes encoding step in + mono_image_build_metadata. + * tabledefs.h: Added new security actions defined in 2.0: + LinkDemandChoice, InheritanceDemandChoice and DemandChoice. + +2004-09-16 Lluis Sanchez Gual <lluis@novell.com> + + * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the + macro parameter. + +2004-09-16 Lluis Sanchez Gual <lluis@novell.com> + + * locales.c: nullify the ICU_collator member of CompareInfo when it is + finalized. There where random SIGSEVs at program termination, when + an object being finalized was trying to do a string comparison and + the current culture was already finalized. + +2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threads.c: call thread_cleanup before finishing the thread if we get + there. + +2004-09-16 Zoltan Varga <vargaz@freemail.hu> + + * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all + assemblies from the parent. Fixes #65665. + +2004-09-15 Zoltan Varga <vargaz@freemail.hu> + + * metadata.c (mono_metadata_parse_type): Fix parsing of custom + modifiers. + +2004-09-14 Bernie Solomon <bernard@ugsolutions.com> + + * reflection.h: add prototype for mono_get_dbnull_object + * reflection.c: add prototypes for get_default_param_value_blobs + and mono_get_object_from_blob for fussier compilers + +2004-09-14 Lluis Sanchez Gual <lluis@novell.com> + + * object.c: Added a "done" flag to TypeInitializationLock. This avoids + false deadlock checks in class initialization. + +2004-09-13 Zoltan Varga <vargaz@freemail.hu> + + * image.c (mono_image_addref): Fix comment. + + * metadata.c (mono_metadata_parse_type): Avoid memory allocations if + possible. + +2004-09-12 Jambunathan K <kjambunathan@novell.com> + + * reflection.c (mono_param_get_objects): Modified to return + ParameterInfo.DefaultValue object. + + (get_default_param_value_blobs): + (mono_get_object_from_blob): + (mono_get_dbnull_object): New helper routines. + + * object.c (mono_get_constant_value_from_blob): New helper routine + carved out from get_default_field_value () + + * object-internals.h (mono_get_constant_value_from_blob): Added + function declaration. + +2004-09-11 Zoltan Varga <vargaz@freemail.hu> + + * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load + referenced assemblies. Fixes #62135. + + * exception.h exception.c (mono_get_exception_file_not_found2): New + helper function. + +2004-09-10 Zoltan Varga <vargaz@freemail.hu> + + * class.h class.c: Add mono_type_get_underlying_type (). + +2004-09-09 Geoff Norton <gnorton@customerndna.com> + + * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): + Fix GetTypes() to support dynamically created assemblies. + +2004-09-09 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO. + + * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in + previous patch. + + * reflection.h reflection.c loader.c: Allow dynamic construction of + pinvoke methods. Fixes #65571. + + * reflection.c (mono_reflection_get_type): Revert previous change since + it causes regressions. + +2004-09-08 Martin Baulig <martin@ximian.com> + + * class.c (class_compute_field_layout): Don't call + mono_class_layout_fields() for open generic instances. + +2004-09-08 Bernie Solomon <bernard@ugsolutions.com> + * threads.c appdomain.c: fix typo in GC macro + +2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threads.c: don't call mono_thread_detach() in start_wrapper(), + avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379. + +2004-09-08 Zoltan Varga <vargaz@freemail.hu> + + * image.c (mono_image_close): Applied patch from + vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an + assembly is loaded multiple times from data. + + * image.c (mono_image_open): Fix warning. + +2004-09-07 Zoltan Varga <vargaz@freemail.hu> + + * reflection.h reflection.c icall.c: Only call TypeResolve handlers + once. Fixes #58334. + + * reflection.c (mono_reflection_create_runtime_class): Initialize + klass->nested_classes. Fixes #61224. + +Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * threads.c: sched_yield() on exit, to allow threads to quit. + +2004-09-07 Zoltan Varga <vargaz@freemail.hu> + + * object.c (mono_unhandled_exception): Remove leftover debug code. + +2004-09-07 Atsushi Enomoto <atsushi@ximian.com> + + * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none + +2004-09-07 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (emit_marshal_array): Really null terminate string arrays. + + * marshal.c (emit_marshal_string): Fix freeing of unicode strings. + +2004-09-06 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (emit_marshal_array): Null terminate string arrays. + + * marshal.c (raise_auto_layout_exception): Fix warning. + + * reflection.c (mono_param_get_objects): Initialize the default value + with DBNull.Value, not null. Fixes #62123. + +2004-09-01 Miguel de Icaza <miguel@ximian.com> + + * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and + throw an exception with a cute explanation. + +2004-09-06 Dick Porter <dick@ximian.com> + + * process.c (ves_icall_System_Diagnostics_Process_Start_internal): + Close the new process's thread handle, as we don't use it. The + handle stays around forever otherwise. + +2004-09-06 Zoltan Varga <vargaz@freemail.hu> + + * object.c (arith_overflow): Fix warning. + + * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged + calling conventions in method refs. Fixes #65352. + + * reflection.c: Fix warnings. + +2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net> + + * icall.c: Add a new icall for Array.Clear + +2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net> + + * object.c: When allocating an array, we have to throw + an overflow exception if any of the lengths are < 0. + +2004-09-06 Zoltan Varga <vargaz@freemail.hu> + + * marshal.h marshal.c: Free unmanaged memory allocated by managed code + properly. Also move implementation of string array marshalling to + managed code. Fixes #42316. + +2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * assembly.c: provide more information when loading an assembly fails. + +2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * filewatcher.c: don't expect the development fam package to be + installed. + +2004-09-03 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c: Make a copy of the signature cookie since it will be + freed by the caller. + + * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch. + + * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks. + + * metadata.c (mono_metadata_free_marshal_spec): New function to free + marshal specs. + + * marshal.c: More refactoring. + + * marshal.c: Refactor the mono_marshal_get_native_wrapper function into + smaller functions. + +2004-09-03 Lluis Sanchez Gual <lluis@novell.com> + + * object.c: In mono_message_invoke, fill the output parameter array after + calling the managed method (it was done before the call). This fixes + bug #59299. + +2004-09-02 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0 + as well. + +2004-09-02 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_instance_size): Don't allow generic type + definitions or open generic instances. + (mono_class_array_element_size): If we're a value type, call + mono_class_instance_size() on the original class. + + * metadata.c (mono_type_size, mono_type_stack_size): Correctly + handle generic instances. + + * mono-debug-debugger.c (write_type): Handle generic instances + like classes. + +2004-09-02 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if + the allocation request fails. Fixes #65089. + + * object.c (mono_runtime_free_method): Do not call mono_free_method. + + * object.c (mono_runtime_free_method): New function to free a dynamic + method. + + * marshal.c (mono_delegate_free_ftnptr): New function to free the + delegate trampoline. + + * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper + with hasthis as dynamic, + + * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall. + + * domain.c (mono_jit_info_table_remove): New function to remove an + entry from the jit info table. + + * class-internals.h (MonoMethod): Add 'dynamic' field. + + * loader.c: Fix warnings. + +2004-09-01 Martin Baulig <martin@ximian.com> + + * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock() + instead of mono_debugger_lock() because the latter one is a no-op + unless running in the debugger. + +2004-09-01 Zoltan Varga <vargaz@freemail.hu> + + * class.c (class_compute_field_layout): Classes with auto-layout or + reference fields are not blittable. + +2004-09-01 Dick Porter <dick@ximian.com> + + * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use + mono_image_get_filename() to get the assembly location. + + * icall.c: + * metadata.h: Fix compile warnings + +2004-09-01 Zoltan Varga <vargaz@freemail.hu> + + * class.c (class_compute_field_layout): System.Object is blittable. + + * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes + as in/out. Fixes #59909. + +2004-09-01 Martin Baulig <martin@ximian.com> + + * metadata.h (MONO_TYPE_ISREFERENCE): Call + mono_metadata_generic_inst_is_valuetype() if we're a generic + instance to check whether our underlying type is a reference type. + +2004-09-01 Martin Baulig <martin@ximian.com> + + * metadata.c (mono_type_size): If we're a generic instance, call + mono_class_value_size() for value types. + +2004-08-31 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c: Implement more custom marshalling functionality. Fixes + #64915. + +Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * mono-debug.c, debug-mono-symfile.c: add some locking love. + +2004-08-30 Zoltan Varga <vargaz@freemail.hu> + + * domain-internals.h domain.c: Add a per-domain jump trampoline hash. + + * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal. + + * icall.c: Fix some warnings. + + * threads.c (abort_appdomain_thread): Fix unref errors. + (mono_thread_current): Fix THREAD_DEBUG define. + +2004-08-29 Zoltan Varga <vargaz@freemail.hu> + + * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning. + + * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall. + +2004-08-28 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_native_wrapper): Add support for byref + string arrays. + +2004-08-28 Martin Baulig <martin@ximian.com> + + * metadata.c + (mono_metadata_generic_inst_is_valuetype): New public function. + + * metadata.h (MONO_TYPE_ISSTRUCT): Call + mono_metadata_generic_inst_is_valuetype() if we're a generic + instance to check whether our underlying type is a valuetype. + +2004-08-26 Zoltan Varga <vargaz@freemail.hu> + + * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes + #63768. + +2004-08-25 Martin Baulig <martin@ximian.com> + + * loader.c (mono_get_method_from_token): Abstract methods can also + be generic and thus have type parameters. + + * metadata-internals.h + (MonoDynamicImage): Added `GPtrArray *gen_params'. + + * reflection.c (mono_image_get_generic_param_info): Don't create a + metadata row, just add an entry to the `gen_params' array. + (build_compressed_metadata): Sort the `gen_params' array and then + actually create the metadata. + +2004-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threadpool.c: remove unneeded 'if' around mono_monitor_enter. + +2004-08-25 Zoltan Varga <vargaz@freemail.hu> + + * debug-helpers.c: Handle MONO_TYPE_GENERICINST. + +2004-08-24 Martin Baulig <martin@ximian.com> + + * class.cs (mono_class_is_subclass_of): Like an interface, a + generic instance also derives from System.Object. + +2004-08-23 Zoltan Varga <vargaz@freemail.hu> + + * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and + custom modifiers to be in any order. Fixes #61990. + +2004-08-20 Zoltan Varga <vargaz@freemail.hu> + + * object.c: Register mono_object_new_fast icall. + + * object.c (mono_class_get_allocation_ftn): Return to calling + mono_object_new_fast, since it seems faster to compute the object + size in unmanaged code than passing it as a parameter. + + * object.c (mono_class_get_allocation_ftn): Add marshalbyref case. + + * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register + this function with Boehm as the oom handler, so we don't have to check + the result of GC_malloc. + + * object.c: Remove checks for oom. + + * object.h object.c (mono_class_get_allocation_ftn): New function to + return the icall which can be used to allocate an instance of a given + class. + + * object.c: Handle common allocation requests using GC_gcj_fast_malloc. + + * class-internals.h: Add 'enabled' field. + +2004-08-19 Zoltan Varga <vargaz@freemail.hu> + + * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT (). + +2004-08-18 Jambunathan K <kjambunathan@novell.com> + * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right + value 0x0010. + +2004-08-18 Ben Maurer <bmaurer@users.sourceforge.net> + + * appdomain.c: use the Tls function for appdomain too, + at Zoltan's request. Actually return in mono_context_get + + * appdomain.c, profiler.c, threads.c: use __thread + +2004-08-18 Zoltan Varga <vargaz@freemail.hu> + + * appdomain.c threads.c: Call GC_CreateThread on windows. + + * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into + multiple libraries since this don't work on windows. + +2004-08-18 Martin Baulig <martin@ximian.com> + + * class-internals.h + (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from + MonoMethodHeader. + + * metadata.h (MonoMethodHeader): Moved the `gen_params' field to + MonoMethodNormal since we also need it for abstract and interface + methods. + + * reflection.c + (build_compressed_metadata): Sort the GenericParam table. + (mono_image_create_token): Added `gboolean create_methodspec' + argument; this is false when generating a MethodImpl token. + (reflection_methodbuilder_to_mono_method): Abstract and interface + methods may also have generic parameters. + +2004-08-17 Ben Maurer <bmaurer@users.sourceforge.net> + + * appdomain.c: thread local alloc + +2004-08-17 Martin Baulig <martin@ximian.com> + + * appdomain.c: Bumped MONO_CORLIB_VERSION to 24. + + * icall.c + (ves_icall_System_MonoType_getFullName): Added `gboolean full_name' + argument. + + * class.c (mono_type_get_full_name): New public function. + (mono_type_get_name): Don't include the type arguments. + +2004-08-16 Zoltan Varga <vargaz@freemail.hu> + + * Makefile.am: Build static versions of libmetadata and libmonoruntime + for inclusion into the mono executable. + +2004-08-16 Martin Baulig <martin@ximian.com> + + * metadata.c (do_mono_metadata_parse_generic_inst): Store the + MonoGenericInst, not the MonoType in the `generic_inst_cache'. + +2004-08-14 Martin Baulig <martin@ximian.com> + + * class.c (dup_type): Also copy the `byref' field. + +2004-08-15 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (create_dynamic_mono_image): Revert the last change + since it breaks bootstrap. + +2004-08-14 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (create_dynamic_mono_image): Set ref_count to 1. + + * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do + not free them with g_free. + +2004-08-11 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_reflection_setup_internal_class): Also call + mono_class_setup_mono_type() if we already have a `tb->type.type'. + +2004-08-09 Sebastien Pouliot <sebastien@ximian.com> + + * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when + called during default (first) AppDomain creation. Keep track of + Evidence when loading assemblies. + +Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * opcodes.c, opcodes.h: reduce runtime relocations. + +Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * culture-info.h, locales.c: fixes and chages to sue the new + optimized format of the locale data. + * culture-info-tables.h: regenerated. + +2004-08-06 Geoff Norton <gnorton@customerdna.com> + + * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher + +2004-08-05 Sebastien Pouliot <sebastien@ximian.com> + + * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall + ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id. + * domain-internals.h: icall declaration. + * icall.c: icall registration. + * object-internals.h: New fields in MonoAssembly for CAS. + +2004-08-05 Duncan Mak <duncan@ximian.com> + + * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to + CEE_LDELEM_ANY. + +Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * reflection.c: fix to deal with object[] arrays in custom ctors + (bug #62550). + +2004-08-05 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_array_element_size): Added support for + generic instances and correctly handle "recursive" types. + +2004-08-05 Zoltan Varga <vargaz@freemail.hu> + + * assembly.c: Fix warnings. + +2004-08-04 Martin Baulig <martin@ximian.com> + + * class.c + (mono_type_get_name_recurse): Added `gboolean include_arity' + argument specifying whether or not we should include the generic + arity in the type name. + (_mono_type_get_name): New static function. + (mono_class_setup_vtable): If we're a generic instance, don't + include the generic arity in the names of explicit method + implementations. + +2004-08-03 Martin Baulig <martin@ximian.com> + + * class.c (mono_type_get_name_recurse): Enclose the generic type + arguments in `<', '>'. + +Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * gc.c: make GC warning messages use the trace API, they are just + noise to most of the users. + +2004-08-03 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.c (read_string): Correctly read the string. + +2004-07-30 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (signature_dup_add_this): Fix bug in previous patch. + + * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg + icalls. + (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods. + +2004-07-30 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c: + Reflect latest symbol writer changes. + +Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * object.c: always create an object if null is passed + to Invoke() where a valuetype is expected. + +2004-07-29 Bernie Solomon <bernard@ugsolutions.com> + + * marshal.c (mono_marshal_init): make managed + signatures match native ones better for 64bits. + +2004-07-29 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: hack to build correctly the private bin path on windows. + Fixes bug #61991. + +2004-07-28 Lluis Sanchez Gual <lluis@novell.com> + + * assembly.c: Load mscorlib from the correct framework directory + (mono/<version>/mscorlib.dll). + * appdomain.h: Added prototypes for new functions. + * internals.h: Added some prototypes. + * domain.c: When initializing the runtime, get from the executable and + the configuration files the runtime version that the app supports. + Added support methods for reading app.exe.config. Added list of versions + supported by the JIT. Added two new methods: mono_init_from_assembly, + which initializes the runtime and determines the required version from + the provided exe file, and mono_init_version, which initializes + the runtime using the provided version. + * icall.c: Get machine.config from version-specific directory. + * reflection.c: When generating an image, embed the version number + of the current runtime. + +2004-07-28 Dick Porter <dick@ximian.com> + + * socket-io.c + (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check + returned sockaddr size before creating the remote address object. + Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug + 61608. + +2004-07-28 Dick Porter <dick@ximian.com> + + * locales.c (string_invariant_compare_char): Fix invariant char + compares between upper and lower cases. Fixes bug 61458. + +2004-07-27 Ben Maurer <bmaurer@ximain.com> + + * marshal.c: actually cache stelem.ref wrappers. + +Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image + sections and remove the mono_cli_rva_map () function. + +Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * debug-mono-symfile.c: fix one more endianess issue, from a patch + by Geoff Norton (<gnorton@customerdna.com>). + +Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * class.c: fix class loads for pointer types (typeof(int) != + typeof(int*)). + +2004-07-27 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support + reading the debugging information from an external ".mdb" file. + +2004-07-24 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_image_get_type_info): Only write a class + layout entry if we actually have a size or a packing size. + +2004-07-21 Bernie Solomon <bernard@ugsolutions.com> + + * reflection.c (type_get_fully_qualified_name): + insert cast to get type checking of ?: with non-gcc compilers + +2004-07-21 Bernie Solomon <bernard@ugsolutions.com> + + * rand.c: use g_getenv for both lookups of + MONO_EGD_SOCKET + +2004-07-17 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_reflection_bind_generic_method_parameters): + Set `gmethod->reflection_info'. + +2004-07-17 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_create_from_typedef): Insert the newly + created class into the hash table before computing the interfaces + since we could be called recursively. + +2004-07-16 Ben Maurer <bmaurer@ximain.com> + + * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper + function to implement stelem.ref in managed code + * class-internals.h, debug-helpers.c: a new wrapper type + for the above. + +Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * gc.c: allow GC handles to work even when no GC is compiled in. + Fix part of bug #61134 (GetAddrOfPinnedObject). + +2004-07-13 Peter Williams <peter@newton.cx> + + * process.c (complete_path): Make sure we don't attempt to execute + directories. + +2004-07-12 Geoff Norton <gnorton@customerdna.com> + + * DateTime.cs: Patch for bug #61112. Our DateTime wasn't roundtripping over timezone + boundaries properly. This patch checkes ToLocalTime() to see if we're tripping over a boundary + and will add/subtract the hour if needed + +2004-07-12 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_field_get_object): If we have + `field->generic_info', take the attributes from + `field->generic_info->generic_type'. + +2004-07-12 Martin Baulig <martin@ximian.com> + + * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'. + This function must be called before initializing the runtime. + (mono_debug_init_1): New function; call this after initializing + the runtime, but before loading the assembly. It tells the + debugger to load corlib and the builtin types. + + * mono-debug-debugger.c: Did some larger changes in the debugging + code; support recursive class declarations, make sure we actually + add all classes. + +2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * debug-helpers.c: undo my previous patch and fixed the real issue in + ../mini/exceptions-x86.c + +2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc + when no HOME env. variable was set and a NullRef was thrown in a .cctor + called from other .cctors. + +2004-07-09 Miguel de Icaza <miguel@ximian.com> + + * loader.c: Removed the mono_loader_wine_init hack now that we are + doing a managed version of Windows.Forms. + +2004-07-09 Ben Maurer <bmaurer@ximian.com> + + * domain.c, gc.c, marshal.c, mono-debug-debugger.c, + threadpool.c, threads.c: remove static data from rootset. + +2004-07-09 Dick Porter <dick@ximian.com> + + * locales.c (ves_icall_System_String_InternalReplace_Str_Comp): + Don't do any more processing if the matched length was 0. It was + increasing the size of the string before. Fixes bug 61167. + +2004-07-09 Dick Porter <dick@ximian.com> + + * socket-io.h: + * socket-io.c + (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal): + Add support for SO_PEERCRED if its available. + +2004-07-09 Peter Bartok <pbartok@novell.com> + * loader.c: winelib.exe.so error message is now only displayed if + MONO_DEBUG is set. To help us avoid questions when people are trying + out the new Managed.Windows.Forms. + +2004-07-08 Zoltan Varga <vargaz@freemail.hu> + + * class-internals.h debug-helpers.c marshal.c: Add new wrapper types + for isinst and castclass wrappers. + + * class-internals.h icall.c: Move registration and lookup of JIT icalls + to libmetadata from the JIT, so they could be used by the marshalling + code and the interpreter. + + * marshal.c: Register marshalling related JIT icalls here instead of + in mini.c. Use CEE_MONO_ICALL instead of the family of + CEE_MONO_PROC<x> opcodes to call marshalling functions. + + * metadata.h: Remove unneeded marshalling conversions. + + * opcodes.c: Update for new opcodes. + +2004-07-08 Martin Baulig <martin@ximian.com> + + * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere. + (mono_debug_get_domain_data): Make this function static. + +Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * gc.c, object.h: add nice GC handle API for embedders. + +2004-07-06 Ben Maurer <bmaurer@ximian.com> + + * reflection.c: more changes for the new api + + * object.c: When we reflect on a field w/ a constant value, it + will not have a memory location, so we must access metadata. Also, + allow easier reading of strings so that we can read them from + the constant data. + + * class.c (mono_class_layout_fields): no need for literal fields here. + + * class-internals.h: api changes for const fields + + * icall.c (ves_icall_get_enum_info): use new apis for const fields + +2004-07-06 Martin Baulig <martin@ximian.com> + + * mono-debug.h: Increment version number to 44. + + * mono-debug.c (mono_debug_add_wrapper): The second argument is + now a gpointer, rewrote this whole method. + + * mono-debug-debugger.c (mono_debugger_add_wrapper): New + function. Add information about the wrapper in a new "misc table". + + * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields + for the new misc table. + +2004-07-05 Zoltan Varga <vargaz@freemail.hu> + + * metadata-internals.h image.c: Add a cache for helper signatures. + + * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX. + +2004-07-03 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_managed_wrapper): Handle returning + delegates from a delegate. Fixes #61033. + + * marshal.c: Fix managed->native stringbuilder marshalling. Implement + marshalling of stringbuilder arrays. Fixes #59900. + +2004-07-02 Zoltan Varga <vargaz@freemail.hu> + + * icall.c: Add EnumBuilder:setup_enum_type icall. + +2004-06-30 Ben Maurer <bmaurer@ximian.com> + + * icall.c: Added a new icall for the property version of + OffsetOfStringData. + +2004-06-30 Zoltan Varga <vargaz@freemail.hu> + + * class-internals.h (MonoVTable): Make max_interface_id a guint32 so + it has a constant size across platforms. + + * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no + stack trace. + +2004-06-29 Martin Baulig <martin@ximian.com> + + * mono-debug.c (mono_debug_add_method): Protect the whole function + in mono_debugger_lock(), not just parts of it. + +Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * reflection.c: make sure padding bytes in heaps are zeroed. + +2004-06-24 David Waite <mass@akuma.org> + + * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c, + image.c, loader.c, locales.c, marshal.c, metadata.c, + mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c, + string-icalls.c, threads.c: change to C90-style comments from C99 / + C++ -style + +2004-06-24 Dick Porter <dick@ximian.com> + + * threads.c + (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly + return createdNew. Fixes bug 60412. + + * threads-types.h: + * icall.c: Add createdNew parameter to CreateMutex icall + +Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * reflection.c, object-internals.h: save default value in params. + +2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: for paths in PrivateBinPath that are absolute, there's + no need to build a new path combining that with the application base. + Fixes bug #60442. + +Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * reflection.c: fixed minor standard compliance issues. + +Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * reflection.c: fixed issue with encoding some custom attributes + (arrays in properties and fields, bug #60411). + +2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * reflection.c: fix start address when copying the public key token. + +2004-06-23 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store + the `exc' object in a static object to put it into the GC's root set. + +Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * reflection.c: make mono_reflection_setup_internal_class () + callable a second time to setup a new parent class. + +2004-06-23 Dick Porter <dick@ximian.com> + + * threads.c: Check for WAIT_IO_COMPLETION return values. + +2004-06-22 Sebastien Pouliot <sebastien@ximian.com> + + * appdomain.c: Removed the g_free on the public key token. Now copy + the pk token string into the MonoAssemblyName buffer using g_strlcpy. + * assembly.c: Added public key token string value when loading + assemblies. Fix bug #60439. + * icall.c: Added missing informations (like public key) in + GetReferencedAssemblies. Fix #60519. + * image.h: Changed definition for public key token from const char* + public_tok_value to guchar public_key_token [17]; + * reflection.c: Updated for changes to public key token. + +2004-06-22 Lluis Sanchez Gual + + * icall.c: In ves_icall_InternalExecute, when setting a filed, also look + for the field in base classes. + +Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h: + mark headers as not supported, they are installed only for use by the + debugger. + +Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * *.c, *.h: avoid namespace pollution in public headers. + +2004-06-21 Martin Baulig <martin@ximian.com> + + * exception.c (mono_get_exception_security): It's in + "System.Security", not in "System". + + * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all + the exception classes. + +2004-06-21 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c (mono_debugger_unhandled_exception): + Protect the exception object from being finalized. + +2004-06-21 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.h (mono_debugger_unhandled_exception): New + public function. + +2004-06-21 Sebastien Pouliot <sebastien@ximian.com> + + * reflection.c: Load the assembly in mono_reflection_type_from_name, + if it was not loaded before. Fix parts of #60439. + +Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke () + code that was broken since Ben's change: wrappers are now + dependent on the method signature only again. + +2004-06-21 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c (write_class): Cleaned this up a bit and + added interface support. + +2004-06-21 Martin Baulig <martin@ximian.com> + + * class.c (mono_vtable_get_static_field_data): New public method. + +2004-06-20 Atsushi Enomoto <atsushi@ximian.com> + + * filewatcher.c : Windows build fix to be compliant with API changes. + +Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * class.h, class.c: more accessors. + * metadata.h, metadata.c: prepare for hiding MonoType and + MonoMethodSignature: people should use the accessors from now on + outside of the tree. + +Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * *.c, *.h: more API cleanups. + +2004-06-18 Jackson Harper <jackson@ximian.com> + + * assembly.c: Trace loading assemblies. + * loader.c: Trace loading native libraries. + * mono-config.c: Trace loading config files. + +2004-06-18 Dick Porter <dick@ximian.com> + + * locales.c: Tell ICU the lengths of strings, it can cope with + embedded \0 then. Fixes bug 59274, and doesn't break bug 55822. + +Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * image.c: swapped name/filename; + +2004-06-18 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c (write_class): Write the parent class at + the end of the header. + +Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * *.c, *.h, Makefile.am: more API cleanups and bugfixes. + +2004-06-17 Raja R Harinath <rharinath@novell.com> + + * Makefile.am (PLATFORM_LIB): New. Possibly refer to ../os/libmonoos.la. + (bundle_obj): New conditional define. + (BUILT_SOURCES): Remove. + ($(bundle_srcs)): Make parallel-make safe. + (libmonoruntime_la_LIBADD): Make unconditional. + (libmetadata_la_LIBADD): Make unconditional. Refer to $(bundle_obj). + (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs). + +2004-06-17 Atsushi Enomoto <atsushi@ximian.com> + + * culture-info-tables.h: It was inconsistent with the latest + supp info files. + +2004-06-17 Zoltan Varga <vargaz@freemail.hu> + + * assembly.c (mono_assembly_open): Fix crash when the assembly can't + be loaded. + + * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation + with gcc 2.95. + +Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * threads.h, icall.c, object.c, threadpool.c, threads-types.h: + cleaned up public header threads.h. + +Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * Makefile.am, *.c, *.h: more API cleanups. + +Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * Makefile.am: removed monosn from compilation. + * appdomain.c, assembly.c, assembly.h, blob.h, class.c, + debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c, + image.c, image.h, loader.c, marshal.c, metadata-internals.h, + metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c, + mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c, + reflection.c, reflection.h, verify.c: more API cleanups and fixes. + +2004-06-15 Jackson Harper <jackson@ximian.com> + + * assembly.c: Make locales lower case when searching the GAC for + assemblies. gacutil will always make locales lowercase when + installing so this effectively makes them case insensitive. + +2004-06-15 Lluis Sanchez Gual <lluis@ximian.com> + + * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter. + * monitor.c: New method mono_monitor_try_enter_internal, which takes a new + parameter which allows to choose whether the wait can be interrupted or + not. Also added the method mono_monitor_enter(), which locks the monitor + using an infinite wait and without allowing interruption. + In the Monitor.Enter and Wait icalls, retry the lock if the wait is + interrupted. + * object.h: Added new fields in MonoThread. suspend_event holds the event + used to susped/resume the thread. synch_lock is the lock object to use for + modifying the thread state. + * threads.c: Use the new synch_lock object for locking, instead of "this", + which can generate deadlocks. + Moved thread state change in Thread.Sleep and Thread.Join from managed + to unmanaged code. This avoids a deadlock when the thread was suspended + just after acquiring the thread lock. + In general, use mono_monitor_enter instead of mono_monitor_try_enter. + Implemented Thread.Suspend using an event instead of ThreadSuspend, + which is not fully implemented in the io-layer. + * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails. + +Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h, + threads-types.h: more API cleanups. + +Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * domain-internals.h, Makefile.am, appdomain.c, appdomain.h, + domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c, + threadpool.c, threads.c: first pass at the exported API cleanup. + +Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls. + +2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: added internalGetHome. + +2004-06-14 Dick Porter <dick@ximian.com> + + * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was + possible to return successfully when '.' or '..' were the only + entries in a directory, but were skipped. The MonoIOStat was not + filled in in that case. Now return ERROR_NO_MORE_FILES instead. + Fixes bug 59574. + +Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * reflection.c: make binaries run on .Net 1.1 by default. + +Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * threadpool.c, threadpool.h: use the correct return type in SetMinThreads (). + +Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * marshal.c: keep track of struct size with explicit layout + (bug #59979). + +2004-06-12 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c: Comment out a debugging g_message(). + +Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * reflection.c, reflection.h: do not free custom attrs that are cached. + * icall.c: use braces to make code clearer. + +2004-06-11 Martin Baulig <martin@ximian.com> + + * class.h (MonoInflatedField): New type. + (MonoClassField): Replaced `MonoType *generic_type' with + `MonoInflatedField *generic_info'. + + * icall.c + (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall. + +2004-06-11 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_image_create_method_token): Correctly encode + varargs methods. + +2004-06-11 Martin Baulig <martin@ximian.com> + + * metadata.c (mono_metadata_parse_method_signature): When parsing + a MethodDef which has VarArgs, also set sentinelpos if we don't + have any parameters. + +2004-06-11 Martin Baulig <martin@ximian.com> + + * verify.c (mono_method_verify): In CEE_CALL, use + mono_method_get_signature() to get the method's signature, unless + we're a PInvoke method. + +2004-06-10 Jackson Harper <jackson@ximian.com> + + * assembly.c: Use <path>/lib/mono/gac for the extra paths + lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more + logical name as the supplied path is just a prefix to the gac not + the direct path to it. + +Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * reflection.c: make the token for a created method match + the token of the MethodBuilder it was created from + (IKVM requires this behaviour now). + +Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c, + reflection.c, socket-io.c: leak fixes. + +Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * icall.c: handle sentinel pos in vararg methods in position different + from 0. + +2004-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * culture-info-tables.h: freshly generated. + +2004-06-09 Martin Baulig <martin@ximian.com> + + * loader.c (mono_get_method_constrained): Call `mono_class_init + (constrained_class)'. + +2004-06-08 Gert Driesen <drieseng@users.sourceforge.net> + + * icall.c (ves_icall_MonoType_GetEvent): Handle events without + any methods. Fixes #59629. + +2004-06-08 Atsushi Enomoto <atsushi@ximian.com> + + * culture-info-tables.h: reflecting locale-builder updates. + +2004-06-08 Dick Porter <dick@ximian.com> + + * object.h: + * locales.c: Fixed compile warnings, including a real bug in + CompareInfo_internal_compare. + +2004-06-08 Dick Porter <dick@ximian.com> + + * locales.c + (ves_icall_System_Globalization_CompareInfo_internal_index): + (ves_icall_System_Globalization_CompareInfo_internal_index_char): + Double-check the resuls of usearches, because ICU currently + ignores most of the collator settings here. Fixes bug 59720. + +2004-06-08 Dick Porter <dick@ximian.com> + + * locales.c + (ves_icall_System_Globalization_CompareInfo_internal_index_char): + Fix memory leak and segfault-causing typo. No idea how this one + lasted so long without being noticed. + +2004-06-09 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_Type_GetEvents_internal): Handle events without + any methods. Fixes #59629. + +2004-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * assembly.c: + (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't + own the critical section before). Removed dead code (that's done + in the preload hook). + + (mono_assembly_load_with_partial_name): call the preload hook. + +2004-06-08 Martin Baulig <martin@ximian.com> + + * metadata.c (mono_metadata_signature_alloc): Default + `sentinelpos' to -1. + + * reflection.c (mono_image_get_array_token): Likewise. + +2004-06-08 Martin Baulig <martin@ximian.com> + + * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall. + + * metadata.c (mono_metadata_parse_method_signature): When parsing + a MethodDef which has VarArgs, set sentinelpos. + + * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed + `gint16' since we're using -1 for non-varargs methods. + + * reflection.c + (ReflectionMethodBuilder): Added `MonoArray *opt_types'. + (method_encode_signature): Added varargs support. + (method_builder_encode_signature): Likewise. + (mono_image_get_varargs_method_token): New static method. + (mono_image_create_method_token): New public method; this is + called via an icall instead of mono_image_create_token() when + calling a varargs method. + +2004-06-08 Lluis Sanchez Gual <lluis@ximian.com> + + * locales.c: Fixed memory leak in Char.ToLower/ToUpper. + +2004-06-08 Atsushi Enomoto <atsushi@ximian.com> + + * culture-info-tables.h : Reflecting the latest locale-builder that + fixed empty array representation ({} to {0}). + +2004-06-07 Jackson Harper <jackson@ximian.com> + + * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when + looking up extra gac paths. This allows MONO_GAC_PATH to act + exactly like a prefix. + +2004-06-08 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (mono_reflection_type_from_name): Make a copy of the + type name before modifying it. Fixes #59405. + +2004-06-08 Atsushi Enomoto <atsushi@ximian.com> + + * culture-info.h: added fields for "all datetime patterns". + * locales.c: ( ves_icall_System_Globalization_CultureInfo + _construct_datetime_format ()): fill xxx_patterns fields. + * object.h: added fields for "all datetime patterns" to + MonoDateTimeFormatInfo. + * culture-info-tables.h: reflecting locale-builder updates. + +2004-06-08 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when + the event has no add and remove methods. Fixes #59629. + +2004-06-05 Sebastien Pouliot <sebastien@ximian.com> + + * object.c: Fixed possible integer overflow when allocating large + strings. + +2004-06-05 Atsushi Enomoto <atsushi@ximian.com> + + * culture-info-tables.h: reflecting locale-builder updates. + +2004-06-05 Atsushi Enomoto <atsushi@ximian.com> + + * culture-info-tables.h: reflecting locale-builder updates. + +2004-06-03 Atsushi Enomoto <atsushi@ximian.com> + + * culture-info-tables.h: reflecting locale-builder updates. + +2004-06-03 Lluis Sanchez Gual <lluis@ximian.com> + + * threads.c: Made Thread.Sleep abortable. + +2004-06-02 Martin Baulig <martin@ximian.com> + + * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41. + + * debug-mono-symfile.h: Bumped symbol file version number to 37. + +2004-05-31 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs. + +2004-05-30 Jackson Harper <jackson@ximian.com> + + * reflection.c: Do not hardcode assembly versions or public key + tokens anymore. All of this except the corlib section was dead + code anyways. + +2004-05-29 Zoltan Varga <vargaz@freemail.hu> + + * object.c (mono_runtime_invoke_array): Automatically create boxed + objects for byref valuetypes if needed. Fixes #59300. + + * object.c (mono_method_return_message_restore): Handle + MONO_TYPE_OBJECT as well. + +2004-05-28 Jackson Harper <jackson@ximian.com> + + * reflection.c: The modified type encoding was causing build + problems. Reverted for now. + +2004-05-28 Jackson Harper <jackson@ximian.com> + + * reflection.c/h: Take an assembly ref so that we dont create + fully qualified names when encoding types in the same assembly as + the custom attribute being emitted. + * appdomain.c: Increment version number. + +2004-05-26 Duncan Mak <duncan@ximian.com> + + * icall.c + (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): + Set the full version number (major, minor, build, revision). + +2004-05-28 Vladimir Vukicevic <vladimir@pobox.com> + + * marshal.c (emit_struct_conv): increment src/dst after blit + (mono_marshal_get_managed_wrapper, + mono_marshal_get_native_wrapper): make sure we have marshalling + info before marshalling params (info computation affects + blittable) + + * class.c (class_compute_field_layout): correctly deal with + blittable + (mono_class_layout_fields): Don't do gc_aware_layout for AUTO + value types (as per what windows dows by default) + (mono_class_setup_mono_type): System.ValueType is blittable + (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are + blittable + + * marshal.c (mono_marshal_load_type_info): flag types as + non-blittable if the native layout doesn't match the managed + layout + +2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: don't add stuff in the private search path that is + above the application base. If application base is not set, there's + no private search path. + +2004-05-28 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for + byref struct arguments in native->managed marshalling. + +2004-05-28 Patrik Torstensson <totte@hiddenpeaks.com> + + * marshal.c (mono_marshal_get_runtime_invoke): correctly + cache methods using signature (special case for methods + that are value type or string class) + + * image.c (mono_image_close): clean up allocated GSList's + in runtime_invoke_cache. + +2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * mono-config.c: set the correct path for mono_cfg_dir on windows when + there's no MONO_CFG_DIR environment variable defined. + +2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threads.c: windows version must be >= 0x0500 to include OpenThread. + +2004-05-28 Lluis Sanchez Gual <lluis@ximian.com> + + * threadpool.c: Really wait for 500ms after the async call, even if the wait + is interrumped. + * threads.c: In mono_thread_manage, call OpenThread to ref each handle + before waiting for it, and call CloseHandle after the wait to unref it. + This will make sure that handles are not disposed too early. + +2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: + * appdomain.h: + * icall.c: removed + ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not + needed now. + + * object.c: se the application_base only for the domain that runs + Main. Fixes bug #59216, + +2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: + * object.c: only the domain in which Main is run have + SetupInformation.ConfigurationFile set, so moved a few lines from + appdomain.c to object.c. + +2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: we tried to load [name].(dll|exe), but according + to bug #57710, we must also try [culture]/[name].(dll|exe) and + [culture]/[name]/[name](dll|exe). This patch fixes the bug. + There's a test case attached to bug #58922. + +2004-05-27 Dick Porter <dick@ximian.com> + + * icall.c: + * file-io.c: Implemented icalls for locking and unlocking regions + in a file. + (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns + FALSE on error (fixes both compiler warning and real bug.) + +2004-05-27 Atsushi Enomoto <atsushi@ximian.com> + + * culture-info-tables.h: reflecting locale-builder updates. + + (Added missing ChangeLog entry for 05/26) + +2004-05-27 Jackson Harper <jackson@ximian.com> + + * locales.c: Fix some cut and paste errors. + +2004-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * mono-config.c: set the correct path for config. directory on windows. + +2004-05-26 Atsushi Enomoto <atsushi@ximian.com> + + * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc + on win32. + +2004-05-26 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_native_wrapper): Free strings returned + from pinvoke functions. + + * marshal.c (mono_ftnptr_to_delegate): Implement this. + +2004-05-26 Atsushi Enomoto <atsushi@ximian.com> + + * culture-info-tables.h: reflecting locale-builder updates. + +2004-05-26 Zoltan Varga <vargaz@freemail.hu> + + * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes + #59086. + +2004-05-26 Sebastien Pouliot <sebastien@ximian.com> + + * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20. + * icall.c: Modified icalls for RNG. + * rand.c|h: Changed RNG interface to allow thread-safe usage under + Windows (CryptoAPI). + +2004-05-25 Zoltan Varga <vargaz@freemail.hu> + + * locales.c: Fix build. + +2004-05-25 Atsushi Enomoto <atsushi@ximian.com> + + * culture-info-tables.h: reflecting locale-builder updates. + +2004-05-25 Jackson Harper <jackson@ximian.com> + + * locales.c: When creating the current culture use the $LANGs + specific culture. So DateTimeFormat and NumberFormat entries are created. + +2004-05-25 Zoltan Varga <vargaz@freemail.hu> + + * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take + a char array as parameter. + +2004-05-24 Lluis Sanchez Gual <lluis@ximian.com> + + * image.c: In mono_image_open(), always use an absolute path name to + look for already loaded images. + +2004-05-24 Sebastien Pouliot <sebastien@ximian.com> + + * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is + missing in the windows build (like older cygwin include files). + +2004-05-23 Sebastien Pouliot <sebastien@ximian.com> + + * icall.c: Fixed check for possible integer overflow in Buffer_ + BlockCopy icall. Replaced comments style // by /* */. + +2004-05-22 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_ftnptr_to_delegate): Fix warning. + + * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt + check after MONO_VTADDR. Fixes pinvoke2.exe. + + * marshal.h marshal.c metadata.h: Add beginnings of support for + ftnptr -> delegate marshalling. + +2004-05-21 Zoltan Varga <vargaz@freemail.hu> + + * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95. + * threads.c: Fix warnings. + +2004-05-20 Lluis Sanchez Gual <lluis@ximian.com> + + * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx. + * icall.c: Registered icalls for Suspend and Resume. + * locales.c: Beware, mono_monitor_try_enter can now be interrupted by + Thread.Abort. + * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints. + * mono-debug-debugger.c: Use WaitForSingleObjectEx et al. + * process.c: Use WaitForSingleObjectEx. + * threadpool.c: Use WaitForSingleObjectEx. Added some interruption + checkpoints. + * threads.c, threads.h: Make use of new Ex wait methods. Improved + implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls + for Suspend and Resume. Added new mono_thread_stop, used for stoping + background threads. Added basic support for Abort in Windows. + Start new threads using a managed delegate invoke wrapper. This wrapper + has an interruption checkpoint that is needed since an interruption + can be requested before the thread leaves the unmanaged code that starts + the thread. + * marshal.c: Added interruption checkpoint after every native call, and + also before managed calls for wrappers called from unmanaged code to + go into managed code. + * object.h: Added new field in MonoThread to keep track of interruption + requests. + +2004-05-20 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native + calls. + +2004-05-20 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: + * assembly.c: + * gc.c: + * locales.c: + * mono-config.c: + * rand.c: getenv -> g_getenv (windows!) + + * process.c: complete_path is also used on non-windows platforms. + +2004-05-19 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: new signature for Process_Start. + + * process.[ch]: new signature for Process_Start. If we're on windows + and UseShellExecute is false, we have to search for the program by + ourselves if we don't get a full path. + +2004-05-18 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_native_wrapper): Fix up custom + marshalling and call CleanUpNativeData if needed. Fixes #58646. + +2004-05-18 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * socket-io.c: field value changed for Int32 from 'value' to 'm_value'. + Fixes bug #58373. + +2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * process.c: use double quotes to quote program name and arguments on + windows. Fixes bug #58575. + +2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * file-io.c: don't return "." and ".." when using windows Find*File. + +2003-05-17 Patrik Torstensson <totte@hiddenpeaks.com> + + * marshal.c: Don't pass wrappers to message init because method + addressed used to lookup metadata. part of remoting[2|3] fix. + +2004-05-15 Jackson Harper <jackson@ximian.com> + + * assembly.c: Remove user gac and implement MONO_GAC_PATH, this + path is essentially the same as MONO_PATH except that it points to + GACs instead of lib directories. + * loader.h: The user gac is gone so we dont need function to + enable/disable it. + * mono-config.c: user gac option is now gone. + +2004-05-15 Jackson Harper <jackson@ximian.com> + + * culture-info.h: Make defines more consistent, add calendar data + to the culture info table. + * culture-info-tables.h: Add basic calendar data. Basically + everyone gets default gregorian until all the data is + updated. + * locales.c: Use the new consistent defines. Set calendar data for + culture info objects. + * object.h: add a field for calendar data to CultureInfo + +2004-05-14 Ben Maurer <bmaurer@users.sourceforge.net> + + * image.c: image->runtime_invoke_cache is keyed on signatures now. + * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with + a signature. + (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above. + (mono_marshal_get_runtime_invoke): The runtime invoke method now takes + an extra param that is the pointer of the method to invoke. The IL for + the invoke method is no longer specific to the method, but to the + signature of the method. Thus, we can share the same code for multiple + methods. This reduces the number of methods that have to be compiled. + +2004-05-14 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning. + + * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version. + + * icall.c: Optimize Buffer.BlockCopy. + +2004-05-14 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * culture-info-tables.h: seems like Spanish and Portuguese cultures had + DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single + quote). Changed them to "MMMM yyyy". + +2004-05-12 Miguel de Icaza <miguel@ximian.com> + + * rand.c + (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. + +2004-05-13 Zoltan Varga <vargaz@freemail.hu> + + * reflection.h: Updated after changes to managed structures. + + * appdomain.c: Bump corlib version. + +2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * Makefile.am: also add libmonoos to libmetadata. Fixes the build on + windows. + +2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * Makefile.am: link to ../os/libmonoos.la on windows. + + * assembly.c: + -If MONO_DEBUG, warn about non-existing directories in + MONO_PATH. + -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES + compile time variable. + -Removed init_default_path and call mono_set_rootdir from + libmonoos.a instead (windows only). + + * assembly.h: declare mono_assembly_getrootdir(). + + * domain.c: + * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES. + + * loader.c: s/getenv/g_getenv/ + +2004-05-11 Zoltan Varga <vargaz@freemail.hu> + + * marshal.{h,c}: Add support for UnmanagedType.AsAny. + + * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate. + + * metadata.h: Add new marshalling conversions. + + * metadata.h metadata.c (mono_metadata_signature_dup): New helper + function. + + * reflection.c (mono_reflection_get_type): Lookup the type in all + modules of a multi-module assembly. Fixes #58291. + +2004-05-11 Lluis Sanchez Gual <lluis@ximian.com> + + * threads.c: Before aborting a background, set the StopRequested + state. This avoids throwing the Abort exception. + In mono_thread_manage, don't continue with the shutdown until all + aborted threads have actually stopped. + +2004-05-10 Jackson Harper <jackson@ximian.com> + + * locales.c: Remove the modifier from culture names. + +2004-05-10 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * Makefile.am: monosn is not installed any more. It has been deprecated + in favor of sn. + +2004-05-07 Jackson Harper <jackson@ximian.com> + + * locales.c + (ves_icall_System_Globalization_CultureInfo_internal_get_cultures): + Fix array construction, add bailout if the length is 0. + +2004-05-07 Dick Porter <dick@ximian.com> + + * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the + machine doesn't have a DNS entry. Patch by Urs Muff + (umuff@quark.com), fixes bug 57928. + +2004-05-06 Jackson Harper <jackson@ximian.com> + + * reflection.c: Handle null PublicTokens properly. alloc mem for + assembly names culture so we dont crash when freeing it. + +2004-05-06 Jackson Harper <jackson@ximian.com> + + * assembly.c: Check the usergac when loading with partial names. + +2004-05-05 Sebastien Pouliot <sebastien@ximian.com> + + * rand.c|h: Added new icall for (optionally) seeding the PRNG. This + does nothing for now (not required for Linux/Windows) but the class + library can call it (and a newer or modified runtime could need it). + * icall.c: Registred icall. + +2004-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * loader.c: prints a message on module loading error we set MONO_DEBUG + environment variable. + +2004-05-05 Jackson Harper <jackson@ximian.com> + + * appdomain.c: Handle PublicKeyToken=null properly. + +2004-05-05 Sebastien Pouliot <sebastien@ximian.com> + + * environment.c|h: Added icall ves_icall_System_Environment_ + GetOSVersionString to get the current OS version as a string. + * icall.c: Registred icall. + +2004-05-05 Lluis Sanchez Gual <lluis@ximian.com> + + * object.c: in mono_object_get_virtual_method(), take into account that + non-virtual methods don't have a slot in the vtable. Check needed when + the object is a proxy. + +2004-05-05 Zoltan Varga <vargaz@freemail.hu> + + * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com + (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement. + + * object.c (mono_class_compute_gc_descriptor): Fix warning. + + * object.c (mono_runtime_invoke_array): Add an assert so null cannot be + passed when a valuetype is expected. + + * object.c (mono_unhandled_exception): Only set the exit code if the + exception happens in the main thread. Fixes thread5.exe. + + * appdomain.c (get_info_from_assembly_name): Fix infinite loop on + invalid names. Fixes #58047. + +2004-05-03 Jackson Harper <jackson@ximian.com> + + * assembly.c: This line was committed accidently and is unneeded. + +2004-05-03 Jackson Harper <jackson@ximian.com> + + * icall.c: Add new icall for Assembly::LoadWithPartialName + * assembly.c/.h: new function that probes the GAC to load partial + assembly names by Paolo Molaro. + +2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al. + * reflection.c: use g_strncasecmp when looking for 'Culture=' et al. + (type_get_fully_qualified_name): Added PublicKeyToken when building a + full type name. + +2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: fixed check for 'neutral' culture and removed warning. + * reflection.c: fix bug when parsing a full type name and Version is not + the last thing in the string. + +2004-05-03 Zoltan Varga <vargaz@freemail.hu> + + * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent + crashes when it is freed. + +2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * assembly.c: print the compat warning to stderr. + +2004-05-01 Miguel de Icaza <miguel@ximian.com> + + * assembly.c (mono_assembly_load_references): Add a compatibility + hack to run old applications that might be still referencing the + 3300-based assemblies, only do this for System.xxx. + +2004-05-01 Jackson Harper <jackson@ximian.com> + + * appdomain.c: If the culture is neutral we set it to "". + +2004-04-29 Jackson Harper <jackson@ximian.com> + + * locales.c: Add some missing MONO_ARCH_SAVE_REGS'. + +2004-04-29 Andreas Nahr <ClassDevelopment@A-SoftTech.com> + + * string-icalls.c: added low overhead function for copying chars + * icall.c: added needed icall for the above function + +2004-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: fix return value of get_global_assembly_cache. Implemented + Environment.GetLogicalDrives. + +2004-04-28 Bernie Solomon <bernard@ugsolutions.com> + + * rand.c: try and talk to egd or prngd + for random bytes if opening devices fail. + +2004-04-28 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_load_type_info): Calculate the minimum + alignment for the type using the native alignment of its members + instead of using klass->min_align. + + * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF. + +2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * file-io.c: + * socket-io.c: added check for sys/aio.h. + +2004-04-28 Dick Porter <dick@ximian.com> + + * threads.c: Don't abort a thread thats already aborting, when + terminating everything. + +2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: added 2 new async calls for Socket. + + * socket-io.[ch]: fixed some warnings. Added support for asynchronous + IO on *nix systems. + + * threadpool.c: removed unused variable. + +2004-04-27 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706. + +Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * locales.c: put back string_invariant_tolower () and + string_invariant_toupper (). + +2004-04-26 David Waite <mass@akuma.org> + + * file-io.h: + * socket-io.h: + * threads.h: + * unicode.h: remove comma from end of enumeration declarations + +2004-04-26 David Waite <mass@akuma.org> + + * debug-mono-symfile.h: + * decimal.c: + * mono_debug.h: + * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL) + + +2004-04-26 Jackson Harper <jackson@ximian.com> + + * appdomain.c: Increment version number. + +2004-04-26 Jackson Harper <jackson@ximian.com> + + * appdomain.c: Set assembly references public token value when + PublicKeyToken is specified, not the hash_value. Free public token + values when free assembly name data. Previously the public key + token was hex decoded, however we are using hex encoded public key + tokens, so this is not neccasary. + * assembly.c: Lookup assemblies in the gac if their public token + value is set. Add function to allow enabling user gac + lookups. Specify whether or not the assembly was loaded from the + GAC. Compare full assembly names when checking the cache for + assemblies (Temporarily disabled see comment in code). Remove + mscorlib -> corlib mapping cruft. Add trace-loading. When a user + specifies trace-loader they get extra info to stdout on the + loading of assemblies. + * image.h: Add a field for an assembly references public token + value to MonoAssemblyname. Add a field to MonoAssembly to specifiy + whether an assembly has been loaded from the GAC. + * image.c: Remove a corlib -> mscorlib name mapping. + * loader.h: Add function to enable/disable the user gac. + * mono-config.c: Check if the usergac is enabled in the config + file. + * icall.c: New icall to determine whether or not an assembly has + been loaded from the GAC. Remove some mscorlib -> corlib mappings. + * tabldefs.h: Add constant for assemblyref flag that specifies a + full public key is used instead of a public token. + * reflection.c: Remove mscorlib -> corlib mappings. Set + PublicTokenValue instead of hash value. This value is a hex + string so it does not need to be expanded. + +2004-04-26 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c (mono_debugger_initialize): Set + `mono_debugger_initialized' before calling mono_debug_lock(). + +2004-04-42 Robert Shade <rshade@dvsconsulting.com> + + * icall.c: icalls for Char.ToUpper/ToLower are now hooked to + InternalToUpper/InternalToLower. + * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp) + removed invariant culture shortcut. This is now done in managed code. + * locales.c: (string_invariant_toupper/tolower) removed. + +2004-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: added GetSupportsAsync for Socket (same as MonoIO). + Added Poll internal call. + + * socket-io.[ch]: _wapi_socket == WSASocket. Added internal + call for Poll. Select was too heavy for polling a single socket. + + * threadpool.[ch]: added mono_threadpool_cleanup. + * threads.c: use it. Don't use Thread_Abort on windows. + +2004-04-23 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function. + +2004-04-23 Sebastien Pouliot <sebastien@ximian.com> + + * icall.c: Registred new icalls for key pair protection and added an + icall for Environment.GetFolderPath on Windows. + * security.c|h: Added new icalls for key pair protection. + +2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * socket-io.c: don't display the non-supported family warning for known + families. Now this is not displayed on windows when checking support + for IPv4/IPv6. + +2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * class.c: don't display the layout warning for static fields. + +2004-04-21 Lluis Sanchez Gual <lluis@ximian.com> + + * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper. + * locales.c, locales.h: Added new icalls for culture-specific + Char.ToLower and Char.ToUpper. + +2004-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threads.c: the 2nd argument when aborting a thread is NULL now. Patch + by David Waite. + +2004-04-20 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy + of the type name before passing it to mono_reflection_type_from_name(). + +2004-04-19 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_managed_wrapper): Handle different string + encodings here. Fixes #56965. + +2004-04-18 Bernie Solomon <bernard@ugsolutions.com> + + * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): + fix test on strstr result not that I can see anything that + relies on the result. + +2004-04-18 Zoltan Varga <vargaz@freemail.hu> + + * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well. + Fixes #57081. + + * marshal.c (mono_marshal_get_string_encoding): New helper function. + + * marshal.c (mono_marshal_get_native_wrapper): Use the new helper + function to determine which marshalling to use for strings. Fixes + #56965. + + * marshal.c (mono_marshal_string_array_to_unicode): Fix warning. + + * reflection.c (encode_marshal_blob): Add support for LPARRAY. + +2004-04-15 Bernie Solomon <bernard@ugsolutions.com> + + * icall.c: #include mono-config.h + +2004-04-15 Jackson Harper <jackson@ximian.com> + + * culture-info-tables.h: Fix date formats for en-US culture. + +2004-04-15 Lluis Sanchez Gual <lluis@ximian.com> + + * icall.c: Registered icalls for ThreadPool.GetMinThreads and + ThreadPool.SetMinThreads. + * threadpool.c: Implemented ThreadPool.GetMinThreads and + ThreadPool.SetMinThreads. + +Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * mono-config.c: also load the .config file in the directory + where the assembly was found. + +Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com> + + * assembly.c: load per-assembly config files. + * icall.c: decrapified code to get the config dir and moved to + mono-config.c. + * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow + per-assembly config files. When doing a dll map lookup give precedence + to the per-assembly data. + +2004-04-14 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.h (MonoDebuggerEvent): Removed + MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED + and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS. + + * mono-debugger-debugger.c: While the debugger is locked, remember + whether the symbol tables have changes and send one single + MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock. + +2004-04-14 Zoltan Varga <vargaz@freemail.hu> + + * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention. + + * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New + function. + + * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into + account when marshalling string arrays. Fixes #56965. + +2004-04-13 Sebastien Pouliot <sebastien@ximian.com> + + * icall.c: Add new icalls mapping for security. + * security.c|h: Add internal calls for WindowsIdentity, + WindowsImpersonationContext and WindowsPrincipal. + +2004-04-13 Gert Driesen (drieseng@users.sourceforge.net) + + * class.c: Added comment to ensure the System.MonoDummy class + is removed when no longer necessary + +2004-04-13 Miguel de Icaza <miguel@ximian.com> + + * appdomain.c: Pass arguments to the bootstraping exceptions to + minimize JITed methods at boot + + * metadata.c (mono_exception_from_name_two_strings): Allow for the + second string to be null. + + * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): + Change the protocol to minimize the JIT methods at startup. Now + it Returns the internal codepage, if the value of "int_code_page" + is 1 at entry, and we can not compute a suitable code page + number, returns the code page as a string. + +2004-04-13 Jackson Harper <jackson@ximian.com> + + * culture-info-tables.h: Fix number of decimal digits for all + english locales. + +2004-04-13 Jackson Harper <jackson@ximian.com> + + * icall.c: Clairfy out of sync error message. It is not always + your corlib that is out of sync. + +2004-04-13 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate + properties when only the set accessor is overriden. Fixes #55874. + +2004-04-09 Zoltan Varga <vargaz@freemail.hu> + + * assembly.c (mono_assembly_load_references): Make this thread safe. + Fixes #56327. + +2004-04-08 Zoltan Varga <vargaz@freemail.hu> + + * monosn.c: Add missing initialization calls. + +2004-04-08 Bernie Solomon <bernard@ugsolutions.com> + + * locales.c: + ves_icall_System_Globalization_CultureInfo_construct_number_format + Fix g_assert so it compiles on fussier compilers re int/ptr + mismatch + +2004-04-08 Dick Porter <dick@ximian.com> + + * socket-io.h: + * socket-io.c: Don't set SO_REUSEADDR on windows. Fixes bug + 53992. Also rearrange the code so that the internal calls return + an error value and exceptions are thrown from managed code. + + * icall.c: Add type info to the socket icalls. + +2004-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone + owes me a beer. + +2004-04-07 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_from_generic_parameter): Don't default + `klass->parent' to `mono_defaults.object_type'. + +2004-04-07 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_reflection_initialize_generic_parameter): Set + `param->pklass->reflection_info'. + +2004-04-07 Jackson Harper <jackson@ximian.com> + + * culture-info-tables.h: Fix date separator symbol. + +2004-04-07 Martin Baulig <martin@ximian.com> + + * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall + from System.Type to System.MonoType. + +2004-04-07 Martin Baulig <martin@ximian.com> + + * reflection.h + (MonoReflectionGenericParam): Added `has_reference_type' and + `has_value_type' fields. + + * reflection.c (mono_image_get_generic_param_info): Encode the + correct flags if we have the `class' or `struct' constraint. + +2004-04-07 Martin Baulig <martin@ximian.com> + + * reflection.h + (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'. + +2004-04-07 Jackson Harper <jackson@ximian.com> + + * appdomain.c: Revert extra patches, just wanted to bump the + version number. + +2004-04-07 Jackson Harper <jackson@ximian.com> + + * Makefile.am: Add culture-info private headers. + * icall.c: Add new icalls for contructing locales. + * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU. + * locales.h: Declare new culture info construction methods. + * object.h: Add new fields used to avoid the CultureMap to + MonoCultureInfo. + * culture-info.h: Definition of structs used in the culture info + tables. + * culture-info-tables.h: Autogenerated tables that contain culture + info data. This file was generated with the locale-builder tool. + * appdomain.c: Incement corlib version number. + +2004-04-07 Bernie Solomon <bernard@ugsolutions.com> + + * appdomain.c: (mono_runtime_init) move mono_thread_init + to before mono_object_new calls so critical sections + are initialized before use. + +2004-04-07 Martin Baulig <martin@ximian.com> + + * icall.c + (ves_icall_TypeBuilder_define_generic_parameter): Removed. + (ves_icall_MethodBuilder_define_generic_parameter): Removed. + (ves_icall_MonoGenericParam_initialize): Removed. + (monogenericparam_icalls): Removed. + (generictypeparambuilder_icalls): Added new table for + System.Reflection.Emit.GenericTypeParameterBuilder. + + * reflection.c + (mono_reflection_define_generic_parameter): Removed. + (mono_reflection_initialize_generic_parameter): This is now called + from GenericTypeParameterBuilder's .ctor. + +2004-04-06 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_init): Don't inflate nested classes in a + generic instance. + (mono_type_get_name_recurse): Include the generic arguments for + generic instances and generic type declarations. + (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY. + (_mono_class_get_instantiation_name): Removed. + (mono_class_create_generic): Always use `gklass->name' as our name. + + * class.h (MonoGenericInst): Removed `nested_in', and `nested'. + + * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed. + (ves_icall_MonoGenericInst_GetNestedTypes): Removed. + (ves_icall_MonoMethod_GetGenericParameters): Renamed to + ves_icall_MonoMethod_GetGenericArguments() and correctly handle + closed generic methods here. + + * reflection.c + (mono_reflection_generic_inst_get_nested_types): Removed. + (inflate_mono_method): Copy the generic parameters from the + MonoMethodHeader into out MonoGenericMethod. + +2004-04-06 Martin Baulig <martin@ximian.com> + + * row-indexes.h + (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed. + + * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint". + + * reflection.c (build_compressed_metadata): If we have any entries + in the GenericParam, MethodSpec or GenericParamConstraint tables, + set the header version to 1.1. + +2004-04-06 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_init): If we're a generic instance, + initialize our nested classes, too. + (_mono_class_get_instantiation_name): Deal with the new `!%d' + suffix. + +2004-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * process.c: quote the argument passed to the shell on windows. + +2004-04-05 Zoltan Varga <vargaz@freemail.hu> + + * threads.c (mono_alloc_special_static_data): Allow this to be + called during startup. + +2004-04-02 Martin Baulig <martin@ximian.com> + + * icall.c + (ves_icall_MonoGenericInst_GetDeclaringType): New icall. + +2004-04-02 Zoltan Varga <vargaz@freemail.hu> + + * icall.c: Fix build. + +2004-04-02 Sebastien Pouliot <sebastien@ximian.com> + + * Makefile.am: Added security.c|h. + * icall.c: Added icall for get_UserName; + * security.c: New file for security related icalls. Added function + get_UserName for System.Environment (fix #56144). + * security.h: New. Header file for security.c + +2004-04-02 Dick Porter <dick@ximian.com> + + * icall.c: Deleted the icalls that were obsoleted some time ago + by the ICU string code, and which were mixed into the icall + rearranging. Fixes bug 55969. + + * string-icalls.h: + * string-icalls.c: Deleted the code that those icalls reference. + +2004-04-01 Martin Baulig <martin@ximian.com> + + * metadata.h (MONO_CLASS_IS_INTERFACE): New macro. + + * class.c (mono_class_from_generic_parameter): Don't set + TYPE_ATTRIBUTE_INTERFACE. + (my_mono_class_from_generic_parameter): Likewise. + +2004-04-01 Martin Baulig <martin@ximian.com> + + * loader.c (find_method): Added an optional `MonoClass *ic' + argument to search in a specific interface. + (mono_get_method_constrained): New public function. + +2004-04-01 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_image_get_generic_field_token): Use the + `handleref' cache here. + +2004-04-01 Martin Baulig <martin@ximian.com> + + * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'. + + * reflection.c (create_generic_typespec): Use the `typespec' hash + here, not the `typeref' one. + +2004-04-01 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_inflate_generic_type): Moved the + functionality into a new static inflate_generic_type() which + returns NULL if it didn't do anything. Only increment the + `mono_stats.inflated_type_count' if we actually inflated + something. + (mono_class_get_full): Check the classes type to see whether we + need to inflate it; also inflate MONO_TYPE_(M)VAR. + +2004-04-01 Jackson Harper <jackson@ximian.com> + + * reflection.c: Set culture for assembly references. + +2004-04-01 Ben Maurer <bmaurer@users.sourceforge.net> + + * reflection.[ch], icall.[ch], Fix support for pinning variables. + +2004-04-01 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * assembly.c: + (do_mono_assembly_open): the critical section also covers + mono_image_open and mono_image_open_from_data. Fixes bug #56327. + +2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threads.c: + (mono_manage_threads): abort the background threads when finishing. + Fixes bug #47232. + +2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * gc.c: only close the done_event handle if there was no timeout. + C-ified comments. + +2004-03-30 Martin Baulig <martin@ximian.com> + + * icall.c (icall_entries): It's called "System.Activator", not + "System.Activation". + +2004-03-30 Martin Baulig <martin@ximian.com> + + * class.c (mono_ldtoken): Added `MonoGenericContext *' argument. + (mono_class_create_from_typespec): Likewise. + +2004-03-30 Martin Baulig <martin@ximian.com> + + * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for + `has_ctor_constraint' and `initialized'. + +2004-03-30 Martin Baulig <martin@ximian.com> + + * reflection.c (encode_new_constraint): New static function to add + the constructor constraint attribute to a type parameter. + (encode_constraints): Call encode_new_constraint() if necessary. + + * reflection.h + (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'. + + * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR. + +2004-03-29 Ben Maurer <bmaurer@users.sourceforge.net> + + * reflection.c, icall.c: add support for pinning variables. + +2004-03-29 Bernie Solomon <bernard@ugsolutions.com> + + * marshal.c (mono_marshal_get_managed_wrapper): + init bool local with zero rather than null. + +2004-03-29 Martin Baulig <martin@ximian.com> + + * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show + the "official" behavior here. + (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall. + +2004-03-29 Martin Baulig <martin@ximian.com> + + * icall.c: Reflect latest API changes. + +2004-03-29 Martin Baulig <martin@ximian.com> + + * loader.c (mono_get_method_from_token): Also call + mono_metadata_load_generic_params () for abstract and interface + methods; replace the type arguments in the method signature with + the ones which are loaded from the metadata. + +2004-03-29 Lluis Sanchez Gual <lluis@ximian.com> + + * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner + of the lock is not the current thread. MS.NET don't do it, in spite of + what the documentation says. See bug #56157. + +2004-03-28 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_init): Don't call init_properties() and + init_events() for generic instances; set `prop->parent' when + inflating properties. + + * reflection.c (mono_generic_inst_get_object): Call + `mono_class_init (ginst->klass)'. + (mono_type_get_object): Only create a MonoGenericInst if your + generic type is a TypeBuilder. + (do_mono_reflection_bind_generic_parameters): Only set + `ginst->is_dynamic' if our generic type is a TypeBuilder. + +2004-03-28 Zoltan Varga <vargaz@freemail.hu> + + * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash. + Fixes #56091. + +2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: added Kill_internal icall. + * process.[ch]: added Kill_internal icall. + +2004-03-25 Martin Baulig <martin@ximian.com> + + * class.h (MonoStats): Added `generic_instance_count', + `inflated_method_count', `inflated_type_count' and + `generics_metadata_size'. + +2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * reflection.c: no warnings now. + +2004-03-25 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_get_full): New public function; does a + mono_class_get(), but also takes a `MonoGenericContext *'. + + * loader.c (mono_field_from_memberref): Renamed to + `field_from_memberref', made static and added `MonoGenericContext *' + argument. + (mono_field_from_token): Added `MonoGenericInst *' argument. + (method_from_memberef): Likewise. + (mono_get_method_from_token): Likewise. + (mono_get_method_full): New public function; does a + mono_get_method(), but also takes a `MonoGenericContext *'. + + * verify.c (mono_method_verify): Get the method's generic context + and pass it to mono_field_from_token(), mono_get_method_full() and + mono_class_get_full(). + +2004-03-25 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_inflate_generic_type): Take a + `MonoGenericContext *' instead of a `MonoGenericInst *' and a + `MonoGenericMethod *'. + +2004-03-25 Martin Baulig <martin@ximian.com> + + * loader.h (MonoMethodInflated): Store the MonoGenericContext + instead of the MonoGenericMethod here. + +2004-03-25 Martin Baulig <martin@ximian.com> + + * class.h (MonoGenericInst): Added `MonoGenericContext *context'; + each time we create a new MonoGenericInst, we also create a new + context which points back to us. + + * class.c (inflate_method): Use `ginst->context' instead of + creating a new context. + + * loader.c (method_from_memberref): Use + `klass->generic_inst->context' instead of creating a new context. + +2004-03-25 Martin Baulig <martin@ximian.com> + + * class.h (MonoGenericContext): New struct. + (MonoGenericMethod): Removed `generic_inst'. + + * class.c (mono_class_inflate_generic_method): Take a + `MonoGenericContext *' instead of a `MonoGenericMethod *'. + +2004-03-25 Martin Baulig <martin@ximian.com> + + * loader.h (MonoMethodInflated): New typedef. + + * metadata.h (MonoMethodSignature): Removed `gen_method', make + `generic_param_count' consume just 30 bits, added `is_inflated' + and `has_type_parameters' flags (one bit each). + + * class.c (mono_class_inflate_generic_method): Create a + MonoMethodInflated instead of a MonoMethodNormal and set + `is_inflated' in the method signature. + + * class.h (MonoGenericMethod): Removed `generic_method'. + +2004-03-25 Lluis Sanchez Gual <lluis@ximian.com> + + * image.c: Make sure the name of a MonoImage is always an absolute path. + This fixes bug #54415. + +2004-03-24 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_setup_vtable): If we're a generic instance, + use our generic type's vtable size. + +2004-03-24 Zoltan Varga <vargaz@freemail.hu> + + * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add + MONO_NO_UNLOAD env var as a temporary workaround for unloading + problems. + +2004-03-23 Martin Baulig <martin@ximian.com> + + * class.h (MonoDynamicGenericInst): Added `int count_events' and + `MonoEvent *events'. + + * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall. + (typebuilder_icalls): Added "get_event_info"; calls + mono_reflection_event_builder_get_event_info(). + + * reflection.c (mono_reflection_generic_inst_initialize): Added + `MonoArray *events'. + (mono_reflection_event_builder_get_event_info): New function. + +2004-03-23 Bernie Solomon <bernard@ugsolutions.com> + + * object.h: add mono_type_initialization_init + + * object.c (mono_runtime_class_init): + implement class constructor synchronization rules + to cope with threading issues. + add mono_type_initialization_init + + * appdomain.c (mono_runtime_init): call + mono_type_initialization_init + + * class.h: removing initializing field from MonoVTable + +2004-03-23 Martin Baulig <martin@ximian.com> + + * class.c (my_mono_class_from_generic_parameter): Use + `param->name' if it's not NULL. + +2004-03-22 Ben Maurer <bmaurer@users.sourceforge.net> + + * class.c: do not insert non-virtual methods in the vtable. + * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1, + that means the method is non-virtual. This never would have + happened before. + +2004-03-22 Lluis Sanchez Gual <lluis@ximian.com> + + * profiler.c: Added lock for accessing coverage_hash. + +2004-03-22 Martin Baulig <martin@ximian.com> + + * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use + `method->method->signature->generic_param_count != 0' to make it + work for interface methods. + +2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * process.c: quote the string passed to the shell using g_shell_quote. + +2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threads.c: + (mono_threads_manage): don't remove the finalizer thread and self + from the threads hash table so that mono_thread_manage can be called + more than once. + +2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * process.c: quote the arguments when UseShellExecute is true. Fixes + bug #55790. + +2004-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threads.c: set mono_thread_detach as a cleanup routine for every + thread. This way it's always executed upon thread termination, either + aborted or finished normally. No more xsp hangs! + +2004-03-17 Martin Baulig <martin@ximian.com> + + * class.h (MonoGenericInst): Replaced the `GList *nested' with an + `int count_nested' and a `MonoType **nested'. + + * reflection.c (mono_reflection_bind_generic_parameters): Moved + most of the functionality into a new static + do_mono_reflection_bind_generic_parameters() and don't take a + `MonoType *nested_in' argument any more. Don't compute nested + types here. + (mono_reflection_generic_inst_get_nested_types): New public method + to get nested types. + + * class.c (mono_class_create_generic): Set `klass->nested_in' if + we're a nested class. + + * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call + mono_reflection_generic_inst_get_nested_types() to compute the + nested types. + +2004-03-17 Zoltan Varga <vargaz@freemail.hu> + + * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more + descriptive error message under windows. + +2004-03-17 Martin Baulig <martin@ximian.com> + + * class.c (dup_type): Added `const MonoType *original' argument; + copy the attrs from the original type. + +2004-03-17 Martin Baulig <martin@ximian.com> + + * metadata.c (do_mono_metadata_parse_generic_inst): Use the + `m->generic_inst_cache' here. + +2004-03-17 Zoltan Varga <vargaz@freemail.hu> + + * exception.h exception.c: Add stack_overflow_exception. + +2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threadpool.c: + (overlapped_callback): call SetEvent *after* invoking the callback. + No need to call CloseHandle. + +2004-03-16 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_image_get_fieldref_token): Take a + `MonoReflectionField *' instead of a `MonoClassField *' and a + `MonoClass *'; store the `MonoReflectionField *' in the hash. + +2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: don't add the culture to the filename we're looking for + if it's neutral or NULL. Fixes bug #53788. Removed redundant memset. + +2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * locales.c: don't ignore symbols when doing case insensitive compares. + Thanks Dick! Fixes bug #54046. + + * threads.c: surround 'threads' usage with enter/leave in + mono_thread_manage. + +2004-03-16 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_native_wrapper): Char arrays are + implicitly marshalled as [Out]. Fixes #55450. + + (mono_marshal_get_runtime_invoke): Zero out the result if there is + an exception. + +2004-03-16 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_from_generic_parameter): Use the actual + parameter name. + +2004-03-16 Martin Baulig <martin@ximian.com> + + * reflection.c (type_get_signature_size): New static function. + Compues the size of the type in a method signature. + (method_get_signature_size): New static function; calls + type_get_signature_size() to compute the actual size of the + method's signature. + (method_encode_signature): Use method_get_signature_size() to get + the signature's size rather than using `nparams * 10'. + +2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * file-io.h: define here WapiOverlapped on windows. I don't want the + regular OVERLAPPED one. + + * file-io.c: + * threadpool.c: somehow, BindIoCompletionCallback is not found. + Disabling AIO on windows. + +2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes + bug #55385. + +2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: upgraded corlib version. + + * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead + and BeginWrite. Allow opening files for asynchrnous operations. + + * file-io.h: new struct that maps FileStreamAsyncResult. + * icall.c: added new icalls. + * process.[ch]: support setting child process environment variables + and use the SHELL or COMSPEC when UseShellExecute is true. + + * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The + callback for async. IO is here and also BindHandle. + + * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls + from here. + +2004-03-14 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (create_custom_attr): Allow len == 0. + + * object.c (mono_class_compute_gc_descriptor): Fix descriptor + computation on big-endian machines. + +2004-03-13 Martin Baulig <martin@ximian.com> + + * class.h (MonoGenericInst): Added `int count_ifaces'. + + * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use + `ginst->count_ifaces' instead `klass->interface_count' since we + may get called before the vtable is created. + + * loader.c (mono_method_get_param_names): If we're a generic + instance, return and don't initialize the class. + + * reflection.c (mono_reflection_setup_generic_class): Don't call + ensure_runtime_vtable(). + (mono_reflection_bind_generic_parameters): Set + `ginst->count_ifaces'. + +2004-03-11 Jackson Harper <jackson@ximian.com> + + * icall.c: + * unicode.c: + * unicode.h: Remove unused System.Char icalls. + +2004-03-11 Miguel de Icaza <miguel@ximian.com> + + * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init + code when we P/Invoke the first library in Windows.Forms, instead + of when we first open the assembly. + + * assembly.c: Drop the lookup from here. + +2004-03-10 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_reflection_get_custom_attrs): Use the correct + class for properties, fields and events. Finally fixes #54945. + +2004-03-10 Martin Baulig <martin@ximian.com> + + * metadata.c (mono_metadata_class_equal): New static function; + checks whether two generic instances or two generic parameters are + equal. + (mono_metadata_type_equal): Use mono_metadata_class_equal() to + compare classes. + +2004-03-10 Martin Baulig <martin@ximian.com> + + * class.h (MonoGenericMethod): Added `gpointer reflection_info'. + + * reflection.c (inflate_mono_method): Added `MonoObject *obj' + argument and write it into the `reflection_info' field. + + * icall.c + (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall. + (ves_icall_MethodBase_get_HasGenericParameters): New interncall. + +2004-03-09 Jackson Harper <jackson@ximian.com> + + * char-conversions.h: use 8 bits for numeric data its all we need + * icall.c: numeric data is only 8 bits now. + +2004-03-09 Martin Baulig <martin@ximian.com> + + * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'. + + * class.c (init_properties, init_events): Initialize the new + `parent' field. + + * reflection.c (typebuilder_setup_properties): Likewise. + (typebuilder_setup_events): Likewise. + + * reflection.h (MonoEventInfo): Replaced `parent with + `declaring_type' and `reflected_type'. + + * icall.c (ves_icall_get_property_info): Distinguish between + declaring and reflected type. + (ves_icall_get_event_info): Likewise. + +2004-03-09 Martin Baulig <martin@ximian.com> + + * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST. + (ves_icall_Type_GetField): Correctly set field->klass. + +2004-03-09 Zoltan Varga <vargaz@freemail.hu> + + * loader.h: Fix warning. + +2004-03-08 Miguel de Icaza <miguel@ximian.com> + + * loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib + library routine if present. Notice that it will still continue + executing even if its missing, for those working on the Gtk# + edition of Windows.Forms. + + * assembly.c (do_mono_assembly_open): If loading the + System.Windows.Forms call mono_loader_wini_init. + +2004-03-04 Lluis Sanchez Gual <lluis@ximian.com> + + * class.h: Added MonoRemoteClass struct. + * domain.c: Changed hash function for proxy_vtable_hash. It now uses a + function for MonoStrings. + * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy. + Added internal call for getting the proxy type. + * marshal.c: Get the type of transparent proxies from its remote_class. + Added methods that generate the IL for type checks and casts: + mono_marshal_get_isinst, mono_marshal_get_castclass, + mono_marshal_get_proxy_cancast. + * marshal.h: Declaration of the previous new methods. + * object.c: Added new moethods for creating and updating MonoRemoteClass + instances: mono_remote_class, mono_upgrade_remote_class, + * object.h: Added MonoRemoteClass reference in MonoTransparentProxy. + * verify.c: FIx transparent_proxy_fields layout. + * appdomain.c: Bump corlib version. + +2004-03-04 Jackson Harper <jackson@ximian.com> + + * icall.c: Add icall to access char conversion tables. + * char-conversions.h: Character conversion tables. + * Makefile.am: Add char-conversions.h private header file. + +2004-03-04 Zoltan Varga <vargaz@freemail.hu> + + * appdomain.c (unload_thread_main): Increase unloading timeout to + 10 sec as a temporary workaround for Nant problems. + +2004-02-29 Zoltan Varga <vargaz@freemail.hu> + + * gc.c: Add checks for GC_enable and GC_disable. + + * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski + (jaak@zd.com.pl). Fix memory corruption in String.Replace + (bug #54988). + +2004-02-27 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_reflection_bind_generic_parameters): Take a + `MonoReflectionType *' instead of a `MonoType *'. + +2004-02-26 Zoltan Varga <vargaz@freemail.hu> + + * gc.c (run_finalize): Avoid finalizing the object representing the + finalizer thread. + (finalizer_thread): Fix warning. + +2004-02-25 Martin Baulig <martin@ximian.com> + + * class.c (_mono_class_get_instantiation_name): Added `int offset' + argument for nested types. + (mono_class_create_generic): Added support for nested generictypes. + + * class.h (MonoGenericInst): Added `MonoType *nested_in' and + `GList *nested'. + + * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall. + + * reflection.c (method_encode_signature): Increase the minimum + value of `size' from 10 to 11. + (mono_reflection_bind_generic_parameters): Take `int type_argc' + and `MonoType **types' arguments instead of the `MonoArray + *types'; added `MonoType *nested_in'. Recursively instantiate + nested classes. + +2004-02-23 Zoltan Varga <vargaz@freemail.hu> + + * appdomain.h (MonoDomain): Add preallocated null_reference_ex and + stack_overflow_ex members which are used by exception handling. + + * appdomain.c (mono_runtime_init): Initialize the new members. + + * gc.c (mono_gc_enable): New helper function. + * gc.c (mono_gc_disable): New helper function. + +2004-02-23 Martin Baulig <martin@ximian.com> + + * icall.c: I must have been really stupid - make it actually work + this time ;-) + +2004-02-23 Martin Baulig <martin@ximian.com> + + * loader.c (method_from_memberref): Only inflate the method if + it's in another klass. + +2004-02-23 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_inflate_generic_type): Fixed two bugs. + (mono_class_init): If we're a generic instance and an interface, + compute `class->interface_id'; also create `class->interfaces' + here and inflate them. + + * metadata.c (do_mono_metadata_parse_generic_inst): Compute + `ginst->is_open'. + (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST. + + * reflection.c (mono_image_create_token): Allow "MonoGenericInst". + +2004-02-15 Miguel de Icaza <miguel@ximian.com> + + * reflection.c (method_encode_code): Improved the error message + generated by the exception. + +2004-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: Martin did not do what he said in the ChangeLog for + 2004-02-18, but put back the changes for properties and events. + Commenting those changes out again and adding comment to bug #54518. + + * process.c: removed warning. + +2004-02-20 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (emit_struct_conv): Print an error message instead of + asserting when a type does not have the StructLayout attribute. + +2004-02-20 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_type_get_object): Also use the cache for + generic instances. + (mono_reflection_bind_generic_parameters): Always compute + `ginst->ifaces'. + +2004-02-20 Martin Baulig <martin@ximian.com> + + * class.h (MonoGenericMethod): Removed `klass'. + + * class.c (mono_class_inflate_generic_method): Added `MonoClass + *klass' argument. + +2004-02-20 Martin Baulig <martin@ximian.com> + + * reflection.c (method_encode_methodspec): Actually use the + uninflated signature for the memberref. + +2004-02-20 Martin Baulig <martin@ximian.com> + + * class.h (MonoGenericMethod): Removed `declaring'. + + * class.c (mono_class_inflate_generic_method): If `gmethod->klass' + is NULL, compute it here. + +2004-02-20 Martin Baulig <martin@ximian.com> + + * image.h (MonoImage): Added `GHashTable *generic_inst_cache'. + + * metadata.c (mono_metadata_generic_inst_hash): New method. + (mono_metadata_generic_inst_equal): New method. + + * reflection.c (mono_reflection_bind_generic_parameters): Use the + `klass->image->generic_inst_cache' cache to avoid creating + duplicate MonoGenericInst's. + + * class.c (mono_class_inflate_generic_type): Use the cache. + +Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com> + + * object.c: fixed gc descriptor calculation for embedded valuetypes. + +2004-02-19 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: added Socket.WSAIoctl icall. + + * socket-io.[ch]: implemented + ves_icall_System_Net_Sockets_Socket_WSAIoctl. + +2004-02-19 Atsushi Enomoto <atsushi@ximian.com> + + * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls. + +2004-02-18 Urs C Muff <umuff@quark.com> + + * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make + this work on PPC and other big-endian architectures. + + * debug-mono-symfile.h: Prepended the names of all the `guint32' + fields with an underscore to make sure they're only accessed by + the read32() macro. + +2004-02-18 Martin Baulig <martin@ximian.com> + + * icall.c: Put the klass->refclass changes back for methods and + fields, but not for properties and events. We're currently not + distinguishing between DeclaringType and ReflectedType for + properties and events, that's what caused the regressions. + +2004-02-18 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * object.c: + (mono_async_result_new): the handle can be NULL. + + * threadpool.c: Use an event instead of a semaphore, don't initialize + it until needed. This saves quite a few semaphores from being created + when using the threadpool. + +2004-02-18 Zoltan Varga <vargaz@freemail.hu> + + * object.c (mono_string_is_interned_lookup): Fix interning of long + strings. Fixes #54473. + + * domain.c (ldstr_equal): Optimize if the two strings are equal. + + * icall.c: Revert the klass->refclass changes since they introduce + regressions (bug #54518). + +2004-02-18 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_init): If we're a generic instance and don't + come from a TypeBuilder, inflate our members here. + (mono_class_from_generic): Removed; just use `ginst->klass' instead. + (mono_class_create_generic): New public method. + (mono_class_initialize_generic): Removed. + (get_instantiation_name): Renamed to + _mono_class_get_instantiation_name() and made it public. + +2004-02-18 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_inflate_generic_type): Clear the new + instance's `nginst->klass' when inflating a generic instance. + (mono_class_is_subclass_of): Added (basic) support for generic + instances. + +Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com> + + * appdomain.h, domain.c: use a MonoCodeManager instead of a + MonoMempool to hold compiled native code. + +2004-02-17 Martin Baulig <martin@ximian.com> + + * class.h (MonoDynamicGenericInst): Added `count_properties' and + `properties'. + + * reflection.c (mono_reflection_generic_inst_initialize): Added + `MonoArray *properties' argument. + + * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall. + +2004-02-17 Martin Baulig <martin@ximian.com> + + * icall.c (ves_icall_Type_GetFields): Renamed to + ves_icall_Type_GetFields_internal() and added a + `MonoReflectionType *rtype' argument; pass it to + mono_field_get_object() to set the field's "reflected" type. + (ves_icall_Type_GetConstructors): Likewise. + (ves_icall_Type_GetEvents): Likewise. + (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype' + argument; pass it to mono_method_get_object() to set the method's + "reflected" type. + +2004-02-17 Martin Baulig <martin@ximian.com> + + * class.h (MonoDynamicGenericInst): New type. + (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields. + + * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall. + (ves_icall_MonoGenericInst_GetConstructors): New interncall. + (ves_icall_MonoGenericInst_GetFields): New interncall. + + * class.c (mono_class_from_generic): Don't call + mono_class_initialize_generic() if this is a dynamic instance; + ie. it's being created from a TypeBuilder. + Use MONO_TYPE_GENERICINST for `class->this_arg.type' and + `class->byval_arg.type'. + + * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed + to `inflate_method' and made static. + (mono_reflection_inflate_field): Removed. + (mono_reflection_generic_inst_initialize): New public method. + + * reflection.h (MonoReflectionGenericInst): Removed `methods', + `ctors' and `fields'; added `initialized'. + +2004-02-14 Zoltan Varga <vargaz@freemail.hu> + + * debug-helpers.c (mono_method_full_name): Fix output for empty + namespaces. + +2004-02-12 Martin Baulig <martin@ximian.com> + + * class.h (MonoClassField): Added `MonoType *generic_type'. + + * reflection.c (mono_image_get_fieldref_token): Added support for + instantiated generic types. + (field_encode_inflated_field): Removed. + (mono_image_get_inflated_field_token): Removed. + (mono_reflection_inflate_field): Return a `MonoReflectionField *'. + + * reflection.h (MonoReflectionInflatedField): Removed. + +2004-02-12 Martin Baulig <martin@ximian.com> + + * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the + `gen_method' field from MonoMethodHeader to MonoMethodSignature. + + * reflection.c (mono_image_get_methodspec_token): Take a + `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'. + (mono_image_create_token): Check whether we have a + `method->signature->gen_method' and call + mono_image_get_methodspec_token() if appropriate. + (inflated_method_get_object): Removed. + (mono_reflection_bind_generic_method_parameters): Return a + `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'. + (mono_reflection_inflate_method_or_ctor): Likewise. + + * reflection.h (MonoReflectionInflatedMethod): Removed. + +2004-02-12 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_native_wrapper): Implement proper support + for custom valuetype marshalling. + + * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261. + +2004-02-11 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: fixed WSAGetLastError_internal name. + +2004-02-11 Zoltan Varga <vargaz@freemail.hu> + + * threads.c (mono_thread_attach): Allow this to be called multiple + times for a thread. + + * threads.c (build_wait_tids): Do not wait for ourselves. + + * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the + appdomain list is empty. + + * marshal.c (mono_marshal_get_native_wrapper): Do not free the + memory returned by mono_string_builder_to_utf16, since it points into + managed memory. Thanks to Bernie Solomon for noticing this. + + * icall.c: Add AppDomainSetup icalls. + + * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field. + + * reflection.c (mono_custom_attrs_from_param): Add support for dynamic + types. + + * reflection.c (reflection_methodbuilder_to_mono_method): Save + custom attributes to the method_aux struct. Also fix array indexes etc. + + * loader.c (mono_method_get_param_names): Make dynamic case work again. + +Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com> + + * icall.c, loader.c: icall cleanup: we save quite a bit of memory + (both static and runtime) and reduce startup time. + +2004-02-10 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on + AsAny marshalling conversion instead of crashing. + + * marshal.c: Fix warnings. + +2004-02-09 Martin Baulig <martin@ximian.com> + + * class.h (MonoGenericMethod): Added `MonoMethod *declaring'. + + * reflection.h (MonoReflectionInflatedMethod): Removed the + `declaring' field, it's now in the unmanaged MonoGenericMethod. + + * reflection.c (method_encode_methodspec): Removed the `method' + argument; we get it from `gmethod->declaring'. + (inflated_method_get_object): Removed the `declaring' argument. + +2004-02-09 Martin Baulig <martin@ximian.com> + + * class.h (MonoGenericMethod): New type. + (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and + `generic_method'. + + * metadata.h (MonoMethodHeader): Replaced the `geninst' field with + a `MonoGenericMethod *gen_method' one. + + * class.c (mono_class_inflate_generic_type): Take an additional + `MonoGenericMethod * argument. This is only non-NULL if we're + inflating types for a generic method. + (mono_class_inflate_generic_signature): Renamed to + inflate_generic_signature() and made static; take a + `MonoGenericMethod *' argument instead of a `MonoGenericInst *'. + (inflate_generic_header): Take a `MonoGenericMethod *' argument + instead of a `MonoGenericInst *' one. + (mono_class_inflate_generic_method): Likewise. + + * reflection.c (encode_generic_method_sig): Take a + `MonoGenericMethod *' argument instead of a `MonoGenericInst *'. + (method_encode_methodspec): Likewise. + (inflated_method_get_object): Likewise. + + * reflection.h (MonoReflectionGenericInst): Replaced the `ginst' + field with a `MonoGenericMethod *gmethod' one. + +2004-02-08 Bernie Solomon <bernard@ugsolutions.com> + + * class.h (mono_class_has_parent): add parens to expansion + so you can ! this. + +2004-02-08 Martin Baulig <martin@ximian.com> + + * image.h (MonoImage): Removed `generics_cache'. + + * class.c (mono_class_from_generic): Take a `MonoGenericInst *' + instead of a `MonoType *' argument; removed the `inflate_methods' + argument. Don't inflate methods here. + + * loader.c (find_method): If it's a generic instance, call + mono_class_init() on the `sclass->generic_inst->generic_type'. + + * metadata.c (mono_type_size): Make this work on uninitialized + generic instances; call it on the `ginst->generic_type's class. + + * reflection.c (mono_reflection_bind_generic_parameters): Call + mono_class_from_generic() to create the `ginst->klass'. + +2004-02-08 Martin Baulig <martin@ximian.com> + + * class.h (MonoClass): Changed type of `generic_inst' from + `MonoType *' to `MonoGenericInst *'. + +2004-02-08 Martin Baulig <martin@ximian.com> + + * icall.c (ves_icall_Type_BindGenericParameters): Just call + mono_type_get_object(), this is now creating a `MonoGenericInst' + for MONO_TYPE_GENERICINST. + (ves_icall_MonoGenericInst_GetParentType): Likewise. + (ves_icall_MonoGenericInst_GetInterfaces): Likewise. + + * reflection.c (mono_type_get_object): Return a `MonoGenericInst' + instead instead of a `MonoType' for MONO_TYPE_GENERICINST. + (inflated_method_get_object): Added `MonoClass *refclass' argument. + (mono_reflection_inflate_method_or_ctor): Correctly set declaring + and reflected type. + + * reflection.h (MonoReflectionInflatedMethod): Removed + `declaring_type' and `reflected_type'. + +2004-02-08 Martin Baulig <martin@ximian.com> + + * class.h (MonoGenericInst): Added `MonoType *parent' and + `MonoType **ifaces'. + + * reflection.h (MonoReflectionGenericInst): Removed `klass', + `parent' and `interfaces'. + + * reflection.c (mono_reflection_bind_generic_parameters): Take a + `MonoType *' argument and return a `MonoType *'. + + * icall.c + (ves_icall_MonoGenericInst_GetParentType): New interncall. + (ves_icall_MonoGenericInst_GetInterfaces): Likewise. + +2004-02-06 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_native_wrapper): Add support for custom + valuetype marshalling. + +2004-02-06 Martin Baulig <martin@ximian.com> + + * class.c + (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC. + (my_mono_class_from_generic_parameter): Likewise. + +2004-02-06 Zoltan Varga <vargaz@freemail.hu> + + * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the + contents of the symbol files lazily. + + * object.h (MonoThread): Add 'name' and 'name_len' fields. + + * threads.h threads.c icall.c: New icalls for getting and setting the + threads name. + +2004-02-05 Zoltan Varga <vargaz@freemail.hu> + + * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): + Raise an exception when the domain is not found. + +2004-02-03 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_image_get_methodspec_token): Use the + uninflated signature; fixes gen-33. + +2004-02-02 Zoltan Varga <vargaz@freemail.hu> + + * gc.c threads.c: Make the finalizer thread a normal managed thread so + the finalizer code can use thread functionality. + + * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for + the finalizer thread. + + * threads.c: Make some functions more robust. + + * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532. + + * metadata.h: Add new marshalling conventions. + + * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode + stringbuilder marshalling. Fixes #53700. + + * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field. + + * reflection.c (mono_image_get_type_info): Save declarative security + info. + + * reflection.c (mono_image_get_field_info): Handle uninitialized + unmanaged fields as well. + + * appdomain.c: Bump corlib version. + +2004-02-01 Martin Baulig <martin@ximian.com> + + * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for + method type arguments. + +2004-01-30 Duncan Mak <duncan@ximian.com> + + * marshal.h: Add prototype for + "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem" + and + "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to + fix the build. + +2004-01-30 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall. + (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall. + +2004-01-29 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_native_wrapper): Add support for + custom marshalling of valuetypes. + + * marshal.c: Fix some warnings. + +2004-01-29 Martin Baulig <martin@ximian.com> + + * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv' + for generic method parameters. + + * reflection.c (method_encode_methodspec): Write the uninflated + signature into the methodspec table. + (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring' + is always the uninflated method. + (reflection_methodbuilder_to_mono_method): Copy the generic + parameters from the MethodBuilder into `header->gen_params'. + +2004-01-29 Zoltan Varga <vargaz@freemail.hu> + + * class.c (mono_class_from_generic_parameter): Fix warning. + +2004-01-27 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_from_generic_parameter): Don't create + `klass->methods' here. + +2004-01-26 Zoltan Varga <vargaz@freemail.hu> + + * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll + extension since it does not work with libraries named lib<FOO>.dll.so. + +2004-01-25 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_inflate_generic_type): Added support for + MONO_TYPE_GENERICINST. + + * reflection.c (mono_reflection_inflate_method_or_ctor): Also + inflate methods on open constructed types. + +2004-01-24 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * object.c: fire ProcessExit event in the root AppDomain after running + Main. Fixes bug #53299. + +Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com> + + * socket-io.c: include the new socket-wrappers.h header. + Use the wrappers instead of the unix socket functions to make the code + more clear. + +2004-01-23 Zoltan Varga <vargaz@freemail.hu> + + * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010. + + * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names. + Fixes #22532. + +2004-01-22 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (mono_image_create_pefile): Handle the case when the + entry point is not a MethodBuilder. + + * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point' + field to ReflectionMethod since it is not allways a builder. + + * reflection.c (type_get_fully_qualified_name): New helper function to + return the fully qualified name of a type. + + * reflection.c (encode_marshal_blob): Always emit the fully qualified + type name for custom marshallers. + + * reflection.c (mono_marshal_spec_from_builder): Ditto. + + * class.c (mono_class_setup_vtable): If a parent class already + implements an interface, use the implementing methods from that class. + Fixes #53148. + +2004-01-22 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threadpool.c: just return instead of ExitThread to allow for thread + clean up earlier. + +2004-01-21 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion + when closing resource modules. + + * reflection.c (mono_image_create_pefile): Handle the case when the + entry point is not a MethodBuilder. + + * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point' + field to ReflectionMethod since it is not allways a builder. + +2004-01-20 Bernie Solomon <bernard@ugsolutions.com> + + * marshal.c (mono_marshal_get_managed_wrapper): + mono_marshal_alloc takes native int so CONV_I + the arg for 64bits. + +2004-01-20 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (fixup_cattrs): New function to fixup the methoddef + 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. + +2003-10-15 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_from_gen_param): Renamed to + mono_class_from_generic_parameter() and moved most of the + functionality from mono_reflection_define_generic_parameter() + here; ie. we create a "real" class here. + (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and + MONO_TYPE_MVAR if mono_class_from_generic_parameter() has + previously been called. + + * class.h (MonoGenericParam): Moved the declaration of this struct + here from metadata.h and added `MonoMethod *method'. + + * icall.c (ves_icall_MonoType_get_DeclaringMethod): New + interncall. + + * loader.c (mono_get_method_from_token): If we have any generic + parameters, call mono_metadata_load_generic_params() to read them + from the MONO_TABLE_GENERICPAR. + + * metadata.c (mono_metadata_load_generic_params): Added + `MonoMethod *method' argument which is used MONO_TYPE_MVAR. + + * metadata.h (MonoMethodSignature): Replaced + `MonoGenericInst *geninst' with `guint16 generic_param_count'. + (MonoMethodHeader): Added `MonoGenericParam *gen_params'. + + * reflection.c (mono_reflection_define_generic_parameter): Moved + most of the functionality into the new + mono_class_from_generic_parameter(); set the `method' field if + we're a method parameter. + +2003-10-13 Bernie Solomon <bernard@ugsolutions.com> + + * marshal.c (emit_struct_conv): if native size is 0 + emit no code. + +2003-10-14 Martin Baulig <martin@ximian.com> + + * icall.c: The generics API has changed in the spec since it was + added to System.Type; these modifications make it match the spec + again. + (ves_icall_Type_GetGenericParameters): Renamed to + `ves_icall_Type_GetGenericArguments'. + (ves_icall_Type_get_IsGenericTypeDefinition): New interncall. + (ves_icall_MonoType_get_HasGenericParameteres): Renamed to + `ves_icall_MonoType_get_HasGenericArguments'. + (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to + `ves_icall_MonoType_get_IsGenericParameter'. + (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed; + this is no interncall anymore. + (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to + `ves_icall_TypeBuilder_get_IsGenericParameter'. + +2003-10-14 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_reflection_bind_generic_parameters): Also + inflate generic methods if we're reading the class from IL. + +2003-10-13 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_reflection_define_generic_parameter): This + method isn't called directly from the icall anymore; take a + `MonoReflectionAssemblyBuilder *' so we can use this for type and + method generic parameters. + (ReflectionMethodBuilder): Added `MonoArray *generic_param'. + (method_builder_encode_signature): Encode generic parameters. + (mono_image_get_method_info): Write generic params to the + MONO_TABLE_GENERICPARAM table. + + * reflection.h (MonoReflectionMethodBuilder): Added + `MonoArray *generic_params'. + + * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'. + + * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added + wrapper for mono_reflection_define_generic_parameter(). + (ves_icall_MethodBuilder_define_generic_parameter): Likewise. + +2003-10-13 Zoltan Varga <vargaz@freemail.hu> + + * marshal.h: Add missing function to fix build. + + * marshal.c (mono_marshal_get_native_wrapper): Add support for + the SetLastError pinvoke attribute. + + * marshal.c (mono_marshal_set_last_error): New helper function called + by the generated code. + + * marshal.c (mono_mb_emit_branch): New helper function. + + * marshal.c (mono_mb_emit_exception): Added exception name parameter. + + * marshal.c (mono_marshal_get_managed_wrapper): Added support for + classes as parameters and return values of delegates. Fixes #29256. + +2003-10-12 Bernie Solomon <bernard@ugsolutions.com> + + * locales.c: use gint32 in non HAVE_ICU case + +2003-10-11 Martin Baulig <martin@ximian.com> + + * mono-debug.c (mono_debug_add_method): Added a workaround for + bug #48591. + +2003-10-10 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_managed_wrapper): Under windows, + delegates passed to native code must use the STDCALL calling + convention. Fixes #35987. + +2003-10-10 Martin Baulig <martin@ximian.com> + + * class.c (inflate_generic_type): If we're inflating for a generic + type instance (and not for a generic method), return + MONO_TYPE_MVAR unchanged. + +2003-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * string-icalls.c: Join ignores null strings in the source array. + * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads. + * threads.c: GetAvailableTheads is slightly more accurate. + +2003-10-09 Bernie Solomon <bernard@ugsolutions.com> + + * threads.h threads.c : add mono_threads_set_default_stacksize + and pass default to CreateThread calls. + +2003-10-09 Dick Porter <dick@ximian.com> + + * icall.c: + * locales.h: + * locales.c: Internal calls for constructing CultureInfo and + related objects from libicu (if its available.) + +2003-10-09 Zoltan Varga <vargaz@freemail.hu> + + * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type. + +2003-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threadpool.c: added an argument to async_invoke_thread that is the + item to process, pass the MonoAsyncResult to the thread start function + when creating a new thread. This way we don't need to acquire any lock + when we're creating a new thread. Readded a semaphore for faster + response times (instead of that Sleep i added). + +2003-10-08 Bernie Solomon <bernard@ugsolutions.com> + + * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): + get daylight change dates better on Windows, fix handling + of platforms without tm_gmtoff. + +2003-10-06 Martin Baulig <martin@ximian.com> + + * class.c (inflate_generic_method): Renamed to + mono_class_inflate_generic_method() and made public. + (mono_class_init): Don't inflate the generic methods here. + (mono_class_from_generic): Added `gboolean inflate_methods' + argument. Inflate the methods here. + + * loader.c (mono_method_get_param_names): Ignore instances of + generic types for the moment. + + * reflection.c (fixup_method): Added support for inflated methods. + (mono_image_create_token): Use mono_image_get_methodref_token() + for inflated methods. + (mono_custom_attrs_from_param): Ignore instances of generic types + for the moment. + (mono_reflection_bind_generic_parameters): New public function. + Moved all the functionality from + ves_icall_Type_BindGenericParameters() here and added support for + dynamic types. + (mono_reflection_define_generic_parameter): Initialize + `klass->methods' here. + + * icall.c (ves_icall_Type_BindGenericParameters): Moved all the + functionality into mono_reflection_define_generic_parameter(). + (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a + TypeBuilder, return that TypeBuilder. + +2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: removed mono_delegate_semaphore. + + * threadpool.c: + (mono_thread_pool_add): moved hash table creation inside and the thread + creation outside of the critical region. + (mono_thread_pool_finish): removed obsolete code. + (async_invoke_thread): don't use the semaphore. Use a plain Sleep and + continue or exit the thread depending on the queue. + +2003-10-07 Bernie Solomon <bernard@ugsolutions.com> + + * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1 + marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper): + handle more bool marshalling options + +2003-10-07 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of + arrays of structs. Also add a more descriptive error message when + a structure member is marshalled as LPArray. + +2003-10-06 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_get_native_wrapper): Add support for + marshalling arrays of complex types. Fixes #29098. Also remove an + usused and incomplete function. + +Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * gc.c: report heap_size - free_bytes as total memory allocated + (bug#49362). + +2003-10-05 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally + fix timezone handling problems on Windows. + + * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid + asserts when the year is outside the range handled by ms the functions. + + * class.c (setup_interface_offsets): If the class is an interface, + fill out its interface_offsets slot. + +2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threadpool.c: mark threadpool threads as background. + +2003-10-03 Bernie Solomon <bernard@ugsolutions.com> + + * decimal.c - define DECINLINE to nothing if not using GCC + +2003-10-03 Zoltan Varga <vargaz@freemail.hu> + + * assembly.c: More refcount fixes. + +2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * string-icalls.c: if we're not trimming, return the same string. + When not splitting, don't create a new string. + +2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * image.c: + (mono_image_open): increment the ref_count inside the critical section. + +2003-10-02 Zoltan Varga <vargaz@freemail.hu> + + * image.c (mono_image_open): Fix reference counting bug. + +2003-09-30 Bernie Solomon <bernard@ugsolutions.com> + + * marshal.c (mono_marshal_type_size) struct alignment changed for + 64bit machines. (emit_ptr_to_str_conv) Fix bool conversions for + 64bits. Avoid leak in mono_marshal_get_native_wrapper when + mono_lookup_pinvoke_call throws. + +2003-09-30 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (mono_reflection_parse_type): Fix #49114. + + * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add + temporary workaround for cygwin header problem. + + * object.c (mono_object_isinst): Synchronize this with the code + generated by the JIT for casts. + +2003-09-29 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (encode_type): Fix #38332. + +2003-09-26 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_method_from_wrapper): New function to return + the original method from the wrapper method. + +2003-09-25 Martin Baulig <martin@ximian.com> + + * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this + interncall since it was identical to `Type.GetGenericTypeDefinition()'. + (ves_icall_Type_get_IsGenericInstance): New interncall. + +2003-09-24 Bernie Solomon <bernard@ugsolutions.com> + + * object.c: fix cast warning in big endian code. + +2003-09-19 Jackson Harper <jackson@latitudegeo.com> + + * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu) + +2003-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * assembly.c: don't call check_env from mono_assembly_load. It's + already done once in mono_assemblies_init and may cause headaches when + multiple threads are loading assemblies. + +2003-09-19 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_reflection_define_generic_parameter): Don't + allocate `klass->methods', set `klass->flags' to + TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT. + +2003-09-18 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_init): Don't create `class->methods' if it's + already initialized. + + * metadata.c (mono_metadata_load_generic_params): Make this + actually work. + + * reflection.c (mono_reflection_define_generic_parameter): Set + parent class and interfaces from the constraints. + + * reflection.h (MonoReflectionGenericParam): Added `guint32 flags' + to keep this struct in sync with the declaration in TypeBuilder.cs. + +2003-09-17 Martin Baulig <martin@ximian.com> + + * metadata.h (MonoType): Replaced the data's `int type_param' + field with `MonoGenericParam *generic_param'. + (MonoGenericParam): Added `MonoClass *klass'. + + * class.c (mono_class_from_gen_param): Removed the + `MonoImage *image' and `int type_num' arguments. + + * metadata.c (mono_metadata_parse_generic_param): New static + method; creates a MonoGenericParam which just contains the index. + (do_mono_metadata_parse_type): Call + mono_metadata_parse_generic_param() for MONO_TYPE_VAR and + MONO_TYPE_MVAR. + + * reflection.c (mono_image_typedef_or_ref): Generic type + parameters may be in the same assembly, but never use a typedef + for them. + (mono_reflection_define_generic_parameter): We're now creating a + "real" class for the type parameter; it's now safe to call + mono_class_from_mono_type() on the class'es type, it'll do the + right thing. + +2003-09-16 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize + `symfile->range_entry_size' and `symfile->class_entry_size' here; + the `symfile' data structure must be fully initialized before it + gets added to the table. + +2003-09-15 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS. + + * appdomain.h domain.c (MonoDomain): Added new hashtable to store the + class init trampolines. + +2003-09-11 Zoltan Varga <vargaz@freemail.hu> + + * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options + to the built-in profiler to turn off time and allocation profiling + respectively. + +2003-09-10 Zoltan Varga <vargaz@freemail.hu> + + * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of + g_direct_equal. + + * debug-helpers.c (mono_method_full_name): Print the wrapper type + in human readable form. + +2003-09-08 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c icall.c: Fixed warnings. + + * image.c (load_class_names): Use a temporary hash table to hold the + namespaces in order to avoid doing many string comparisons. + + * image.h: Fix typo. + + * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c: + Pass NULL instead of g_direct_equal to the GHashTable constructor + since the NULL case is short-circuited inside g_hash_table_lookup, + leading to better performance. + + * metadata.c (mono_metadata_custom_attrs_from_index): New function to + obtain the first custom attribute for a given index. Depends on the + CustomAttribute table being sorted by the parent field. + + * reflection.c (mono_custom_attrs_from_index): Use the new function + for better performance. + +2003-09-07 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_init): If we're a generic instance, inflate + all our methods instead of loading them from the image. + (mono_class_from_generic): Set `class->methods = gklass->methods'. + +2003-09-07 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c: Added support for constructors. + +2003-09-06 Martin Baulig <martin@ximian.com> + + * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): + New interncall. + + * reflection.c (mono_reflection_setup_generic_class): Call + ensure_runtime_vtable() to create the vtable. + +2003-09-05 Martin Baulig <martin@ximian.com> + + * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and + MONO_TYPE_MVAR. + +2003-09-04 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_reflection_define_generic_parameter): Generic + parameters start with zero. + +2003-09-04 Martin Baulig <martin@ximian.com> + + * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR. + + * reflection.h (MonoReflectionGenericParam): New typedef. + (MonoReflectionTypeBuilder): Added `generic_params' fields to get + the generic parameters from the managed TypeBuilder. + + * reflection.c (mono_reflection_define_generic_parameter): New function. + (mono_reflection_create_runtime_class): Encode generic parameters. + (mono_reflection_setup_generic_class): New function; this is + called after adding adding all generic params to the TypeBuilder. + (encode_type): Added MONO_TYPE_VAR. + +2003-09-04 Zoltan Varga <vargaz@freemail.hu> + + * class.h class.c (mono_class_needs_cctor_run): Moved this method + here from the JIT. + + * assembly.h assembly.c: Moved the AOT loading code into an assembly + load hook. + +2003-09-03 Zoltan Varga <vargaz@freemail.hu> + + * reflection.h reflection.c class.h class.c: Delete duplicate + definition of mono_type_get_name () from reflection.c and export the + one in class.c. + + * class.c: Class loading fixes from Bernie Solomon + (bernard@ugsolutions.com). + + * reflection.c: Endianness fixes from Bernie Solomon + (bernard@ugsolutions.com). + +2003-09-01 Zoltan Varga <vargaz@freemail.hu> + + * assembly.h assembly.c: Define a file format version for AOT + libraries. + + * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s. + + * appdomain.h (MonoJitInfo): New field to determine whenever the + code is domain neutral. + +2003-08-31 Miguel de Icaza <miguel@ximian.com> + + * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR + +2003-08-30 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): + (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path): + Avoid caching the result since strings must be domain specific. Fixes + #48050. + +2003-08-29 Zoltan Varga <vargaz@freemail.hu> + + * marshal.c (mono_marshal_init): Make this callable multiple times + since it is hard to find a correct place to call it. + + * object.c (mono_runtime_class_init): Execute static constructors in + the correct appdomain. + + * image.c (build_guid_table): Handle the case when multiple images have + the same GUID. + +2003-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: added a couple of icalls for System.Web. + +2003-08-28 Martin Baulig <martin@ximian.com> + + * icall.c (ves_icall_Type_BindGenericParameters): Use + `klass->generic_inst' instead of `&klass->byval_arg' in the + mono_type_get_object() call. The returned type must be + MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS. + +2003-08-27 Zoltan Varga <vargaz@freemail.hu> + + * NOTES: New file. + + * object.c (mono_class_proxy_vtable): Make it thread safe. + + * pedump.c: Fix warning. + + * object.c appdomain.h: Get rid of metadata_section. + It is no longer needed and it was causing deadlocks with domain->lock. + + * appdomain.c (add_assemblies_to_domain): Make it thread safe. + +2003-08-26 Martin Baulig <martin@ximian.com> + + * pedump.c (main): Don't call mono_image_close() if `verify_pe'. + +2003-08-26 Martin Baulig <martin@ximian.com> + + * pedump.c (main): Call mono_metadata_init(), + mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init() + and mono_loader_init(). + +2003-08-26 Zoltan Varga <vargaz@freemail.hu> + + * loader.h: Add missing include to fix build. + + * image.h: mono_image_load_references is no more. + + * assembly.c: Reworked assembly loading to make it really thread safe. + After these changes, the assembly returned by mono_assembly_open is + fully initialized, i.e. all its references assemblies are loaded. + + * assembly.c (mono_image_load_references): Renamed to + mono_assembly_load_references, and made private, since clients no + longer need to call it. + + * class.c: Removed calls to mono_assembly_load_references, since it was + a source of deadlocks. + + * loader.h loader.c class.h class.c: Protect data structures using a + new lock, the loader lock. + + * class.c (mono_class_setup_vtable): Create temporary hash tables and + GPtrArrays only when needed. + + * class.c (mono_class_layout_fields): Ignore the dummy field inserted + into empty structures by mcs. Fixes pinvoke7.cs. + + * domain.c (mono_init): Call a new initialization function. + + * appdomain.c (mono_runtime_init): Call the new initializer function + of the marshal module. + + * marshal.c (mono_marshal_load_type_info): Ignore the dummy field + inserted into empty structures by mcs. Fixes pinvoke7.cs. + + * marshal.h marshal.c: Added locks around the wrapper caches to make + this module thread safe. + + * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a + this argument. Fixes pinvoke1.exe. + +2003-08-25 Lluis Sanchez <lluis@ximian.com> + + * object.h: Added call_type field to MonoMethodMessage and the corresponding + enumeration of values. Removed fields to store remote call output values in + MonoAsyncResult. Not needed any more. + * object.c: Initialize call_type and async_result fields in mono_message_init. + * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before + dispatching the message. + mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the + async call to finish. To do it use a message with EndInvoke call type. + +2003-08-25 Zoltan Varga <vargaz@freemail.hu> + + * loader.h loader.c (mono_method_hash_marhal_info): New function which + determines whenever a method has marshalling info. + +2003-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * assembly.c: fix the build on windows. + +2003-08-22 Lluis Sanchez <lluis@ximian.com> + + * object.cs: Fixed bug #47785. + +2003-08-22 Jackson Harper <jackson@latitudegeo.com> + + * string-icalls.c (StringReplace): If their are no occurances of + the old string found return a reference to the supplied + string. This saves some memory and matches MS behavoir. + +2003-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * socket-io.c: fixed compilation for systems that define AF_INET6 + and don't define SOL_IP/SOL_IPV6. + +2003-08-21 Zoltan Varga <vargaz@freemail.hu> + + * object.c (mono_object_isinst): Fix casts to TransparentProxy in + the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com). + + * rawbuffer.c rawbuffer.h: Make this module thread safe. + + * domain.c: Make this module thread safe. + + * domain.c (mono_init): Call new initialization function. + + * icall.c (ves_icall_System_Array_SetValueImpl): Check types for + reference types too. Fixes #38812. + + * image.c (mono_image_init): Fixed warnings. + + * class.c (mono_class_from_typeref): Handle assembly load failure + correctly. + + * appdomain.c (add_assemblies_to_domain): Handle the case when + the references of an assembly are not yet loaded. + + * metadata.c image.c assembly.c: Moved initialization of global + variables to a separate function called at startup since lazy + initialization of these variables is not thread safe. + + * image.c assembly.c: Made this module thread safe by adding locks in + the appropriate places. + + * domain.c (mono_init): Call the new initialization functions of the + three modules. + +2003-08-20 Lluis Sanchez Gual <lluis@ximian.com> + + * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy, + make a direct call. It is proxy's work to make the call asynchronous. + mono_delegate_end_invoke(): If the targe is a proxy, just collect + the return values. + * object.cs: mono_method_call_message_new(): read AsyncResult and + state object from parameters list, if this info is requested. + * object.h: Added fields to store remote call output values in + MonoAsyncResult. Added AsyncResult field in MonoMethodMessage. + +Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * object.h: add needed fields to MonoThread. + * threads.c, threads.h: allow registering a function to cleanup data + allocated per thread by the JIT. + +Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * loader.h: portability fix by Bernie Solomon + * <bernard@ugsolutions.com>. + +2003-08-16 Zoltan Varga <vargaz@freemail.hu> + + * reflection.h reflection.c (mono_param_get_objects): Changed this to + return a MonoArray. This simplifies the code and also ensures that + the cache allways contains an object reference as a value. + + * icall.c (ves_icall_get_parameter_info): Simplified using the new + function. + +2003-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that + fixes a problem with byte ordering when getting the address family for + a socket. + +2003-08-15 Zoltan Varga <vargaz@freemail.hu> + + * .cvsignore: Added monosn. + + * reflection.h reflection.c loader.c: Added support for parameter + marshalling to dynamically created types. Fixes #47295. + +Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * rand.c: remove useless warnings. + +Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.c: implemented ldtoken for methods and fieldrefs. + +2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threadpool.c: when mono_async_invoke was called, no one took care of + monitoring the queue. So if the method invoked took some time and we + got new async invoke requests after 500 ms (the thread created waited + that long in WaitForSingleObject), the new async invoke was not called + until the previous one finished. + + This is fixed now. Thanks to Totte for helping with it. + +2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threadpool.c: set threadpool_thread to TRUE. Patch by totte. + +2003-08-11 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c (mono_debugger_lookup_type): New function. + +2003-08-06 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c: Added support for static fields, + properties and methods. + +2003-08-06 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c: Don't store the MonoString's vtable to + make this work for applications with multiple application domains. + +2003-08-04 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c: Completely reworked the type support; the + most important thing is that we're now just using one single + `MonoType' instance per type. + +Sat Aug 2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se> + + * mono-endian.h, mono-endian.c, icall.c: Added icall + ves_icall_System_Double_AssertEndianity to assert double word endianity + on ARM (FPA). The icall uses a macro defined in mono-endian.h. + +Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.c, class.h, reflection.c, metadata.c, icall.c: more generics + support, icalls and fixes. + +2003-07-31 Miguel de Icaza <miguel@ximian.com> + + * unicode.c (ves_icall_System_Char_IsPunctuation): The set of + classes that are a punctuation character in .NET is not the same a + g_unichar_ispunct. + +Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es). + +2003-07-29 Miguel de Icaza <miguel@ximian.com> + + * icall.c: Add new MemCopy internalcall. + (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): + Simplified code; It is not necessary to handle all the cases here, + as the C# code takes care of it. Only handle the case of the name + resource embedded into the assembly. + + Changed signature to return the data pointer and the size of the + data. + +2003-07-26 Miguel de Icaza <miguel@ximian.com> + + * reflection.c (mono_image_get_method_info): Allow for 0x40 to be + encoded. (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr). + +2003-07-29 Lluis Sanchez Gual <lluis@ximian.com> + + * socket-io.c: ignore EINTR error in select. + +Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.h, class.c: removed unused subclasses field in MonoClass. + +2003-07-29 Lluis Sanchez Gual <lluis@ximian.com> + + * icall.c: improve fix of get_base_definition(). If the parent class + doesn't have the mehod, look at the parent of the parent. + * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT + to check if a parameter is an in or out parameter + (PARAM_ATTRIBUTE_IN is not set by default). + mono_method_return_message_restore(): Use mono_class_value_size to + get the size of a value type. mono_type_stack_size (parameterType) + does not return the correct value if parameterType is byRef. + mono_load_remote_field(), mono_load_remote_field_new(), + mono_store_remote_field(), mono_store_remote_field_new(): + raise exception if the remote call returns an exception. + +2003-07-28 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c (mono_debugger_runtime_invoke): New + method. This is a wrapper around mono_runtime_invoke() which + boxes the instance object if neccessary. + +Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.c, class.h, image.c, image.h, loader.c, metadata.c, + metadata.h, row-indexes.h, verify.c: first cut of generics support. + +Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c: disable mcs bug workaround. + +2003-07-21 Miguel de Icaza <miguel@ximian.com> + + * object.c (mono_runtime_class_init): Take the metadata_section + mutex before obtaining the domain mutex. + + * appdomain.h: Added definition of metadata_section mutex here. + + * object.c: define metadata_mutex here. + +2003-07-24 Ravi Pratap <ravi@ximian.com> + + * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been + fixed. + +2003-07-24 Lluis Sanchez Gual <lluis@ximian.com> + + * reflection.c: Fix bug #46669 + +2003-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * exception.c: + * exception.h: + * icall.c: + * object.h: fill in the type name for TypeLoadException. + +2003-07-23 Ravi Pratap <ravi@ximian.com> + + * class.c: Fixes from Paolo in response to bug #45415 (Subclass + relationship between TypeBuilders while compiling corlib) and bug + 45993 (Array types returned from the runtime while compiling + corlib were from the loaded corlib). + +2003-07-22 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c: Reworked the type support a bit more; + distinguish between types and classes. + +Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c: add IsArrayImpl icall. + +2003-07-22 Zoltan Varga <vargaz@freemail.hu> + + * class.c (mono_class_layout_fields): Fix gc aware auto layout by + initializing real_size only once. Also fix bug #46602. + +2003-07-21 Jerome Laban <jlaban@wanadoo.fr> + + * object.c: Renamed mono_metadata_section to metadata_section. + +2003-07-21 Lluis Sanchez Gual <lluis@ximian.com> + + * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an + empty array if the type is an array. Fixed. + ves_icall_MonoMethod_get_base_definition: if the base method + is abstract, get the MethodInfo from the list of methods of + the class. + * reflection.c: ParameterInfo.PositionImpl should be zero-based + and it was 1-based. Fixed in mono_param_get_objects. + +2003-07-20 Martin Baulig <martin@ximian.com> + + * mono-debug.h: Set version number to 31. + (mono_debug_init): Added `MonoDomain *' argument. + + * mono-debug-debugger.c: Reworked the type support; explicitly + tell the debugger about builtin types; pass the `klass' address to + the debugger. + +2003-07-20 Jackson Harper <jackson@latitudegeo.com> + + * image.c: Allow new metadata tables to be loaded without a + warning. Also update the warning message to give the new constant value. + +Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c, + metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: + array type representation changes. + +Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c, appdomain.h, appdomain.c: support full runtime shutdown + on Environment.Exit () call. + +Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c, reflection.h, reflection.c, verify.c: cleanups, + requires a matching corlib. + +2003-07-17 Lluis Sanchez Gual <lluis@ximian.com> + + * Changelog: My editor decided to add a CR to each line. Sorry about that. + Committed again without the CRs. + +2003-07-17 Lluis Sanchez Gual <lluis@ximian.com> + + * socket-io.c: Get system_assembly using mono_image_loaded(), instead + getting it from the "this" socket instance. Did not work + if the socket is a subclass of Socket. + Also fixed bug #35371. + +Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * metadata.c: fixed size for TypedByRef. + * loader.c: when searching for a method, consider the vararg amrker. + * unicode.c, decimal.c: constify some arrays. + +2003-07-15 Dick Porter <dick@ximian.com> + + * socket-io.c: Fixed compilation for gcc < 3.2. + + Fixed compilation for machines that don't have AF_INET6 (thanks to + Bernie Solomon <bernard@ugsolutions.com> for that part.) + + Fixed compile warnings. + + Fixed formatting and line endings. + +2003-07-14 Jerome Laban <jlaban@wanadoo.fr> + + * socket-io.h: + * socket-io.c: Added IPv6 support. + +2003-07-13 Zoltan Varga <vargaz@freemail.hu> + + * class.c (mono_class_is_assignable_from): New function to implement + the is_assignable_from logic. Used by mono_object_isinst, + Type::IsAssignableFrom () and the interpreter. + + * class.c (mono_class_is_subclass_of): Make all classes a subclass of + Object, even interfaces. + + * object.c (mono_object_isinst): Implement in terms of + is_assignable_from. + + * icall.c (ves_icall_type_is_assignable_from): New icall. + +2003-07-11 Zoltan Varga <vargaz@freemail.hu> + + * domain.c (foreach_domain): fix compiler warning. + +2003-07-11 Dietmar Maurer <dietmar@ximian.com> + + * image.c (load_metadata_ptrs): use g_strndup because strndup is + not available on all plattforms + +2003-07-10 Zoltan Varga <vargaz@freemail.hu> + + * image.h image.c: Store the metadata version string in MonoImage. + * icall.c: New icall to retrieve the image version. + * reflection.c (create_dynamic_image): Fill in the image version field + * reflection.c (build_compressed_metadata): Use the image version + from the image structure. + +2003-07-08 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: modified comment. + * gc.c: finalizer_thread can call finalizers even when finished == TRUE. + That will be its last iteration when mono_gc_cleanup is called from + mono_runtime_cleanup and before the domain is unloaded. + + Fixes bug #45962. + +2003-07-04 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): fixes for [out] + attributes. + +Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c, + rawbuffer.c: more 64 bit and picky (or old) compiler fixes from + Bernie Solomon <bernard@ugsolutions.com>. + +Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * object.c, object.h: provide mono_object_new_fast() for faster + allocation in some special cases. + +Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * object.h, reflection.h, verify.c: fixes for some 64bit issues, + mostly from a patch by Laramie Leavitt <lar@leavitt.us>. + +Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * threadpool.c: fix leaks. + +2003-07-01 Dick Porter <dick@ximian.com> + + * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when + using MonoGHashTables. Fixes threadpool bug posted to list. + +Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * image.h, image.c: added support to load an assembly from a byte array. + * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added + assembly bundle support. + +2003-06-27 Dietmar Maurer <dietmar@ximian.com> + + * threadpool.c (mono_thread_pool_add): keep a reference to the + AsyncResult to prevent GC + +Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.c: leak fix. + +2003-06-25 Dick Porter <dick@ximian.com> + + * threadpool.c (mono_thread_pool_add): Don't set up a finaliser + for the async object, the WaitHandle object will close the handle. + Fixes bug 45321. + +Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.c: in mono_array_class_get (), lookup from the hash with the + same type we insert: this works around a bug in + mono_metadata_type_hash() with SZARRAY and fixes a leak reported by + lluis. The real fix will have to wait for after the release. + +Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c: fix memory leak when getting type members. + +Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c: added more pubtoken special cases. + +Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.c: handle field offset correctly when class size + is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)). + +2003-06-20 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage + *image' field. + +2003-06-20 Martin Baulig <martin@ximian.com> + + * image.h, mono-debug-debugger.h: Fixed compiler warnings. + +2003-06-20 Martin Baulig <martin@ximian.com> + + * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed. We + just distinguish between variables in registers and variables at + an offset relative to a register. + +2003-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: #ifdef out latest changes until mcs is fixed. + +Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c: return members in metadata order. + +Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c: avoid infinite loop in GetTimeZoneData. + +Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c: added Marshal.Prelink/All icalls. + +Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * object.c, object.h: fix warnings and do some overflow checking + when creating arrays. + +2003-06-17 Dick Porter <dick@ximian.com> + + * file-io.h: + * file-io.c: File attributes need to be tweaked slightly when + passed from the managed to the w32 world. + +2003-06-17 Zoltan Varga <vargaz@freemail.hu> + * profiler.h profiler-private.h profiler.c: Rework last patch + based on suggestion by Paolo. + +2003-06-17 Zoltan Varga <vargaz@freemail.hu> + + * profiler.h profiler-private.h profiler.c: Added infrastructure for + instruction level coverage data collection. + * profiler.h profiler.c (: Added new callback function which can be + used by the profiler to limit which functions should have coverage + instrumentation. + * profiler.c (mono_profiler_load): Call g_module_build_path to + generate the file name of the profiler library. + +Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * profiler.c, profiler.h, profiler-private.h: added basic block + coverage profiling API. + +2003-06-15 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (mono_reflection_create_runtime_class): Add support + for events in dynamically generated code. + + * gc.c: Start GCHandle indexes from 1, since 0 means the handle is + not allocated. + +Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c: when getting timezone info, return reasonable values if we + can't get the actual data. + +2003-06-14 Dick Porter <dick@ximian.com> + + * threads.c (start_wrapper): Remove the reference to the thread + object in the TLS data, so the thread object can be finalized. + This won't be reached if the thread threw an uncaught exception, + so those thread handles will stay referenced :-( (This is due to + missing support for scanning thread-specific data in the Boehm GC + - the io-layer keeps a GC-visible hash of pointers to TLS data.) + +Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c: ensure streams and tables are first allocated with + ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise). + +Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c: fixed GetElementType for byrefs (bug# 44792). + +2003-06-13 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (mono_reflection_create_runtime_class): Add support for + properties to dynamically created classes. + * reflection.c: Fix a few places where non-MonoObjects were inserted + into the tokens hashtable. + +Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * object.c: some support to handle out of memory exceptions. + +2003-06-12 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): support reference + return types + +Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * object.h, object.c: more portability stuff from Bernie Solomon. + Unexport mono_object_allocate(). Added mono_object_unbox (). + Set exitcode when an unhandled exception is thrown. + +2003-06-11 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): use custom + marshaler for return types. + +2003-06-10 Dick Porter <dick@ximian.com> + + * socket-io.c: Don't assume that one of struct ip_mreqn or struct + ip_mreq is available + +Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c, + mono-debug-debugger.c, mono-debug.c, process.c: portability fixes + by Bernie Solomon <bernard@ugsolutions.com>. + +2003-06-10 Zoltan Varga <vargaz@freemail.hu> + + * gc.c (mono_gc_init): Avoid error message on shutdown when + GC_DONT_GC=1 is used. + + * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): + New icall to return the GUID of a module. + +Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.c: ensure instance size always includes the parent's size + even whem class size is set explicitly (fixes bug#44294). + +Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * profiler.h, profiler.c: made the simple profiler thread-safe, + get more accurate timing info. Allow the loading of an + externally-developed profiler module. + +2003-06-05 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): improved + class/byref arguments. + (mono_marshal_get_native_wrapper): better string marshaling support. + +Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.c: ensure .pack and .size are handled correctly and + simplified layout of static fields. + +2003-06-04 Dietmar Maurer <dietmar@ximian.com> + + * appdomain.c + (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934 + + * loader.c (mono_lookup_pinvoke_call): look for modules in the + current directory (fix bug 44008) + +2003-06-03 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): started support for + custom marshalers. + (mono_delegate_to_ftnptr): consider marshalling specifications + +Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c, reflection.h: emit custom marshal info. + +2003-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * object.c: free the GError. + * icall.c: added CloseEvent_internal. + * threads.[ch]: + (ves_icall_System_Threading_Events_CloseEvent_internal): new internal + call. + +2003-06-01 Zoltan Varga <vargaz@freemail.hu> + + * loader.c (mono_method_get_signature): Add support for dynamic + assemblies. + +Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c: fixed bug #43905. + +Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.c, domain.c, icall.c, metadata.h, object.h: support for + handling TypedReference and ArgIterator. + * loader.c, loader.h: added function to get signature at call site. + +Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more + data readonly. Buglets and warning fixes. Some MethodSpec support. + +Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.h, class.c, object.c: remove relative numbering support. + +2003-05-26 Miguel de Icaza <miguel@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): For now, do not + free the string, until we get a chance to fix Gtk# + +2003-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * marshal.c: revert last patch. + +Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c: updates for new mono_class_vtable() not calling + the type constructor anymore. + +Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * object.h, object.c: separate vtable creation from type + initialization. Make running the .cctor thread safe. + +2003-05-26 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): free string return values. + +2003-05-21 Dietmar Maurer <dietmar@ximian.com> + + * loader.c (mono_get_method): consider calling convention + +2003-05-21 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall + to return the invisible global type for a module. + + * reflection.c (mono_image_build_metadata): Emit global fields too. + +2003-05-20 Peter Williams <peterw@ximian.com> + + * loader.c (mono_lookup_internal_call): Add a few newlines. + +2003-05-20 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic + literal strings. + + * appdomain.c (set_domain_search_path): Recalculate search path when + AppDomainSetup.PrivateBinPath changes. + + * object.c (mono_class_compute_gc_descriptor): It turns out some + parts of the class libs (like System.Thread) holds pointers to + GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is + to treat native int a pointer type here. + +Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * appdomain.h, domain.c: add hashtable for jump target resolution. + +2003-05-19 Zoltan Varga <vargaz@freemail.hu> + + * reflection.h reflection.c icall.c: Added new icalls + GetManifestResourceInfoInternal, GetModulesInternal and support + infrastructure. + +2003-05-16 Dick Porter <dick@ximian.com> + + * icall.c: + * file-io.h: + * file-io.c: Implement System.IO.MonoIO::GetTempPath + +2003-05-14 Lluis Sanchez Gual <lluis@ideary.com> + + * object.c: mono_store_remote_field: little fix to previous patch. + +Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.c: add constructors to array classes. + * icall.c: special case array construction for InternalInvoke (), + +2003-05-14 Zoltan Varga <vargaz@freemail.hu> + + * class.h class.c reflection.c object.c: Added support for field + defaults in dynamically generated classes. + +Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c: properly encode charset for ddlimport. + +Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * threads.c: allow compiling without GC. + +Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * appdomain.h, object.c, object.h, threads.c, threads.h: added + handling of thread static data. + +Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.h, reflection.c: added mono_custom_attrs_free (). + +2003-05-13 Dietmar Maurer <dietmar@ximian.com> + + * class.c (mono_array_class_get): always set the serializable flags + (mono_array_class_get): always set the SEALED attribute for array types + +2003-05-12 Dietmar Maurer <dietmar@ximian.com> + + * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode + attributes (fix for bug 42021). + +2003-05-12 Dick Porter <dick@ximian.com> + + * gc.c: Don't run finalizers when the finalizer thread is + finishing up, because the default domain has already been + destroyed. + +2003-05-11 Miguel de Icaza <miguel@ximian.com> + + * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if + value is null, we should throw an exception. This is slightly + different than the other conventions used for the constructor. + +2003-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * socket-io.c: fixed windows build. + +2003-05-11 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * socket-io.c: patch by Jerome Laban that fixes bug #42393. + +2003-05-10 Zoltan Varga <vargaz@freemail.hu> + + * object.c (mono_string_new_wrapper): Compatibility fix for MS + compilers. + +2003-05-09 Zoltan Varga <vargaz@freemail.hu> + + * class.c (mono_class_layout_fields): Add experimental GC aware + auto layout facility. Requires class library changes to work correctly. + + (mono_class_setup_vtable): Avoid overriding explicit interface + method implementations. Fixes iface3.exe test. + + * object.c (mono_class_compute_gc_descriptor): Type I can't hold an + object reference. + (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS. + (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS. + + * metadata.h: Add new type classification macro which determines + whenever the type holds an object reference. + +2003-05-08 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): cleanups + +2003-05-07 Zoltan Varga <vargaz@freemail.hu> + + * gc.c (finalizer_thread): Work around a GC bug. + +2003-05-07 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (emit_struct_conv): allow unions + + * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr> + +2003-05-06 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke + +2003-05-06 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>. + +2003-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * socket-io.c: + (Select_internal): allow NULLs, don't create arrays if not needed. + Coupled with Socket.cs changes. + + * threadpool.c: + (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and + register a finalizer for it that will close the semaphore handle. This + fixes the leak and make Lupus' test run with > 4080 loops. + +2003-05-05 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from + Jerome Laban (bug #42287) + +2003-05-02 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.h + (MonoSymbolFile): Moved declaration into mono-debug.h. + (MonoDebugMethodJitInfo): Likewise. + (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as + argument. + (_mono_debug_address_from_il_offset): Take a + MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo. + + * mono-debug.h + (MonoDebugDomainData): New struct. + (mono_debug_get_domain_data): New function. + (mono_debug_add_method): Take an additional `MonoDomain *' + argument. + (mono_debug_source_location_from_address): Likewise. + (mono_debug_il_offset_from_address): Likewise. + (mono_debug_address_from_il_offset): Likewise. + +Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c: one more check for null type in custom attrs. + +2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * reflection.c: avoid warning (comparison is always false due to limited + range of data type). + +2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: throw an exception in Type.GetField if the argument 'name' + is NULL. + +Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c: fixed handling of enums in named arguments to custom + attributes (bug #42123). + +Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c: use the right array element type and handle + a null for a Type argument, too. + +Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c: handle arrays as arguments to custom attributes. + +Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c: handle a string value in a custom attr + ctor that takes an object. + +2003-04-29 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR + (fix bug #42063) + +2003-04-28 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_Type_GetNestedType): Fixed warnings. + +2003-04-27 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.h (MonoDebuggerEvent): Renamed + MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to + MONO_DEBUGGER_EVENT_BREAKPOINT. + (mono_breakpoint_trampoline_code): Removed. + (mono_debugger_event_handler): The last argument is now a + `guint32'. + (mono_debugger_insert_breakpoint_full): Removed the + `use_trampoline' argument. + (mono_debugger_method_has_breakpoint): Likewise. + (mono_debugger_trampoline_breakpoint_callback): Renamed to + mono_debugger_breakpoint_callback(); take the method and + breakpoint number as arguments. + +Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * metadata.c: fix off by one when loading parameters attributes. + +2003-04-24 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c (mono_debugger_io_layer): Put this back. + +2003-04-24 Martin Baulig <martin@ximian.com> + + * mono-debug-debugger.c: Moved all code which interacts with the + Mono Debugger here. + + * debug-mono-symfile.c: This code now just deals with the symbol + file itself, the debugger code is now in mono-debug-debugger.c. + +2003-04-23 Martin Baulig <martin@ximian.com> + + * mono-debug.c (mono_debug_source_location_from_il_offset): + New method; like mono_debug_source_location_from_address(), but + takes an IL offset instead of a machine address. + +2003-04-23 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the + `line' field; this is now computed by the debugger. + +2003-04-23 Martin Baulig <martin@ximian.com> + + * mono-debug.[ch]: New files. This is the new debugging interface. + + * mono-debug-debugger.[ch]: New files. Moved all code which + interacts with the Mono Debugger here. + +2003-04-22 Dietmar Maurer <dietmar@ximian.com> + + * domain.c (mono_init): initialize mono_defaults.monitor_class + +2003-04-21 Miguel de Icaza <miguel@ximian.com> + + * reflection.c (method_encode_code): Add a spicy exception to help + future compiler authors. + +2003-04-21 Martin Baulig <martin@ximian.com> + + * icall.c + (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): + Make this work with relative pathnames; g_filename_to_uri() needs + an absolute filename. + +2003-04-18 Zoltan Varga <vargaz@freemail.hu> + + * icall.c: Track name changes in Object and ValueType. + +2003-04-18 Dietmar Maurer <dietmar@ximian.com> + + * metadata.c (mono_type_stack_size): size should be a multiple of + sizeof (gpointer) + +2003-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * gc.c: + (internal_domain_finalize): moved into mono_domain_finalize. No need + to create another thread because the finalizers will be run in the + finalizer thread. + + (ves_icall_System_GC_WaitForPendingFinalizers): implemented. + (finalizer_notify): if shutting down, wait 2 seconds for the finalizers + to be run (MS does this too). + +2003-04-17 Zoltan Varga <vargaz@freemail.hu> + + * object.c (mono_class_compute_gc_descriptor): Update comment. + + * loader.h marshal.h marshal.c: Added synchronized method wrappers. + + * image.h: Add synchronized wrapper cache. + + * image.c (do_mono_image_open): Initialize cache. + + * reflection.c (create_dynamic_mono_image): Initialize cache. + +2003-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes + ves_icall_System_Buffer_ByteLengthInternal. + +Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c: setup klass->nested_in earlier. Allow + a dash in the assembly name. + +2003-04-15 Dietmar Maurer <dietmar@ximian.com> + + * metadata.c (mono_type_to_unmanaged): dont access + type->data.klass for MONO_TYPE_OBJECT + (mono_type_to_unmanaged): consider System.Delegate class + +Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.c: just setup supertypes in the proper place instead of + initializing the full element class for arrays. + +Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.c: ensure the element class of arrays is initialized. + Setup the supertype info for array classes, too. + +2003-04-14 Miguel de Icaza <miguel@ximian.com> + + * icall.c (ves_icall_Type_GetNestedType): Add new internal call. + +2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * Makefile.am: re-added -m option when running cygpath. This way, + MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory + separator. + * mono-config.c: same codepath for locating mono config file for WIN32 + and the rest. + * assembly.c: if mono_assembly_setrootdir is called, don't override + the value set. + +2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes + MONO_ASSEMBLIES variable. + +Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c: added Assembly::GetNamespaces() icall. + +2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * reflection.c: fix from Jaak <jaak@zd.com.pl>. + +2003-04-10 Lluis Sanchez Gual <lluis@ideary.com> + + * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid + * object.c: fixed bug in the construction of vtable for proxies + +2003-04-10 Zoltan Varga <vargaz@freemail.hu> + + * object.c (mono_array_new): Mark mono_array_new as an icall. + +2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * class.c: fixed test for public method when overriding interfaces. + Closes bug #40970. + +Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * appdomain.h, domain.c: added mono_domain_foreach() to + be able to access the currently loaded appdomains. + * object.c: make string interning work across sppdomains. + Mark some functions for use as icalls. + +2003-04-09 Zoltan Varga <vargaz@freemail.hu> + + * class.c reflection.c: Fix memory leaks reported by ccmalloc. + + * reflection.h reflection.c: Allocate long living data using + GC_MALLOC_ATOMIC so the collector does not need to scan it. + + * reflection.c: Double the allocation size in streams instead of + increasing it, to prevent unneccesary copying on large assemblies. + + * reflection.c (mono_reflection_create_runtime_class): Avoid vtable + creation if the assembly does not have the Run flag set. + +Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * class.h: avoid the C++ keywords in header files (Jerome Laban + spotted and fixed this). + +2003-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * object.c: + (mono_unhandled_exception): fill in the arguments for the + UnhandledException event. Only trigger that event for the default + domain (as MS does). + +2003-04-04 Zoltan Varga <vargaz@freemail.hu> + + * object.c: Improve typed allocation stuff based on suggestions from + Paolo. Also turn it on if the GC library supports it. + +2003-04-03 Zoltan Varga <vargaz@freemail.hu> + + * object.c object.h class.h: Added experimental typed allocation + facility using the interfaces in gc_gcj.h. + + * os/gc_wrapper.h: Added new include files. + +2003-04-03 Martin Baulig <martin@ximian.com> + + All the following changes are conditional to `WITH_INCLUDED_LIBGC' + which is not yet enabled by default. + + * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread + functions. + (mono_gc_lock, mono_gc_unlock): New static functions. + + * threads.c (mono_gc_stop_world, mono_gc_start_world): New public + functions; stop/start the world for the garbage collector. This + is using the windows API; we need to complete the SuspendThread()/ + ResumeThread() implementation in the io-layer to make this work on Unix. + (mono_gc_push_all_stacks): New public function; tells the garbage + collector about the stack pointers from all managed threads. + +2003-04-03 Martin Baulig <martin@ximian.com> + + * object.h (MonoThread): Added `gpointer stack_ptr'. + + * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'. + +2003-04-03 Martin Baulig <martin@ximian.com> + + * Makefile.am: It's called `cygpath -w', not `cygpath -m'. + +2003-04-03 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (typebuilder_setup_fields): Initialize field.first and + field.last. + +2003-04-02 Miguel de Icaza <miguel@ximian.com> + + * loader.c (mono_lookup_internal_call): Report the corlib that is + out of sync. + +2003-03-05 Aleksey Demakov <avd@openlinksw.com> + + * icall.c (ves_icall_type_GetTypeCode): fixed check for + System.DBNull (it's class not valuetype). + +Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c: set table_idx in MonoReflectionArrayMethod object even + if the array method was already assigned a token (fixes bug#40646). + +2003-04-02 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (mono_reflection_get_type): Attempt type resolve even + if no assembly is given. + +2003-04-01 Miguel de Icaza <miguel@ximian.com> + + * metadata.h: Added the new tables. + + * row-indexes.h: Added definitions for new tables. + + * metadata.c: Add schemas for new tables, and add support for + computing the sizes of them. + + * class.c: Update for handling the new type cases. + +2003-04-01 Dietmar Maurer <dietmar@ximian.com> + + * metadata.h (MONO_TYPE_IS_VOID): new macro + +2003-03-31 Martin Baulig <martin@ximian.com> + + * threads.h (MonoThreadCallbacks): Added `thread_created'. + + * threads.c (mono_thread_new_init): Call `thread_created' in the + mono_thread_callbacks. + +2003-03-31 Lluis Sanchez Gual <lluis@ideary.com> + + * loader.h: added marshalbyrefobject_class to mono_defaults + * domain.c: added initialization of mono_defaults.marshalbyrefobject_class + * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the + generation of output parameters. + ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces. + * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is + contextbound and the target object belongs to the context of the caller. + * object.h: added context and unwrapped_server variables in MonoRealProxy. + * object.c: Implemented support for interfaces and abstract classes + in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through + proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array. + +2003-03-30 Zoltan Varga <vargaz@freemail.hu> + + * class.h class.c (mono_class_is_subclass_of): New function. + + * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy + routines for most common case (calls from ArrayList::ToArray). + + * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown + routine so programs which call Environment::Exit() can be profiled. + + * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): + Added MONO_ARCH_SAVE_REGS. + + * icall.c (ves_icall_type_is_subtype_of): Use new function. + +2003-03-29 Miguel de Icaza <miguel@ximian.com> + + * blob.h: Add a couple of new MonoType types definitions. + + * tabledefs.h: Add a couple of new call convs. + +2003-03-27 Zoltan Varga <vargaz@freemail.h> + + * reflection.h (MonoReflectionDynamicAssembly): track changes in + the layout of the class. + + * reflection.c (alloc_table): double the size on overflow to avoid + unnecessary copying. + + * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then + avoid filling out metadata tables and blobs. Also set mb->ilgen to + null so it can be garbage collected. + +2003-03-27 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (mono_reflection_get_type): Return the resolved type + only if it is in the assembly we searched. + + * reflection.c (ensure_runtime_vtable): Initialize method slots. + + * class.c (mono_class_setup_vtable): Set the slot of the overriding + method. + +2003-03-26 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: + (set_domain_search_path): allow 'file://blah'. It's an invalid URI, + the right one is 'file:///blah', but MS allows it. + * assembly.c: + (mono_assembly_open): allow 'file://blah' + + Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk). + +2003-03-26 Aleksey Demakov <avd@openlinksw.com> + + * socket-io.c: fixes bug #40310. + +2003-03-25 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (mono_reflection_parse_type): handle deeply nested + types correctly. + + * reflection.c (mono_image_create_token): Use unique token values + since they will be put into a hash table. + + * class.c (mono_class_setup_vtable): If a method occurs in more than + one place in the vtable, and it gets overriden, then change the + other occurances too. + + * marshal.c (mono_marshal_get_managed_wrapper): Added support for + object as return type. + +2003-03-22 Pedro Mart�nez Juli� <yoros@wanadoo.es> + + * icall.c: Deleted "ToString" implementation for double and float + because they are full implemented in managed code. + +Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c, reflection.h: implemented and exported functions + to retrieve info about custom attributes. + +2003-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: moved Uri handling to assembly.c + * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom + work when using a file Uri in *nix and windows. + + * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for + GetReferencedAssemblies. + +2003-03-18 Dick Porter <dick@ximian.com> + + * icall.c: Rename a couple of internal calls + + * threads.c: Set the thread state to Stopped when a thread exits. + Fixes bug 39377. + +2003-03-17 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): + New icall. + + * object.c (mono_class_vtable): fix warning. + +2003-03-17 Zoltan Varga <vargaz@freemail.hu> + + * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation. + + * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized + memory. + (method_encode_clauses): Create exception info structures in the right + order. + (mono_reflection_setup_internal_class): Initialize supertypes field. + + * class.c object.c: Handle interfaces which implement other interfaces + correctly. + + * class.h class.c: Move the supertypes array initialization code into + a separate function so it can be used for dynamic types too. Also call + it earlier, in mono_class_init(), since it can be used before the + type is initialized. + +2003-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * Makefile.am: + * assembly.c: + * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows. + + * appdomain.c: + * appdomain.h: + * marshal.c: + * object.c: remove warnings. + +2003-03-13 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type. + (MonoDebugLexicalBlockEntry): New types. + + * debug-mono-symfile.c + (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c. + +2003-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * process.c: ret can be any non-zero value accroding to MS doc. + +2003-03-07 Miguel de Icaza <miguel@ximian.com> + + * class.c (mono_marshal_load_type_info): Fix buglet: Noticed when + fixing a warning for a miss-used prototype, would have cause + random memory corruption. + +2003-03-07 Martin Baulig <martin@ximian.com> + + * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was + getting really annoying .... + +2003-03-07 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (fixup_method): added support for array methods. + +Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com> + + * socket-io.c: handle case when AF_INET6 and AF_IPX are not defined + (pointed out by Michael Adams). + +2003-03-04 Dick Porter <dick@ximian.com> + + * icall.c: Temporarily reverted the Double and Single ToString() + change, because it broke nunit. + +Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com> + + * object.h, threads.h: make include files compatible with C++ + (patch by Jerome Laban <jlaban@wanadoo.fr>). + +2003-03-04 Pedro Mart�nez Juli� <yoros@wanadoo.es> + + * icall.c: Erased ToString helper functions for Double and Single. + Now, that implementations ar all in managed code (Double and Single + Formatters). + +2003-03-03 Lluis Sanchez Gual <lluis@ideary.com> + + * appdomain.c: Added method for initializing the default context of + a domain. Added internal call for getting the default context. + * appdomain.h: Added context variable in MonoDomain struct. + * domain.c: mono_domain_set also sets the default context of the domain + * icall.c: Mapped internal method InternalGetDefaultContext. + * object.c: mono_object_get_virtual_method returns always a remoting + wrapper if the object is a transparent proxy. + mono_runtime_invoke_array: when creating an object by calling the + constructor, if the created object is a proxy, then the constructor should + be called using the a remoting wrapper. + +2003-03-03 Dick Porter <dick@ximian.com> + + * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un + variable so it compiles on solaris. Problem spotted by + Christopher Taylor <ct@cs.clemson.edu> + +2003-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: + (get_info_from_assembly_name): don't leak value. + + * icall.c: + (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize + result. + +Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com> + + * assembly.c: export mono_image_load_references (). + * class.c: handle function pointers. mono_class_from_name() now + supports nested type names directly. + +2003-02-28 Zoltan Varga <vargaz@freemail.hu> + + * reflection.h reflection.c: Encode already created dynamic methods + and fields correctly as a DEF instead of a REF. + + * reflection.c: Get rid of the force_ref argument to + mono_image_typedef_or_ref since it was wrong in the first place. + + * string-icalls.c: add error checking to string constructors according + to the MSDN docs. + + * reflection.c: Emit types in the order their TypeBuilders were + created. Previously, a new table index was assigned to each type before + the tables were emitted. This was wrong because the signature blob + might already refer to a type by its original table index. + +2003-02-27 Zoltan Varga <vargaz@freemail.hu> + + * metadata.c (mono_metadata_nesting_typedef): fix bug in previous + change. + +2003-02-27 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * Makefile.am: make assemblies dir have \ instead of / on windows. + +2003-02-27 Zoltan Varga <vargaz@freemail.hu> + + * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to + iterate over the NESTEDCLASS table using a linear search since the + table is not guaranteed to be sorted by the secondary key. + + * class.c (mono_class_create_from_typedef): fixed up call to + mono_metadata_nesting_typedef. + +2003-02-27 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_string_to_byvalstr): clear the memory as + suggested by Jerome Laban <jlaban@wanadoo.fr> + +2003-02-26 Dick Porter <dick@ximian.com> + + * process.c: Cope with padding in .rsrc blocks + +2003-02-26 Dietmar Maurer <dietmar@ximian.com> + + * metadata.h: reverted the filter_len change, it breaks reflection + +2003-02-26 Dietmar Maurer <dietmar@ximian.com> + + * metadata.h: added a new field to store the filter_len + + +Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c: handle custom attributes for types and members + created with Reflection.Emit (bug#38422). + +2003-02-22 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c: define RTSpecialName automatically for constructors for + compatibility with MS.NET. + + * reflection.c (mono_reflection_create_runtime_class): initialize + nested_in field of dynamically created classes. + +2003-02-22 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.h: Incremented version number. + +2003-02-21 Zoltan Varga <vargaz@freemail.hu> + + * object.h icall.c process.c: fix warnings. + +2003-02-21 Zoltan Varga <vargaz@freemail.hu> + + * appdomain.h appdomain.c: + (mono_domain_try_type_resolve): split the + name_or_tb argument into a name and a tb argument. + (mono_domain_has_type_resolve): new function to check whenever the + application has registered a TypeResolve event handler. + + * icall.c reflection.h reflection.c: move the type resolve logic into + mono_reflection_get_type () so it will be invoked when + Assembly::GetType () is called. + + * reflection.c: + (mono_reflection_get_type): renamed to get_type_internal. + (mono_reflection_get_type): fixed type name generation so it works + for nested types too. + (mono_reflection_get_type): call has_type_resolve () to avoid the + costly type name generation if there is no resolve event handler. + +Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com> + + * class.c, image.c: load exported types from file references. + +2003-02-19 Lluis Sanchez Gual <lluis@ideary.com> + + * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables + used to cache the managed methods used to create proxies and make + remote invocation of methods. + * class.h: Added in MonoVTable a flag to indicate that a class needs + to be remotely created. + * object.c: Modified the method mono_class_vtable(). It now initializes + the remote flag of the vtable. Modified mono_object_new_specific(), + so now it checks the remote flag. + * icall.c: Added a couple of internal methods, one for enabling instance + creation interception for a type, and one for creating objects bypassing + the remote check. + +2003-02-18 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken): + New interncall to get a method's metadata token. + + * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"): + New interncall for the debugger. + +2003-02-18 Dietmar Maurer <dietmar@ximian.com> + + * class.c (mono_class_setup_vtable): allocate supertype array + +2003-02-18 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'. + +2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * reflection.c: + (assembly_name_to_aname): jump over unknown properties (i've found + something like: 'type, assembly, version=xxx, custom=null, public...', + so now will ignore custom=null and still get the rest of the values). + +2003-02-17 Dick Porter <dick@ximian.com> + + * threads.c: Have Thread.Start() wait for a semaphore to signal + that the thread has set up all its local data. This fixes bug + 34323, where Abort() raced the new thread's TLS data. + + Also removes the handle_store() call from start_wrapper, because + threads are now always created suspended and there is no longer a + race between the parent and child threads to store the info. + +Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com> + + * image.c: explain the #- heap issue in a message, hopefully + avoiding FAQs on mono-list. + +2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: + (GetEntryAssembly): if the domain has not invoked + AppDomain.ExecuteAssembly yet, return the assembly of the default + AppDomain. + +2003-02-16 Zoltan Varga <vargaz@freemail.hu> + + * class.c (mono_ldtoken): make it work in dynamic assemblies. + +Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com> + + * metadata.c, reflection.c: simple speedup to type hash + and equals code. + +Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com> + + * image.c, image.h, class.c, assembly.c: move module loading + to MonoImage. When loading metadata, consider alignemnet from + the start of metadata, not from the metadata address in memory. + +2003-02-13 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (mono_reflection_get_custom_attrs): Added support for + AssemblyBuilder objects. Factored out custom attribute creation into + a separate function. + (create_custom_attr): new function to create custom attributes. + +2003-02-12 Miguel de Icaza <miguel@ximian.com> + + * Makefile.am: Got tired of typing the full pathname to pedump. + Until there is another option, am installing this. + +2003-02-12 Dietmar Maurer <dietmar@ximian.com> + + * class.c (class_compute_field_layout): always set field->parent + (mono_ldtoken): use mono_defaults.fieldhandle_class; + +2003-02-11 Dick Porter <dick@ximian.com> + + * threads-types.h: + * monitor.c: Rewrote Monitor, making lock much faster and + Pulse/Wait work as specified. Also uses much fewer handles, and only + creates them as needed. + + * exception.c: Added SynchronizationLockException + + * threads.c: Deleted old Monitor implementation. The new one is + in a new file. + +Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com> + + * class.c: handled TypedReference type code. Set the correct size for + class data. Setup interface_offsets for interface classes, too. + +2003-02-09 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.h: Reflect latest symbol writer changes. + +Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com> + + * loader.c: implemented MEMBERREF_PARENT_TYPEDEF. + * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling. + * object.c: fixed mono_object_get_virtual_method () for interfaces. + * verify.c: check for code that runs after the end of the method. + +2003-02-08 Pedro Mart�nez Juli� <yoros@wanadoo.es> + + * icall.c: Added "System.Math::Floor", "System.Math::Round" and + "System.Math::Round2". + * sysmath.h: Added Floor, Round and Round2 definitions. + * sysmath.c: Modified certain functions that were not 100% compliant + with MS.NET (math precision) and added the implementation of Floor, + Round and Round2. + +2003-02-07 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls. + +2003-02-07 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.c: Reflected latest symwriter changes. + (mono_debug_create_mono_symbol_file): Removed. + (mono_debug_open_mono_symbol_file): Take an argument which + specifies whether to create a dynamic symbol file. + +2003-02-07 Dietmar Maurer <dietmar@ximian.com> + + * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF + +2003-02-05 Martin Baulig <martin@ximian.com> + + * reflection.c (mono_image_build_metadata): Make this public, + protect it against being called multiple times, don't create + resources and don't build the compressed metadata here. + (mono_image_create_pefile): Do this here. + + * icall.c + ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added. + +2003-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * socket-io.c: fixed bug #36322. + +2003-02-06 Piers Haken <piersh@friskit.com> + + * appdomain.[ch]: + * class.h: + * debug-mono-symfile.c: + * icall.c: + * loader.c: + * mono-config.c: + * monosn.c: + * reflection.c: + * socket-io.c: warning cleanups + +2003-02-06 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_remoting_invoke_with_check): new + function. works like remoting invoke, but does a check for the Proxy first. + +2003-02-05 Miguel de Icaza <miguel@ximian.com> + + * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler. + +2003-02-05 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): only allocate an + array of pointers. + (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers. + (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers. + + * object.c (mono_store_remote_field_new): used by the new jit + instead of mono_store_remote_field + (mono_load_remote_field_new): used by the new jit + instead of mono_load_remote_field + +2003-02-05 Patrik Torstensson + + * appdomain.c: changed unload to take the domain id instead + of domain + + * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload + + +2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: don't look for assemblies in ApplicationBase if + PrivateBinPathProbe is set. + +2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * object.c: make the first argument in main_args contain the absolute + path to the assembly. Fixes bug #37511. + +2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: get correct UTC offset for countries not using daylight + time saving. Fixes bug #30030. + +2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0 + and 1 are the family). + +2003-02-04 Dietmar Maurer <dietmar@ximian.com> + + * icall.c (ves_icall_InternalExecute): removed wrong assertion + + * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL + +2003-02-04 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c: added support for SignatureHelper tokens, which is + needed by the Calli opcode. + + * reflection.h: track changes to SignatureHelper class. + + * metadata.c (mono_metadata_parse_signature): handle dynamic tokens. + +2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: fixed loading assemblies from PrivateBinPath. + +2003-02-03 Patrik Torstensson + * appdomain.[c|h], domain.c : + - Added support for getting a domain via domain id + - Support for setting and getting domain from System.AppDomain + (used in cross appdomain channel) + - Added support for get/set for a MonoAppContext on a thread + (Context class in System.Runtime.Remoting.Contexts), + - Removed hack in Get/SetData and ExecuteAssembly. + + * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow + the managed world to get control when a proxy is created. + + * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array + +2003-02-03 Miguel de Icaza <miguel@ximian.com> + + * icall.c + (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): + Populate the codebase field as well. + +2003-02-02 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.c + (MonoSymbolFileMethodAddress): Added `wrapper_address' field. + (mono_debug_symfile_add_method): Allow interncalls. + +2003-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: throw parse exception if strtod fails or the string is empty. + +Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com> + + * marshal.c: handle object type separately from defined + class types. + +Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com> + + * marshal.c: handle NATIVE_LPSTR for strings when it's + explicitly specified. + +Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c, reflection.h, icall.c: setup the reflection + handle cache for ModuleBuilders and AssemblyBuilders. + +2003-01-30 Dietmar Maurer <dietmar@ximian.com> + + * reflection.c (reflection_methodbuilder_to_mono_method): set + pinvoke flag + +2003-01-30 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: implemented ves_icall_MonoMethod_get_base_definition. + +2003-01-29 Dick Porter <dick@ximian.com> + + * threads.c: No need for the fake_thread kludge now that Thread + doesn't run a class constructor + +2003-01-29 Dick Porter <dick@ximian.com> + + * threads.c: Use g_direct_hash instead of the rather bogus + g_int_hash + +2003-01-29 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): add check for null + (fix pinvoke12.exe) + (mono_marshal_get_struct_to_ptr): generate valid IL code + (mono_marshal_get_ptr_to_struct): generate valid IL code + (*): correctly set sig->pinvoke, we need to memdup the signature + to do that + +Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com> + + * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local() + to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>). + +Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com> + + * profiler.c: provide more callers information. + +2003-01-28 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code + + * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object + + * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code + +2003-01-27 Zoltan Varga <vargaz@freemail.hu> + + * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an + exception instead of going into an infinite loop on dates which it + can't yet handle. + + * string-icalls.c (ves_icall_System_String_get_Chars): raise + out-of-range exception if needed. + + * class.c (mono_class_setup_vtable): allow a virtual method to provide + an implementation for an interface method and to override an inherited + method at the same time. + Imagine a scenario when a virtual method is used to override a + virtual abstract method in a parent class, and this same method + provides an implementation for an method inherited from an interface. + In this case, the interface resolution code will set im->slot, which + means that the virtual method override pass will skip this method + which means a pointer to the abstract method inherited from the parent + will remain in the vtable of this non-abstract class. + + * class.c: (mono_class_setup_vtable): continue search for a real + method if only an abstract method is found. + +Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.c: add size to encoding for ByValStr and ByValArray + marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>). + +2003-01-27 Zoltan Varga <vargaz@freemail.hu> + + * class.c (mono_class_setup_vtable): pass the override info as an + argument. + + * class.c (mono_class_setup_vtable): set the slot of overriding methods + correctly. + + * reflection.c (ensure_runtime_vtable); add support for method + overrides. + +2003-01-27 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (resolution_scope_from_image): Hack to work to work with + dynamic assemblies. + + * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and + added a 'force_ref' argument to force this function to allways return + a TypeRef. This is needed by mono_image_get_memberref_token (). + +2003-01-27 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (mono_image_get_type_info): interfaces really don't have + a parent. + + * reflection.c (mono_image_basic_init): fill out missing fields of + image structure. + + * reflection.c (mono_image_basic_init): Invoke assembly load hooks for + dynamic assemblies. This is required so dynamic assemblies show up in + AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by + Type::GetType() etc. This is consistent with MS behaviour. + + * image.c image.h reflection.c: add newly created classes to the name + cache so mono_class_get () will find them. + +2003-01-27 Zoltan Varga <vargaz@freemail.hu> + + First part of changes to get IKVM.NET running under mono. + + * appdomain.h, appdomain.c: added new function + mono_domain_try_type_resolve() which will emit TypeResolve events. + This function will call AppDomain::DoTypeResolve to do the actual work. + + * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: + moved existing code dealing with dynamic tokens to a new function + called mono_reflection_lookup_dynamic_token (). This function will + raise TypeResolve events when appropriate. Since reflection.c is not + part of libmetadata, a new hook function called + mono_lookup_dynamic_token() is added to class.c which will call this. + + * assembly.h assembly.c: make the invoke_load_hook function public, + so it can be called for dynamic assemblies. + + * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers. + + * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the + type isn't found. + + * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a + MonoGHashTable, since it contains pointers to objects which the GC + needs to track. + + * assembly.c (search_loaded): remove unused variable. + +Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com> + + * object.c: fixed issue exposed by gcc-generated IL programs + that use RVA data for pointers. + +2003-01-25 Martin Baulig <martin@ximian.com> + + * threads.c (start_wrapper): Moved the initialization of + `start_func' above the mono_new_thread_init() call to which we + pass it as argument. + +2003-01-24 Martin Baulig <martin@ximian.com> + + * threads.h (MonoThreadCallbacks): Pass the thread ID instead of + the MonoThread pointer. + +2003-01-21 Miguel de Icaza <miguel@ximian.com> + + * icall.c: Rename `PowImpl' to Pow. + +2003-01-23 Dick Porter <dick@ximian.com> + + * threads.c (start_wrapper): Create a Thread object if needed, so + the Main() thread can do the class initialisation in a subthread + that has been set up to allow managed code execution. + + Pass the thread ID instead of the MonoThread pointer to the thread + start and attach callbacks. This change is required, because the + jit thread start callback must be called _before_ the Thread + object can be created. + + (mono_thread_init): Removed much object creation code that is no + longer needed. No managed code is called from here now. + + * object.c (mono_runtime_exec_managed_code): Create a subthread + for Main, and call back to the runtime to use it. + Set the exit code when Main exits. + + * gc.c: Make sure domain finalisation happens in a subthread. + Re-enable threaded GC, fixing bug 31333 (again). + + * environment.c: System.Environment internall calls (so far just + ExitCode is here, the others are still in icall.c) + + * appdomain.c (mono_runtime_cleanup): All threads running managed + code should have finished before mono_runtime_cleanup() is + reached, so no need to clean up threads. + +2003-01-22 Martin Baulig <martin@ximian.com> + + * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and + `gpointer func' arguments. + (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB, + but added `MonoThread *thread' argument. + (mono_runtime_init): The last argument is now a MonoThreadAttachCB. + + * threads.c (mono_new_thread_init): Added `gpointer func' argument + and pass it to the mono_thread_start_cb callback. + (mono_install_thread_callbacks): New public function to install a + set of callbacks which are set by the debugger. + (mono_thread_init): The last argument is now a MonoThreadAttachCB. + +2003-01-22 Martin Baulig <martin@ximian.com> + + * Makefile.am: Install debug-mono-symfile.h. + +2003-01-21 Aleksey Demakov <avd@openlinksw.com> + + * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length. + +2003-01-21 Dietmar Maurer <dietmar@ximian.com> + + * added the following fix from Jackson Harper <jackson@latitudegeo.com> + * class.c (mono_ptr_class_get): correctly set access levels of pointers + (mono_array_class_get): correctly set access levels of arrays + +2003-01-20 Patrik Torstensson + * image.h (MonoAssemblyName): changed major, minor, build, revision + from signed to unsigned. + +2003-01-20 sean kasun <skasun@azstarnet.com> + + * reflection.c (load_cattr_value): Now this handles + MONO_TYPE_SZARRAY. Fixes bug #35629 + +2003-01-20 Miguel de Icaza <miguel@ximian.com> + + * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an + integer value + +2003-01-18 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * decimal.c: fixed bug #26056. + +2003-01-17 Martin Baulig <martin@ximian.com> + + * gc.c: Raise an ExecutionEngineException instead of using g_error(). + +2003-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * exception.[ch]: + (mono_get_exception_type_initialization): new function. + + * object.c: throw a TypeInitializationException when an exception is + thrown invoking the class constructor. + +2003-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * reflection.c: fixed attribute reading. + +2003-01-15 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: + (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name + provided, look for the type in the calling assembly and then in + mscorlib; if the assembly name is provided, only try that one. + +Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com> + + * object.c: register the vtable before there is a chance it's + queried again recursively. + +2003-01-13 Duncan Mak <duncan@ximian.com> + + * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to + gc-internal.h. + +2003-01-12 Patrik Torstensson <totte@race-x-change.com> + + * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode + +2003-01-11 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented + this to 20 for the release. + +2003-01-10 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT + + * loader.c (mono_method_get_marshal_info): bug fix + + * marshal.c (mono_marshal_get_ptr_to_struct): don't convert + structures with explicit layout + +Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com> + + * profiler.c: made the output more readable (and sorted). + Added caller information for the allocation profiler. + +2003-01-09 Sebastien Pouliot <spouliot@videotron.ca> + + * icall.c, rand.c, rand.h: Prepended RNG functions with Internal. + +2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used + to get value types. + +Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com> + + * object.c, profiler.h, profiler.c, profiler-private.h: + Added object allocation profiler. + +Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com> + + * reflection.h, reflection.c: handle global methods. + Compress blob entries. + +Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com> + + * marshal.c: fix compilation. + +2003-01-09 Dietmar Maurer <dietmar@ximian.com> + + * loader.c (mono_method_get_marshal_info): impl. + + * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info + +2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive + for reference types. + +Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com> + + * loader.c: fixed off by one error in loaded parameter names. + +2003-01-08 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_icall_wrapper): like + mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature + instead of a MonoMethod. + +2003-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * decimal.c: fixed bug #36537. + +Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com> + + * marshal.c: throw a missing method exception if a + P/Invoke method is not found. + +Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c: allow a null this for constructors. + +Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c: raise the proper exceptions if the arguments to the + internal Invoke are incorrect. + +2003-01-03 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups + +2003-01-03 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION. + +2002-12-31 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.c: Completely rewrote the type section. + Instead of using individual malloc()ed fields, we use one big + continuous memory area and offsets into this area. + See the comments in the source code for details. + +2002-12-30 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo. + +2002-12-30 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the + line number table in this data blob instead of using an external + pointer. + +2002-12-28 Martin Baulig <martin@ximian.com> + + * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION. + +2002-12-22 Rachel Hestilow <hestilow@ximian.com> + + * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR + as a boxed return type. + +2002-12-21 Miguel de Icaza <miguel@ximian.com> + + * appdomain.c + (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use + g_build_filename to properly get separators on the filename created. + + * object.h: Small change, introduce MonoMarshalByRefObject to + track the layout of that structure in the C# universe as we make + changes there. + +Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com> + + * object.c: removed assert to allow static fields on interfaces. + * loader.c: a TypeSpec may be used for any type, not just arrays. + +Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com> + + * class.c, class.h: added mono_class_array_element_size (). + Ignore static methods in interfaces. + +2002-12-19 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * threads.c: fixed the build under cygwin. + +Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: handle nullref constants. Allocate keys for + reflection handles with the GC. + +Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com> + + * threads.c, threads.h: added mono_thread_get_abort_signal() + to get a suitable signal for thread abort. + +Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com> + + * metadata.c: fix handling of ExportedType table. + +2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: added WriteWindowsDebugString internal call. + +2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * reflection.h: added fields to match C# implementation. + +2002-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName. + +2002-12-12 Juli Mallett <jmallett@FreeBSD.org> + + * gc.h, gc-internal.h: Rename header for GC internal calls to + gc-internal.h from gc.h as to not clash with Boehm GC having its + header installed as <gc.h> in outside include paths. + * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned. + * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1. + +2002-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: assign minor, build and revision in FillName. + +2002-12-11 Zoltan Varga <vargaz@freemail.hu> + + * image.h reflection.h reflection.c class.h class.c loader.c object.c: + Added support for running code generated by Reflection.Emit. + +2002-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: check for NULL argument in LoadFrom. + +2002-12-10 Dick Porter <dick@ximian.com> + + * threads.c: WaitHandle fixes from Tum <tum@veridicus.com> + +2002-12-09 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: fix buglet when building exe file name. Handle full + assembly name (needed after latest changes to AssemblyName). + * image.c: + (mono_image_close): free some hashtables. + +2002-12-05 Dietmar Maurer <dietmar@ximian.com> + + * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN + instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation + on some systems (redhat 7.3) + +Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com> + + * threads.c: delete the critical section of a sync block, + spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen). + +Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com> + + * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag. + +2002-12-05 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.[ch]: handle the assembly preload event to try loading the + assemblies using the paths we have in the current domain. + + * assembly.[ch]: created an assembly preload hook that is called to try + loading the assembly by other means that the ones provided here. + + * domain.c: initialize the domain search path. + + From now on, assemblies (TODO: except corlib and System) are loaded + according to these rules when using mono_assembly_load (): + + 1. It tries to load the assembly from the ApplicationBase + of the current domain appending .dll and .exe (TODO: have to + try loading from name/name.dll and name/name.exe). + + 2. It tries the search path specified in PrivateBinPath for the + current domain (if any). + + 3. Previous behavior. + +Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com> + + * icall.c: implemented GetInterfaceMap() related icall. + * domain.c, loader.h: load MethodInfo in mono_defaults. + +Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com> + + * gc.c: disable the finalizer thread for now, untill all the issues + with it are resolved. + +Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com> + + * string-icalls.c: handle embedded nulls in string ctor when the + length is specified. + +Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com> + + * class.c: look for explicit interface implementation in parent + classes, too. + +2002-12-03 Dietmar Maurer <dietmar@ximian.com> + + * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) + +Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com> + + * gc.c: protect handles with a critical section. + +2002-12-02 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: + (ves_icall_type_from_name): it now has throwOnError and ignoreCase + parameters. If no assembly specified, try getting the type from all + the assemblies in the current domain, else, load the assembly and get + the type from it. + +2002-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * marshal.c: applied patch from Aleksey Demakov that fixes + ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni. + +2002-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: fixed get_location. + +2002-11-28 Dietmar Maurer <dietmar@ximian.com> + + * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the + declarations to make it work with older gcc. + + * loader.c (mono_get_method): set signature->pinvoke for native calls + +2002-11-20 Dick Porter <dick@ximian.com> + + * threads.c (mono_thread_init): Set the main thread's handle + +Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com> + + * gc.c: allow compilation without GC support. Changed to match the + mono coding style. + +Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com> + + * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set. + +Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: set a public key token on the core assemblies. + +2002-11-18 Dick Porter <dick@ximian.com> + + * threads.c: Split out some thread initialisation so that other + files can set the start callback function. + + * gc.c: Run finalisers in a separate thread, to avoid stack + overflow. Fixes bug 31333. + + * appdomain.c: Set up GC finalisation thread. + + * reflection.c: + * object.c: + * domain.c: Use gc.h macros for GC_malloc + +2002-11-15 Dick Porter <dick@ximian.com> + + * threadpool.c: + * threads.c: + * appdomain.c: Removed mono_runtime_init_with_attach(), + mono_thread_create_arg(), and mono_thread_init_with_attach(), by + merging the extra parameter with the existing function. Removed + unneeded code in mono_thread_attach(). + +2002-11-14 Dietmar Maurer <dietmar@ximian.com> + + * image.c (mono_image_loaded_by_guid): a method to get loaded + images by guid. + (load_metadata_ptrs): we store the guid as string. + +2002-11-11 Dietmar Maurer <dietmar@ximian.com> + + * assembly.c (mono_assembly_open): check the guid of aot compiled lib. + + * metadata.c (mono_guid_to_string): imported method form Zoltan + Varga (slightly modified) + + * assembly.c (mono_assembly_open): load precompiled code + + * loader.h (MonoMethod): we store the method token for use in the + aot compiler. + +2002-11-07 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: insert the loaded assemblies in the domain->assemblies in + the hook function called when an assembly is loaded. + + * domain.c: Modified file. + (mono_domain_assembly_load): removed hash table insertion of assemblies. + + Fixes bug #33196. + +2002-11-07 Miguel de Icaza <miguel@ximian.com> + + * reflection.c: Map PEFileKind to the value expected by the WinNT + image loader. + +2002-11-06 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * rand.c: use /dev/urandom. If it fails to open, use the previous one. + Read until the buffer is filled completely. + +2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: implemented MonoType.InternalGetEvent (). + +2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: implemented InitAppDomainSetup. Delayed + AppDomain.SetupInformation until mono_runtime_exec_main, where we get + the entry_assembly. + + * assembly.c: base_dir is now an absolute path ending with + G_DIR_SEPARATOR. + + * icall.c: modified get_location according to the above changes. + + * object.c: init AppDomain.SetupInformation for the default domain after + we have the entry assembly. + + * domain.c: when unloading a domain, setup = NULL. + +2002-11-04 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548 + +Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com> + + * object.h, object.c: introduced mono_object_get_virtual_method () + to lookup the method invoked on an object when a callvirt is done on + a method. + * icall.c: make MethodInfo::Invoke() always do a virtual call. + +2002-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the + current domain when loaded an assembly and failed to load it. + + * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType. + +2002-10-31 Dick Porter <dick@ximian.com> + + * icall.c: + * file-io.h: + * file-io.c: Return the error status in a parameter, as the + GetLastError() value has long since been blown away if we try and + look it up in a subsequent internal call invocation. Delete the + GetLastError() internal call, because it's useless. + +2002-10-31 Dietmar Maurer <dietmar@ximian.com> + + * class.[ch]: added cast_class to fix bug 29517 + +Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com> + + * marshal.c: create valid IL code in the filter clause: + the new JIT is less forgiving:-) + +2002-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: removed get_property internal call. + +2002-10-25 Zoltan Varga <vargaz@freemail.hu> + + * appdomain.h domain.c: Added an ID to appdomains. + + * threads.c threads.h icall.c: Implement icall + Thread:GetDomainID(), and remove unused icall + CurrentThreadDomain_internal. + +2002-10-24 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: Don't recurse through the base types in GetConstructor. + Fixes bug #32063. + +Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * mempool.h, mempool.c: added mono_mempool_empty() and + mono_mempool_stats(). + +2002-10-23 Dick Porter <dick@ximian.com> + + * file-io.c: + * file-io.h: + * icall.c: Added MonoIO.GetFileType internal call + +2002-10-17 Dick Porter <dick@ximian.com> + + * appdomain.c (mono_runtime_cleanup): Don't signal the async + delegate semaphore before waiting for all threads to finish, + because new threads can also call async delegates. Fixes bug + 32004. + + * threadpool.c (async_invoke_thread): Only wait for 500ms instead + of 3 seconds, in case another async job is queued. (This part is + needed because the bug fix reintroduced the 3s exit lag.) This + makes the mono_runtime_shutdown flag superfluous. + +Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: include ehader size in method section headers. + Really check for suplicated modules entries. + +2002-10-17 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Added back support for locals. + +2002-10-14 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and + MONO_TYPE_VOID. + +2002-10-14 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use + mono_class_get() instead of looking in the class cache. + +2002-10-13 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Set version number to 28, include the + signature in method names. + +2002-10-13 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.h: Set version number to 27. + +2002-10-11 Martin Baulig <martin@gnome.org> + + * gc.c: Don't register/unregister NULL pointers as disappearing links. + +Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * metadata.c, metadata.h: added helper function to allocate signatures. + +2002-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: added internal call to get the location of machine.config. + +2002-10-08 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Ignore classes with a pending init for the + moment. + +2002-10-03 Dick Porter <dick@ximian.com> + + * threads.c: Freebsd pthread_t is a pointer + +2002-10-03 Dick Porter <dick@ximian.com> + + * socket-io.c: Implemented GetHostName_internal + +2002-10-02 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * mono-config.c: + (mono_config_parse_file): don't leak the text. + +2002-10-02 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Added support for methods. + +2002-10-01 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Don't emit methods and line numbers for + the dynamic symbol file, just write the type table. We can easily + have an external helper program which creates a symbol file for an + IL file. + +2002-10-01 Dick Porter <dick@ximian.com> + + * threads.c (ves_icall_System_Threading_Thread_Start_internal): + Only add the handle to the cleanup array when we're about to + launch the thread. Bug 31425 deadlocked when the test was run on + mono under w32. + +2002-10-01 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Added support for properties. + +Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: unaligned store fix from Mark Crichton + <crichton@gimp.org>. + +2002-09-27 Martin Baulig <martin@gnome.org> + + * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"): + New interncall. + +Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * assembly.h, assembly.c: use a sane API to hook into the assembly + loading process instead of a useless special-purpouse hack + (ngen needs a hook, too, for example). + +2002-09-27 Dick Porter <dick@ximian.com> + + * threads.c (mono_thread_init): Call GetCurrentProcess() so + io-layer can set up some process handle info. Not needed on w32, + but doesn't hurt either. + + * process.c: Pass the program name in the second parameter to + CreateProcess, so the path is searched. Include the working + directory. Implemented process name, process enumeration, and some + process detail internal calls. + + * icall.c: Added internal calls for process lookup, and some + process details + +2002-09-26 Martin Baulig <martin@gnome.org> + + * assembly.c (mono_install_open_assembly_hook): New global + function to install a function to be invoked each time a new + assembly is loaded. + (mono_assembly_open): Run this callback function if set. + + * debug-mono-symfile.c: Put back line numbers for the dynamic + symbol file and also record the .il file as source file. This + allows us to install the temporary symbol file as `file.dbg' just + like a compiler-generated one. + +2002-09-26 Nick Zigarovich <nick@chemlab.org> + + * Corrected typo in gc.c (BOHEM vs BOEHM). + +2002-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: fixed bug #31235 by copying a few lines from GetMethods to + GetProperties. Also avoid calling g_slist_length in GetProperties and + GetMethods. + +Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: avoid unaligned stores (bug spotted by + Mark Crichton <crichton@gimp.org>). + +2002-09-25 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers + instead of guint64 for addresses and added prologue/epilogue info. + +2002-09-25 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to + store line number info. For the dynamic symbol file, we only need + to provide the JIT generated dynamic line number info for the dynamic + symbol file. + +2002-09-25 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.h: Incremented version number. + +2002-09-24 Martin Baulig <martin@gnome.org> + + * class.c (mono_debugger_class_init_func): New global function + pointer variable. + (mono_class_init): If mono_debugger_class_init_func is non-NULL, + call it. + + * debug-mono-symfile.c (mono_debug_symfile_add_type): New + function. This is called via the mono_debugger_class_init_func + hook to add all types to the dynamic type table. + (ves_icall_MonoDebugger_GetType): New interncall to get a class + from its metadata token. + + * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"): + New interncall for the debugger. + +2002-09-24 Nick Drochak <ndrochak@gol.com> + + * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter + before using it in case it is null. + +Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * metadata.c: allow custom modifiers in local var signatures + (bug spotted by Zoltan Varga). + +Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * class.c: deal with the <Module> class that may have a NULL vtable. + Eliminate warnings. + +Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * image.c, image.h: more strong name helpers. + * monosn.c: more work: convert pem keys to cryptoapi format. + +Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * string-icalls.c: speedup IndexOf. + +Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * icall.c: updates from Zoltan.2.Varga@nokia.com. + +Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * icall.c: cleanup: use mono_object_domain (). + +2002-09-23 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Improved type support. + +2002-09-22 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Added support for reference types and strings. + +2002-09-22 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Started to work on the type table. + +2002-09-21 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Largely reworked the symbol table format. + The symbol table is now incrementally updated each time a new + method is added. We're now also using our own magic and version + so that you don't need to recompile all your classes if the + dynamic table changes. + (mono_debug_update_mono_symbol_file): Removed. + (mono_debug_symfile_add_method): New function to add a method. + +2002-09-21 Martin Baulig <martin@gnome.org> + + * icall.c + ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"): + New interncall. + + * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature): + New interncall to get a method from its metadata token. + +2002-09-21 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Create type table. + +2002-09-20 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes. + +2002-09-20 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Provide information about params and locals. + +2002-09-20 Martin Baulig <martin@gnome.org> + + * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"): + New interncall. + + * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New + interncall to get a method from its metadata token. + +2002-09-20 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Added a few checks for method->header + being non-NULL. This should never happen, but for the moment + let's use a g_warning() rather than a g_assert(). + +2002-09-19 Mark Crichton <crichton@gimp.org> + + * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc + even if support for it isn't present. Added an #ifdef to fix this. + + * socket-io.c: Added checks back for Solaris support. + +2002-09-19 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c (read_string, write_string): Reflect latest + changes in the symbol file format. + +2002-09-18 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Set version number to 21. + +2002-09-18 Dick Porter <dick@ximian.com> + + * threads.c (mon_new): Use the GC_MALLOC macro to hide differences + on netbsd. Fixes bug 30051. + +2002-09-17 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * reflection.c: + (set_version_from_string): little fix. + +Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * monosn.c, Makefile.am: added strong name utility. + * reflection.h, reflection.c: implemented delayed signing, + locale, version and hash id assembly attributes. + +Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * loader.c, metadata.c: load param attributes in signatures. + +2002-09-16 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Added string table with all method names. + +2002-09-14 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.h (MonoSymbolFile): Added method range table for + fast method lookup. + +Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: record the public key token of referenced assemblies. + +Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * image.c, image.h: added functions to get the strong name and the + public key of an assembly. + * pedump.c: use them. + +2002-09-12 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates. + +2002-09-12 Miguel de Icaza <miguel@ximian.com> + + * marshal.c (mono_marshal_get_managed_wrapper): Added + MONO_TYPE_BOOLEAN + +2002-09-11 Martin Baulig <martin@gnome.org> + + * gc.c: Call GC_unregister_disappearing_link() on all links when + finalizing them, this is necessary to aviod a crash in boehm's + finalize handler. + +Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * gc.c: handle GetTarget for finalized objects spotted and fixed by + nick@chemlab.org. + +Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * icall.c: implemented MonoType::Module. + * reflection.c, reflection.h: mono_module_get_object () from + Tomi Pakarinen <tomi.pakarinen@welho.com>. + +Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * icall.c: ignore overridden methods in GetMethods (). + Fix for FieldInfo::SetValue(). + * object.c: handle float/double in runtime invoke. + +Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * object.c: allow a constructor to be called again on an object. + +Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * class.h, class.c: move field layout code to it's own function and + export it. Get an interface id earlier. Move fields in MonoClass + so they are more cache friendly and align the bitfields. + * loader.c: temporary handle get_param_names() for a runtime method. + * reflection.c, reflection.h: more code to handle runtime creation of + types. + +2002-09-09 Martin Baulig <martin@gnome.org> + + * marshal.c (mono_marshal_get_native_wrapper): We need to use a special + signature with the pinvoke field being set for the actual call. + +Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * icall.c: removed some unused icalls. Start of map of glib charsets + to corlib names. Implemented RuntimeMethod::GetFunctionPointer (). + +Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * debug-helpers.c: break infinite loop (found and fixed by + Holger Arnold <harnold@gmx.de>). + +Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * icall.c: target may be null in create_delegate. + +Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * marshal.c: handle a boolean return type. + +Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * gc.c: put HIDE_POINTER/REVEAL_POINTER only here. + +Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * gc.c: fix weakreferences. + +Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * icall.c: added icall to get default codepage. + +2002-09-03 Dick Porter <dick@ximian.com> + + * threads.h: + * threads.c: Use MonoThread instead of MonoObject where + apropriate. + + Store running thread objects in a hash table, so that we have all + the info to hand when waiting for them to finish + (means we don't need OpenThread() any more, so mingw builds should + be fully functional again.) + + * verify.c: + * object.h: Added thread ID to MonoThread + +2002-09-03 Martin Baulig <martin@gnome.org> + + * icall.c (System.Reflection.Assembly::get_location): New interncall. + +2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: fixed leak in get_temp_path. Thanks lupus. + +2002-09-03 Martin Baulig <martin@gnome.org> + + * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp' + argument to store the end address of the disassembled instruction. + + * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved + here from debug-symfile.h. + (MonoDebugMethodJitInfo): Moved all fields which are filled out by the + JIT into this struct. + (MonoSymbolFile): Added `char *image_file' field. + (MonoDebugGetMethodFunc): Removed. + (mono_debug_update_mono_symbol_file): Removed the hash table argument. + (mono_debug_create_mono_symbol_file): Removed the `source_file' argument. + (mono_debug_find_method): New method. + + * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always + create a full symbol file. + (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic + and static symbol files. + (mono_debug_find_method): The symbol file keeps an internal method hash, + call this to get a MonoDebugMethodInfo from a MonoMethod. + + * debug-symfile.[ch]: Removed. + +2002-08-29 Miguel de Icaza <miguel@ximian.com> + + * image.c (do_mono_image_open): Remove linker version check. + +2002-08-29 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_managed_wrapper): don't cache + wrappers for instance methods. + +2002-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: added ves_icall_System_IO_Path_get_temp_path. + +2002-08-28 Dick Porter <dick@ximian.com> + + * Makefile.am: Export HOST_CC for w32 builds + +Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * file-io.c process.c: MonoString are null terminated, no + need for mono_string_to_utf16() anymore. + +Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * icall.c, unicode.h, unicode.c: removed unused iconv stuff. + +Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * icall.c, reflection.h: speedup System.MonoType. + +Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: allow null as the value of a string argument in + custom attributes constructors. + +2002-08-27 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the + `trampoline_address' field. + +2002-08-27 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): removed wrong null + check (fixes bug #29486) + +2002-08-27 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c: Changed the file format in a way that allows us + open it read-only and to use a specially malloced area for all the + dynamic data. We can now also generate a symbol file on-the-fly if we're + debugging IL code and there is no MCS generated symbol file for it. + +Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * object.c: added a define for a good string and array + creation speedup (not enabled by default because we need to deal with + the synch stuff). + +2002-08-26 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New + function to create a dynamic symbol file. This is used by the + debugger to create a symbol file for IL code on-the-fly. + +2002-08-26 Martin Baulig <martin@gnome.org> + + * loader.c (mono_lookup_pinvoke_call): Include the error message + from g_module_error() in the error message. + +2002-08-24 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New + function to update the symbol file. The symbol file is mmap()ed + writable, but private. This allows us to install the symbol file + together with the assembly. + +2002-08-24 Martin Baulig <martin@gnome.org> + + * debug-mono-symfile.[ch]: New files. Similar to debug-symfile.[ch] + but they can read the new symbol file format which mcs is now creating. + + * debug-symfile.c (mono_debug_find_source_location): Moved to + debug-mono-symfile.c; this is now operating on the new symbol file. + +2002-08-23 Martin Baulig <martin@gnome.org> + + * debug-helpers.c (mono_method_desc_from_method): New function to get + a MonoMethodDesc from a MonoMethod. + +Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * object.c: fixes assertion failure caused by multiple ExecuteAssembly + calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>). + +Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * string-icalls.[ch]: make helper methods static. + +2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8 + types to it and to SetValueInternal. + + * object.c: Moved handle_enum label to its proper place. This was the + f... bug! ;-) + + This time i compiled mcs and gtk-sharp and they both work. + +2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: reverted partially my previous patch until + object.c:set_value handles enums correcly. + +2002-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: + (ves_icall_MonoField_GetValue): changed to use mono_field_get_value. + (ves_icall_System_Environment_get_MachineName): removed warning when + compiling under cygwin. + +Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * object.c: fixed field_get_value() for reference types. + +2002-08-22 Dick Porter <dick@ximian.com> + + * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): + Don't free a buffer while it's still needed. Patch from Jonathan + Liger <Jonathan.liger@wanadoo.fr> + +2002-08-21 Miguel de Icaza <miguel@ximian.com> + + * icall.c (ves_icall_System_Environment_get_Platform): Add new + internal call. + +2002-08-21 Dietmar Maurer <dietmar@ximian.com> + + * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/ + (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/ + + * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because + we call unmanaged code which throws exceptions. + +Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * appdomain.h: added per-domain entry_assembly. + * appdomain.c: ensure mono_runtime_exec_main () gets non-null + arguments. + * icall.c: Assembly::GetEntryAssembly icall. + * object.c: set domain->entry_assembly in mono_runtime_exec_main(). + Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>. + +Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * appdomain.h, gc.c: added mono_domain_finalize (). + +2002-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * object.c: + (mono_print_unhandled_exception): changed g_warning by g_printerr + because g_log has a 1024 characters limit (yeah, i got a big stack + trace). Don't print exception name, that should be in ToString + returned string. + +2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: added ves_icall_FieldInfo_SetValueInternal. + * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array. + +2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * object.c: + (mono_print_unhandled_exception): after previous commit, i realized + that MS calls ToString on the exception. I changed this function to + do that. This way we get stack_trace for free. + +2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * object.c: + (mono_print_unhandled_exception): invoke Message property instead of + getting 'message' field from Exception. Don't allocate memory for + 'trace' and 'message' if not needed. + +2002-08-18 Dick Porter <dick@ximian.com> + + * unicode.c: Fix asserts to match Encoder.cs checks + +Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * marshal.c: fix unaligned store issue and a few wrong + opcode argument types. + +2002-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: added GetUninitializedObjectInternal internal call. + +2002-08-16 Dietmar Maurer <dietmar@ximian.com> + + * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception + to the right domain. + +2002-08-14 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_runtime_invoke): unbox value types + + * class.c (class_compute_field_layout): set blittable to false for Strings + + * appdomain.c (mono_domain_transfer_object): added support for ISerializable + +Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * appdomain.h, reflection.c, icall.c, object.c, reflection.h: + first chunk of code to create types at runtime. Code to + handle ReflectedType/DeclaringType. Make reflection handles + domain specific. + +Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * class.c: set correct name in arrays. + +2002-08-13 Dietmar Maurer <dietmar@ximian.com> + + * appdomain.c (mono_domain_transfer_object): make it work with + valuetypes. bug fixes. + +2002-08-12 Dick Porter <dick@ximian.com> + + * object.h: Rename some parameters to avoid c++ keywords (Patch + from Joseph Wenninger <kde@jowenn.at>) + +Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * icall.c: added icall to implement Assembly.GetFile*. + +Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.h, reflection.c: code to embed managed resources. + +Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * class.c: move all the type size stuff into + class_compute_field_layout(). + +Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * class.c: ensure enums have always the correct instance size. + * unicode.c: remove wrong assert. + +Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * assembly.c: fix mem corruption issue. + * image.h, image.c: added mono_image_get_resource () to access + managed resources. + * icall.c: implemented Assembly.EntryPoint property and some + Managed Resources related internalcalls. + + +Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * image.c, image.h: impemented mono_image_get_entry_point (). + * appdomain.c: use mono_image_get_entry_point. + +Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: support the object type argument when loading + custom attributes. + +2002-08-05 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_managed_wrapper): add suppport for + String as return type. + +Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: fix encoding of named args for custom attrs to match + the ms implementation. Read them back when instantiating custom + attributes. + +2002-08-02 Radek Doulik <rodo@ximian.com> + + * marshal.c (mono_mb_add_data): convert ret value to LE, suggested + by Dietmar as quick fix + (mono_marshal_get_delegate_begin_invoke): use sig->param_count + + 16 as stack size, used on more places as quick fix before Dietmar + will fix it properly + +Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * object.h, object.c: added accessors for fields and properties. + +Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * class.c, class.h: made mono_class_get_field_from_name () + loop on parent types. + Added mono_class_get_property_from_name (). + +Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * class.c, class.h: move the code to setup the type vtable in its own + function so that it can be reused also for types created at runtime. + Eliminate the "class" identifier from the header file. + * reflection.c: setup the vtable for enums so that we can create + objects for use in SetConstant (). + +2002-08-02 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_delegate_to_ftnptr): pass delegate->target + instead of the delegate itself as this pointer (bug #28383) + +2002-08-01 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_managed_wrapper): added return type + conversions. + +Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * loader.c: don't set the pinvoke bit on icalls. + +2002-07-31 Dietmar Maurer <dietmar@ximian.com> + + * debug-helpers.c (mono_method_full_name): only print a number to + indicate wrapper type (so that the output is more readable in traces). + +2002-07-30 Dietmar Maurer <dietmar@ximian.com> + + * class.c (mono_class_init): include method override patch from Paolo + +Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * icall.c: fixed GetTypeCode(). + +2002-07-29 Dietmar Maurer <dietmar@ximian.com> + + * threads.c (ves_icall_System_Threading_Thread_Thread_internal): + use real delegate invoke function to make it work with multicast + delegates (fix bug# 28291). + +Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * object.c: load constant strings. + +Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: no magic numbers. + * tabledefs.h: security action enum. + +Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * assembly.c: fix possible memory corruption. + +Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.h, reflection.c: added support for linking resources. + * verify.c: check we have an updated corlib. + +2002-07-25 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): correctly marshal + string arrays. + (mono_marshal_string_array): null terminate unmanaged string arrays. + (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented) + +Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * icall.c: Type.GetType () can now return also types from the + calling assembly. + +Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * loader.h, loader.c: stack walking support. + * icall.c: implemented GetCurrentMethod, GetExecutingAssembly, + GetCallingAssembly. + +2002-07-24 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c: added optimisations for blittable types + + * class.c (mono_array_class_get): do not set blittable attribute on arrays + (mono_class_setup_mono_type): set blittable attribute for single + and double. + + * marshal.c (mono_string_utf8_to_builder): impl. + (mono_string_builder_to_utf8): impl. + (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling + +2002-07-23 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): impl. byref types + (mono_marshal_get_managed_wrapper): impl. byref types + +2002-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: + (search_method): don't display debug message. + +2002-07-22 Dietmar Maurer <dietmar@ximian.com> + + * metadata.c (mono_type_stack_size): removed temporary fix for new gcc + +Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * appdomain.c: set the missing filename when throwing exception. + +2002-07-22 Dietmar Maurer <dietmar@ximian.com> + + * metadata.c (mono_type_size): code cleanup + (mono_type_stack_size): removed some test code + +2002-07-21 Miguel de Icaza <miguel@ximian.com> + + * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use + mono_get_exception_file_not_found now. + + * exception.c (mono_exception_from_name_two_strings): New version + that will call a constructor with two string arguments. + (mono_get_exception_file_not_found): New helper routine, used to + report file-not-found errors. + +2002-07-20 Dick Porter <dick@ximian.com> + + * process.h: + * process.c: Pass file handles to CreateProcess + + * icall.c: + * file-io.h: + * file-io.c: Implemented CreatePipe + +2002-07-19 Dietmar Maurer <dietmar@ximian.com> + + * metadata.c (mono_get_param_info): set alignment for value types + +Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * appdomain.h, domain.c, threads-types.h: don't include config.h in headers. + Constify mono_domain_assembly_open(). + * loader.c: handle null namespace in icalls. + +2002-07-19 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (emit_ptr_to_str_conv): marshal object as structs + (emit_str_to_ptr_conv): marshal object as structs + + * metadata.c (mono_type_to_unmanaged): marshal object as structs + + * marshal.c (mono_marshal_get_runtime_invoke): support value types + +2002-07-18 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_runtime_invoke): use exception filters + (mono_marshal_get_native_wrapper): we an now return value types + +Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * verify.c: more checks implemented. + +2002-07-17 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_delegate_to_ftnptr): invoke the right method + (fix bug #27695) + (mono_marshal_get_native_wrapper): allow byref arguments + (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX): + impl. PtrToStringXXX methods + (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl. + (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl. + (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl. + (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl. + (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl. + +Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: fix buglet in parsing an assembly name. + +2002-07-16 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (emit_ptr_to_str_conv): first impl. + +Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * object.c, class.h: cache the vtable in the class as suggested by + vargaz@freemail.hu (Zoltan Varga). + +Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * class.h, loader.c: added mono_field_from_token(). + * verify.c: first cut of type checking code. + +2002-07-16 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): support valuetypes + +2002-07-15 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): handle enum types + (fix bug #27782) + (mono_marshal_get_remoting_invoke): impl. + (mono_delegate_begin_invoke): impl. + (mono_mb_emit_save_args): impl. + (mono_delegate_end_invoke): impl. + (mono_marshal_get_delegate_begin_invoke): + (mono_marshal_get_delegate_end_invoke): + (mono_marshal_get_delegate_invoke): generate a special name for + those methods (including the signature) and associate them whith + the delegate class. + +2002-07-13 Gonzalo Paniagua Javier <gonzalo@gnome-db.org> + + * reflection.[ch]: + (mono_reflection_type_from_name): now it has a MonoImage parameter + which is used as the default image to search the type in. If the image + is NULL or getting the type from it fails, it defaults to corlib. + + * icall.c: changed 1 call to mono_reflection_type_from_name to match + new parameter. + +Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: update the parameter table index. + +Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * domain.c: don't include the mark byte in the string hash. + +Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * icall.cs: icall for Type.GetTypeCode (). + * verify: a couple of fixes and disabled local initialization checks. + +2002-07-12 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c: better debugging support (DEBUG_RUNTIME_CODE) + + * debug-helpers.c (mono_method_full_name): print the type of the + runtime wrapper + + * metadata.c (mono_signature_hash): a hash function for signatures + (mono_signature_hash): better hash algorithm + + * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature + + * debug-helpers.c (mono_method_full_name): this can now generate + method names with signatures + + * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged + method dont have this pointers. + +Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: fixup typebuilder tokens. + * image.c: fix buglet. + * marshal.h: remove whitespace. + * metadata.h, metadata.c: reinstate code that was removed. + * verify.c: handle catch directives and fix another couple of bugs. + +2002-07-11 Dietmar Maurer <dietmar@ximian.com> + + * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN + (mono_marshal_get_native_wrapper): make it comp. with the old code + (mono_marshal_get_native_wrapper): support boolean + (mono_marshal_get_managed_wrapper): support more types + +2002-06-25 Dietmar Maurer <dietmar@ximian.com> + + * class.c (class_compute_field_layout): compute class->blittable attribute. + +2002-07-09 Dick Porter <dick@ximian.com> + + * threads.c: Make the thread cleaning up cope with threads that + call ExitThread() + +2002-07-08 Radek Doulik <rodo@ximian.com> + + * reflection.c (method_encode_code): use non-translated values to + compute finally_start, this fixes exception handling on ppc, yay! + + * decimal.h (struct signscale): fix endianess + +2002-07-07 Radek Doulik <rodo@ximian.com> + + * reflection.c: swap box_val and not val + +Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c, reflection.h: handle full assembly info in type name. + Handle Type arguments when loading custom attributes. + * icall.c: updated to use new mono_reflection_type_from_name () method. + +2002-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * loader.c: + (method_from_memberref): also print assembly name when method not found. + +2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * icall.c: + (ves_icall_TypeGetProperties): fixed bug #27473. + +2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * reflection.c: display image name and token when cannot find the + .ctor for an attribute. + +2002-07-05 Martin Baulig <martin@gnome.org> + + * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes. + +2002-07-04 Dick Porter <dick@ximian.com> + + * threads.c (mono_thread_cleanup): Nasty kludge to get this to + compile on mingw. This will cause mingw builds to not wait for + subthreads to terminate after the main thread does. I've lodged a + bug with the mingw developers for them to wrap OpenThread(). + +2002-07-03 Dick Porter <dick@ximian.com> + + * threads.c: Store thread IDs instead of handles, because + GetCurrentThread() returns a pseudohandle and therefore stores + useless values. mono_thread_cleanup() continues checking the + array of threads until it is empty, to cope with subthreads + spawning new threads after the main thread has finished. + + * profiler.h: + * profiler.c: + * profiler-private.h: Pass the thread ID to thread profiler + functions, instead of a handle + +Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * verify.c: fixes to make it more usable. + * pedump.c: added --verify code to verify IL code in an assembly. + +Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: turn errors into warnings to allow compiling corlib. + +Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: add special cases to compile corlib. + +Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * reflection.c: handle properties with only a set method. + +Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com> + + * opcodes.h: add enum with opcodes in opval order. + +2002-07-01 Dick Porter <dick@ximian.com> + + * object.h: + * object.c (mono_runtime_run_main): Removed unneeded argument + +2002-06-28 Martin Baulig <martin@gnome.org> + + * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes. + +2002-06-27 Dick Porter <dick@ximian.com> + + * threads.c: Store the handle in both the parent thread and in the + subthread, to minimise the time between starting a new thread and + storing its ID. + +2002-06-26 Dick Porter <dick@ximian.com> + + * appdomain.c (mono_runtime_cleanup): Close the socket library + after all the threads have finished, not before + +2002-06-26 Martin Baulig <martin@gnome.org> + + * debug-symfile.c (mono_debug_find_source_location): Added + `guint32 *line_number' argument. If it's not NULL, store the line number + there and return the file name without the line number. + 2002-06-25 Dick Porter <dick@ximian.com> * icall.c: |