+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.