1 2005-01-06 Zoltan Varga <vargaz@freemail.hu>
3 * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
5 * reflection.c (reflection_methodbuilder_from_method_builder): Copy
6 fields from mb, not rmb. Fixes #71017.
8 * marshal.c (emit_ptr_to_str_conv): Add support for
9 ByValTStr -> string conversion. Fixes #71015.
11 * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
13 * mempool.c (mono_mempool_contains_addr): New helper function.
15 2005-01-05 Zoltan Varga <vargaz@freemail.hu>
17 * metadata.c (mono_metadata_compute_size): Fix size calculation of
18 HasSematics encoded fields.
20 * metadata.c (mono_type_to_unmanaged): Improve error message for
21 invalid string marshalling.
23 * metadata.c: Fix warnings.
25 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
27 * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
30 2005-01-05 Zoltan Varga <vargaz@freemail.hu>
32 * domain.c object.c domain-internals.h: Revert part of r38077 since the
33 keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
36 2005-01-03 Zoltan Varga <vargaz@freemail.hu>
38 * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
39 so methods containing these can be AOTed.
41 2005-01-03 Martin Baulig <martin@ximian.com>
43 * loader.c (find_method): Removed the hack for generic instances.
44 (method_from_memberref): If our parent is a generic instance, pass
45 its generic type definition to find_method() and then inflate the
47 (mono_get_method_constrained): Pass the generic type definition to
48 find_method() and inflate the method later.
50 * class-internals.h (MonoStats): Added `generic_class_count'.
52 * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
53 Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
55 * reflection.c (mono_custom_attrs_from_params): Don't ignore
56 generic type definitions.
58 2004-12-30 Zoltan Varga <vargaz@freemail.hu>
60 * loader.c icall.c: Fix warnings.
62 2004-12-29 Zoltan Varga <vargaz@freemail.hu>
64 * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
65 blittable types. Fixes #70864.
67 2004-12-29 Martin Baulig <martin@ximian.com>
70 (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
72 * reflection.c (mono_method_get_object): Create a
73 "System.Reflection.MonoGenericMethod" for inflated methods; don't
74 call mono_get_inflated_method().
76 * class-internals.h (MonoStats): Added `inflated_method_count_2'.
78 2004-12-27 Martin Baulig <martin@ximian.com>
80 * class-internals.h (MonoMethod): Added `is_inflated' flag.
81 (MonoMethodInflated): Added `inflated' field.
83 * class.c (mono_class_inflate_generic_method): Don't really
84 inflate the method here; just set the `is_inflated' flag in the
86 (mono_class_get_inflated_method): Actually inflate the method here
87 if it's not already inflated; we use the MonoMethodInflated's new
88 `inflated' field as a cache.
90 2004-12-26 Martin Baulig <martin@ximian.com>
93 (inflate_generic_class): Moved some code out of inflate_generic_type().
94 (mono_class_inflate_generic_method): If we're already inflated,
95 inflate the context and use the declaring method; ie. make sure
96 the declaring method of an inflated method is always the generic
98 (mono_class_create_from_typedef): Create
99 `class->generic_container->context->gclass'.
101 2004-12-24 Ben Maurer <bmaurer@ximian.com>
103 * metadata-internals.h, marshal.c, reflection.c: More
104 MonoGHashTable->GHashTable.
106 * domain-internals.h, class.c: Change MonoGHashTable's into
107 GHashTables for some cases where no gc stuff is used
109 All users: update apis
111 2004-12-23 Ben Maurer <bmaurer@ximian.com>
113 * metadata.c (builtin_types): Make this `const'. Makes this get
114 put into the shareable section.
115 (mono_metadata_init): Casts to make gcc happy.
117 2004-12-22 Zoltan Varga <vargaz@freemail.hu>
119 * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
121 2004-12-21 Sebastien Pouliot <sebastien@ximian.com>
123 * icall.c: Added an internal call to retrieve the position and length
124 of assembly-level declarative security attributes (RequestMinimum,
125 RequestOptional and RequestRefuse). This is used by the Assembly class
126 to re-create the corresponding permission sets.
128 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
130 * marshal.c: fix the stelemref wrapper to be type correct
133 2004-12-20 Ben Maurer <bmaurer@ximian.com>
135 * icall.c (ves_icall_System_Object_GetHashCode): There was no need
136 to do key & 0x7fffffff. Hashtable already does this. It just
137 results in longer code.
139 2004-12-20 Sebastien Pouliot <sebastien@ximian.com>
141 * appdomain.c: Bump corlib version.
142 * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
143 * domain.c: Add RuntimeSecurityFrame to mono_defaults.
144 * reflection.c|h: Add functions to get declarative security infos
145 (blob position and length) for assemblies, classes and methods.
147 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
149 * reflection.c: sort the constant table (bug #70693).
151 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
153 * object-internals.h, threads.c, domain.c: add accessors for
154 the MonoThread and MonoDomain tls keys.
156 2004-12-18 Martin Baulig <martin@ximian.com>
158 * class.c (inflate_generic_type): If we're inflating a generic
159 instance, set `ngclass->context->container = context->container';
160 ie. the container we inflated into.
162 * metadata.c (mono_metadata_parse_generic_param): Reflect above
163 inflate_generic_type() changes.
165 2004-12-17 Martin Baulig <martin@ximian.com>
168 (MonoGenericClass): Replaced `MonoType *generic_type' with
169 `MonoClass *generic_class'. Removed `dynamic_info'; if
170 `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
171 (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
173 2004-12-16 Zoltan Varga <vargaz@freemail.hu>
175 * exception.c (mono_exception_from_token): New helper function.
177 2004-12-15 Zoltan Varga <vargaz@freemail.hu>
179 * assembly.c (mono_assembly_load_with_partial_name): Call
180 mono_assembly_loaded before invoking the preload hooks. Fixes
183 * object-internals.h (MonoThread): Change culture_info and
184 ui_culture_info into an array.
186 * threads.c: Cache culture info objects from more than one appdomain.
188 * threads.c threads-types.h icall.c: Add icalls for manipulating the
191 2004-12-14 Zoltan Varga <vargaz@freemail.hu>
193 * threads.h threads.c appdomain.c: Clear the culture_info field of
194 all threads during unloading if they point to an object in the dying
197 2004-12-13 Ben Maurer <bmaurer@ximian.com>
199 * culture-info.h (TextInfoEntry): New struct
200 * object-internals.h: sync with managed
201 * locales.c: fill the `text_info_data' field
202 * culture-info-tables.h: update
204 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
206 * Makefile.am, monodiet.c: add monodiet, an IL code garbage
209 2004-12-12 Ben Maurer <bmaurer@ximian.com>
211 * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
212 (ves_icall_ModuleBuilder_getMethodToken): Ditto
214 2004-12-12 Martin Baulig <martin@ximian.com>
216 * mono-debug-debugger.c (write_type): If we're an enum and the
217 builtin types have already been initialized, call mono_class_init().
219 2004-12-11 Martin Baulig <martin@ximian.com>
221 * metadata.c (mono_metadata_load_generic_params): Added
222 `MonoGenericContainer *parent_container' argument; automatically
223 compute `container->is_method'; pass the correct owner to
226 * reflection.c (compare_genericparam): Sort the GenericParam table
227 according to increasing owners.
229 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
231 * profiler.c: allow disabling the default profiler.
233 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
235 * decimal.c, icall.c: allow disabling System.Decimal support.
237 2004-12-09 Marek Safar <marek.safar@seznam.cz>
239 * reflection.c: Add support for null attribute arguments.
241 2004-12-09 Martin Baulig <martin@ximian.com>
243 * metadata.h, loader.h: Use `idx' instead of `index' in parameter
244 names to get rid of compiler warnings.
246 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
248 * marshal.c (mono_marshal_get_struct_to_ptr): Call
249 mono_marshal_load_type_info (). Fixes #69625.
250 (mono_marshal_get_ptr_to_struct): Likewise.
252 2004-12-08 Martin Baulig <martin@ximian.com>
254 * mono-debug.h: Bumped version number to 47.
256 * mono-debug-debugger.c
257 (mono_debugger_event_handler, mono_debugger_event): Take two
258 guint64 arguments insteed of a gpointer and a guint32.
260 2004-12-08 Martin Baulig <martin@ximian.com>
262 * debug-mono-symfile.h
263 (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
264 `address' to `native_offset'.
266 2004-12-08 Martin Baulig <martin@ximian.com>
268 * class.c (mono_class_create_from_typespec): Only inflate if we
269 either have `context->gclass' or `context->gmethod'.
271 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
273 * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
275 * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
277 * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
279 * reflection.c (mono_assembly_get_object): Remove the workaround put
282 * appdomain.c: Use the corlib_internal field from MonoAssembly.
284 * appdomain.c: Bump corlib version.
286 * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
287 be visible in other appdomains.
289 2004-12-07 Ben Maurer <bmaurer@ximian.com>
291 * threads.c: Interlocked inc and dec for longs were messed up,
292 use a KISS based impl for this. Fixes 70234
294 2004-12-07 Zoltan Varga <vargaz@freemail.hu>
296 * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
298 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
300 * icall.c: fix to follow policy not to allow struct
303 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
305 * process.c: make the patch that handles spaces in file paths work
308 2004-12-06 Martin Baulig <martin@ximian.com>
310 * class.c (mono_class_create_generic): Call
311 mono_class_setup_supertypes() if we're dynamic.
312 (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
314 2004-12-06 Zoltan Varga <vargaz@freemail.hu>
316 * object-internals.h: Add new fields to MonoThread.
318 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
320 * icall.c threads-types.h threads.c: Add new icalls.
322 * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
324 * object-internals.h (MonoReflectionAssembly): Sync object layout with
327 * appdomain.c: Bump corlib version.
329 * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
330 internal assemblies. Fixes #69181.
332 2004-12-05 Martin Baulig <martin@ximian.com>
334 * class.c (mono_class_inflate_generic_signature): Make this a
335 no-op if `context' is NULL or we don't have any type parameters;
336 also copy `sentinelpos'.
338 2004-12-04 Zoltan Varga <vargaz@freemail.hu>
340 * image.c: Add unbox_wrapper_cache.
342 * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
344 * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
347 * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
350 * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
352 2004-12-04 Martin Baulig <martin@ximian.com>
354 * loader.c (mono_method_get_signature_full): New public function;
355 like mono_method_get_signature(), but with an additional
356 `MonoGenericContext *' argument.
358 * class.c (mono_class_inflate_generic_signature): Formerly known
359 as inflate_generic_signature(); make this public.
361 2004-12-04 Martin Baulig <martin@ximian.com>
364 (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
365 instead of a `MonoGenericContainer *'.
366 (mono_metadata_parse_array_full): Likewise.
367 (mono_metadata_parse_signature_full): Likewise.
368 (mono_metadata_parse_method_signature_full): Likewise.
369 (mono_metadata_parse_generic_inst): Likewise.
370 (mono_metadata_parse_generic_param): Likewise.
371 (mono_metadata_parse_mh_full): Likewise.
372 (mono_type_create_from_typespec_full): Likewise.
374 2004-12-03 Martin Baulig <martin@ximian.com>
376 * class-internals.h (MonoGenericContainer): Replaced the
377 `MonoGenericContext * pointer with a `MonoGenericContext'
378 structure and made it the first element.
380 2004-12-03 Martin Baulig <martin@ximian.com>
383 (inflate_generic_type): Set the `context->container' when creating
384 a new MonoGenericContext.
385 (mono_class_inflate_generic_method): Likewise.
386 (mono_class_create_from_typespec): Just use `context->container'
387 to get the container.
389 * loader.c (method_from_methodspec): Set `context->parent' from
390 `context->container' - and if that's a method container, use its
391 parent. Also set the `context->container' when creating a new
393 (mono_get_method_from_token): Use just `context->container' to get
396 * metadata.c (do_mono_metadata_parse_generic_class): Also set
397 `gclass->context->container'.
399 * reflection.c (do_mono_reflection_bind_generic_parameters): Set
400 the `context->container' when creating a new MonoGenericContext.
402 2004-12-03 Zoltan Varga <vargaz@freemail.hu>
404 * reflection.c (compare_genericparam): Sort params with identical
405 owner by their number. Fixes gen-111 on sparc.
407 2004-12-02 Zoltan Varga <vargaz@freemail.hu>
409 * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
410 around the domain changes.
412 * appdomain.c (mono_domain_unload): Handle the case when the thread
413 calling Unload is itself being aborted during unloading. Fixes #70022.
415 * appdomain.h: Add prototype for mono_install_runtime_cleanup.
417 * marshal.c (emit_thread_interrupt_checkpoint_call): Call
418 checkpoint_func as an icall so it gets a wrapper.
419 (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
420 in the cross-appdomain wrappers too.
422 * threads.c (mono_thread_has_appdomain_ref): Make this public.
424 * assembly.c (mono_assembly_open_from_bundle): Fix warning.
426 * reflection.c: Fix some memory leaks.
428 2004-12-02 Martin Baulig <martin@ximian.com>
430 * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
432 * metadata.c (generic_class_cache): New static hashtable.
433 (mono_metadata_lookup_generic_class): New public method.
435 2004-12-02 Martin Baulig <martin@ximian.com>
437 * class.c (mono_class_create_from_typedef): Call
438 mono_class_setup_parent() and mono_class_create_mono_type() before
439 parsing the interfaces.
441 2004-12-02 Martin Baulig <martin@ximian.com>
443 * metadata.c (generic_inst_cache): New static hashtable.
444 (mono_metadata_lookup_generic_inst): New public function.
445 (mono_metadata_inflate_generic_inst): New public function.
446 (mono_metadata_parse_generic_inst): New public function.
447 (do_mono_metadata_parse_generic_class): Use the new
448 mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
449 since this'll also use the cache.
451 * reflection.c (mono_reflection_bind_generic_method_parameters):
452 Use mono_metadata_lookup_generic_inst() to use the new cache.
454 * class.c (inflate_mono_type): Use
455 mono_metadata_inflate_generic_inst() to inflate a generic
456 instance; this'll also use the new cache.
458 * loader.c (method_from_methodspec): Use
459 mono_metadata_parse_generic_inst() and
460 mono_metadata_inflate_generic_inst() rather than parsing it
461 manually, so we can use the new cache.
463 2004-12-02 Zoltan Varga <vargaz@freemail.hu>
465 * threads.c (wait_for_tids): Do not incorrectly free threads when
468 2004-12-01 Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
470 * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
471 iter->args based on whether parameters are passed in registers (i.e.
472 MONO_ARCH_REGPARMS is defined)
474 2004-12-01 Zoltan Varga <vargaz@freemail.hu>
476 * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
477 the exception message. Fixes #70070.
478 (method_from_methodspec): Fix warnings.
480 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
482 * process.c: (complete_path) return the path quoted
484 2004-12-01 Martin Baulig <martin@ximian.com>
486 * class-internals.h (MonoGenericInst): New structure.
487 (MonoGenericClass): Replaced `type_argc', `type_argv' and
488 `is_open' with `MonoGenericInst *inst'.
489 (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
490 `is_open' with `MonoGenericInst *inst'.
492 2004-11-30 Martin Baulig <martin@ximian.com>
494 Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
496 * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
497 to `generic_class_cache'.
500 (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
501 (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
502 (mono_generic_inst_is_valuetype): Renamed to
503 mono_generic_class_is_valuetype().
506 (MonoGenericInst): Renamed to MonoGenericClass.
507 (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
508 (MonoClass): Renamed `generic_inst' to `generic_class'.
509 (MonoGenericContext): Renamed `ginst' to `gclass'.
512 (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
514 * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
515 mono_reflection_generic_class_initialize().
517 * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
518 now known as "System.Reflection.MonoGenericClass".
519 (monogenericinst_icalls): Renamed to monogenericclass_icalls.
521 2004-11-29 Sebastien Pouliot <sebastien@ximian.com>
523 * class-internals.h: Added a flag field to MonoClass to cache the
524 declarative security attributes actions associated with the class.
525 * domain-internals.h: Added booleans to MonoJitInfo to cache the
526 (class or method level) stack modifiers (Assert, Deny and PermitOnly)
527 applicable to the JITted method.
528 * reflection.c|h: Added functions to extract (as flags) which security
529 actions are available (declaratively) for a method, class or assembly.
530 * metadata.c|h: Added functions to search the declarative security
531 table in the metadata.
533 2004-11-29 Ben Maurer <bmaurer@ximian.com>
535 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
536 EXPORTEDTYPES are already in the class name cache, so there is no
537 need to add extra code here to look at them. Just removes a bit of
540 (ves_icall_System_Environment_get_TickCount): No need for #if
541 WINDOWS. We already have the code in io-layer.
543 2004-11-28 Martin Baulig <martin@ximian.com>
546 (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
549 2004-11-27 Miguel de Icaza <miguel@ximian.com>
551 * assembly.c (do_mono_assembly_open): Instead of having a
552 conditional WITH_BUNDLE, incorporate support for bundles here, by
553 having a global `bundles' variable holding a pointer to the actual
556 (mono_register_bundled_assemblies): New API call used by the
559 See mkbundle.1 for details.
561 2004-11-27 Martin Baulig <martin@ximian.com>
563 * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
564 the vtable for generic methods.
566 2004-11-26 Martin Baulig <martin@ximian.com>
569 (mono_metadata_generic_method_hash): New public function.
570 (mono_metadata_generic_method_equal): Likewise.
573 (MonoGenericContainer): Added `GHashTable *method_hash'.
575 * reflection.c (ReflectionMethodBuilder): Added
576 `MonoGenericContainer *generic_container'.
577 (reflection_methodbuilder_to_mono_method): Don't create a new
578 MonoGenericContainer each time we're called.
579 (mono_reflection_bind_generic_method_parameters): Use
580 `container->method_hash' to cache the results so we don't create a
581 different method if we're called several times with the same
584 * loader.c (method_from_methodspec): Use the new
585 `container->method_hash' here, too.
587 2004-11-26 Martin Baulig <martin@ximian.com>
589 * class.c (inflate_generic_signature): Correctly compute
590 `res->has_type_parameters'.
591 (mono_class_vtable): Use the `has_type_parameters' flag to
592 determine whether we're a generic method.
594 * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
596 2004-11-25 Zoltan Varga <vargaz@freemail.hu>
598 * object.c (mono_runtime_run_main): Fix a small memory leak.
600 2004-11-25 Martin Baulig <martin@ximian.com>
602 * class.c (set_generic_param_owner): Fixed the loop.
604 2004-11-25 Martin Baulig <martin@ximian.com>
606 * object.c (mono_class_vtable): Don't create any JIT wrappers for
609 2004-11-24 Zoltan Varga <vargaz@freemail.hu>
611 * reflection.c: Allow all kinds of whitespace, not just ' ' in type
614 2004-11-24 Martin Baulig <martin@ximian.com>
616 * class.c (mono_class_create_generic_2): If we don't have a
617 `ginst->parent', inflate `gklass->parent' to get our parent.
619 2004-11-24 Martin Baulig <martin@ximian.com>
621 * reflection.c (compare_genericparam): Correctly sort the
622 GenericParam table; fixes #69779.
624 2004-11-23 Ben Maurer <bmaurer@ximian.com>
626 * reflection.c: When writing a PE file, don't create a huge
627 buffer in memory. Just write the arrays we have to the file.
628 This reduces memory usage.
630 * metadata-internals.h: MonoDynamicStream pefile is no longer used
633 2004-11-17 Martin Baulig <martin@ximian.com>
635 * class.c (mono_class_init): Don't setup `class->parent' for
636 dynamic instances; moved this to mono_class_generic_2().
637 (mono_class_create_generic): Also set `klass->inited' for dynamic
639 (mono_class_create_generic_2): Don't do anything for dynamic
640 generic instances. Set `klass->parent' here and also call
641 mono_class_setup_parent() here.
643 * reflection.c (do_mono_reflection_bind_generic_parameters): Added
644 `MonoType *parent' argument; set `ginst->parent' before calling
645 mono_class_create_generic_2(), so we set the correct parent.
647 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
649 * reflection.c: allow getting attributes from ModuleBuilder
652 2004-11-17 Martin Baulig <martin@ximian.com>
654 * class.c (mono_class_create_from_typedef): If a type parameter is
655 inherited from an outer class, set its owner to that class.
657 2004-11-17 Atsushi Enomoto <atsushi@ximian.com>
659 * reflection.c: (mono_image_create_pefile): Don't use NULL argument
660 for (int*) written size. This fixes bug #69592.
662 2004-11-15 Sebastien Pouliot <sebastien@ximian.com>
664 * icall.c: Added IsAuthenticodePresnet internal call.
665 * image.c|h: New function that check a MonoImage for an Authenticode
666 signature in the certificate PE data directory.
667 * security.c|h: New internal call to ask the runtime if an
668 Authenticode signature seems referenced in the PE header.
670 2004-11-15 Zoltan Varga <vargaz@freemail.hu>
672 * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
674 * reflection.c (mono_image_create_pefile): Free the assembly streams
675 after writing out the assembly file.
677 * object.c (mono_runtime_run_main): Fix small memory leak.
679 * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
680 property access modifiers. Fixes #69389.
682 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
684 * domain.c, object.c, object-internals.h, domain-internals.h,
685 object.h, marshal.c: keep dynamic code info per domain.
687 2004-11-15 Martin Baulig <martin@ximian.com>
689 * class.c (mono_type_get_name_recurse): Put type arguments in
690 `[',`]' instead of in `<','>'. Thanks to Atsushi for the patch,
693 2004-11-15 Martin Baulig <martin@ximian.com>
695 * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
696 (mono_class_setup_vtable): When computing `the_cname' for a
697 generic instance, don't include the namespace since we'd otherwise
700 2004-11-15 Martin Baulig <martin@ximian.com>
702 * class.c (mono_class_create_generic): Changed return type to void.
703 (mono_class_create_generic_2): New public function; setup
704 `class->method', `class->field' and `class->interfaces' here
705 instead of in mono_class_init().
707 * class.h (mono_class_create_generic): Moved to class-internals.h.
709 2004-11-14 Ben Maurer <bmaurer@ximian.com>
711 * reflection.c (mono_image_create_pefile): take a file HANDLE.
712 rather than writing to memory, write to this file. Right now,
713 we are just writting into a buffer, and copying that. However
714 we can avoid the buffer later.
716 (mono_dynamic_stream_reset): new function
718 * icall.c, object-internals.h: update for the above.
720 2004-11-13 Ben Maurer <bmaurer@ximian.com>
722 * reflection.c: Remove *_ATOMIC macros. We really shouldn't
723 have been using gc'd memory. First it is slower, unlikely
724 the comment in the source code said, secondly, it increases
725 our footprint to do it in the gc.
727 * icall.c (WriteToFile): rename of getDataChunk. Rewrite
728 the method so that it does not have to copy to managed code.
730 2004-11-12 Zoltan Varga <vargaz@freemail.hu>
732 * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
734 2004-11-12 Martin Baulig <martin@localhost>
736 * reflection.c (mono_image_create_token): Allow generic method
737 definitions here, since they may appear in an `.override'; see
738 gen-98/gen-99 for an example.
740 2004-11-11 Zoltan Varga <vargaz@freemail.hu>
742 * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
745 * marshal.c (mono_string_to_ansibstr): Make g_error messages more
748 2004-11-11 Martin Baulig <martin@ximian.com>
750 * class.c (mono_class_setup_vtable): In an explicit interface
751 implementation, the method name now includes the arity.
753 2004-11-10 Zoltan Varga <vargaz@freemail.hu>
755 * object.c (mono_array_full_copy): Fix warning.
757 2004-11-10 Lluis Sanchez Gual <lluis@novell.com>
759 * appdomain.c: Removed look_for_method_by_name(). Use the new method
760 mono_class_get_method_from_name() instead.
762 * class-internals.h: Added two new types of wrappers.
763 Added MonoRemotingTarget enum. Added new trampoline function type, which
764 takes an additional MonoRemotingTarget value as parameter, so it is
765 possible to request a trampoline for a specific target.
767 * class.c: Added new mono_class_get_method_from_name() method.
769 * class.h: In MonoRemoteClass, we can have now to vtables, one for
770 general remoting sinks and one specific for cross domain calls.
772 * debug-helpers.c: Added new wrapper names.
774 * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
777 * image.c: Porperly delete value objects form the remoting invoke hashtable.
779 * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
780 with several other methods (mono_marshal_get_xappdomain_dispatch,
781 mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
782 and others) can generate a fast remoting wrapper for cross domain calls.
783 More information can be found in docs/remoting.
784 Other changes: Removed mono_find_method_by_name, and used
785 mono_class_get_method_from_name instead.
786 Remoting wrappers are now stored in a MonoRemotingMethods struct, which
787 is stored in the remoting invoke hashtable.
789 * marshal.h: published the new method for getting the xdomain wrapper,
790 and also added a method for getting the adequate wrapper for a given
793 * object-internals.h, object.c: Added a couple of methods for capying and
795 Modified mono_install_remoting_trampoline, which takes the new remoting
796 trampoline that has a remoting target as parameter.
797 mono_class_proxy_vtable now also takes a remoting target as parameter, and
798 will return the most suitable vtable for the target.
799 Added mono_remote_class_vtable, which returns the vtable of a remote class
800 (which can be the normal remoting vtable or the xdomain vtable).
802 * threads.c: the xdomain invoke and dispatch wrappers must also be
803 protected against interruptions.
805 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
807 * icall.c: use memmove in BlockCopyInternal when the source and
808 destination arrays are the same.
810 2004-11-09 Martin Baulig <martin@ximian.com>
812 * class-internals.h (MonoGenericContainer): Removed `method' and
813 `signature', replaced them with `is_method' and `is_signature'
814 flags. Added `context'.
816 * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
817 instead of a `MonoGenericContainer *'.
819 * metadata.c (mono_metadata_generic_param_equal): Removed the hack
820 for dynamic type parameters.
821 (mono_metadata_load_generic_params): Setup `container->context'.
823 * reflection.c (mono_reflection_setup_generic_class): Setup
824 `tb->generic_container->context'.
825 (do_mono_reflection_bind_generic_parameters): Use
826 mono_class_inflate_generic_type() to correctly inflate types,
827 rather than using our own hack just for MONO_TYPE_VAR.
829 2004-11-09 Martin Baulig <martin@ximian.com>
831 * class.c (mono_class_inflate_generic_method): Small fix; don't
835 (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
836 (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
837 (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
838 (ves_icall_Type_BindGenericParameters): Likewise.
839 (ves_icall_Type_get_IsGenericInstance): Likewise.
840 (ves_icall_Type_GetGenericParameterPosition): Likewise.
841 (ves_icall_MonoType_get_HasGenericArguments): Likewise.
842 (ves_icall_MonoType_get_IsGenericParameter): Likewise.
843 (ves_icall_MonoType_get_DeclaringMethod): Likewise.
845 2004-11-09 Zoltan Varga <vargaz@freemail.hu>
847 * assembly.c (mono_assembly_names_equal): Reenable the comparison of
848 assembly versions and public key tokens. Fixes #69113.
850 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
852 * metadata.c: fix bug introduced with the type cache changes
855 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
857 * metadata.h, metadata.c, domain-internals.h, marshal.c: include
858 the MonoClass pointer instead of the token in exception clauses.
859 * reflection.c: updates for the above and make the code not depend
860 on the structure of MonoExceptionClause.
862 2004-11-08 Zoltan Varga <vargaz@freemail.hu>
864 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
865 Add support for dynamic assemblies. Fixes #69114.
867 * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
869 2004-11-07 Ben Maurer <bmaurer@ximian.com>
871 * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
872 since most only those methods use it. the code member of
873 MonoMethodPInvoke was dead, so that can be removed too. Also,
874 remove inline_count (again, not used), and move slot so that it
875 can share bits with some other flags. This saves 8 bytes in the
876 structure and gives us about 50 kb back for mcs helloworld.cs
878 * *.[ch]: Do naming changes for the above.
880 * loader.c (mono_method_get_header): Lazily init the header
882 (mono_get_method_from_token): don't init the header here
883 (mono_free_method): the header may never be allocated
885 Overall, this saves 150 kb of unmanaged allocations
886 for mcs helloworld.cs. That accounts for 10% of the unmanaged
889 * loader.c, loader.h (mono_method_get_header): new accessor.
891 * *.[ch]: use the above method. Prepares us to lazily load
894 * *.[ch]: Clean up all the pesky warnings. gcc now only gives
895 three warnings, which are actual bugs (see 69206).
897 * class-internals.h (MonoMethod): Remove remoting_tramp. It is
898 unused. Saves a cool 4 bytes / method.
900 2004-11-06 Ben Maurer <bmaurer@ximian.com>
902 * metadata.c (builtin_types): Add types for System.Object here.
903 (mono_metadata_parse_type_full): Cache MonoType*'s that are
904 for a class or valuetype from klass->this_arg or klass->byval_arg.
906 On mcs for a hello world, this gets us down from 21836 MonoType's
909 (mono_metadata_free_type): Account for the above change.
911 2004-11-06 Zoltan Varga <vargaz@freemail.hu>
913 * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an
914 exception instead of asserting if name is null.
915 (ves_icall_System_AppDomain_GetData): Ditto.
917 2004-11-05 Zoltan Varga <vargaz@freemail.hu>
919 (ves_icall_get_enum_info): Avoid crash when called on a non-finished
922 * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly):
923 Return NULL when the domain does not have entry_assembly set.
925 * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal):
926 Add a 'resource_modules' argument.
927 (ves_icall_type_GetTypeCode): Fix typecode of byref types.
929 * reflection.c (mono_reflection_create_runtime_class): Move setting
930 of wastypebuilder here, so mono_get_type_object () returns a MonoType
933 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
934 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
935 Throw an ArgumentNullException if 'ptr' is null.
937 * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
938 assemblies here. Fixes #69020.
940 2004-11-05 Geoff Norton <gnorton@customerdna.com>
942 * reflection.c (build_compressed_metadata): Fix the previous patch for
943 big endian systems. GUINT32_FROM_LE isn't needed on strlen and was overwriting
946 2004-11-04 Zoltan Varga <vargaz@freemail.hu>
948 * assembly.c (mono_assembly_names_equal): Allow a match if one of
949 the cultures is false. Fixes #69090.
951 * reflection.c (build_compressed_metadata): Fix invalid memory read
952 detected by valgrind.
954 * reflection.c (mono_reflection_get_type): Avoid triggering a
955 TypeResolve multiple times for the same type. Fixes #65577.
957 2004-11-04 Ben Maurer <bmaurer@ximian.com>
959 * marshal.c: Avoid using ldftn to call managed functions. It is
960 much slower than just a call.
962 * reflection.c (mono_module_get_object): free the basename we
963 allocate here from glib.
965 * reflection.c (ensure_runtime_vtable): make sure to free
966 overrides. Also, we were allocating an array of MonoMethod not an
967 array of MonoMethod*.
969 * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
971 * image.c (mono_image_close): free image->guid here.
973 2004-11-02 Zoltan Varga <vargaz@freemail.hu>
975 * reflection.c: Fix some spec conformance issues with the PE file
976 structures so mcs compiled apps run on the Net 2.0 beta.
978 2004-11-01 Zoltan Varga <vargaz@freemail.hu>
980 * string-icalls.c (ves_icall_System_String_ctor_encoding):
981 Implement this. Fixes #67264.
983 * debug-helpers.h debug-helpers.c marshal.c: Move
984 mono_find_method_by_name to debug-helpers.c.
986 2004-10-31 Zoltan Varga <vargaz@freemail.hu>
988 * object.c (mono_release_type_locks): type_initialization_hash is
991 * reflection.c object.c object-internals.h: Fix warnings.
993 * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
994 without accessors. Fixes #61561.
996 * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
997 application base from the root domain if not set. Fixes #65641.
998 (mono_runtime_init): Fix warning.
1000 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1002 * appdomain.c: call mono_thread_pool_init.
1003 * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
1004 of worker threads based on the number of CPUs and the environment
1005 variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
1006 for non-windows (windows) systems.
1008 2004-10-27 Chris Toshok <toshok@ximian.com>
1010 * mono-debug-debugger.c (write_class): don't call mono_class_init
1011 here, as even with the check for (!klass->init_pending), we get
1012 into a situation where we're hitting cycles in class
1013 initialization. Fixes #68816.
1015 2004-10-25 Zoltan Varga <vargaz@freemail.hu>
1017 * image.c: Avoid overwriting values in the loaded_images_hash when an
1018 assembly is loaded multiple times. Fixes #61152.
1020 * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
1021 so multiple satellite assemblies for the same name can be loaded.
1024 * mono_domain_assembly_preload: Actually return the loaded assembly,
1027 * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
1028 (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
1030 * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
1031 pending finalizers are not invoked after the appdomain has been
1032 unloaded. Fixes #67862.
1034 2004-10-22 Martin Baulig <martin@ximian.com>
1036 * mono-debug-debugger.c
1037 (mono_debugger_runtime_invoke): Don't box valuetypes.
1039 2004-10-22 Chris Toshok <toshok@ximian.com>
1041 * mono-debug-debugger.c (do_write_class): handle .cctors too, and
1042 don't hide private methods.
1044 2004-10-22 Sebastien Pouliot <sebastien@ximian.com>
1046 * icall.c: Allows the runtime to "share" (when known) the public key
1047 token of an assembly. This avoid the need to recalculate the token
1048 (from the public key) in managed code.
1050 2004-10-21 Chris Toshok <toshok@ximian.com>
1052 * debug-helpers.c (append_class_name): argh, revert last patch.
1054 2004-10-21 Chris Toshok <toshok@ximian.com>
1056 * debug-helpers.c (append_class_name): use '+' as the delimiter,
1057 not '/', so that it matches what the debugger uses to look up
1060 2004-10-21 Martin Baulig <martin@ximian.com>
1062 * mono-debug-debugger.c (mono_debugger_throw_exception): New
1063 public method; this is called each time an exception is thrown and
1064 allows the debugger to use exception catch points.
1066 2004-10-21 Martin Baulig <martin@ximian.com>
1068 * mono-debug-debugger.c (mono_debugger_handle_exception): Write
1069 the stack pointer and the exception object in some struct and pass
1070 that to the debugger.
1072 2004-10-21 Chris Toshok <toshok@ximian.com>
1074 * mono-debug-debugger.c (do_write_class): add instance/static
1075 event support. We don't expose "raise" or "other" yet.
1076 (event_is_static): new method.
1078 2004-10-20 Bernie Solomon <bernard@ugsolutions.com>
1080 * mono-debug-debugger.c
1081 (mono_debugger_handle_exception): Remove
1082 bogus return value for fussy compilers.
1084 2004-10-20 Martin Baulig <martin@ximian.com>
1086 * mono-debug-debugger.c
1087 (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
1088 (mono_debugger_handled_exception): Likewise.
1090 2004-10-20 Martin Baulig <martin@ximian.com>
1092 * mono-debug-debugger.h (MonoDebuggerEvent): Added
1093 MONO_DEBUGGER_EVENT_EXCEPTION.
1095 * mono-debug-debugger.c (mono_debugger_handle_exception): New
1096 public function to send the debugger a notification for an
1097 exception and inform it about a catch/finally clause.
1099 2004-10-19 Zoltan Varga <vargaz@freemail.hu>
1101 * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
1102 Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
1105 * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
1107 2004-10-18 Zoltan Varga <vargaz@freemail.hu>
1109 * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1110 marshalled as [In,Out]. Fixes #58325.
1112 2004-10-14 Zoltan Varga <vargaz@freemail.hu>
1114 * reflection.c (mono_method_body_get_object): Implement some fields.
1116 2004-10-12 Martin Baulig <martin@ximian.com>
1118 * reflection.c (mono_reflection_bind_generic_parameters): Small
1119 fix, correctly retrieve our parent from a generic instance.
1121 2004-10-12 Martin Baulig <martin@ximian.com>
1123 * metadata.c (mono_metadata_generic_param_equal): We always have
1127 (mono_class_from_generic_parameter): We need to have an owner.
1128 (my_mono_class_from_generic_parameter): Likewise.
1130 * reflection.c (mono_reflection_setup_generic_class): Renamed to
1131 mono_reflection_create_generic_class() and added a new
1132 mono_reflection_setup_generic_class().
1133 (mono_reflection_initialize_generic_param): If we're a nested
1134 generic type and inherited from the containing class, set our
1135 owner to the outer class.
1137 2004-10-11 Zoltan Varga <vargaz@freemail.hu>
1139 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1141 * reflection.c (mono_method_body_get_object): New function to create
1142 a MethodBody object.
1144 * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1146 2004-10-11 Martin Baulig <martin@ximian.com>
1148 * metadata.c (_mono_metadata_type_equal): Renamed to
1149 do_mono_metadata_type_equal() and made static.
1151 2004-10-11 Martin Baulig <martin@ximian.com>
1153 * appdomain.c: Bump corlib version number to 28.
1155 2004-10-10 Martin Baulig <martin@ximian.com>
1158 (MonoGenericInst): Added `MonoGenericContainer *container'.
1159 (MonoGenericMethod): Likewise.
1160 (MonoGenericContext): Likewise.
1161 (MonoGenericParam): Added `MonoGenericContainer *owner'.
1164 (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1165 (do_mono_metadata_parse_generic_inst): Likewise.
1166 (mono_metadata_parse_type_full): New public method. This is the actual
1167 mono_metadata_parse_type() implementation - with an additional
1168 `MonoGenericContainer *' argument.
1169 (mono_metadata_parse_array_full): Likewise.
1170 (mono_metadata_parse_signature_full): Likewise.
1171 (mono_metadata_parse_method_signature_full): Likewise.
1172 (mono_metadata_parse_mh_full): Likewise.
1173 (mono_type_create_from_typespec): Likewise.
1174 (mono_metadata_interfaces_from_typedef_full): New public method;
1175 this is similar to the other _full() methods, but we take a
1176 `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1177 (mono_metadata_parse_generic_param): Take an additional
1178 `MonoGenericContainer *' argument and lookup the MonoGenericParam
1179 from that container.
1180 (mono_metadata_generic_param_equal): New static method to compare
1181 two type parameters.
1182 (_mono_metadata_type_equal): New static method; takes an
1183 additional `gboolean signature_only' argument - if true, we don't
1184 compare the owners of generic parameters.
1185 (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1186 with a TRUE argument - do a signature-only comparision.
1188 * loader.c: Use the new _full() methods and pass the
1189 MonoGenericContainer to them.
1191 * object-internals.h (MonoReflectionTypeBuilder): Added
1192 `MonoGenericContainer *generic_container' field.
1193 (MonoReflectionMethodBuilder): Likewise.
1195 2004-10-08 Zoltan Varga <vargaz@freemail.hu>
1197 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1198 case initial images of dynamic assemblies.
1200 * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1202 * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1204 * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1205 length of event->other array.
1206 (typebuilder_setup_events): Ditto.
1208 * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1209 'assembly_by_name' and add an 'assemblies' list.
1211 * assembly.h assembly.c: Add a new search hook for determining whenever
1212 an assembly is already loaded. Use this instead of searching in the
1213 loaded_assemblies list.
1215 * domain.c appdomain.c: Implement the new search hook so loaded
1216 assemblies are now scoped by appdomain. Fixes #67727.
1218 2004-10-07 Zoltan Varga <vargaz@freemail.hu>
1220 * threads.c (mono_thread_attach): Initialize synch_lock field so
1221 mono_thread_detach works again.
1223 * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1224 'lib' too. Fixes #63130.
1226 2004-10-06 Jackson Harper <jackson@ximian.com>
1228 * culture-info-tables.h: regenerated.
1230 2004-10-06 Zoltan Varga <vargaz@freemail.hu>
1232 * icall.c (ves_icall_Type_GetInterfaces): Include interfaces
1233 implemented by other interfaces in the result. Fixes #65764.
1235 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1236 Handle unloadable modules without crashing.
1238 * image.c (load_modules): Revert the previous patch since modules must
1239 have a fixed index inside the array.
1241 * image.c (load_modules): Don't include native modules in the modules
1244 2004-10-05 Zoltan Varga <vargaz@freemail.hu>
1246 * reflection.h: Add param_defaults field.
1248 * reflection.c: Add support for parameter defaults in dynamic methods.
1251 * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1252 an empty string when a type has no namespace. Fixes #64230.
1254 2004-10-04 Sebastien Pouliot <sebastien@ximian.com>
1256 * tabledefs.h: Added "internal" security actions to support non-CAS
1257 permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance.
1258 Note: they do not seems to be used anymore in 2.0 (new metadata format)
1260 2004-10-04 Zoltan Varga <vargaz@freemail.hu>
1262 * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1263 constructor of abstract class. Fixes #61689.
1265 2004-10-04 Martin Baulig <martin@ximian.com>
1267 * class-internals.h (MonoGenericContainer): New type.
1268 (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1269 `MonoGenericContainer *generic_container'.
1270 (MonoClass): Replaced `gen_params' and `num_gen_params' with
1271 `MonoGenericContainer *generic_container'.
1273 * metadata.c (mono_metadata_load_generic_params): Return a
1274 `MonoGenericContainer *' instead of a `MonoGenericParam *';
1275 removed the `num' argument.
1277 2004-10-03 Zoltan Varga <vargaz@freemail.hu>
1279 * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1282 * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1285 * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1287 * reflection.c: Save pe_kind and machine values into the generated
1290 * appdomain.c: Bump corlib version number.
1292 * object-internals.h: Reorganize layout of LocalBuilder.
1294 * class-internals.h class.c (mono_class_get_implemented_interfaces):
1295 New helper function.
1297 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1298 created MonoType for dynamic types. Fixes #66180.
1300 2004-10-02 Ben Maurer <bmaurer@ximian.com>
1302 * threadpool.c: the ares hashtable needs a critical section around it.
1303 this prevents some nasty segfaults
1305 2004-10-02 Massimiliano Mantione <massi@ximian.com>
1307 * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1308 on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1311 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
1313 * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1315 2004-09-30 Lluis Sanchez Gual <lluis@novell.com>
1317 * image.c: Always canonicalize image file names, to avoid loading
1318 the same assembly twice when referenced using a relative path.
1320 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
1322 * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1324 * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1326 * marshal.c: Fix warnings.
1328 2004-09-29 Geoff Norton <gnorton@customerdna.com>
1330 * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1331 attempting to marshal the delegate_trampoline as the method_addr.
1332 This patch has a static hashtable of marshalled delegates so that
1333 we can map delegate_trampoline addresses back to delegates. This
1334 allows a delegate passed to managed code to be passed back into native
1337 2004-09-28 Zoltan Varga <vargaz@freemail.hu>
1339 * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1341 * reflection.c (method_encode_code): Align method headers properly.
1344 2004-09-28 Lluis Sanchez Gual <lluis@novell.com>
1346 * marshal.c: In the runtime invoke wrapper, reset the abort
1347 exception if it is cached. This avoids the automatic rethrowal of
1348 the exception after the catch of the wrapper. Also check for pending
1349 interruptions before calling the managed method. This is done using
1350 the new method emit_thread_force_interrupt_checkpoint, since the
1351 normal checkpoint method is ignored when running the invoke wrapper.
1352 * object.c: If the abort exception is rethrown, set the abort_exc
1353 field of the thread, so it will be rethrown aftere every catch.
1354 * threadpool.c: Only run an interruption checkpoint if what has been
1355 requested is a stop of the thread (aborts will be ignored).
1356 * threads.c: By default, a thread will now never be interrumped while
1357 running the runtime invoke wrapper (this ensures that runtime_invoke
1358 will always return to the caller if an exception pointer is provided).
1359 There is a new special method mono_thread_force_interruption_checkpoint()
1360 to force an interruption checkpoint even if running a protected
1361 wrapper, which is used by the same runtime invoke wrapper to do a check
1364 2004-09-28 Lluis Sanchez Gual <lluis@novell.com>
1366 * object.c, object-internals.h: Implemented mono_release_type_locks,
1367 which releases the cctor locks held by a thread.
1368 * threads.c, threads.h: In thread_cleanup, release cctor locks held
1369 by a thread. Added mono_thread_exit() method to be used to safely stop
1372 2004-09-28 Raja R Harinath <rharinath@novell.com>
1374 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1375 Move null check before dereference. Avoid indexing beyond the end
1376 of the 'modules' array.
1378 2004-09-28 Raja R Harinath <rharinath@novell.com>
1380 * metadata-internals.h (MonoImage): Add module_count field.
1381 * image.c (load_modules): Set image->module_count.
1382 (mono_image_load_file_for_image): Use image->module_count.
1383 * reflection.c (mono_image_load_module): Append to image->modules array
1384 of dynamic assembly.
1385 (mono_module_get_object): Fix loop to actually increment index.
1386 Use image->module_count.
1387 * assembly.c (mono_assembly_load_references): Use image->module_count.
1388 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1391 2004-09-28 Zoltan Varga <vargaz@freemail.hu>
1393 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
1394 Avoid assert on generic types.
1396 2004-09-26 Zoltan Varga <vargaz@freemail.hu>
1398 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1400 * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1402 * reflection.c (mono_reflection_marshal_from_marshal_spec): New
1403 function to convert a MarshalSpec structure to its managed counterpart.
1405 * reflection.c: Fix warnings.
1407 * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1410 * icall.c (mono_create_icall_signature): Fix build.
1412 2004-09-25 Zoltan Varga <vargaz@freemail.hu>
1414 * icall.c: Add MakePointType icall.
1416 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1419 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1421 * threadpool.c: reuse allocated slots in the queue.
1423 2004-09-24 Zoltan Varga <vargaz@freemail.hu>
1425 * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1427 * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1429 * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1432 * tabledefs.h: Add constants for pinvoke attributes BestFit and
1433 ThrowOnUnmappableChar.
1435 * icall.c (ves_icall_Type_GetPacking): New icall.
1437 2004-09-24 Martin Baulig <martin@ximian.com>
1439 * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1441 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1444 (mono_domain_set): allow setting a domain that is being unloaded.
1445 (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1448 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
1450 * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1451 the GetCustomAttributes icall.
1453 2004-09-23 Martin Baulig <martin@ximian.com>
1455 * object-internals.h (MonoReflectionGenericParam): Replaced
1456 'has_ctor_constraint', `has_reference_type' and `has_value_type'
1457 with `guint32 attrs'.
1459 2004-09-23 Martin Baulig <martin@ximian.com>
1461 * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1463 2004-09-23 Martin Baulig <martin@ximian.com>
1465 * object-internals.h (GenericParameterAttributes): New enum.
1467 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
1469 * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1471 * class.c (init_events): Fill out event->other field.
1473 * class.c: Fix warnings.
1475 * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1477 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1479 * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1480 walk which doesn't supply the IL offset.
1482 2004-09-22 Martin Baulig <martin@ximian.com>
1484 * reflection.c (mono_reflection_setup_internal_class): If we're
1485 System.ValueType, System.Object or System.Enum, set
1486 `klass->instance_size' and create the vtable.
1487 (mono_reflection_create_internal_class): If we're an enum type,
1488 get the base class from our current corlib.
1490 2004-09-22 Zoltan Varga <vargaz@freemail.hu>
1492 * reflection.h (MonoResolveTokenError): New type.
1494 * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1497 * icall.c: Add an 'error' argument to the ResolveToken icalls.
1499 2004-09-22 Lluis Sanchez Gual <lluis@novell.com>
1501 * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1502 Support also calling constructors, but only for already allocated objects.
1504 2004-09-17 Geoff Norton <gnorton@customerdna.com>
1506 * reflection.c (type_get_qualified_name): If the klass is null
1507 return the typename to avoid a NullRefEx.
1508 (encode_cattr_value): Get the qualified name of the boxed type,
1509 not the underlying enumtype. Fixes #62984.
1511 2004-09-21 Zoltan Varga <vargaz@freemail.hu>
1513 * marshal.c: Fix problems with previous checkin.
1515 2004-09-21 <vargaz@freemail.hu>
1517 * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1518 existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1520 * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1522 2004-09-21 Geoff Norton <gnorton@customerdna.com>
1524 * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1525 should only return a type for pointers, arrays, and passbyref types.
1528 2004-09-21 Martin Baulig <martin@ximian.com>
1530 * domain.c (mono_debugger_check_runtime_version): New public
1533 * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.
1535 2004-09-20 Sebastien Pouliot <sebastien@ximian.com>
1537 * reflection.c: Added missing sort to the declarative security
1538 attributes table. MS implementation stops seeing the attributes if the
1539 token number regress in the table (as shown by ildasm and permview).
1541 2004-09-20 Zoltan Varga <vargaz@freemail.hu>
1543 * object-internals.h (MonoReflectionModule): Add 'token' field.
1545 * reflection.c (mono_reflection_get_token): Add support for Module
1547 (mono_module_get_object): Set 'token' field.
1548 (mono_module_file_get_object): Set 'token' field.
1550 * icall.c: Add new Assembly and Module icalls.
1552 * appdomain.c: Bump corlib version.
1554 2004-09-19 Zoltan Varga <vargaz@freemail.hu>
1556 * loader.h loader.c class.h class.c: Add helper functions for obtaining
1557 tokens of metadata objects.
1559 * reflection.h reflection.c (mono_reflection_get_token): New function
1560 to obtain the token of a metadata object.
1562 * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1564 2004-09-17 Zoltan Varga <vargaz@freemail.hu>
1566 * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1568 * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1570 2004-09-16 Sebastien Pouliot <sebastien@ximian.com>
1572 * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1573 * object-internals.h: Added 3 MonoArray* members to MonoReflection
1574 AssemblyBuilder to access the permissions set in the class lib.
1575 * reflection.c: Added security attributes encoding step in
1576 mono_image_build_metadata.
1577 * tabledefs.h: Added new security actions defined in 2.0:
1578 LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1580 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
1582 * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1585 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
1587 * locales.c: nullify the ICU_collator member of CompareInfo when it is
1588 finalized. There where random SIGSEVs at program termination, when
1589 an object being finalized was trying to do a string comparison and
1590 the current culture was already finalized.
1592 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1594 * threads.c: call thread_cleanup before finishing the thread if we get
1597 2004-09-16 Zoltan Varga <vargaz@freemail.hu>
1599 * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1600 assemblies from the parent. Fixes #65665.
1602 2004-09-15 Zoltan Varga <vargaz@freemail.hu>
1604 * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1607 2004-09-14 Bernie Solomon <bernard@ugsolutions.com>
1609 * reflection.h: add prototype for mono_get_dbnull_object
1610 * reflection.c: add prototypes for get_default_param_value_blobs
1611 and mono_get_object_from_blob for fussier compilers
1613 2004-09-14 Lluis Sanchez Gual <lluis@novell.com>
1615 * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1616 false deadlock checks in class initialization.
1618 2004-09-13 Zoltan Varga <vargaz@freemail.hu>
1620 * image.c (mono_image_addref): Fix comment.
1622 * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1625 2004-09-12 Jambunathan K <kjambunathan@novell.com>
1627 * reflection.c (mono_param_get_objects): Modified to return
1628 ParameterInfo.DefaultValue object.
1630 (get_default_param_value_blobs):
1631 (mono_get_object_from_blob):
1632 (mono_get_dbnull_object): New helper routines.
1634 * object.c (mono_get_constant_value_from_blob): New helper routine
1635 carved out from get_default_field_value ()
1637 * object-internals.h (mono_get_constant_value_from_blob): Added
1638 function declaration.
1640 2004-09-11 Zoltan Varga <vargaz@freemail.hu>
1642 * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load
1643 referenced assemblies. Fixes #62135.
1645 * exception.h exception.c (mono_get_exception_file_not_found2): New
1648 2004-09-10 Zoltan Varga <vargaz@freemail.hu>
1650 * class.h class.c: Add mono_type_get_underlying_type ().
1652 2004-09-09 Geoff Norton <gnorton@customerndna.com>
1654 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1655 Fix GetTypes() to support dynamically created assemblies.
1657 2004-09-09 Zoltan Varga <vargaz@freemail.hu>
1659 * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1661 * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1664 * reflection.h reflection.c loader.c: Allow dynamic construction of
1665 pinvoke methods. Fixes #65571.
1667 * reflection.c (mono_reflection_get_type): Revert previous change since
1668 it causes regressions.
1670 2004-09-08 Martin Baulig <martin@ximian.com>
1672 * class.c (class_compute_field_layout): Don't call
1673 mono_class_layout_fields() for open generic instances.
1675 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1676 * threads.c appdomain.c: fix typo in GC macro
1678 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1680 * threads.c: don't call mono_thread_detach() in start_wrapper(),
1681 avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1683 2004-09-08 Zoltan Varga <vargaz@freemail.hu>
1685 * image.c (mono_image_close): Applied patch from
1686 vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
1687 assembly is loaded multiple times from data.
1689 * image.c (mono_image_open): Fix warning.
1691 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
1693 * reflection.h reflection.c icall.c: Only call TypeResolve handlers
1696 * reflection.c (mono_reflection_create_runtime_class): Initialize
1697 klass->nested_classes. Fixes #61224.
1699 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1701 * threads.c: sched_yield() on exit, to allow threads to quit.
1703 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
1705 * object.c (mono_unhandled_exception): Remove leftover debug code.
1707 2004-09-07 Atsushi Enomoto <atsushi@ximian.com>
1709 * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
1711 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
1713 * marshal.c (emit_marshal_array): Really null terminate string arrays.
1715 * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
1717 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
1719 * marshal.c (emit_marshal_array): Null terminate string arrays.
1721 * marshal.c (raise_auto_layout_exception): Fix warning.
1723 * reflection.c (mono_param_get_objects): Initialize the default value
1724 with DBNull.Value, not null. Fixes #62123.
1726 2004-09-01 Miguel de Icaza <miguel@ximian.com>
1728 * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
1729 throw an exception with a cute explanation.
1731 2004-09-06 Dick Porter <dick@ximian.com>
1733 * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
1734 Close the new process's thread handle, as we don't use it. The
1735 handle stays around forever otherwise.
1737 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
1739 * object.c (arith_overflow): Fix warning.
1741 * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
1742 calling conventions in method refs. Fixes #65352.
1744 * reflection.c: Fix warnings.
1746 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
1748 * icall.c: Add a new icall for Array.Clear
1750 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
1752 * object.c: When allocating an array, we have to throw
1753 an overflow exception if any of the lengths are < 0.
1755 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
1757 * marshal.h marshal.c: Free unmanaged memory allocated by managed code
1758 properly. Also move implementation of string array marshalling to
1759 managed code. Fixes #42316.
1761 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1763 * assembly.c: provide more information when loading an assembly fails.
1765 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1767 * filewatcher.c: don't expect the development fam package to be
1770 2004-09-03 Zoltan Varga <vargaz@freemail.hu>
1772 * marshal.c: Make a copy of the signature cookie since it will be
1773 freed by the caller.
1775 * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
1777 * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
1779 * metadata.c (mono_metadata_free_marshal_spec): New function to free
1782 * marshal.c: More refactoring.
1784 * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
1787 2004-09-03 Lluis Sanchez Gual <lluis@novell.com>
1789 * object.c: In mono_message_invoke, fill the output parameter array after
1790 calling the managed method (it was done before the call). This fixes
1793 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
1795 * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
1798 2004-09-02 Martin Baulig <martin@ximian.com>
1800 * class.c (mono_class_instance_size): Don't allow generic type
1801 definitions or open generic instances.
1802 (mono_class_array_element_size): If we're a value type, call
1803 mono_class_instance_size() on the original class.
1805 * metadata.c (mono_type_size, mono_type_stack_size): Correctly
1806 handle generic instances.
1808 * mono-debug-debugger.c (write_type): Handle generic instances
1811 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
1813 * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
1814 the allocation request fails. Fixes #65089.
1816 * object.c (mono_runtime_free_method): Do not call mono_free_method.
1818 * object.c (mono_runtime_free_method): New function to free a dynamic
1821 * marshal.c (mono_delegate_free_ftnptr): New function to free the
1822 delegate trampoline.
1824 * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
1825 with hasthis as dynamic,
1827 * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
1829 * domain.c (mono_jit_info_table_remove): New function to remove an
1830 entry from the jit info table.
1832 * class-internals.h (MonoMethod): Add 'dynamic' field.
1834 * loader.c: Fix warnings.
1836 2004-09-01 Martin Baulig <martin@ximian.com>
1838 * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
1839 instead of mono_debugger_lock() because the latter one is a no-op
1840 unless running in the debugger.
1842 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
1844 * class.c (class_compute_field_layout): Classes with auto-layout or
1845 reference fields are not blittable.
1847 2004-09-01 Dick Porter <dick@ximian.com>
1849 * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
1850 mono_image_get_filename() to get the assembly location.
1853 * metadata.h: Fix compile warnings
1855 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
1857 * class.c (class_compute_field_layout): System.Object is blittable.
1859 * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
1860 as in/out. Fixes #59909.
1862 2004-09-01 Martin Baulig <martin@ximian.com>
1864 * metadata.h (MONO_TYPE_ISREFERENCE): Call
1865 mono_metadata_generic_inst_is_valuetype() if we're a generic
1866 instance to check whether our underlying type is a reference type.
1868 2004-09-01 Martin Baulig <martin@ximian.com>
1870 * metadata.c (mono_type_size): If we're a generic instance, call
1871 mono_class_value_size() for value types.
1873 2004-08-31 Zoltan Varga <vargaz@freemail.hu>
1875 * marshal.c: Implement more custom marshalling functionality. Fixes
1878 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
1880 * mono-debug.c, debug-mono-symfile.c: add some locking love.
1882 2004-08-30 Zoltan Varga <vargaz@freemail.hu>
1884 * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
1886 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
1888 * icall.c: Fix some warnings.
1890 * threads.c (abort_appdomain_thread): Fix unref errors.
1891 (mono_thread_current): Fix THREAD_DEBUG define.
1893 2004-08-29 Zoltan Varga <vargaz@freemail.hu>
1895 * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
1897 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
1899 2004-08-28 Zoltan Varga <vargaz@freemail.hu>
1901 * marshal.c (mono_marshal_get_native_wrapper): Add support for byref
1904 2004-08-28 Martin Baulig <martin@ximian.com>
1907 (mono_metadata_generic_inst_is_valuetype): New public function.
1909 * metadata.h (MONO_TYPE_ISSTRUCT): Call
1910 mono_metadata_generic_inst_is_valuetype() if we're a generic
1911 instance to check whether our underlying type is a valuetype.
1913 2004-08-26 Zoltan Varga <vargaz@freemail.hu>
1915 * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
1918 2004-08-25 Martin Baulig <martin@ximian.com>
1920 * loader.c (mono_get_method_from_token): Abstract methods can also
1921 be generic and thus have type parameters.
1923 * metadata-internals.h
1924 (MonoDynamicImage): Added `GPtrArray *gen_params'.
1926 * reflection.c (mono_image_get_generic_param_info): Don't create a
1927 metadata row, just add an entry to the `gen_params' array.
1928 (build_compressed_metadata): Sort the `gen_params' array and then
1929 actually create the metadata.
1931 2004-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1933 * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
1935 2004-08-25 Zoltan Varga <vargaz@freemail.hu>
1937 * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
1939 2004-08-24 Martin Baulig <martin@ximian.com>
1941 * class.cs (mono_class_is_subclass_of): Like an interface, a
1942 generic instance also derives from System.Object.
1944 2004-08-23 Zoltan Varga <vargaz@freemail.hu>
1946 * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
1947 custom modifiers to be in any order. Fixes #61990.
1949 2004-08-20 Zoltan Varga <vargaz@freemail.hu>
1951 * object.c: Register mono_object_new_fast icall.
1953 * object.c (mono_class_get_allocation_ftn): Return to calling
1954 mono_object_new_fast, since it seems faster to compute the object
1955 size in unmanaged code than passing it as a parameter.
1957 * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
1959 * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
1960 this function with Boehm as the oom handler, so we don't have to check
1961 the result of GC_malloc.
1963 * object.c: Remove checks for oom.
1965 * object.h object.c (mono_class_get_allocation_ftn): New function to
1966 return the icall which can be used to allocate an instance of a given
1969 * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
1971 * class-internals.h: Add 'enabled' field.
1973 2004-08-19 Zoltan Varga <vargaz@freemail.hu>
1975 * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
1977 2004-08-18 Jambunathan K <kjambunathan@novell.com>
1978 * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
1981 2004-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1983 * appdomain.c: use the Tls function for appdomain too,
1984 at Zoltan's request. Actually return in mono_context_get
1986 * appdomain.c, profiler.c, threads.c: use __thread
1988 2004-08-18 Zoltan Varga <vargaz@freemail.hu>
1990 * appdomain.c threads.c: Call GC_CreateThread on windows.
1992 * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
1993 multiple libraries since this don't work on windows.
1995 2004-08-18 Martin Baulig <martin@ximian.com>
1998 (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
2001 * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
2002 MonoMethodNormal since we also need it for abstract and interface
2006 (build_compressed_metadata): Sort the GenericParam table.
2007 (mono_image_create_token): Added `gboolean create_methodspec'
2008 argument; this is false when generating a MethodImpl token.
2009 (reflection_methodbuilder_to_mono_method): Abstract and interface
2010 methods may also have generic parameters.
2012 2004-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
2014 * appdomain.c: thread local alloc
2016 2004-08-17 Martin Baulig <martin@ximian.com>
2018 * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
2021 (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
2024 * class.c (mono_type_get_full_name): New public function.
2025 (mono_type_get_name): Don't include the type arguments.
2027 2004-08-16 Zoltan Varga <vargaz@freemail.hu>
2029 * Makefile.am: Build static versions of libmetadata and libmonoruntime
2030 for inclusion into the mono executable.
2032 2004-08-16 Martin Baulig <martin@ximian.com>
2034 * metadata.c (do_mono_metadata_parse_generic_inst): Store the
2035 MonoGenericInst, not the MonoType in the `generic_inst_cache'.
2037 2004-08-14 Martin Baulig <martin@ximian.com>
2039 * class.c (dup_type): Also copy the `byref' field.
2041 2004-08-15 Zoltan Varga <vargaz@freemail.hu>
2043 * reflection.c (create_dynamic_mono_image): Revert the last change
2044 since it breaks bootstrap.
2046 2004-08-14 Zoltan Varga <vargaz@freemail.hu>
2048 * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
2050 * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
2051 not free them with g_free.
2053 2004-08-11 Martin Baulig <martin@ximian.com>
2055 * reflection.c (mono_reflection_setup_internal_class): Also call
2056 mono_class_setup_mono_type() if we already have a `tb->type.type'.
2058 2004-08-09 Sebastien Pouliot <sebastien@ximian.com>
2060 * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when
2061 called during default (first) AppDomain creation. Keep track of
2062 Evidence when loading assemblies.
2064 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2066 * opcodes.c, opcodes.h: reduce runtime relocations.
2068 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2070 * culture-info.h, locales.c: fixes and chages to sue the new
2071 optimized format of the locale data.
2072 * culture-info-tables.h: regenerated.
2074 2004-08-06 Geoff Norton <gnorton@customerdna.com>
2076 * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
2078 2004-08-05 Sebastien Pouliot <sebastien@ximian.com>
2080 * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
2081 ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
2082 * domain-internals.h: icall declaration.
2083 * icall.c: icall registration.
2084 * object-internals.h: New fields in MonoAssembly for CAS.
2086 2004-08-05 Duncan Mak <duncan@ximian.com>
2088 * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
2091 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2093 * reflection.c: fix to deal with object[] arrays in custom ctors
2096 2004-08-05 Martin Baulig <martin@ximian.com>
2098 * class.c (mono_class_array_element_size): Added support for
2099 generic instances and correctly handle "recursive" types.
2101 2004-08-05 Zoltan Varga <vargaz@freemail.hu>
2103 * assembly.c: Fix warnings.
2105 2004-08-04 Martin Baulig <martin@ximian.com>
2108 (mono_type_get_name_recurse): Added `gboolean include_arity'
2109 argument specifying whether or not we should include the generic
2110 arity in the type name.
2111 (_mono_type_get_name): New static function.
2112 (mono_class_setup_vtable): If we're a generic instance, don't
2113 include the generic arity in the names of explicit method
2116 2004-08-03 Martin Baulig <martin@ximian.com>
2118 * class.c (mono_type_get_name_recurse): Enclose the generic type
2119 arguments in `<', '>'.
2121 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2123 * gc.c: make GC warning messages use the trace API, they are just
2124 noise to most of the users.
2126 2004-08-03 Martin Baulig <martin@ximian.com>
2128 * debug-mono-symfile.c (read_string): Correctly read the string.
2130 2004-07-30 Zoltan Varga <vargaz@freemail.hu>
2132 * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2134 * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2136 (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2138 2004-07-30 Martin Baulig <martin@ximian.com>
2140 * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2141 Reflect latest symbol writer changes.
2143 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2145 * object.c: always create an object if null is passed
2146 to Invoke() where a valuetype is expected.
2148 2004-07-29 Bernie Solomon <bernard@ugsolutions.com>
2150 * marshal.c (mono_marshal_init): make managed
2151 signatures match native ones better for 64bits.
2153 2004-07-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2155 * appdomain.c: hack to build correctly the private bin path on windows.
2158 2004-07-28 Lluis Sanchez Gual <lluis@novell.com>
2160 * assembly.c: Load mscorlib from the correct framework directory
2161 (mono/<version>/mscorlib.dll).
2162 * appdomain.h: Added prototypes for new functions.
2163 * internals.h: Added some prototypes.
2164 * domain.c: When initializing the runtime, get from the executable and
2165 the configuration files the runtime version that the app supports.
2166 Added support methods for reading app.exe.config. Added list of versions
2167 supported by the JIT. Added two new methods: mono_init_from_assembly,
2168 which initializes the runtime and determines the required version from
2169 the provided exe file, and mono_init_version, which initializes
2170 the runtime using the provided version.
2171 * icall.c: Get machine.config from version-specific directory.
2172 * reflection.c: When generating an image, embed the version number
2173 of the current runtime.
2175 2004-07-28 Dick Porter <dick@ximian.com>
2178 (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2179 returned sockaddr size before creating the remote address object.
2180 Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2183 2004-07-28 Dick Porter <dick@ximian.com>
2185 * locales.c (string_invariant_compare_char): Fix invariant char
2186 compares between upper and lower cases. Fixes bug 61458.
2188 2004-07-27 Ben Maurer <bmaurer@ximain.com>
2190 * marshal.c: actually cache stelem.ref wrappers.
2192 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2194 * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image
2195 sections and remove the mono_cli_rva_map () function.
2197 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2199 * debug-mono-symfile.c: fix one more endianess issue, from a patch
2200 by Geoff Norton (<gnorton@customerdna.com>).
2202 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2204 * class.c: fix class loads for pointer types (typeof(int) !=
2207 2004-07-27 Martin Baulig <martin@ximian.com>
2209 * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2210 reading the debugging information from an external ".mdb" file.
2212 2004-07-24 Martin Baulig <martin@ximian.com>
2214 * reflection.c (mono_image_get_type_info): Only write a class
2215 layout entry if we actually have a size or a packing size.
2217 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
2219 * reflection.c (type_get_fully_qualified_name):
2220 insert cast to get type checking of ?: with non-gcc compilers
2222 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
2224 * rand.c: use g_getenv for both lookups of
2227 2004-07-17 Martin Baulig <martin@ximian.com>
2229 * reflection.c (mono_reflection_bind_generic_method_parameters):
2230 Set `gmethod->reflection_info'.
2232 2004-07-17 Martin Baulig <martin@ximian.com>
2234 * class.c (mono_class_create_from_typedef): Insert the newly
2235 created class into the hash table before computing the interfaces
2236 since we could be called recursively.
2238 2004-07-16 Ben Maurer <bmaurer@ximain.com>
2240 * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2241 function to implement stelem.ref in managed code
2242 * class-internals.h, debug-helpers.c: a new wrapper type
2245 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2247 * gc.c: allow GC handles to work even when no GC is compiled in.
2248 Fix part of bug #61134 (GetAddrOfPinnedObject).
2250 2004-07-13 Peter Williams <peter@newton.cx>
2252 * process.c (complete_path): Make sure we don't attempt to execute
2255 2004-07-12 Geoff Norton <gnorton@customerdna.com>
2257 * DateTime.cs: Patch for bug #61112. Our DateTime wasn't roundtripping over timezone
2258 boundaries properly. This patch checkes ToLocalTime() to see if we're tripping over a boundary
2259 and will add/subtract the hour if needed
2261 2004-07-12 Martin Baulig <martin@ximian.com>
2263 * reflection.c (mono_field_get_object): If we have
2264 `field->generic_info', take the attributes from
2265 `field->generic_info->generic_type'.
2267 2004-07-12 Martin Baulig <martin@ximian.com>
2269 * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2270 This function must be called before initializing the runtime.
2271 (mono_debug_init_1): New function; call this after initializing
2272 the runtime, but before loading the assembly. It tells the
2273 debugger to load corlib and the builtin types.
2275 * mono-debug-debugger.c: Did some larger changes in the debugging
2276 code; support recursive class declarations, make sure we actually
2279 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2281 * debug-helpers.c: undo my previous patch and fixed the real issue in
2282 ../mini/exceptions-x86.c
2284 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2286 * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2287 when no HOME env. variable was set and a NullRef was thrown in a .cctor
2288 called from other .cctors.
2290 2004-07-09 Miguel de Icaza <miguel@ximian.com>
2292 * loader.c: Removed the mono_loader_wine_init hack now that we are
2293 doing a managed version of Windows.Forms.
2295 2004-07-09 Ben Maurer <bmaurer@ximian.com>
2297 * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2298 threadpool.c, threads.c: remove static data from rootset.
2300 2004-07-09 Dick Porter <dick@ximian.com>
2302 * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2303 Don't do any more processing if the matched length was 0. It was
2304 increasing the size of the string before. Fixes bug 61167.
2306 2004-07-09 Dick Porter <dick@ximian.com>
2310 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2311 Add support for SO_PEERCRED if its available.
2313 2004-07-09 Peter Bartok <pbartok@novell.com>
2314 * loader.c: winelib.exe.so error message is now only displayed if
2315 MONO_DEBUG is set. To help us avoid questions when people are trying
2316 out the new Managed.Windows.Forms.
2318 2004-07-08 Zoltan Varga <vargaz@freemail.hu>
2320 * class-internals.h debug-helpers.c marshal.c: Add new wrapper types
2321 for isinst and castclass wrappers.
2323 * class-internals.h icall.c: Move registration and lookup of JIT icalls
2324 to libmetadata from the JIT, so they could be used by the marshalling
2325 code and the interpreter.
2327 * marshal.c: Register marshalling related JIT icalls here instead of
2328 in mini.c. Use CEE_MONO_ICALL instead of the family of
2329 CEE_MONO_PROC<x> opcodes to call marshalling functions.
2331 * metadata.h: Remove unneeded marshalling conversions.
2333 * opcodes.c: Update for new opcodes.
2335 2004-07-08 Martin Baulig <martin@ximian.com>
2337 * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2338 (mono_debug_get_domain_data): Make this function static.
2340 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2342 * gc.c, object.h: add nice GC handle API for embedders.
2344 2004-07-06 Ben Maurer <bmaurer@ximian.com>
2346 * reflection.c: more changes for the new api
2348 * object.c: When we reflect on a field w/ a constant value, it
2349 will not have a memory location, so we must access metadata. Also,
2350 allow easier reading of strings so that we can read them from
2353 * class.c (mono_class_layout_fields): no need for literal fields here.
2355 * class-internals.h: api changes for const fields
2357 * icall.c (ves_icall_get_enum_info): use new apis for const fields
2359 2004-07-06 Martin Baulig <martin@ximian.com>
2361 * mono-debug.h: Increment version number to 44.
2363 * mono-debug.c (mono_debug_add_wrapper): The second argument is
2364 now a gpointer, rewrote this whole method.
2366 * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2367 function. Add information about the wrapper in a new "misc table".
2369 * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2370 for the new misc table.
2372 2004-07-05 Zoltan Varga <vargaz@freemail.hu>
2374 * metadata-internals.h image.c: Add a cache for helper signatures.
2376 * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2378 2004-07-03 Zoltan Varga <vargaz@freemail.hu>
2380 * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2381 delegates from a delegate. Fixes #61033.
2383 * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2384 marshalling of stringbuilder arrays. Fixes #59900.
2386 2004-07-02 Zoltan Varga <vargaz@freemail.hu>
2388 * icall.c: Add EnumBuilder:setup_enum_type icall.
2390 2004-06-30 Ben Maurer <bmaurer@ximian.com>
2392 * icall.c: Added a new icall for the property version of
2395 2004-06-30 Zoltan Varga <vargaz@freemail.hu>
2397 * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2398 it has a constant size across platforms.
2400 * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2403 2004-06-29 Martin Baulig <martin@ximian.com>
2405 * mono-debug.c (mono_debug_add_method): Protect the whole function
2406 in mono_debugger_lock(), not just parts of it.
2408 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2410 * reflection.c: make sure padding bytes in heaps are zeroed.
2412 2004-06-24 David Waite <mass@akuma.org>
2414 * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2415 image.c, loader.c, locales.c, marshal.c, metadata.c,
2416 mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2417 string-icalls.c, threads.c: change to C90-style comments from C99 /
2420 2004-06-24 Dick Porter <dick@ximian.com>
2423 (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2424 return createdNew. Fixes bug 60412.
2427 * icall.c: Add createdNew parameter to CreateMutex icall
2429 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2431 * reflection.c, object-internals.h: save default value in params.
2433 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2435 * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2436 no need to build a new path combining that with the application base.
2439 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2441 * reflection.c: fixed minor standard compliance issues.
2443 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2445 * reflection.c: fixed issue with encoding some custom attributes
2446 (arrays in properties and fields, bug #60411).
2448 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2450 * reflection.c: fix start address when copying the public key token.
2452 2004-06-23 Martin Baulig <martin@ximian.com>
2454 * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2455 the `exc' object in a static object to put it into the GC's root set.
2457 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2459 * reflection.c: make mono_reflection_setup_internal_class ()
2460 callable a second time to setup a new parent class.
2462 2004-06-23 Dick Porter <dick@ximian.com>
2464 * threads.c: Check for WAIT_IO_COMPLETION return values.
2466 2004-06-22 Sebastien Pouliot <sebastien@ximian.com>
2468 * appdomain.c: Removed the g_free on the public key token. Now copy
2469 the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2470 * assembly.c: Added public key token string value when loading
2471 assemblies. Fix bug #60439.
2472 * icall.c: Added missing informations (like public key) in
2473 GetReferencedAssemblies. Fix #60519.
2474 * image.h: Changed definition for public key token from const char*
2475 public_tok_value to guchar public_key_token [17];
2476 * reflection.c: Updated for changes to public key token.
2478 2004-06-22 Lluis Sanchez Gual
2480 * icall.c: In ves_icall_InternalExecute, when setting a filed, also look
2481 for the field in base classes.
2483 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2485 * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2486 mark headers as not supported, they are installed only for use by the
2489 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2491 * *.c, *.h: avoid namespace pollution in public headers.
2493 2004-06-21 Martin Baulig <martin@ximian.com>
2495 * exception.c (mono_get_exception_security): It's in
2496 "System.Security", not in "System".
2498 * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2499 the exception classes.
2501 2004-06-21 Martin Baulig <martin@ximian.com>
2503 * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2504 Protect the exception object from being finalized.
2506 2004-06-21 Martin Baulig <martin@ximian.com>
2508 * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2511 2004-06-21 Sebastien Pouliot <sebastien@ximian.com>
2513 * reflection.c: Load the assembly in mono_reflection_type_from_name,
2514 if it was not loaded before. Fix parts of #60439.
2516 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2518 * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2519 code that was broken since Ben's change: wrappers are now
2520 dependent on the method signature only again.
2522 2004-06-21 Martin Baulig <martin@ximian.com>
2524 * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2525 added interface support.
2527 2004-06-21 Martin Baulig <martin@ximian.com>
2529 * class.c (mono_vtable_get_static_field_data): New public method.
2531 2004-06-20 Atsushi Enomoto <atsushi@ximian.com>
2533 * filewatcher.c : Windows build fix to be compliant with API changes.
2535 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2537 * class.h, class.c: more accessors.
2538 * metadata.h, metadata.c: prepare for hiding MonoType and
2539 MonoMethodSignature: people should use the accessors from now on
2540 outside of the tree.
2542 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2544 * *.c, *.h: more API cleanups.
2546 2004-06-18 Jackson Harper <jackson@ximian.com>
2548 * assembly.c: Trace loading assemblies.
2549 * loader.c: Trace loading native libraries.
2550 * mono-config.c: Trace loading config files.
2552 2004-06-18 Dick Porter <dick@ximian.com>
2554 * locales.c: Tell ICU the lengths of strings, it can cope with
2555 embedded \0 then. Fixes bug 59274, and doesn't break bug 55822.
2557 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2559 * image.c: swapped name/filename;
2561 2004-06-18 Martin Baulig <martin@ximian.com>
2563 * mono-debug-debugger.c (write_class): Write the parent class at
2564 the end of the header.
2566 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2568 * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2570 2004-06-17 Raja R Harinath <rharinath@novell.com>
2572 * Makefile.am (PLATFORM_LIB): New. Possibly refer to ../os/libmonoos.la.
2573 (bundle_obj): New conditional define.
2574 (BUILT_SOURCES): Remove.
2575 ($(bundle_srcs)): Make parallel-make safe.
2576 (libmonoruntime_la_LIBADD): Make unconditional.
2577 (libmetadata_la_LIBADD): Make unconditional. Refer to $(bundle_obj).
2578 (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2580 2004-06-17 Atsushi Enomoto <atsushi@ximian.com>
2582 * culture-info-tables.h: It was inconsistent with the latest
2585 2004-06-17 Zoltan Varga <vargaz@freemail.hu>
2587 * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2590 * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2593 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2595 * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2596 cleaned up public header threads.h.
2598 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2600 * Makefile.am, *.c, *.h: more API cleanups.
2602 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2604 * Makefile.am: removed monosn from compilation.
2605 * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2606 debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2607 image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2608 metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2609 mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2610 reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2612 2004-06-15 Jackson Harper <jackson@ximian.com>
2614 * assembly.c: Make locales lower case when searching the GAC for
2615 assemblies. gacutil will always make locales lowercase when
2616 installing so this effectively makes them case insensitive.
2618 2004-06-15 Lluis Sanchez Gual <lluis@ximian.com>
2620 * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2621 * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2622 parameter which allows to choose whether the wait can be interrupted or
2623 not. Also added the method mono_monitor_enter(), which locks the monitor
2624 using an infinite wait and without allowing interruption.
2625 In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2627 * object.h: Added new fields in MonoThread. suspend_event holds the event
2628 used to susped/resume the thread. synch_lock is the lock object to use for
2629 modifying the thread state.
2630 * threads.c: Use the new synch_lock object for locking, instead of "this",
2631 which can generate deadlocks.
2632 Moved thread state change in Thread.Sleep and Thread.Join from managed
2633 to unmanaged code. This avoids a deadlock when the thread was suspended
2634 just after acquiring the thread lock.
2635 In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2636 Implemented Thread.Suspend using an event instead of ThreadSuspend,
2637 which is not fully implemented in the io-layer.
2638 * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2640 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2642 * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2643 threads-types.h: more API cleanups.
2645 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2647 * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2648 domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2649 threadpool.c, threads.c: first pass at the exported API cleanup.
2651 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2653 * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2655 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2657 * icall.c: added internalGetHome.
2659 2004-06-14 Dick Porter <dick@ximian.com>
2661 * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2662 possible to return successfully when '.' or '..' were the only
2663 entries in a directory, but were skipped. The MonoIOStat was not
2664 filled in in that case. Now return ERROR_NO_MORE_FILES instead.
2667 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2669 * reflection.c: make binaries run on .Net 1.1 by default.
2671 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2673 * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2675 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2677 * marshal.c: keep track of struct size with explicit layout
2680 2004-06-12 Martin Baulig <martin@ximian.com>
2682 * mono-debug-debugger.c: Comment out a debugging g_message().
2684 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2686 * reflection.c, reflection.h: do not free custom attrs that are cached.
2687 * icall.c: use braces to make code clearer.
2689 2004-06-11 Martin Baulig <martin@ximian.com>
2691 * class.h (MonoInflatedField): New type.
2692 (MonoClassField): Replaced `MonoType *generic_type' with
2693 `MonoInflatedField *generic_info'.
2696 (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
2698 2004-06-11 Martin Baulig <martin@ximian.com>
2700 * reflection.c (mono_image_create_method_token): Correctly encode
2703 2004-06-11 Martin Baulig <martin@ximian.com>
2705 * metadata.c (mono_metadata_parse_method_signature): When parsing
2706 a MethodDef which has VarArgs, also set sentinelpos if we don't
2707 have any parameters.
2709 2004-06-11 Martin Baulig <martin@ximian.com>
2711 * verify.c (mono_method_verify): In CEE_CALL, use
2712 mono_method_get_signature() to get the method's signature, unless
2713 we're a PInvoke method.
2715 2004-06-10 Jackson Harper <jackson@ximian.com>
2717 * assembly.c: Use <path>/lib/mono/gac for the extra paths
2718 lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
2719 logical name as the supplied path is just a prefix to the gac not
2720 the direct path to it.
2722 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
2724 * reflection.c: make the token for a created method match
2725 the token of the MethodBuilder it was created from
2726 (IKVM requires this behaviour now).
2728 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
2730 * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
2731 reflection.c, socket-io.c: leak fixes.
2733 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
2735 * icall.c: handle sentinel pos in vararg methods in position different
2738 2004-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2740 * culture-info-tables.h: freshly generated.
2742 2004-06-09 Martin Baulig <martin@ximian.com>
2744 * loader.c (mono_get_method_constrained): Call `mono_class_init
2745 (constrained_class)'.
2747 2004-06-08 Gert Driesen <drieseng@users.sourceforge.net>
2749 * icall.c (ves_icall_MonoType_GetEvent): Handle events without
2750 any methods. Fixes #59629.
2752 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
2754 * culture-info-tables.h: reflecting locale-builder updates.
2756 2004-06-08 Dick Porter <dick@ximian.com>
2759 * locales.c: Fixed compile warnings, including a real bug in
2760 CompareInfo_internal_compare.
2762 2004-06-08 Dick Porter <dick@ximian.com>
2765 (ves_icall_System_Globalization_CompareInfo_internal_index):
2766 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2767 Double-check the resuls of usearches, because ICU currently
2768 ignores most of the collator settings here. Fixes bug 59720.
2770 2004-06-08 Dick Porter <dick@ximian.com>
2773 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
2774 Fix memory leak and segfault-causing typo. No idea how this one
2775 lasted so long without being noticed.
2777 2004-06-09 Zoltan Varga <vargaz@freemail.hu>
2779 * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
2780 any methods. Fixes #59629.
2782 2004-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2785 (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
2786 own the critical section before). Removed dead code (that's done
2787 in the preload hook).
2789 (mono_assembly_load_with_partial_name): call the preload hook.
2791 2004-06-08 Martin Baulig <martin@ximian.com>
2793 * metadata.c (mono_metadata_signature_alloc): Default
2794 `sentinelpos' to -1.
2796 * reflection.c (mono_image_get_array_token): Likewise.
2798 2004-06-08 Martin Baulig <martin@ximian.com>
2800 * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
2802 * metadata.c (mono_metadata_parse_method_signature): When parsing
2803 a MethodDef which has VarArgs, set sentinelpos.
2805 * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
2806 `gint16' since we're using -1 for non-varargs methods.
2809 (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
2810 (method_encode_signature): Added varargs support.
2811 (method_builder_encode_signature): Likewise.
2812 (mono_image_get_varargs_method_token): New static method.
2813 (mono_image_create_method_token): New public method; this is
2814 called via an icall instead of mono_image_create_token() when
2815 calling a varargs method.
2817 2004-06-08 Lluis Sanchez Gual <lluis@ximian.com>
2819 * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
2821 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
2823 * culture-info-tables.h : Reflecting the latest locale-builder that
2824 fixed empty array representation ({} to {0}).
2826 2004-06-07 Jackson Harper <jackson@ximian.com>
2828 * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
2829 looking up extra gac paths. This allows MONO_GAC_PATH to act
2830 exactly like a prefix.
2832 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
2834 * reflection.c (mono_reflection_type_from_name): Make a copy of the
2835 type name before modifying it. Fixes #59405.
2837 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
2839 * culture-info.h: added fields for "all datetime patterns".
2840 * locales.c: ( ves_icall_System_Globalization_CultureInfo
2841 _construct_datetime_format ()): fill xxx_patterns fields.
2842 * object.h: added fields for "all datetime patterns" to
2843 MonoDateTimeFormatInfo.
2844 * culture-info-tables.h: reflecting locale-builder updates.
2846 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
2848 * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
2849 the event has no add and remove methods. Fixes #59629.
2851 2004-06-05 Sebastien Pouliot <sebastien@ximian.com>
2853 * object.c: Fixed possible integer overflow when allocating large
2856 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
2858 * culture-info-tables.h: reflecting locale-builder updates.
2860 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
2862 * culture-info-tables.h: reflecting locale-builder updates.
2864 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
2866 * culture-info-tables.h: reflecting locale-builder updates.
2868 2004-06-03 Lluis Sanchez Gual <lluis@ximian.com>
2870 * threads.c: Made Thread.Sleep abortable.
2872 2004-06-02 Martin Baulig <martin@ximian.com>
2874 * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
2876 * debug-mono-symfile.h: Bumped symbol file version number to 37.
2878 2004-05-31 Zoltan Varga <vargaz@freemail.hu>
2880 * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
2882 2004-05-30 Jackson Harper <jackson@ximian.com>
2884 * reflection.c: Do not hardcode assembly versions or public key
2885 tokens anymore. All of this except the corlib section was dead
2888 2004-05-29 Zoltan Varga <vargaz@freemail.hu>
2890 * object.c (mono_runtime_invoke_array): Automatically create boxed
2891 objects for byref valuetypes if needed. Fixes #59300.
2893 * object.c (mono_method_return_message_restore): Handle
2894 MONO_TYPE_OBJECT as well.
2896 2004-05-28 Jackson Harper <jackson@ximian.com>
2898 * reflection.c: The modified type encoding was causing build
2899 problems. Reverted for now.
2901 2004-05-28 Jackson Harper <jackson@ximian.com>
2903 * reflection.c/h: Take an assembly ref so that we dont create
2904 fully qualified names when encoding types in the same assembly as
2905 the custom attribute being emitted.
2906 * appdomain.c: Increment version number.
2908 2004-05-26 Duncan Mak <duncan@ximian.com>
2911 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
2912 Set the full version number (major, minor, build, revision).
2914 2004-05-28 Vladimir Vukicevic <vladimir@pobox.com>
2916 * marshal.c (emit_struct_conv): increment src/dst after blit
2917 (mono_marshal_get_managed_wrapper,
2918 mono_marshal_get_native_wrapper): make sure we have marshalling
2919 info before marshalling params (info computation affects
2922 * class.c (class_compute_field_layout): correctly deal with
2924 (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
2925 value types (as per what windows dows by default)
2926 (mono_class_setup_mono_type): System.ValueType is blittable
2927 (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
2930 * marshal.c (mono_marshal_load_type_info): flag types as
2931 non-blittable if the native layout doesn't match the managed
2934 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2936 * appdomain.c: don't add stuff in the private search path that is
2937 above the application base. If application base is not set, there's
2938 no private search path.
2940 2004-05-28 Zoltan Varga <vargaz@freemail.hu>
2942 * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
2943 byref struct arguments in native->managed marshalling.
2945 2004-05-28 Patrik Torstensson <totte@hiddenpeaks.com>
2947 * marshal.c (mono_marshal_get_runtime_invoke): correctly
2948 cache methods using signature (special case for methods
2949 that are value type or string class)
2951 * image.c (mono_image_close): clean up allocated GSList's
2952 in runtime_invoke_cache.
2954 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2956 * mono-config.c: set the correct path for mono_cfg_dir on windows when
2957 there's no MONO_CFG_DIR environment variable defined.
2959 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2961 * threads.c: windows version must be >= 0x0500 to include OpenThread.
2963 2004-05-28 Lluis Sanchez Gual <lluis@ximian.com>
2965 * threadpool.c: Really wait for 500ms after the async call, even if the wait
2967 * threads.c: In mono_thread_manage, call OpenThread to ref each handle
2968 before waiting for it, and call CloseHandle after the wait to unref it.
2969 This will make sure that handles are not disposed too early.
2971 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2976 ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
2979 * object.c: se the application_base only for the domain that runs
2980 Main. Fixes bug #59216,
2982 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2985 * object.c: only the domain in which Main is run have
2986 SetupInformation.ConfigurationFile set, so moved a few lines from
2987 appdomain.c to object.c.
2989 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2991 * appdomain.c: we tried to load [name].(dll|exe), but according
2992 to bug #57710, we must also try [culture]/[name].(dll|exe) and
2993 [culture]/[name]/[name](dll|exe). This patch fixes the bug.
2994 There's a test case attached to bug #58922.
2996 2004-05-27 Dick Porter <dick@ximian.com>
2999 * file-io.c: Implemented icalls for locking and unlocking regions
3001 (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
3002 FALSE on error (fixes both compiler warning and real bug.)
3004 2004-05-27 Atsushi Enomoto <atsushi@ximian.com>
3006 * culture-info-tables.h: reflecting locale-builder updates.
3008 (Added missing ChangeLog entry for 05/26)
3010 2004-05-27 Jackson Harper <jackson@ximian.com>
3012 * locales.c: Fix some cut and paste errors.
3014 2004-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3016 * mono-config.c: set the correct path for config. directory on windows.
3018 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
3020 * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
3023 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
3025 * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
3026 from pinvoke functions.
3028 * marshal.c (mono_ftnptr_to_delegate): Implement this.
3030 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
3032 * culture-info-tables.h: reflecting locale-builder updates.
3034 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
3036 * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
3039 2004-05-26 Sebastien Pouliot <sebastien@ximian.com>
3041 * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
3042 * icall.c: Modified icalls for RNG.
3043 * rand.c|h: Changed RNG interface to allow thread-safe usage under
3044 Windows (CryptoAPI).
3046 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
3048 * locales.c: Fix build.
3050 2004-05-25 Atsushi Enomoto <atsushi@ximian.com>
3052 * culture-info-tables.h: reflecting locale-builder updates.
3054 2004-05-25 Jackson Harper <jackson@ximian.com>
3056 * locales.c: When creating the current culture use the $LANGs
3057 specific culture. So DateTimeFormat and NumberFormat entries are created.
3059 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
3061 * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
3062 a char array as parameter.
3064 2004-05-24 Lluis Sanchez Gual <lluis@ximian.com>
3066 * image.c: In mono_image_open(), always use an absolute path name to
3067 look for already loaded images.
3069 2004-05-24 Sebastien Pouliot <sebastien@ximian.com>
3071 * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
3072 missing in the windows build (like older cygwin include files).
3074 2004-05-23 Sebastien Pouliot <sebastien@ximian.com>
3076 * icall.c: Fixed check for possible integer overflow in Buffer_
3077 BlockCopy icall. Replaced comments style // by /* */.
3079 2004-05-22 Zoltan Varga <vargaz@freemail.hu>
3081 * marshal.c (mono_ftnptr_to_delegate): Fix warning.
3083 * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
3084 check after MONO_VTADDR. Fixes pinvoke2.exe.
3086 * marshal.h marshal.c metadata.h: Add beginnings of support for
3087 ftnptr -> delegate marshalling.
3089 2004-05-21 Zoltan Varga <vargaz@freemail.hu>
3091 * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
3092 * threads.c: Fix warnings.
3094 2004-05-20 Lluis Sanchez Gual <lluis@ximian.com>
3096 * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
3097 * icall.c: Registered icalls for Suspend and Resume.
3098 * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
3100 * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
3101 * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
3102 * process.c: Use WaitForSingleObjectEx.
3103 * threadpool.c: Use WaitForSingleObjectEx. Added some interruption
3105 * threads.c, threads.h: Make use of new Ex wait methods. Improved
3106 implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
3107 for Suspend and Resume. Added new mono_thread_stop, used for stoping
3108 background threads. Added basic support for Abort in Windows.
3109 Start new threads using a managed delegate invoke wrapper. This wrapper
3110 has an interruption checkpoint that is needed since an interruption
3111 can be requested before the thread leaves the unmanaged code that starts
3113 * marshal.c: Added interruption checkpoint after every native call, and
3114 also before managed calls for wrappers called from unmanaged code to
3115 go into managed code.
3116 * object.h: Added new field in MonoThread to keep track of interruption
3119 2004-05-20 Zoltan Varga <vargaz@freemail.hu>
3121 * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3124 2004-05-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3131 * rand.c: getenv -> g_getenv (windows!)
3133 * process.c: complete_path is also used on non-windows platforms.
3135 2004-05-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3137 * icall.c: new signature for Process_Start.
3139 * process.[ch]: new signature for Process_Start. If we're on windows
3140 and UseShellExecute is false, we have to search for the program by
3141 ourselves if we don't get a full path.
3143 2004-05-18 Zoltan Varga <vargaz@freemail.hu>
3145 * marshal.c (mono_marshal_get_native_wrapper): Fix up custom
3146 marshalling and call CleanUpNativeData if needed. Fixes #58646.
3148 2004-05-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3150 * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3153 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3155 * process.c: use double quotes to quote program name and arguments on
3156 windows. Fixes bug #58575.
3158 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3160 * file-io.c: don't return "." and ".." when using windows Find*File.
3162 2003-05-17 Patrik Torstensson <totte@hiddenpeaks.com>
3164 * marshal.c: Don't pass wrappers to message init because method
3165 addressed used to lookup metadata. part of remoting[2|3] fix.
3167 2004-05-15 Jackson Harper <jackson@ximian.com>
3169 * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3170 path is essentially the same as MONO_PATH except that it points to
3171 GACs instead of lib directories.
3172 * loader.h: The user gac is gone so we dont need function to
3174 * mono-config.c: user gac option is now gone.
3176 2004-05-15 Jackson Harper <jackson@ximian.com>
3178 * culture-info.h: Make defines more consistent, add calendar data
3179 to the culture info table.
3180 * culture-info-tables.h: Add basic calendar data. Basically
3181 everyone gets default gregorian until all the data is
3183 * locales.c: Use the new consistent defines. Set calendar data for
3184 culture info objects.
3185 * object.h: add a field for calendar data to CultureInfo
3187 2004-05-14 Ben Maurer <bmaurer@users.sourceforge.net>
3189 * image.c: image->runtime_invoke_cache is keyed on signatures now.
3190 * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3192 (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3193 (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3194 an extra param that is the pointer of the method to invoke. The IL for
3195 the invoke method is no longer specific to the method, but to the
3196 signature of the method. Thus, we can share the same code for multiple
3197 methods. This reduces the number of methods that have to be compiled.
3199 2004-05-14 Zoltan Varga <vargaz@freemail.hu>
3201 * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3203 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3205 * icall.c: Optimize Buffer.BlockCopy.
3207 2004-05-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3209 * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3210 DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3211 quote). Changed them to "MMMM yyyy".
3213 2004-05-12 Miguel de Icaza <miguel@ximian.com>
3216 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file.
3218 2004-05-13 Zoltan Varga <vargaz@freemail.hu>
3220 * reflection.h: Updated after changes to managed structures.
3222 * appdomain.c: Bump corlib version.
3224 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3226 * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3229 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3231 * Makefile.am: link to ../os/libmonoos.la on windows.
3234 -If MONO_DEBUG, warn about non-existing directories in
3236 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3237 compile time variable.
3238 -Removed init_default_path and call mono_set_rootdir from
3239 libmonoos.a instead (windows only).
3241 * assembly.h: declare mono_assembly_getrootdir().
3244 * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3246 * loader.c: s/getenv/g_getenv/
3248 2004-05-11 Zoltan Varga <vargaz@freemail.hu>
3250 * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3252 * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3254 * metadata.h: Add new marshalling conversions.
3256 * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3259 * reflection.c (mono_reflection_get_type): Lookup the type in all
3260 modules of a multi-module assembly. Fixes #58291.
3262 2004-05-11 Lluis Sanchez Gual <lluis@ximian.com>
3264 * threads.c: Before aborting a background, set the StopRequested
3265 state. This avoids throwing the Abort exception.
3266 In mono_thread_manage, don't continue with the shutdown until all
3267 aborted threads have actually stopped.
3269 2004-05-10 Jackson Harper <jackson@ximian.com>
3271 * locales.c: Remove the modifier from culture names.
3273 2004-05-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3275 * Makefile.am: monosn is not installed any more. It has been deprecated
3278 2004-05-07 Jackson Harper <jackson@ximian.com>
3281 (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3282 Fix array construction, add bailout if the length is 0.
3284 2004-05-07 Dick Porter <dick@ximian.com>
3286 * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3287 machine doesn't have a DNS entry. Patch by Urs Muff
3288 (umuff@quark.com), fixes bug 57928.
3290 2004-05-06 Jackson Harper <jackson@ximian.com>
3292 * reflection.c: Handle null PublicTokens properly. alloc mem for
3293 assembly names culture so we dont crash when freeing it.
3295 2004-05-06 Jackson Harper <jackson@ximian.com>
3297 * assembly.c: Check the usergac when loading with partial names.
3299 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
3301 * rand.c|h: Added new icall for (optionally) seeding the PRNG. This
3302 does nothing for now (not required for Linux/Windows) but the class
3303 library can call it (and a newer or modified runtime could need it).
3304 * icall.c: Registred icall.
3306 2004-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3308 * loader.c: prints a message on module loading error we set MONO_DEBUG
3309 environment variable.
3311 2004-05-05 Jackson Harper <jackson@ximian.com>
3313 * appdomain.c: Handle PublicKeyToken=null properly.
3315 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
3317 * environment.c|h: Added icall ves_icall_System_Environment_
3318 GetOSVersionString to get the current OS version as a string.
3319 * icall.c: Registred icall.
3321 2004-05-05 Lluis Sanchez Gual <lluis@ximian.com>
3323 * object.c: in mono_object_get_virtual_method(), take into account that
3324 non-virtual methods don't have a slot in the vtable. Check needed when
3325 the object is a proxy.
3327 2004-05-05 Zoltan Varga <vargaz@freemail.hu>
3329 * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3330 (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3332 * object.c (mono_class_compute_gc_descriptor): Fix warning.
3334 * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3335 passed when a valuetype is expected.
3337 * object.c (mono_unhandled_exception): Only set the exit code if the
3338 exception happens in the main thread. Fixes thread5.exe.
3340 * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3341 invalid names. Fixes #58047.
3343 2004-05-03 Jackson Harper <jackson@ximian.com>
3345 * assembly.c: This line was committed accidently and is unneeded.
3347 2004-05-03 Jackson Harper <jackson@ximian.com>
3349 * icall.c: Add new icall for Assembly::LoadWithPartialName
3350 * assembly.c/.h: new function that probes the GAC to load partial
3351 assembly names by Paolo Molaro.
3353 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3355 * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3356 * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3357 (type_get_fully_qualified_name): Added PublicKeyToken when building a
3360 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3362 * appdomain.c: fixed check for 'neutral' culture and removed warning.
3363 * reflection.c: fix bug when parsing a full type name and Version is not
3364 the last thing in the string.
3366 2004-05-03 Zoltan Varga <vargaz@freemail.hu>
3368 * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3369 crashes when it is freed.
3371 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3373 * assembly.c: print the compat warning to stderr.
3375 2004-05-01 Miguel de Icaza <miguel@ximian.com>
3377 * assembly.c (mono_assembly_load_references): Add a compatibility
3378 hack to run old applications that might be still referencing the
3379 3300-based assemblies, only do this for System.xxx.
3381 2004-05-01 Jackson Harper <jackson@ximian.com>
3383 * appdomain.c: If the culture is neutral we set it to "".
3385 2004-04-29 Jackson Harper <jackson@ximian.com>
3387 * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3389 2004-04-29 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3391 * string-icalls.c: added low overhead function for copying chars
3392 * icall.c: added needed icall for the above function
3394 2004-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3396 * icall.c: fix return value of get_global_assembly_cache. Implemented
3397 Environment.GetLogicalDrives.
3399 2004-04-28 Bernie Solomon <bernard@ugsolutions.com>
3401 * rand.c: try and talk to egd or prngd
3402 for random bytes if opening devices fail.
3404 2004-04-28 Zoltan Varga <vargaz@freemail.hu>
3406 * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3407 alignment for the type using the native alignment of its members
3408 instead of using klass->min_align.
3410 * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3412 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3415 * socket-io.c: added check for sys/aio.h.
3417 2004-04-28 Dick Porter <dick@ximian.com>
3419 * threads.c: Don't abort a thread thats already aborting, when
3420 terminating everything.
3422 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3424 * icall.c: added 2 new async calls for Socket.
3426 * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3429 * threadpool.c: removed unused variable.
3431 2004-04-27 Zoltan Varga <vargaz@freemail.hu>
3433 * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3435 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3437 * locales.c: put back string_invariant_tolower () and
3438 string_invariant_toupper ().
3440 2004-04-26 David Waite <mass@akuma.org>
3445 * unicode.h: remove comma from end of enumeration declarations
3447 2004-04-26 David Waite <mass@akuma.org>
3449 * debug-mono-symfile.h:
3452 * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3455 2004-04-26 Jackson Harper <jackson@ximian.com>
3457 * appdomain.c: Increment version number.
3459 2004-04-26 Jackson Harper <jackson@ximian.com>
3461 * appdomain.c: Set assembly references public token value when
3462 PublicKeyToken is specified, not the hash_value. Free public token
3463 values when free assembly name data. Previously the public key
3464 token was hex decoded, however we are using hex encoded public key
3465 tokens, so this is not neccasary.
3466 * assembly.c: Lookup assemblies in the gac if their public token
3467 value is set. Add function to allow enabling user gac
3468 lookups. Specify whether or not the assembly was loaded from the
3469 GAC. Compare full assembly names when checking the cache for
3470 assemblies (Temporarily disabled see comment in code). Remove
3471 mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3472 specifies trace-loader they get extra info to stdout on the
3473 loading of assemblies.
3474 * image.h: Add a field for an assembly references public token
3475 value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3476 whether an assembly has been loaded from the GAC.
3477 * image.c: Remove a corlib -> mscorlib name mapping.
3478 * loader.h: Add function to enable/disable the user gac.
3479 * mono-config.c: Check if the usergac is enabled in the config
3481 * icall.c: New icall to determine whether or not an assembly has
3482 been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3483 * tabldefs.h: Add constant for assemblyref flag that specifies a
3484 full public key is used instead of a public token.
3485 * reflection.c: Remove mscorlib -> corlib mappings. Set
3486 PublicTokenValue instead of hash value. This value is a hex
3487 string so it does not need to be expanded.
3489 2004-04-26 Martin Baulig <martin@ximian.com>
3491 * mono-debug-debugger.c (mono_debugger_initialize): Set
3492 `mono_debugger_initialized' before calling mono_debug_lock().
3494 2004-04-42 Robert Shade <rshade@dvsconsulting.com>
3496 * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3497 InternalToUpper/InternalToLower.
3498 * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3499 removed invariant culture shortcut. This is now done in managed code.
3500 * locales.c: (string_invariant_toupper/tolower) removed.
3502 2004-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3504 * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3505 Added Poll internal call.
3507 * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3508 call for Poll. Select was too heavy for polling a single socket.
3510 * threadpool.[ch]: added mono_threadpool_cleanup.
3511 * threads.c: use it. Don't use Thread_Abort on windows.
3513 2004-04-23 Martin Baulig <martin@ximian.com>
3515 * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3517 2004-04-23 Sebastien Pouliot <sebastien@ximian.com>
3519 * icall.c: Registred new icalls for key pair protection and added an
3520 icall for Environment.GetFolderPath on Windows.
3521 * security.c|h: Added new icalls for key pair protection.
3523 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3525 * socket-io.c: don't display the non-supported family warning for known
3526 families. Now this is not displayed on windows when checking support
3529 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3531 * class.c: don't display the layout warning for static fields.
3533 2004-04-21 Lluis Sanchez Gual <lluis@ximian.com>
3535 * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3536 * locales.c, locales.h: Added new icalls for culture-specific
3537 Char.ToLower and Char.ToUpper.
3539 2004-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3541 * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3544 2004-04-20 Martin Baulig <martin@ximian.com>
3546 * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3547 of the type name before passing it to mono_reflection_type_from_name().
3549 2004-04-19 Zoltan Varga <vargaz@freemail.hu>
3551 * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3552 encodings here. Fixes #56965.
3554 2004-04-18 Bernie Solomon <bernard@ugsolutions.com>
3556 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3557 fix test on strstr result not that I can see anything that
3558 relies on the result.
3560 2004-04-18 Zoltan Varga <vargaz@freemail.hu>
3562 * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3565 * marshal.c (mono_marshal_get_string_encoding): New helper function.
3567 * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3568 function to determine which marshalling to use for strings. Fixes
3571 * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3573 * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3575 2004-04-15 Bernie Solomon <bernard@ugsolutions.com>
3577 * icall.c: #include mono-config.h
3579 2004-04-15 Jackson Harper <jackson@ximian.com>
3581 * culture-info-tables.h: Fix date formats for en-US culture.
3583 2004-04-15 Lluis Sanchez Gual <lluis@ximian.com>
3585 * icall.c: Registered icalls for ThreadPool.GetMinThreads and
3586 ThreadPool.SetMinThreads.
3587 * threadpool.c: Implemented ThreadPool.GetMinThreads and
3588 ThreadPool.SetMinThreads.
3590 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3592 * mono-config.c: also load the .config file in the directory
3593 where the assembly was found.
3595 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3597 * assembly.c: load per-assembly config files.
3598 * icall.c: decrapified code to get the config dir and moved to
3600 * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3601 per-assembly config files. When doing a dll map lookup give precedence
3602 to the per-assembly data.
3604 2004-04-14 Martin Baulig <martin@ximian.com>
3606 * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3607 MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3608 and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3610 * mono-debugger-debugger.c: While the debugger is locked, remember
3611 whether the symbol tables have changes and send one single
3612 MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3614 2004-04-14 Zoltan Varga <vargaz@freemail.hu>
3616 * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3618 * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New
3621 * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3622 account when marshalling string arrays. Fixes #56965.
3624 2004-04-13 Sebastien Pouliot <sebastien@ximian.com>
3626 * icall.c: Add new icalls mapping for security.
3627 * security.c|h: Add internal calls for WindowsIdentity,
3628 WindowsImpersonationContext and WindowsPrincipal.
3630 2004-04-13 Gert Driesen (drieseng@users.sourceforge.net)
3632 * class.c: Added comment to ensure the System.MonoDummy class
3633 is removed when no longer necessary
3635 2004-04-13 Miguel de Icaza <miguel@ximian.com>
3637 * appdomain.c: Pass arguments to the bootstraping exceptions to
3638 minimize JITed methods at boot
3640 * metadata.c (mono_exception_from_name_two_strings): Allow for the
3641 second string to be null.
3643 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3644 Change the protocol to minimize the JIT methods at startup. Now
3645 it Returns the internal codepage, if the value of "int_code_page"
3646 is 1 at entry, and we can not compute a suitable code page
3647 number, returns the code page as a string.
3649 2004-04-13 Jackson Harper <jackson@ximian.com>
3651 * culture-info-tables.h: Fix number of decimal digits for all
3654 2004-04-13 Jackson Harper <jackson@ximian.com>
3656 * icall.c: Clairfy out of sync error message. It is not always
3657 your corlib that is out of sync.
3659 2004-04-13 Zoltan Varga <vargaz@freemail.hu>
3661 * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3662 properties when only the set accessor is overriden. Fixes #55874.
3664 2004-04-09 Zoltan Varga <vargaz@freemail.hu>
3666 * assembly.c (mono_assembly_load_references): Make this thread safe.
3669 2004-04-08 Zoltan Varga <vargaz@freemail.hu>
3671 * monosn.c: Add missing initialization calls.
3673 2004-04-08 Bernie Solomon <bernard@ugsolutions.com>
3676 ves_icall_System_Globalization_CultureInfo_construct_number_format
3677 Fix g_assert so it compiles on fussier compilers re int/ptr
3680 2004-04-08 Dick Porter <dick@ximian.com>
3683 * socket-io.c: Don't set SO_REUSEADDR on windows. Fixes bug
3684 53992. Also rearrange the code so that the internal calls return
3685 an error value and exceptions are thrown from managed code.
3687 * icall.c: Add type info to the socket icalls.
3689 2004-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3691 * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
3694 2004-04-07 Martin Baulig <martin@ximian.com>
3696 * class.c (mono_class_from_generic_parameter): Don't default
3697 `klass->parent' to `mono_defaults.object_type'.
3699 2004-04-07 Martin Baulig <martin@ximian.com>
3701 * reflection.c (mono_reflection_initialize_generic_parameter): Set
3702 `param->pklass->reflection_info'.
3704 2004-04-07 Jackson Harper <jackson@ximian.com>
3706 * culture-info-tables.h: Fix date separator symbol.
3708 2004-04-07 Martin Baulig <martin@ximian.com>
3710 * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
3711 from System.Type to System.MonoType.
3713 2004-04-07 Martin Baulig <martin@ximian.com>
3716 (MonoReflectionGenericParam): Added `has_reference_type' and
3717 `has_value_type' fields.
3719 * reflection.c (mono_image_get_generic_param_info): Encode the
3720 correct flags if we have the `class' or `struct' constraint.
3722 2004-04-07 Martin Baulig <martin@ximian.com>
3725 (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
3727 2004-04-07 Jackson Harper <jackson@ximian.com>
3729 * appdomain.c: Revert extra patches, just wanted to bump the
3732 2004-04-07 Jackson Harper <jackson@ximian.com>
3734 * Makefile.am: Add culture-info private headers.
3735 * icall.c: Add new icalls for contructing locales.
3736 * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
3737 * locales.h: Declare new culture info construction methods.
3738 * object.h: Add new fields used to avoid the CultureMap to
3740 * culture-info.h: Definition of structs used in the culture info
3742 * culture-info-tables.h: Autogenerated tables that contain culture
3743 info data. This file was generated with the locale-builder tool.
3744 * appdomain.c: Incement corlib version number.
3746 2004-04-07 Bernie Solomon <bernard@ugsolutions.com>
3748 * appdomain.c: (mono_runtime_init) move mono_thread_init
3749 to before mono_object_new calls so critical sections
3750 are initialized before use.
3752 2004-04-07 Martin Baulig <martin@ximian.com>
3755 (ves_icall_TypeBuilder_define_generic_parameter): Removed.
3756 (ves_icall_MethodBuilder_define_generic_parameter): Removed.
3757 (ves_icall_MonoGenericParam_initialize): Removed.
3758 (monogenericparam_icalls): Removed.
3759 (generictypeparambuilder_icalls): Added new table for
3760 System.Reflection.Emit.GenericTypeParameterBuilder.
3763 (mono_reflection_define_generic_parameter): Removed.
3764 (mono_reflection_initialize_generic_parameter): This is now called
3765 from GenericTypeParameterBuilder's .ctor.
3767 2004-04-06 Martin Baulig <martin@ximian.com>
3769 * class.c (mono_class_init): Don't inflate nested classes in a
3771 (mono_type_get_name_recurse): Include the generic arguments for
3772 generic instances and generic type declarations.
3773 (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
3774 (_mono_class_get_instantiation_name): Removed.
3775 (mono_class_create_generic): Always use `gklass->name' as our name.
3777 * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
3779 * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
3780 (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
3781 (ves_icall_MonoMethod_GetGenericParameters): Renamed to
3782 ves_icall_MonoMethod_GetGenericArguments() and correctly handle
3783 closed generic methods here.
3786 (mono_reflection_generic_inst_get_nested_types): Removed.
3787 (inflate_mono_method): Copy the generic parameters from the
3788 MonoMethodHeader into out MonoGenericMethod.
3790 2004-04-06 Martin Baulig <martin@ximian.com>
3793 (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
3795 * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
3797 * reflection.c (build_compressed_metadata): If we have any entries
3798 in the GenericParam, MethodSpec or GenericParamConstraint tables,
3799 set the header version to 1.1.
3801 2004-04-06 Martin Baulig <martin@ximian.com>
3803 * class.c (mono_class_init): If we're a generic instance,
3804 initialize our nested classes, too.
3805 (_mono_class_get_instantiation_name): Deal with the new `!%d'
3808 2004-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3810 * process.c: quote the argument passed to the shell on windows.
3812 2004-04-05 Zoltan Varga <vargaz@freemail.hu>
3814 * threads.c (mono_alloc_special_static_data): Allow this to be
3815 called during startup.
3817 2004-04-02 Martin Baulig <martin@ximian.com>
3820 (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
3822 2004-04-02 Zoltan Varga <vargaz@freemail.hu>
3824 * icall.c: Fix build.
3826 2004-04-02 Sebastien Pouliot <sebastien@ximian.com>
3828 * Makefile.am: Added security.c|h.
3829 * icall.c: Added icall for get_UserName;
3830 * security.c: New file for security related icalls. Added function
3831 get_UserName for System.Environment (fix #56144).
3832 * security.h: New. Header file for security.c
3834 2004-04-02 Dick Porter <dick@ximian.com>
3836 * icall.c: Deleted the icalls that were obsoleted some time ago
3837 by the ICU string code, and which were mixed into the icall
3838 rearranging. Fixes bug 55969.
3841 * string-icalls.c: Deleted the code that those icalls reference.
3843 2004-04-01 Martin Baulig <martin@ximian.com>
3845 * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
3847 * class.c (mono_class_from_generic_parameter): Don't set
3848 TYPE_ATTRIBUTE_INTERFACE.
3849 (my_mono_class_from_generic_parameter): Likewise.
3851 2004-04-01 Martin Baulig <martin@ximian.com>
3853 * loader.c (find_method): Added an optional `MonoClass *ic'
3854 argument to search in a specific interface.
3855 (mono_get_method_constrained): New public function.
3857 2004-04-01 Martin Baulig <martin@ximian.com>
3859 * reflection.c (mono_image_get_generic_field_token): Use the
3860 `handleref' cache here.
3862 2004-04-01 Martin Baulig <martin@ximian.com>
3864 * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
3866 * reflection.c (create_generic_typespec): Use the `typespec' hash
3867 here, not the `typeref' one.
3869 2004-04-01 Martin Baulig <martin@ximian.com>
3871 * class.c (mono_class_inflate_generic_type): Moved the
3872 functionality into a new static inflate_generic_type() which
3873 returns NULL if it didn't do anything. Only increment the
3874 `mono_stats.inflated_type_count' if we actually inflated
3876 (mono_class_get_full): Check the classes type to see whether we
3877 need to inflate it; also inflate MONO_TYPE_(M)VAR.
3879 2004-04-01 Jackson Harper <jackson@ximian.com>
3881 * reflection.c: Set culture for assembly references.
3883 2004-04-01 Ben Maurer <bmaurer@users.sourceforge.net>
3885 * reflection.[ch], icall.[ch], Fix support for pinning variables.
3887 2004-04-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3890 (do_mono_assembly_open): the critical section also covers
3891 mono_image_open and mono_image_open_from_data. Fixes bug #56327.
3893 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3896 (mono_manage_threads): abort the background threads when finishing.
3899 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3901 * gc.c: only close the done_event handle if there was no timeout.
3904 2004-03-30 Martin Baulig <martin@ximian.com>
3906 * icall.c (icall_entries): It's called "System.Activator", not
3907 "System.Activation".
3909 2004-03-30 Martin Baulig <martin@ximian.com>
3911 * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
3912 (mono_class_create_from_typespec): Likewise.
3914 2004-03-30 Martin Baulig <martin@ximian.com>
3916 * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
3917 `has_ctor_constraint' and `initialized'.
3919 2004-03-30 Martin Baulig <martin@ximian.com>
3921 * reflection.c (encode_new_constraint): New static function to add
3922 the constructor constraint attribute to a type parameter.
3923 (encode_constraints): Call encode_new_constraint() if necessary.
3926 (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
3928 * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
3930 2004-03-29 Ben Maurer <bmaurer@users.sourceforge.net>
3932 * reflection.c, icall.c: add support for pinning variables.
3934 2004-03-29 Bernie Solomon <bernard@ugsolutions.com>
3936 * marshal.c (mono_marshal_get_managed_wrapper):
3937 init bool local with zero rather than null.
3939 2004-03-29 Martin Baulig <martin@ximian.com>
3941 * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
3942 the "official" behavior here.
3943 (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
3945 2004-03-29 Martin Baulig <martin@ximian.com>
3947 * icall.c: Reflect latest API changes.
3949 2004-03-29 Martin Baulig <martin@ximian.com>
3951 * loader.c (mono_get_method_from_token): Also call
3952 mono_metadata_load_generic_params () for abstract and interface
3953 methods; replace the type arguments in the method signature with
3954 the ones which are loaded from the metadata.
3956 2004-03-29 Lluis Sanchez Gual <lluis@ximian.com>
3958 * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
3959 of the lock is not the current thread. MS.NET don't do it, in spite of
3960 what the documentation says. See bug #56157.
3962 2004-03-28 Martin Baulig <martin@ximian.com>
3964 * class.c (mono_class_init): Don't call init_properties() and
3965 init_events() for generic instances; set `prop->parent' when
3966 inflating properties.
3968 * reflection.c (mono_generic_inst_get_object): Call
3969 `mono_class_init (ginst->klass)'.
3970 (mono_type_get_object): Only create a MonoGenericInst if your
3971 generic type is a TypeBuilder.
3972 (do_mono_reflection_bind_generic_parameters): Only set
3973 `ginst->is_dynamic' if our generic type is a TypeBuilder.
3975 2004-03-28 Zoltan Varga <vargaz@freemail.hu>
3977 * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
3980 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3982 * icall.c: added Kill_internal icall.
3983 * process.[ch]: added Kill_internal icall.
3985 2004-03-25 Martin Baulig <martin@ximian.com>
3987 * class.h (MonoStats): Added `generic_instance_count',
3988 `inflated_method_count', `inflated_type_count' and
3989 `generics_metadata_size'.
3991 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3993 * reflection.c: no warnings now.
3995 2004-03-25 Martin Baulig <martin@ximian.com>
3997 * class.c (mono_class_get_full): New public function; does a
3998 mono_class_get(), but also takes a `MonoGenericContext *'.
4000 * loader.c (mono_field_from_memberref): Renamed to
4001 `field_from_memberref', made static and added `MonoGenericContext *'
4003 (mono_field_from_token): Added `MonoGenericInst *' argument.
4004 (method_from_memberef): Likewise.
4005 (mono_get_method_from_token): Likewise.
4006 (mono_get_method_full): New public function; does a
4007 mono_get_method(), but also takes a `MonoGenericContext *'.
4009 * verify.c (mono_method_verify): Get the method's generic context
4010 and pass it to mono_field_from_token(), mono_get_method_full() and
4011 mono_class_get_full().
4013 2004-03-25 Martin Baulig <martin@ximian.com>
4015 * class.c (mono_class_inflate_generic_type): Take a
4016 `MonoGenericContext *' instead of a `MonoGenericInst *' and a
4017 `MonoGenericMethod *'.
4019 2004-03-25 Martin Baulig <martin@ximian.com>
4021 * loader.h (MonoMethodInflated): Store the MonoGenericContext
4022 instead of the MonoGenericMethod here.
4024 2004-03-25 Martin Baulig <martin@ximian.com>
4026 * class.h (MonoGenericInst): Added `MonoGenericContext *context';
4027 each time we create a new MonoGenericInst, we also create a new
4028 context which points back to us.
4030 * class.c (inflate_method): Use `ginst->context' instead of
4031 creating a new context.
4033 * loader.c (method_from_memberref): Use
4034 `klass->generic_inst->context' instead of creating a new context.
4036 2004-03-25 Martin Baulig <martin@ximian.com>
4038 * class.h (MonoGenericContext): New struct.
4039 (MonoGenericMethod): Removed `generic_inst'.
4041 * class.c (mono_class_inflate_generic_method): Take a
4042 `MonoGenericContext *' instead of a `MonoGenericMethod *'.
4044 2004-03-25 Martin Baulig <martin@ximian.com>
4046 * loader.h (MonoMethodInflated): New typedef.
4048 * metadata.h (MonoMethodSignature): Removed `gen_method', make
4049 `generic_param_count' consume just 30 bits, added `is_inflated'
4050 and `has_type_parameters' flags (one bit each).
4052 * class.c (mono_class_inflate_generic_method): Create a
4053 MonoMethodInflated instead of a MonoMethodNormal and set
4054 `is_inflated' in the method signature.
4056 * class.h (MonoGenericMethod): Removed `generic_method'.
4058 2004-03-25 Lluis Sanchez Gual <lluis@ximian.com>
4060 * image.c: Make sure the name of a MonoImage is always an absolute path.
4061 This fixes bug #54415.
4063 2004-03-24 Martin Baulig <martin@ximian.com>
4065 * class.c (mono_class_setup_vtable): If we're a generic instance,
4066 use our generic type's vtable size.
4068 2004-03-24 Zoltan Varga <vargaz@freemail.hu>
4070 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
4071 MONO_NO_UNLOAD env var as a temporary workaround for unloading
4074 2004-03-23 Martin Baulig <martin@ximian.com>
4076 * class.h (MonoDynamicGenericInst): Added `int count_events' and
4077 `MonoEvent *events'.
4079 * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
4080 (typebuilder_icalls): Added "get_event_info"; calls
4081 mono_reflection_event_builder_get_event_info().
4083 * reflection.c (mono_reflection_generic_inst_initialize): Added
4084 `MonoArray *events'.
4085 (mono_reflection_event_builder_get_event_info): New function.
4087 2004-03-23 Bernie Solomon <bernard@ugsolutions.com>
4089 * object.h: add mono_type_initialization_init
4091 * object.c (mono_runtime_class_init):
4092 implement class constructor synchronization rules
4093 to cope with threading issues.
4094 add mono_type_initialization_init
4096 * appdomain.c (mono_runtime_init): call
4097 mono_type_initialization_init
4099 * class.h: removing initializing field from MonoVTable
4101 2004-03-23 Martin Baulig <martin@ximian.com>
4103 * class.c (my_mono_class_from_generic_parameter): Use
4104 `param->name' if it's not NULL.
4106 2004-03-22 Ben Maurer <bmaurer@users.sourceforge.net>
4108 * class.c: do not insert non-virtual methods in the vtable.
4109 * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4110 that means the method is non-virtual. This never would have
4113 2004-03-22 Lluis Sanchez Gual <lluis@ximian.com>
4115 * profiler.c: Added lock for accessing coverage_hash.
4117 2004-03-22 Martin Baulig <martin@ximian.com>
4119 * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4120 `method->method->signature->generic_param_count != 0' to make it
4121 work for interface methods.
4123 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4125 * process.c: quote the string passed to the shell using g_shell_quote.
4127 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4130 (mono_threads_manage): don't remove the finalizer thread and self
4131 from the threads hash table so that mono_thread_manage can be called
4134 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4136 * process.c: quote the arguments when UseShellExecute is true. Fixes
4139 2004-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4141 * threads.c: set mono_thread_detach as a cleanup routine for every
4142 thread. This way it's always executed upon thread termination, either
4143 aborted or finished normally. No more xsp hangs!
4145 2004-03-17 Martin Baulig <martin@ximian.com>
4147 * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4148 `int count_nested' and a `MonoType **nested'.
4150 * reflection.c (mono_reflection_bind_generic_parameters): Moved
4151 most of the functionality into a new static
4152 do_mono_reflection_bind_generic_parameters() and don't take a
4153 `MonoType *nested_in' argument any more. Don't compute nested
4155 (mono_reflection_generic_inst_get_nested_types): New public method
4156 to get nested types.
4158 * class.c (mono_class_create_generic): Set `klass->nested_in' if
4159 we're a nested class.
4161 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4162 mono_reflection_generic_inst_get_nested_types() to compute the
4165 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
4167 * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4168 descriptive error message under windows.
4170 2004-03-17 Martin Baulig <martin@ximian.com>
4172 * class.c (dup_type): Added `const MonoType *original' argument;
4173 copy the attrs from the original type.
4175 2004-03-17 Martin Baulig <martin@ximian.com>
4177 * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4178 `m->generic_inst_cache' here.
4180 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
4182 * exception.h exception.c: Add stack_overflow_exception.
4184 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4187 (overlapped_callback): call SetEvent *after* invoking the callback.
4188 No need to call CloseHandle.
4190 2004-03-16 Martin Baulig <martin@ximian.com>
4192 * reflection.c (mono_image_get_fieldref_token): Take a
4193 `MonoReflectionField *' instead of a `MonoClassField *' and a
4194 `MonoClass *'; store the `MonoReflectionField *' in the hash.
4196 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4198 * appdomain.c: don't add the culture to the filename we're looking for
4199 if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4201 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4203 * locales.c: don't ignore symbols when doing case insensitive compares.
4204 Thanks Dick! Fixes bug #54046.
4206 * threads.c: surround 'threads' usage with enter/leave in
4209 2004-03-16 Zoltan Varga <vargaz@freemail.hu>
4211 * marshal.c (mono_marshal_get_native_wrapper): Char arrays are
4212 implicitly marshalled as [Out]. Fixes #55450.
4214 (mono_marshal_get_runtime_invoke): Zero out the result if there is
4217 2004-03-16 Martin Baulig <martin@ximian.com>
4219 * class.c (mono_class_from_generic_parameter): Use the actual
4222 2004-03-16 Martin Baulig <martin@ximian.com>
4224 * reflection.c (type_get_signature_size): New static function.
4225 Compues the size of the type in a method signature.
4226 (method_get_signature_size): New static function; calls
4227 type_get_signature_size() to compute the actual size of the
4229 (method_encode_signature): Use method_get_signature_size() to get
4230 the signature's size rather than using `nparams * 10'.
4232 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4234 * file-io.h: define here WapiOverlapped on windows. I don't want the
4235 regular OVERLAPPED one.
4238 * threadpool.c: somehow, BindIoCompletionCallback is not found.
4239 Disabling AIO on windows.
4241 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4243 * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4246 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4248 * appdomain.c: upgraded corlib version.
4250 * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4251 and BeginWrite. Allow opening files for asynchrnous operations.
4253 * file-io.h: new struct that maps FileStreamAsyncResult.
4254 * icall.c: added new icalls.
4255 * process.[ch]: support setting child process environment variables
4256 and use the SHELL or COMSPEC when UseShellExecute is true.
4258 * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4259 callback for async. IO is here and also BindHandle.
4261 * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4264 2004-03-14 Zoltan Varga <vargaz@freemail.hu>
4266 * reflection.c (create_custom_attr): Allow len == 0.
4268 * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4269 computation on big-endian machines.
4271 2004-03-13 Martin Baulig <martin@ximian.com>
4273 * class.h (MonoGenericInst): Added `int count_ifaces'.
4275 * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4276 `ginst->count_ifaces' instead `klass->interface_count' since we
4277 may get called before the vtable is created.
4279 * loader.c (mono_method_get_param_names): If we're a generic
4280 instance, return and don't initialize the class.
4282 * reflection.c (mono_reflection_setup_generic_class): Don't call
4283 ensure_runtime_vtable().
4284 (mono_reflection_bind_generic_parameters): Set
4285 `ginst->count_ifaces'.
4287 2004-03-11 Jackson Harper <jackson@ximian.com>
4291 * unicode.h: Remove unused System.Char icalls.
4293 2004-03-11 Miguel de Icaza <miguel@ximian.com>
4295 * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4296 code when we P/Invoke the first library in Windows.Forms, instead
4297 of when we first open the assembly.
4299 * assembly.c: Drop the lookup from here.
4301 2004-03-10 Martin Baulig <martin@ximian.com>
4303 * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4304 class for properties, fields and events. Finally fixes #54945.
4306 2004-03-10 Martin Baulig <martin@ximian.com>
4308 * metadata.c (mono_metadata_class_equal): New static function;
4309 checks whether two generic instances or two generic parameters are
4311 (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4314 2004-03-10 Martin Baulig <martin@ximian.com>
4316 * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4318 * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4319 argument and write it into the `reflection_info' field.
4322 (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4323 (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4325 2004-03-09 Jackson Harper <jackson@ximian.com>
4327 * char-conversions.h: use 8 bits for numeric data its all we need
4328 * icall.c: numeric data is only 8 bits now.
4330 2004-03-09 Martin Baulig <martin@ximian.com>
4332 * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4334 * class.c (init_properties, init_events): Initialize the new
4337 * reflection.c (typebuilder_setup_properties): Likewise.
4338 (typebuilder_setup_events): Likewise.
4340 * reflection.h (MonoEventInfo): Replaced `parent with
4341 `declaring_type' and `reflected_type'.
4343 * icall.c (ves_icall_get_property_info): Distinguish between
4344 declaring and reflected type.
4345 (ves_icall_get_event_info): Likewise.
4347 2004-03-09 Martin Baulig <martin@ximian.com>
4349 * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4350 (ves_icall_Type_GetField): Correctly set field->klass.
4352 2004-03-09 Zoltan Varga <vargaz@freemail.hu>
4354 * loader.h: Fix warning.
4356 2004-03-08 Miguel de Icaza <miguel@ximian.com>
4358 * loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4359 library routine if present. Notice that it will still continue
4360 executing even if its missing, for those working on the Gtk#
4361 edition of Windows.Forms.
4363 * assembly.c (do_mono_assembly_open): If loading the
4364 System.Windows.Forms call mono_loader_wini_init.
4366 2004-03-04 Lluis Sanchez Gual <lluis@ximian.com>
4368 * class.h: Added MonoRemoteClass struct.
4369 * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4370 function for MonoStrings.
4371 * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4372 Added internal call for getting the proxy type.
4373 * marshal.c: Get the type of transparent proxies from its remote_class.
4374 Added methods that generate the IL for type checks and casts:
4375 mono_marshal_get_isinst, mono_marshal_get_castclass,
4376 mono_marshal_get_proxy_cancast.
4377 * marshal.h: Declaration of the previous new methods.
4378 * object.c: Added new moethods for creating and updating MonoRemoteClass
4379 instances: mono_remote_class, mono_upgrade_remote_class,
4380 * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4381 * verify.c: FIx transparent_proxy_fields layout.
4382 * appdomain.c: Bump corlib version.
4384 2004-03-04 Jackson Harper <jackson@ximian.com>
4386 * icall.c: Add icall to access char conversion tables.
4387 * char-conversions.h: Character conversion tables.
4388 * Makefile.am: Add char-conversions.h private header file.
4390 2004-03-04 Zoltan Varga <vargaz@freemail.hu>
4392 * appdomain.c (unload_thread_main): Increase unloading timeout to
4393 10 sec as a temporary workaround for Nant problems.
4395 2004-02-29 Zoltan Varga <vargaz@freemail.hu>
4397 * gc.c: Add checks for GC_enable and GC_disable.
4399 * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4400 (jaak@zd.com.pl). Fix memory corruption in String.Replace
4403 2004-02-27 Martin Baulig <martin@ximian.com>
4405 * reflection.c (mono_reflection_bind_generic_parameters): Take a
4406 `MonoReflectionType *' instead of a `MonoType *'.
4408 2004-02-26 Zoltan Varga <vargaz@freemail.hu>
4410 * gc.c (run_finalize): Avoid finalizing the object representing the
4412 (finalizer_thread): Fix warning.
4414 2004-02-25 Martin Baulig <martin@ximian.com>
4416 * class.c (_mono_class_get_instantiation_name): Added `int offset'
4417 argument for nested types.
4418 (mono_class_create_generic): Added support for nested generictypes.
4420 * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4423 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4425 * reflection.c (method_encode_signature): Increase the minimum
4426 value of `size' from 10 to 11.
4427 (mono_reflection_bind_generic_parameters): Take `int type_argc'
4428 and `MonoType **types' arguments instead of the `MonoArray
4429 *types'; added `MonoType *nested_in'. Recursively instantiate
4432 2004-02-23 Zoltan Varga <vargaz@freemail.hu>
4434 * appdomain.h (MonoDomain): Add preallocated null_reference_ex and
4435 stack_overflow_ex members which are used by exception handling.
4437 * appdomain.c (mono_runtime_init): Initialize the new members.
4439 * gc.c (mono_gc_enable): New helper function.
4440 * gc.c (mono_gc_disable): New helper function.
4442 2004-02-23 Martin Baulig <martin@ximian.com>
4444 * icall.c: I must have been really stupid - make it actually work
4447 2004-02-23 Martin Baulig <martin@ximian.com>
4449 * loader.c (method_from_memberref): Only inflate the method if
4450 it's in another klass.
4452 2004-02-23 Martin Baulig <martin@ximian.com>
4454 * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4455 (mono_class_init): If we're a generic instance and an interface,
4456 compute `class->interface_id'; also create `class->interfaces'
4457 here and inflate them.
4459 * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4461 (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4463 * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4465 2004-02-15 Miguel de Icaza <miguel@ximian.com>
4467 * reflection.c (method_encode_code): Improved the error message
4468 generated by the exception.
4470 2004-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4472 * icall.c: Martin did not do what he said in the ChangeLog for
4473 2004-02-18, but put back the changes for properties and events.
4474 Commenting those changes out again and adding comment to bug #54518.
4476 * process.c: removed warning.
4478 2004-02-20 Zoltan Varga <vargaz@freemail.hu>
4480 * marshal.c (emit_struct_conv): Print an error message instead of
4481 asserting when a type does not have the StructLayout attribute.
4483 2004-02-20 Martin Baulig <martin@ximian.com>
4485 * reflection.c (mono_type_get_object): Also use the cache for
4487 (mono_reflection_bind_generic_parameters): Always compute
4490 2004-02-20 Martin Baulig <martin@ximian.com>
4492 * class.h (MonoGenericMethod): Removed `klass'.
4494 * class.c (mono_class_inflate_generic_method): Added `MonoClass
4497 2004-02-20 Martin Baulig <martin@ximian.com>
4499 * reflection.c (method_encode_methodspec): Actually use the
4500 uninflated signature for the memberref.
4502 2004-02-20 Martin Baulig <martin@ximian.com>
4504 * class.h (MonoGenericMethod): Removed `declaring'.
4506 * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4507 is NULL, compute it here.
4509 2004-02-20 Martin Baulig <martin@ximian.com>
4511 * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4513 * metadata.c (mono_metadata_generic_inst_hash): New method.
4514 (mono_metadata_generic_inst_equal): New method.
4516 * reflection.c (mono_reflection_bind_generic_parameters): Use the
4517 `klass->image->generic_inst_cache' cache to avoid creating
4518 duplicate MonoGenericInst's.
4520 * class.c (mono_class_inflate_generic_type): Use the cache.
4522 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4524 * object.c: fixed gc descriptor calculation for embedded valuetypes.
4526 2004-02-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4528 * icall.c: added Socket.WSAIoctl icall.
4530 * socket-io.[ch]: implemented
4531 ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4533 2004-02-19 Atsushi Enomoto <atsushi@ximian.com>
4535 * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4537 2004-02-18 Urs C Muff <umuff@quark.com>
4539 * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4540 this work on PPC and other big-endian architectures.
4542 * debug-mono-symfile.h: Prepended the names of all the `guint32'
4543 fields with an underscore to make sure they're only accessed by
4546 2004-02-18 Martin Baulig <martin@ximian.com>
4548 * icall.c: Put the klass->refclass changes back for methods and
4549 fields, but not for properties and events. We're currently not
4550 distinguishing between DeclaringType and ReflectedType for
4551 properties and events, that's what caused the regressions.
4553 2004-02-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4556 (mono_async_result_new): the handle can be NULL.
4558 * threadpool.c: Use an event instead of a semaphore, don't initialize
4559 it until needed. This saves quite a few semaphores from being created
4560 when using the threadpool.
4562 2004-02-18 Zoltan Varga <vargaz@freemail.hu>
4564 * object.c (mono_string_is_interned_lookup): Fix interning of long
4565 strings. Fixes #54473.
4567 * domain.c (ldstr_equal): Optimize if the two strings are equal.
4569 * icall.c: Revert the klass->refclass changes since they introduce
4570 regressions (bug #54518).
4572 2004-02-18 Martin Baulig <martin@ximian.com>
4574 * class.c (mono_class_init): If we're a generic instance and don't
4575 come from a TypeBuilder, inflate our members here.
4576 (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4577 (mono_class_create_generic): New public method.
4578 (mono_class_initialize_generic): Removed.
4579 (get_instantiation_name): Renamed to
4580 _mono_class_get_instantiation_name() and made it public.
4582 2004-02-18 Martin Baulig <martin@ximian.com>
4584 * class.c (mono_class_inflate_generic_type): Clear the new
4585 instance's `nginst->klass' when inflating a generic instance.
4586 (mono_class_is_subclass_of): Added (basic) support for generic
4589 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4591 * appdomain.h, domain.c: use a MonoCodeManager instead of a
4592 MonoMempool to hold compiled native code.
4594 2004-02-17 Martin Baulig <martin@ximian.com>
4596 * class.h (MonoDynamicGenericInst): Added `count_properties' and
4599 * reflection.c (mono_reflection_generic_inst_initialize): Added
4600 `MonoArray *properties' argument.
4602 * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.
4604 2004-02-17 Martin Baulig <martin@ximian.com>
4606 * icall.c (ves_icall_Type_GetFields): Renamed to
4607 ves_icall_Type_GetFields_internal() and added a
4608 `MonoReflectionType *rtype' argument; pass it to
4609 mono_field_get_object() to set the field's "reflected" type.
4610 (ves_icall_Type_GetConstructors): Likewise.
4611 (ves_icall_Type_GetEvents): Likewise.
4612 (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4613 argument; pass it to mono_method_get_object() to set the method's
4616 2004-02-17 Martin Baulig <martin@ximian.com>
4618 * class.h (MonoDynamicGenericInst): New type.
4619 (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4621 * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4622 (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4623 (ves_icall_MonoGenericInst_GetFields): New interncall.
4625 * class.c (mono_class_from_generic): Don't call
4626 mono_class_initialize_generic() if this is a dynamic instance;
4627 ie. it's being created from a TypeBuilder.
4628 Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4629 `class->byval_arg.type'.
4631 * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4632 to `inflate_method' and made static.
4633 (mono_reflection_inflate_field): Removed.
4634 (mono_reflection_generic_inst_initialize): New public method.
4636 * reflection.h (MonoReflectionGenericInst): Removed `methods',
4637 `ctors' and `fields'; added `initialized'.
4639 2004-02-14 Zoltan Varga <vargaz@freemail.hu>
4641 * debug-helpers.c (mono_method_full_name): Fix output for empty
4644 2004-02-12 Martin Baulig <martin@ximian.com>
4646 * class.h (MonoClassField): Added `MonoType *generic_type'.
4648 * reflection.c (mono_image_get_fieldref_token): Added support for
4649 instantiated generic types.
4650 (field_encode_inflated_field): Removed.
4651 (mono_image_get_inflated_field_token): Removed.
4652 (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4654 * reflection.h (MonoReflectionInflatedField): Removed.
4656 2004-02-12 Martin Baulig <martin@ximian.com>
4658 * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4659 `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4661 * reflection.c (mono_image_get_methodspec_token): Take a
4662 `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4663 (mono_image_create_token): Check whether we have a
4664 `method->signature->gen_method' and call
4665 mono_image_get_methodspec_token() if appropriate.
4666 (inflated_method_get_object): Removed.
4667 (mono_reflection_bind_generic_method_parameters): Return a
4668 `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4669 (mono_reflection_inflate_method_or_ctor): Likewise.
4671 * reflection.h (MonoReflectionInflatedMethod): Removed.
4673 2004-02-12 Zoltan Varga <vargaz@freemail.hu>
4675 * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4676 for custom valuetype marshalling.
4678 * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4680 2004-02-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4682 * icall.c: fixed WSAGetLastError_internal name.
4684 2004-02-11 Zoltan Varga <vargaz@freemail.hu>
4686 * threads.c (mono_thread_attach): Allow this to be called multiple
4689 * threads.c (build_wait_tids): Do not wait for ourselves.
4691 * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the
4692 appdomain list is empty.
4694 * marshal.c (mono_marshal_get_native_wrapper): Do not free the
4695 memory returned by mono_string_builder_to_utf16, since it points into
4696 managed memory. Thanks to Bernie Solomon for noticing this.
4698 * icall.c: Add AppDomainSetup icalls.
4700 * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
4702 * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
4705 * reflection.c (reflection_methodbuilder_to_mono_method): Save
4706 custom attributes to the method_aux struct. Also fix array indexes etc.
4708 * loader.c (mono_method_get_param_names): Make dynamic case work again.
4710 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
4712 * icall.c, loader.c: icall cleanup: we save quite a bit of memory
4713 (both static and runtime) and reduce startup time.
4715 2004-02-10 Zoltan Varga <vargaz@freemail.hu>
4717 * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
4718 AsAny marshalling conversion instead of crashing.
4720 * marshal.c: Fix warnings.
4722 2004-02-09 Martin Baulig <martin@ximian.com>
4724 * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
4726 * reflection.h (MonoReflectionInflatedMethod): Removed the
4727 `declaring' field, it's now in the unmanaged MonoGenericMethod.
4729 * reflection.c (method_encode_methodspec): Removed the `method'
4730 argument; we get it from `gmethod->declaring'.
4731 (inflated_method_get_object): Removed the `declaring' argument.
4733 2004-02-09 Martin Baulig <martin@ximian.com>
4735 * class.h (MonoGenericMethod): New type.
4736 (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
4739 * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
4740 a `MonoGenericMethod *gen_method' one.
4742 * class.c (mono_class_inflate_generic_type): Take an additional
4743 `MonoGenericMethod * argument. This is only non-NULL if we're
4744 inflating types for a generic method.
4745 (mono_class_inflate_generic_signature): Renamed to
4746 inflate_generic_signature() and made static; take a
4747 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4748 (inflate_generic_header): Take a `MonoGenericMethod *' argument
4749 instead of a `MonoGenericInst *' one.
4750 (mono_class_inflate_generic_method): Likewise.
4752 * reflection.c (encode_generic_method_sig): Take a
4753 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
4754 (method_encode_methodspec): Likewise.
4755 (inflated_method_get_object): Likewise.
4757 * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
4758 field with a `MonoGenericMethod *gmethod' one.
4760 2004-02-08 Bernie Solomon <bernard@ugsolutions.com>
4762 * class.h (mono_class_has_parent): add parens to expansion
4765 2004-02-08 Martin Baulig <martin@ximian.com>
4767 * image.h (MonoImage): Removed `generics_cache'.
4769 * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
4770 instead of a `MonoType *' argument; removed the `inflate_methods'
4771 argument. Don't inflate methods here.
4773 * loader.c (find_method): If it's a generic instance, call
4774 mono_class_init() on the `sclass->generic_inst->generic_type'.
4776 * metadata.c (mono_type_size): Make this work on uninitialized
4777 generic instances; call it on the `ginst->generic_type's class.
4779 * reflection.c (mono_reflection_bind_generic_parameters): Call
4780 mono_class_from_generic() to create the `ginst->klass'.
4782 2004-02-08 Martin Baulig <martin@ximian.com>
4784 * class.h (MonoClass): Changed type of `generic_inst' from
4785 `MonoType *' to `MonoGenericInst *'.
4787 2004-02-08 Martin Baulig <martin@ximian.com>
4789 * icall.c (ves_icall_Type_BindGenericParameters): Just call
4790 mono_type_get_object(), this is now creating a `MonoGenericInst'
4791 for MONO_TYPE_GENERICINST.
4792 (ves_icall_MonoGenericInst_GetParentType): Likewise.
4793 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4795 * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
4796 instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
4797 (inflated_method_get_object): Added `MonoClass *refclass' argument.
4798 (mono_reflection_inflate_method_or_ctor): Correctly set declaring
4801 * reflection.h (MonoReflectionInflatedMethod): Removed
4802 `declaring_type' and `reflected_type'.
4804 2004-02-08 Martin Baulig <martin@ximian.com>
4806 * class.h (MonoGenericInst): Added `MonoType *parent' and
4807 `MonoType **ifaces'.
4809 * reflection.h (MonoReflectionGenericInst): Removed `klass',
4810 `parent' and `interfaces'.
4812 * reflection.c (mono_reflection_bind_generic_parameters): Take a
4813 `MonoType *' argument and return a `MonoType *'.
4816 (ves_icall_MonoGenericInst_GetParentType): New interncall.
4817 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
4819 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
4821 * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
4822 valuetype marshalling.
4824 2004-02-06 Martin Baulig <martin@ximian.com>
4827 (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
4828 (my_mono_class_from_generic_parameter): Likewise.
4830 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
4832 * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
4833 contents of the symbol files lazily.
4835 * object.h (MonoThread): Add 'name' and 'name_len' fields.
4837 * threads.h threads.c icall.c: New icalls for getting and setting the
4840 2004-02-05 Zoltan Varga <vargaz@freemail.hu>
4842 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID):
4843 Raise an exception when the domain is not found.
4845 2004-02-03 Martin Baulig <martin@ximian.com>
4847 * reflection.c (mono_image_get_methodspec_token): Use the
4848 uninflated signature; fixes gen-33.
4850 2004-02-02 Zoltan Varga <vargaz@freemail.hu>
4852 * gc.c threads.c: Make the finalizer thread a normal managed thread so
4853 the finalizer code can use thread functionality.
4855 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for
4856 the finalizer thread.
4858 * threads.c: Make some functions more robust.
4860 * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
4862 * metadata.h: Add new marshalling conventions.
4864 * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
4865 stringbuilder marshalling. Fixes #53700.
4867 * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
4869 * reflection.c (mono_image_get_type_info): Save declarative security
4872 * reflection.c (mono_image_get_field_info): Handle uninitialized
4873 unmanaged fields as well.
4875 * appdomain.c: Bump corlib version.
4877 2004-02-01 Martin Baulig <martin@ximian.com>
4879 * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
4880 method type arguments.
4882 2004-01-30 Duncan Mak <duncan@ximian.com>
4884 * marshal.h: Add prototype for
4885 "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
4887 "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
4890 2004-01-30 Zoltan Varga <vargaz@freemail.hu>
4892 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
4893 (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
4895 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
4897 * marshal.c (mono_marshal_get_native_wrapper): Add support for
4898 custom marshalling of valuetypes.
4900 * marshal.c: Fix some warnings.
4902 2004-01-29 Martin Baulig <martin@ximian.com>
4904 * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
4905 for generic method parameters.
4907 * reflection.c (method_encode_methodspec): Write the uninflated
4908 signature into the methodspec table.
4909 (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
4910 is always the uninflated method.
4911 (reflection_methodbuilder_to_mono_method): Copy the generic
4912 parameters from the MethodBuilder into `header->gen_params'.
4914 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
4916 * class.c (mono_class_from_generic_parameter): Fix warning.
4918 2004-01-27 Martin Baulig <martin@ximian.com>
4920 * class.c (mono_class_from_generic_parameter): Don't create
4921 `klass->methods' here.
4923 2004-01-26 Zoltan Varga <vargaz@freemail.hu>
4925 * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
4926 extension since it does not work with libraries named lib<FOO>.dll.so.
4928 2004-01-25 Martin Baulig <martin@ximian.com>
4930 * class.c (mono_class_inflate_generic_type): Added support for
4931 MONO_TYPE_GENERICINST.
4933 * reflection.c (mono_reflection_inflate_method_or_ctor): Also
4934 inflate methods on open constructed types.
4936 2004-01-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4938 * object.c: fire ProcessExit event in the root AppDomain after running
4939 Main. Fixes bug #53299.
4941 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
4943 * socket-io.c: include the new socket-wrappers.h header.
4944 Use the wrappers instead of the unix socket functions to make the code
4947 2004-01-23 Zoltan Varga <vargaz@freemail.hu>
4949 * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
4951 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
4954 2004-01-22 Zoltan Varga <vargaz@freemail.hu>
4956 * reflection.c (mono_image_create_pefile): Handle the case when the
4957 entry point is not a MethodBuilder.
4959 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4960 field to ReflectionMethod since it is not allways a builder.
4962 * reflection.c (type_get_fully_qualified_name): New helper function to
4963 return the fully qualified name of a type.
4965 * reflection.c (encode_marshal_blob): Always emit the fully qualified
4966 type name for custom marshallers.
4968 * reflection.c (mono_marshal_spec_from_builder): Ditto.
4970 * class.c (mono_class_setup_vtable): If a parent class already
4971 implements an interface, use the implementing methods from that class.
4974 2004-01-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4976 * threadpool.c: just return instead of ExitThread to allow for thread
4979 2004-01-21 Zoltan Varga <vargaz@freemail.hu>
4981 * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
4982 when closing resource modules.
4984 * reflection.c (mono_image_create_pefile): Handle the case when the
4985 entry point is not a MethodBuilder.
4987 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
4988 field to ReflectionMethod since it is not allways a builder.
4990 2004-01-20 Bernie Solomon <bernard@ugsolutions.com>
4992 * marshal.c (mono_marshal_get_managed_wrapper):
4993 mono_marshal_alloc takes native int so CONV_I
4996 2004-01-20 Zoltan Varga <vargaz@freemail.hu>
4998 * reflection.c (fixup_cattrs): New function to fixup the methoddef
4999 tokens in the cattr table. Fixes #53108.
5001 2004-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5003 * loader.c: don't trim ".dll" before looking up in the config file.
5004 Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
5006 2004-01-19 Zoltan Varga <vargaz@freemail.hu>
5008 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
5009 Return the module which contains the resource as well.
5010 (ves_icall_System_Reflection_Module_Close): New icall.
5012 * appdomain.c: Bump corlib version number.
5014 * image.c (mono_image_addref): New public function.
5016 * assembly.c: Call mono_image_addref.
5018 * reflection.c (mono_module_get_object): Increase reference count of
5021 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5024 * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
5025 Applied patch from Bernie Solomon <bernard@ugsolutions.com>. Throw
5026 proper exceptions on DllImport problems.
5028 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
5030 * class.c, metadata.c: eliminate CSIZE macro.
5032 2004-01-19 Lluis Sanchez Gual <lluis@ximian.com>
5034 * icall.c: Added ves_icall_type_IsInstanceOf internal call.
5035 * object.h: Added async_callback field in MonoAsyncResult.
5036 * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
5037 * verify.c: Added async_callback in MonoAsyncResult layout.
5039 2004-01-17 Zoltan Varga <vargaz@freemail.hu>
5041 * reflection.c (mono_reflection_get_custom_attrs): Add support
5044 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
5046 * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder
5048 (mono_marshal_method_from_wrapper): Add null pointer check.
5050 2004-01-16 Martin Baulig <martin@ximian.com>
5052 * debug-mono-symfile.h: Set version number to 36 and reflect
5053 latest symbol writer changes.
5055 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
5057 * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
5058 multi-dimensional arrays.
5059 (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
5060 (mono_class_from_mono_type): Use bounded_array_class_get.
5062 * class.c (mono_bounded_array_class_get): New function which takes
5063 a 'bounded' bool argument to distinguish vectors from one dimensional
5066 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call
5067 bounded_array_class_get if the array has bounds.
5069 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
5070 Search modules loaded using AssemblyBuilder:AddModule as well.
5072 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5074 * appdomain.c: increased corlib version.
5075 * filewatcher.c: removed g_print.
5077 (get_property_info): only allocate what is actually requested.
5078 (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
5080 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5082 * Makefile.am: added filewatcher.[ch]
5083 * filewatcher.[ch]: FileSystemWatcher runtime support.
5084 * icall.c: added new FSW icalls.
5086 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5088 * string-icalls.c: fix stringbuilder regression as suggested by
5089 Iain McCoy <iain@mccoy.id.au>.
5091 2004-01-13 Zoltan Varga <vargaz@freemail.hu>
5093 * process.c (process_read_stringtable_block): Recognize '007f' as
5094 a language neutral stringtable block.
5096 2004-01-12 Patrik Torstensson
5098 * object.h (MonoStringBuilder) : Changed layout to support our
5099 new stringbuilder class.
5100 * marshal.c: Change marshalling to support the new layout of
5102 * appdomain.c: increased version number because new layout of
5105 2004-01-12 Zoltan Varga <vargaz@freemail.hu>
5107 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
5108 assembly name as an string instead of an AssemblyName, since it is
5109 easier to extract info from it.
5111 * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5112 the culture subdirectories too. Fixes #52231.
5114 2004-01-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5116 * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5117 It takes 2 new parameters with an optional name for the method to look
5118 for and case ignoring info.
5120 * threadpool.c: removed unused variable.
5122 2004-01-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5124 * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5125 It takes 2 new parameters with an optional name for the property to look
5126 for and case ignoring info.
5129 2004-01-09 Zoltan Varga <vargaz@freemail.hu>
5131 * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5134 2004-01-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5137 * assembly.c: escape the uri before passing it to g_filename_from_uri.
5140 2004-01-07 Zoltan Varga <vargaz@freemail.hu>
5142 * reflection.c: Add support for more than one unmanaged resource.
5144 * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5145 in field->def_value, as done in all other cases.
5147 * reflection.c (mono_reflection_get_custom_attrs): Add support for
5150 * reflection.c (mono_reflection_create_runtime_class): Remove
5151 errorneous assignment to klass->element_class, since it is already
5152 done in mono_reflection_setup_internal_class.
5154 2004-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5156 * gc.c: added missing LeaveCriticalSection.
5157 * icall.c: indented a couple of lines.
5158 * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5159 if we call EndInvoke inside a callback. Fixes bug #52601.
5161 2004-01-07 Martin Baulig <martin@ximian.com>
5163 * mono-debug-debugger.h
5164 (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5166 2004-01-06 Miguel de Icaza <miguel@ximian.com>
5168 * appdomain.c: Use messages in NotImplementedException.
5170 * exception.c (mono_get_exception_not_implemented): Now this takes
5173 * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5174 exception instead of g_asserting an aborting when something is not
5177 Add some inline docs.
5179 2004-01-05 Zoltan Varga <vargaz@freemail.hu>
5181 * reflection.h: Update after changes to object layout.
5183 * reflection.c: Implement saving of unmanaged aka win32 resources.
5185 * appdomain.c: Bump version number.
5187 * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID):
5188 Handle missing domains gracefully.
5190 2004-01-05 Atsushi Enomoto <atsushi@ximian.com>
5192 * file-io.c : On Windows, there are much more invalid_path_chars.
5194 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5196 * class.h, object.c: prepare for GetType () speedup.
5198 2003-12-24 Atsushi Enomoto <atsushi@ximian.com>
5200 * profiler.c: workaround for --profile null reference exception on
5201 cygwin. Patch by Patrik Torstensson.
5203 2003-12-22 Bernie Solomon <bernard@ugsolutions.com>
5205 * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5206 make work for unaligned access.
5208 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5210 * class.c: small cleanup (class->fields [i] -> field).
5211 * image.c: check address of metadata is valid.
5213 2003-12-22 Zoltan Varga <vargaz@freemail.hu>
5215 * assembly.h assembly.c (mono_assembly_loaded): New public function to
5216 search the list of loaded assemblies.
5218 * reflection.c (mono_reflection_type_from_name): Use
5219 mono_assembly_loaded instead of mono_image_loaded.
5221 * reflection.c: Fix warnings.
5223 2003-12-20 Zoltan Varga <vargaz@freemail.hu>
5225 * image.h (MonoImage): Add a new 'dynamic' field to denote that the image
5226 is dynamic. This is needed since an assembly can contain both dynamic and
5229 * class.c loader.c metadata.c object.c: Use image->dynamic instead of
5232 * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5234 * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5235 to store modules loaded using AddModule.
5237 * reflection.c (mono_image_fill_file_table): Generalize this so it works
5240 * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5242 * reflection.c (mono_image_fill_export_table_from_module): New function to
5243 fill out the EXPORTEDTYPES table from a module.
5245 * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5246 into a separate function. Also handle loaded non-dynamic modules.
5248 * reflection.c (mono_image_basic_init): Fix memory allocation.
5250 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5252 * assembly.c (mono_assembly_load_references): Make this public.
5254 2003-12-19 Martin Baulig <martin@ximian.com>
5256 * class.c (mono_class_initialize_generic): Made this static, take
5257 a `MonoGenericInst *' instead of a `MonoClass *'.
5258 (mono_class_from_generic): Call mono_class_initialize_generic()
5259 unless we're already initialized or being called from
5260 do_mono_metadata_parse_generic_inst().
5262 * class.h (MonoGenericInst): Added `initialized' and
5263 `init_pending' flags.
5265 * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5266 `mono_class_init (gklass)' or mono_class_initialize_generic()
5267 here; set `generic_inst->init_pending' while parsing the
5270 2003-12-19 Bernie Solomon <bernard@ugsolutions.com>
5272 * locales.c: include string.h for memxxx prototypes
5274 2003-12-19 Zoltan Varga <vargaz@freemail.hu>
5276 * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5277 constructor when accessing literal fields.
5279 2003-12-17 Zoltan Varga <vargaz@freemail.hu>
5281 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5283 * reflection.c (assembly_add_resource_manifest): New function to fill
5284 the MANIFESTRESOURCE table.
5286 * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5288 * reflection.h: Update to changes in class layout.
5290 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted):
5291 Reenable call to mono_runtime_is_shutting_down ().
5293 * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5294 determine if the runtime is shutting down.
5296 2003-12-16 Jackson Harper <jackson@ximian.com>
5298 * icall.c: comment out call to mono_runtime_is_shutting_down to
5301 2003-12-16 Zoltan Varga <vargaz@freemail.hu>
5303 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5304 (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5306 2003-12-15 Bernie Solomon <bernard@ugsolutions.com>
5308 * reflection.c: move definition of swap_with_size
5309 to before its first call
5311 2003-12-15 Zoltan Varga <vargaz@freemail.hu>
5313 * appdomain.c (mono_runtime_is_shutting_down): New public function.
5315 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5318 * object.c: Fix warnings.
5320 * icall.c (ves_icall_Type_Get...): Only consider inherited static
5321 members if FlattenHierarchy is set.
5323 * reflection.c (mono_image_add_decl_security): New function to emit
5324 declarative security.
5326 * reflection.h reflection.c: Add support for declarative security.
5328 * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5330 2003-12-13 Zoltan Varga <vargaz@freemail.hu>
5332 appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5334 * appdomain.c verify.c: Moved corlib version checking into its own
5335 function in appdomain.c since it needs to create vtables etc.
5337 2003-12-13 Patrik Torstensson <p@rxc.se>
5339 * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this
5340 instead of unwrapped server.
5342 2003-12-12 Zoltan Varga <vargaz@freemail.hu>
5344 * verify.c (check_corlib): Fix field index.
5346 2003-12-10 Zoltan Varga <vargaz@freemail.hu>
5348 * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5351 2003-12-10 Bernie Solomon <bernard@ugsolutions.com>
5353 * process.c: (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5354 ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5355 cope with sizeof(size_t) != sizeof(guint32).
5357 2003-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5359 * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5362 2003-12-10 Mark Crichton <crichton@gimp.org>
5364 * icall.c: removed the GetNonZeroBytes. We now handle this case
5367 * rand.c, rand.h: Same here. Also cleaned up the clode slightly.
5369 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5371 * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5374 2003-12-09 Zoltan Varga <vargaz@freemail.hu>
5376 * verify.c (check_corlib): Handle the case when the version field is
5377 initialized by a static constructor.
5379 2003-12-08 Patrik Torstensson <p@rxc.se>
5381 * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5383 2003-12-08 Martin Baulig <martin@ximian.com>
5385 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5386 a MonoReflectionGenericParameter, also take the parameter index
5387 and name as arguments.
5388 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5389 (ves_icall_MonoGenericParam_initialize): New interncall.
5390 (ves_icall_Type_make_byref_type): New interncall.
5392 * reflection.h (MonoReflectionGenericParam): Derive from
5393 MonoReflectionType, not just from MonoObject. Added `refobj' and
5396 * reflection.c (mono_reflection_define_generic_parameter): Create
5397 and return a new MonoReflectionGenericParam; don't initialize the
5399 (mono_reflection_initialize_generic_parameter): New public method;
5400 initializes the constraints and creates the `param->pklass'.
5402 2003-12-08 Zoltan Varga <vargaz@freemail.hu>
5404 * reflection.h reflection.c: Use the new fields 'num_types',
5405 'num_fields' and 'num_methods' to track the number of types etc.
5407 * verify.c (check_corlib): Check corlib version number.
5409 2003-12-07 Zoltan Varga <vargaz@freemail.hu>
5411 * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5412 function works on all methods.
5414 2003-12-07 Lluis Sanchez Gual <lluis@ximian.com>
5416 * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5417 * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5418 the custom_type_info flag of the transparent proxy.
5419 * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5420 objects that supports IRemotingTypeInfo.
5421 * object.h: Added custom_type_info field in transparent proxy.
5423 2003-12-06 Martin Baulig <martin@ximian.com>
5425 * class.c (mono_class_create_from_generic): Removed.
5426 (mono_class_from_generic): Check `ginst->klass' before doing
5427 anything else. This is important to fully support "recursive"
5430 * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5431 empty `generic_inst->klass' before doing anything else.
5433 2003-12-06 Dick Porter <dick@ximian.com>
5438 * locales.c: Use C structs to access class fields. Don't do a
5439 conversion between MonoString and UChar because both are
5440 platform-endian UTF-16. Compare now takes startindex and count
5441 parameters. Add a char overload for IndexOf. Speed up the
5442 invariant string IndexOf.
5444 2003-12-05 Zoltan Varga <vargaz@freemail.hu>
5446 * Makefile.am (monosn_LDADD): Fix parallel build.
5448 2003-12-04 Martin Baulig <martin@ximian.com>
5451 (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5452 (ves_icall_Type_make_array_type): New interncall.
5454 2003-12-04 Martin Baulig <martin@ximian.com>
5456 * locales.c: also change it in the !HAVE_ICU case.
5458 2003-12-04 Dick Porter <dick@ximian.com>
5461 * locales.c: construct_compareinfo is now in CompareInfo, not
5464 2003-12-04 Zoltan Varga <vargaz@freemail.hu>
5466 * image.c (mono_image_load_file_for_image): Cache loaded images in the
5469 * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5472 * assembly.c (mono_assembly_load_references): Only load references
5475 * class.c (mono_class_from_name): Avoid linear search of the
5478 * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5480 2003-12-03 Zoltan Varga <vargaz@freemail.hu>
5482 * image.h (MonoImage): Add 'field_cache' field.
5484 * loader.c (mono_field_from_token): Cache field lookups.
5486 * reflection.c (mono_module_get_object): Fix name property.
5488 * icall.c (ves_icall_get_enum_info): Update after changes to
5489 mono_metadata_get_constant_index ().
5491 * icall.c: Get rid of get_type_info icall, use a separate icall for
5492 each type property to avoid needless memory allocations. Fixes #51514.
5494 * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5495 to avoid needless binary searches.
5497 * class.c (class_compute_field_layout): Move the initialization of
5498 field->def_value to mono_class_vtable ().
5500 * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5503 * object.c (mono_object_allocate): Make it inline.
5505 * object.c (mono_object_allocate_spec): Make it inline.
5507 2003-12-02 Dick Porter <dick@ximian.com>
5509 * locales.c (create_NumberFormat): NumberFormatInfo construction.
5510 Patch by Mohammad DAMT (mdamt@cdl2000.com).
5512 2003-12-01 Dick Porter <dick@ximian.com>
5514 * threads.c: Fix signature and call in CreateMutex and
5517 2003-12-01 Dick Porter <dick@ximian.com>
5520 * locales.c: Implement string compares and searching
5522 * object.h: Add extra Thread field
5524 2003-11-30 Zoltan Varga <vargaz@freemail.hu>
5526 * reflection.c (fixup_method): Add support for MonoCMethod.
5528 2003-11-28 Zoltan Varga <vargaz@freemail.hu>
5530 * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5532 * reflection.c (assembly_name_to_aname): Allow extra characters in
5533 assembly names. Fixes #51468.
5535 2003-11-26 Zoltan Varga <vargaz@freemail.hu>
5537 * exception.c (mono_exception_from_name_domain): New helper function.
5539 * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5540 exception object in the correct domain.
5542 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix
5543 formatting + make a copy a the input data.
5545 * loader.c (mono_get_method_from_token): Methods which contain
5546 native code do not have entries in the ImplMap.
5548 (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5549 Thanks to Gonzalo for spotting this.
5551 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5552 patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5554 * assembly.h (mono_assembly_load_from): Split the second part of
5555 assembly loading into a new public function.
5557 * exception.h (mono_get_exception_bad_image_format): New function.
5559 2003-11-24 Zoltan Varga <vargaz@freemail.hu>
5561 icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
5562 Enumerate all modules inside a dynamic assembly. Fixes #51293.
5564 * icall.c: Add new icall for creating dynamic methods.
5566 * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5568 * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5570 * reflection.c (mono_reflection_create_dynamic_method): New icall to
5571 create a dynamic method.
5573 * reflection.c (resolve_object): New helper function.
5575 * reflection.c: Generalize ReflectionMethodBuilder and the functions
5576 which manipulate it so they can also work on dynamic methods.
5578 * reflection.c (reflection_method_builder_to_mono_method): Avoid
5579 creating the MonoReflectionMethodAux structure if it is not needed.
5581 * reflection.h verify.c: Update after changes to object layout.
5583 * reflection.c (method_builder_encode_signature): Fix compilation on
5586 2003-11-21 Lluis Sanchez Gual <lluis@ximian.com>
5588 * appdomain.h: Added support for context static fields. Added static_data
5589 field to MonoAppContext and renamed thread_static_fields to a more
5590 generic special_static_fields in MonoAppDomain, since it can now contain
5591 context static fields.
5592 * domain.c: Updated hashtable name.
5593 * object.c: Replaced field_is_thread_static() for a more generic
5594 field_is_special_static() which also checks for context static attribute.
5595 In mono_class_vtable(), added support for static context fields.
5596 * threads.c: Changed methods that manage thread static fields to more
5597 generic methods so they can be reused both for thread and context static
5599 * threads.h: Declared some new methods.
5601 2003-11-21 Zoltan Varga <vargaz@freemail.hu>
5603 * reflection.h: Update after changes to the managed types.
5605 * reflection.c (encode_custom_modifiers): New helper function.
5607 * reflection.c (method_encode_signature): Emit custom modifiers.
5609 * reflection.c (field_encode_signature): Emit custom modifiers.
5611 2003-11-18 Zoltan Varga <vargaz@freemail.hu>
5613 * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5615 * icall.c (ves_icall_System_ValueType_Equals): New optimized
5618 * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New
5621 * object.c (mono_field_get_value_object): New function.
5623 * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5626 2003-11-17 Zoltan Varga <vargaz@freemail.hu>
5628 * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5629 return a preallocated out-of-memory exception instance.
5631 * object.c (out_of_memory): Use the new function.
5633 * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5634 flag is before the custom modifiers. Fixes #49802.
5636 2003-11-16 Martin Baulig <martin@ximian.com>
5638 * class.c (mono_class_is_open_constructed_type): Implemented the
5639 MONO_TYPE_GENERICINST case.
5641 2003-11-16 Zoltan Varga <vargaz@freemail.hu>
5643 * assembly.c (mono_assembly_fill_assembly_name): New function to
5644 fill out the MonoAssemblyName structure.
5645 (mono_assembly_open): Use the new function.
5647 * icall.c (fill_reflection_assembly_name): New helper function.
5649 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5652 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5654 2003-11-15 Martin Baulig <martin@ximian.com>
5656 * class.c (mono_class_is_open_constructed_type): New public
5657 function; checks whether a type is an open constructed type,
5658 ie. whether it still contains type parameters.
5659 (mono_class_inflate_generic_type): If we're a type parameter and
5660 the inflated type is also a MONO_TYPE_(M)VAR, return the original
5663 * class.h (MonoGenericInst): Added `guint32 is_open'.
5665 * loader.c (method_from_methodspec): Check whether we're an open
5666 or closed constructed type and set `ginst->is_open'.
5668 * reflection.c (mono_reflection_bind_generic_parameters): Check
5669 whether we're an open or closed constructed type and set
5671 (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5672 from open constructed types.
5674 2003-11-15 Martin Baulig <martin@ximian.com>
5676 * reflection.c (mono_reflection_bind_generic_parameters): If we're
5677 a generic instance (instead of a generic type declaration) with
5678 unbound generic parameters, bind them to our actual types.
5680 2003-11-14 Martin Baulig <martin@ximian.com>
5682 * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5684 * reflection.c (mono_reflection_bind_generic_parameters): If we're
5685 an interface type, populate `res->interfaces' with instantiated
5686 versions of all the interfaces we inherit.
5688 2003-11-13 Aleksey Demakov <avd@openlinksw.com>
5690 * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
5691 when MONO_PATH is set but doesn't contain the install dir.
5693 2003-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5696 (ves_icall_Type_GetInterfaces): don't return an interface twice when
5697 it's also implemented in base classes. Fixes bug #50927.
5699 2003-11-13 Zoltan Varga <vargaz@freemail.hu>
5701 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
5702 if this method is called from a finalizer. Fixes #50913.
5704 2003-11-12 Miguel de Icaza <miguel@ximian.com>
5706 * threads.c: Implement VolatileRead/VolatileWrite
5708 * icall.c: Add new icalls for VolatileRead/VolatileWrite
5710 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
5712 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied
5713 patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
5716 * assembly.c (mono_assembly_open): Fix windows build. Applied patch
5717 from Peter Ross (pro@missioncriticalit.com).
5719 2003-11-12 Lluis Sanchez Gual <lluis@ximian.com>
5721 * icall.c: Added internal call for System.Environment::GetMachineConfigPath
5723 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
5725 * assembly.c (mono_assembly_load_references): Disable check because it
5726 triggers on older corlibs which lots of people have.
5728 2003-11-12 Jackson Harper <jackson@ximian.com>
5730 * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
5731 load corlib.dll if mscorlib.dll is not found.
5732 * assembly.h: Remove corlib name define.
5735 * image.c: Change corlib name to mscorlib.
5737 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
5739 * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
5741 2003-11-11 Miguel de Icaza <miguel@ximian.com>
5743 * appdomain.h: Added loader_optimization here to sync with the C#
5744 code, and add disallow_binding_redirects field.
5746 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
5748 * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
5750 * reflection.c (mono_image_build_metadata): Fix crash on modules
5753 * reflection.h (MonoMethodInfo): Track changes to the managed structure.
5755 * icall.c (ves_icall_get_method_info): Return callingConvention as
5758 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add
5759 namespaces from the EXPORTEDTYPE table as well.
5761 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
5762 from all modules inside the assembly.
5764 2003-11-11 Martin Baulig <martin@ximian.com>
5766 * reflection.c (mono_reflection_bind_generic_parameters): Make
5767 this work for interfaces.
5769 2003-11-11 Martin Baulig <martin@ximian.com>
5771 * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
5773 2003-11-11 Martin Baulig <martin@ximian.com>
5775 * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
5776 "MonoInflatedMethod" and "MonoInflatedCtor".
5778 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
5780 * reflection.c (resolution_scope_from_image): Use the assembly table
5781 from the manifest module, since other modules don't have it.
5783 * debug-helpers.c (mono_type_full_name): New helper function.
5785 * image.h (MonoAssembly): Change 'dynamic' to a boolean.
5787 * image.c (mono_image_load_file_for_image): New public function which
5788 is a replacement for the load_file_for_image in class.c.
5790 * assembly.c (mono_assembly_load_module): A wrapper for the function
5791 above which does assembly association and reference loading too.
5793 * class.c (mono_class_from_name): Call mono_assembly_load_module.
5795 2003-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5797 * appdomain.c: not all of the attributes for the full assembly name
5798 are required and the order doesn't matter. Fixes bug #50787.
5800 2003-11-10 Dick Porter <dick@ximian.com>
5802 * locales.c: Use platform-endian UTF16
5804 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
5806 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5808 2003-11-10 Martin Baulig <martin@ximian.com>
5811 (mono_metadata_load_generic_params): Make this actually work.
5813 * reflection.c (mono_reflection_bind_generic_parameters): If our
5814 parent is a generic instance, pass all the `types' to it, no
5815 matter whether it has the same number of type parameters or not.
5817 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
5819 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
5821 * assembly.c (mono_assembly_load_references): Move the image<->assembly
5822 assignment code to this function so it gets called recursively for all
5825 * image.c (load_modules): Remove the assembly assignment since it is
5826 now done by mono_assembly_load_references.
5828 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
5829 Add 'module' argument.
5830 (mono_module_get_types): New helper function.
5831 (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
5833 2003-11-08 Martin Baulig <martin@ximian.com>
5835 * class.c (mono_class_inflate_generic_method): Interface method
5836 don't have a header.
5838 * reflection.c (mono_image_get_methodspec_token): Take an
5839 additional `MonoGenericInst *' argument instead of reading it from
5840 the header; this is necessary to support interfaces.
5841 (mono_image_create_token): Pass the `MonoGenericInst *' from the
5842 MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
5843 (inflated_method_get_object): Take an additional `MonoGenericInst *'
5846 * reflection.h (MonoReflectionInflatedMethod): Added
5847 `MonoGenericInst *ginst'.
5849 2003-11-07 Zoltan Varga <vargaz@freemail.hu>
5851 * gc.c (mono_domain_finalize): Fix compilation for no GC case.
5853 2003-11-06 Zoltan Varga <zovarga@ws-zovarga2>
5855 * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
5857 2003-11-06 Zoltan Varga <vargaz@freemail.hu>
5860 (reflection_methodbuilder_from_method_builder):
5861 (reflection_methodbuilder_from_ctor_builder): New helper functions to
5862 initialize a ReflectionMethodBuilder structure.
5863 (mono_image_get_methodbuilder_token):
5864 (mono_image_get_ctorbuilder_token): New functions to emit memberref
5865 tokens which point to types in another module inside the same assembly.
5867 * reflection.c: Use the new helper functions.
5869 * reflection.c (mono_image_basic_init): Initialize basedir and culture.
5871 * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image
5872 instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
5874 * reflection.c (resolution_scope_from_image): Emit a moduleref if
5877 * reflection.c (mono_image_build_metadata): Emit metadata only for the
5878 current module. Emit the manifest only for the main module.
5880 * reflection.c (mono_image_create_token): Add assertion when a
5881 memberref needs to be created.
5883 * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
5885 * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a
5886 larger buffer for the custom attribute blob. Fixes #50637.
5888 2003-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5890 * threadpool.c: notify listener on async processing handles after
5891 invoking the async callback. Thanks to Zoltan.
5893 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
5895 * reflection.c (create_dynamic_mono_image): Call mono_image_init to
5896 avoid code duplication.
5898 * reflection.h (MonoDynamicImage): New type which is currently unused,
5899 but will be used through the ref.emit code in place of
5900 MonoDynamicAssembly.
5902 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5905 * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
5906 a MonoDynamicImage instead of just a MonoImage.
5908 * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
5909 icalls to ModuleBuilder but keep their semantics, so they will work
5910 with moduleb->assemblyb. This will change later.
5912 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
5914 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
5917 * reflection.c (mono_image_build_metadata): Avoid creation of a default
5918 main module, since it is now done by the managed code.
5920 2003-11-03 Martin Baulig <martin@ximian.com>
5922 * reflection.c (mono_reflection_inflate_method_or_ctor): Set
5923 `ginst->klass' here.
5924 (method_encode_methodspec): Don't use the `ginst->generic_method's
5925 klass if it's a generic instance, use `ginst->klass' in this case.
5927 2003-11-03 Martin Baulig <martin@ximian.com>
5929 * reflection.c (mono_image_get_generic_method_param_info):
5930 Removed, use mono_image_get_generic_param_info() instead.
5931 (mono_image_get_type_info): Write the GenericParam table before
5932 the Method table. This is neccessary because in the GenericParam
5933 table, type parameters of the class (ie. '!0' etc.) must come
5934 before the ones from its generic methods (ie. '!!0' etc).
5936 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
5938 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
5940 2003-11-02 Martin Baulig <martin@ximian.com>
5942 * reflection.c (create_generic_typespec): Take a
5943 `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
5944 the generic parameters from it.
5946 2003-11-02 Martin Baulig <martin@ximian.com>
5948 * reflection.c (fieldref_encode_signature): Take a `MonoType *'
5949 instead of a `MonoClassField *' since we just need the type.
5950 (create_generic_typespec): New static function. Creates a
5951 TypeSpec token for a generic type declaration.
5952 (mono_image_get_generic_field_token): New static function.
5953 (mono_image_create_token): If we're a FieldBuilder in a generic
5954 type declaration, call mono_image_get_generic_field_token() to get
5957 2003-11-02 Martin Baulig <martin@ximian.com>
5960 (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
5961 `MonoReflectionGenericInst *declaring_type' and
5962 `MonoReflectionGenericInst *reflected_type' fields.
5964 * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
5965 `MonoReflectionGenericInst *declaring_type' and a
5966 `MonoReflectionGenericInst *reflected_type' argument instead of a
5967 single `MonoReflectionGenericInst *type' one. Set
5968 `res->declaring_type' and `res->reflected_type' from them.
5969 (mono_reflection_inflate_field): Likewise.
5971 2003-11-02 Martin Baulig <martin@ximian.com>
5973 * class.c (mono_class_setup_vtable): Don't store generic methods
5976 2003-11-02 Martin Baulig <martin@ximian.com>
5978 * reflection.h (MonoReflectionGenericInst): Added
5979 `MonoReflectionType *declaring_type'.
5981 * reflection.c (mono_reflection_bind_generic_parameters): Use
5982 `if (tb->parent)' instead of `klass->parent'.
5984 2003-11-01 Zoltan Varga <vargaz@freemail.hu>
5986 * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
5987 with an empty ASSEMBLY table.
5989 * reflection.c (mono_image_build_metadata): Avoid using the same loop
5990 variable in the inner and outer loops.
5992 2003-10-31 Zoltan Varga <vargaz@freemail.hu>
5994 * metadata.h (mono_metadata_make_token): Put parentheses around macro
5997 * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
5999 * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain
6000 icalls. Instead, do everything in managed code. This is needed since
6001 it is hard to restore the original domain etc. in unmanaged code in the
6002 presence of undeniable exceptions.
6004 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef):
6005 New icalls to push and pop appdomain refs.
6007 2003-10-31 Martin Baulig <martin@ximian.com>
6009 * class.c (inflate_generic_type): Renamed to
6010 mono_class_inflate_generic_type() and made it public.
6012 * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
6015 * loader.c (mono_field_from_memberref): Also set the retklass for
6018 * fielder.c (mono_image_get_inflated_field_token): New static
6019 method; creates a metadata token for an inflated field.
6020 (mono_image_create_token, fixup_method): Added support for
6021 "MonoInflatedField".
6022 (fieldbuilder_to_mono_class_field): New static function.
6023 (mono_reflection_inflate_field): New public function.
6026 (MonoReflectionGenericInst): Added `MonoArray *fields'.
6027 (MonoReflectionInflatedField): New typedef.
6029 2003-10-30 Bernie Solomon <bernard@ugsolutions.com>
6031 * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
6032 for Solaris and other platforms without s6_addr16
6034 2003-10-30 Martin Baulig <martin@ximian.com>
6036 * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
6037 argument instead of two.
6038 (mono_class_inflate_generic_signature): Likewise.
6039 (inflate_generic_header): Likewise.
6040 (mono_class_inflate_generic_method): Likewise. In addition, if
6041 `ginst->klass' is set, it becomes the new `method->klass'.
6043 * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
6046 * reflection.c (encode_generic_method_sig): Write a 0xa as the
6048 (method_encode_methodspec): If we have generic parameters, create
6049 a MethodSpec instead of a MethodRef.
6050 (fixup_method): Added support for "MonoInflatedMethod" and
6052 (mono_image_create_token): Added support for "MonoInflatedMethod"
6053 and "MonoInflatedCtor".
6054 (inflated_method_get_object): New static function; returns a
6055 managed "System.Reflection.MonoInflatedMethod" object.
6056 (mono_reflection_bind_generic_method_parameters): Return a
6057 `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
6058 (mono_reflection_inflate_method_or_ctor): Likewise.
6059 (mono_image_get_generic_method_param_info): Initialize unused
6061 (mono_image_get_generic_param_info): Likewise.
6063 * reflection.h (MonoReflectionInflatedMethod): New public
6064 typedef. Corresponds to the managed "S.R.MonoInflatedMethod" and
6065 "S.R.MonoInflatedCtor" classes.
6067 * loader.c (method_from_memberref): If we're a TypeSpec and it
6068 resolves to a generic instance, inflate the method.
6070 2003-10-28 Dick Porter <dick@ximian.com>
6072 * object.c (mono_runtime_run_main): Convert command-line arguments
6073 into utf8, falling back to the user's locale encoding to do so.
6075 2003-10-27 Zoltan Varga <vargaz@freemail.hu>
6077 * loader.c (mono_get_method_from_token): Avoid looking up the icalls
6080 * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
6082 * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
6083 up icalls at method definition time. Partially fixes #33569.
6085 2003-10-25 Zoltan Varga <vargaz@freemail.hu>
6087 * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
6088 marshalling of arrays. Fixes #50116.
6090 * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
6092 * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
6093 points to a vtable in the dying appdomain.
6095 * appdomain.c (mono_domain_unload): Move the notification of OnUnload
6096 listeners into unmanaged code inside the lock.
6098 * object.c (mono_class_vtable): Turn off typed allocation in non-root
6099 domains and add some comments.
6101 2003-10-25 Martin Baulig <martin@ximian.com>
6103 * class.h (MonoGenericInst): Added `MonoClass *klass' field.
6105 * image.h (MonoImage): Added `GHashTable *typespec_cache'.
6107 * metadata.c (mono_metadata_parse_generic_inst): Renamed to
6108 `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
6109 currently parsing. Create the generic class and store it in
6110 `generic_inst->klass' before parsing the type arguments. This is
6111 required to support "recursive" definitions; see mcs/tests/gen-23.cs
6113 (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6114 to support recursive typespec entries.
6116 * class.c (mono_class_setup_parent): If our parent is a generic
6117 instance, we may get called before it has its name set.
6118 (mono_class_from_generic): Splitted into
6119 mono_class_create_from_generic() and mono_class_initialize_generic().
6121 2003-10-25 Martin Baulig <martin@ximian.com>
6123 * icall.c (ves_icall_Type_BindGenericParameters): Return a
6124 `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6125 ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6126 ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6128 * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6129 (create_typespec): Likewise.
6130 (mono_reflection_bind_generic_parameters): Return a
6131 `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6132 (mono_reflection_inflate_method_or_ctor): New public function.
6134 * reflection.h (MonoReflectionGenericInst): New typedef.
6136 2003-10-24 Zoltan Varga <vargaz@freemail.hu>
6138 * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6139 inside the domain lock. Fixes #49993.
6141 * object.c (mono_class_vtable): When typed allocation is used,
6142 allocate vtables in the GC heap instead of in the mempool, since the
6143 vtables contain GC descriptors which are used by the collector even
6144 after the domain owning the mempool is unloaded.
6146 * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6148 * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6149 reflect what it does. Also invalidate mempools instead of freeing
6150 them if a define is set.
6152 * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6155 * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6156 hold the finalizable objects in this domain.
6158 * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6161 * appdomain.c (mono_domain_set): New function to set the current
6162 appdomain, but only if it is not being unloaded.
6164 * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6165 appdomain which is being unloaded.
6167 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6168 unloading of the root appdomain.
6170 * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6171 icall to execute a method in another appdomain. Intended as a
6172 replacement for InternalSetDomain, which can confuse the code
6173 generation in the JIT.
6175 * appdomain.c (mono_domain_is_unloading): New function to determine
6176 whenever an appdomain is unloading.
6178 * appdomain.c (mono_domain_unload): New function to correctly unload
6181 * assembly.c (mono_assembly_load_references): Check that an assembly
6182 does not references itself.
6184 * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6185 domain manually, it asks the finalizer thread to do it, then waits for
6186 the result. Also added a timeout.
6188 * icall.c: Register the new icalls.
6190 * threads.h threads.c: Export the mono_gc_stop_world and
6191 mono_gc_start_world functions.
6193 * mempool.h mempool.c (mono_mempool_invalidate): New debugging
6194 function to fill out the mempool with 0x2a.
6196 2003-10-22 Zoltan Varga <vargaz@freemail.hu>
6198 * reflection.h (MonoReflectionMethodAux): New structure to store
6199 information which is rarely used, thus is not in the MonoMethod
6202 * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6205 * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6206 and marshalling info into the aux structure.
6208 * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6209 from the aux structure.
6211 * loader.c (mono_method_get_param_names): Retrieve the param names from
6214 2003-10-21 Zoltan Varga <vargaz@freemail.hu>
6216 * exception.h exception.c: Add AppDomainUnloadedException && fix
6219 2003-10-21 Dick Porter <dick@ximian.com>
6222 (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6223 patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6225 2003-10-21 Martin Baulig <martin@ximian.com>
6227 * reflection.c (mono_reflection_bind_generic_parameters):
6228 `klass->parent' is NULL for interfaces.
6230 2003-10-21 Martin Baulig <martin@ximian.com>
6232 * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6234 2003-10-20 Zoltan Varga <vargaz@freemail.hu>
6236 * exception.c (mono_exception_from_name_msg): New helper function for
6237 creating exceptions and initializing their message field.
6239 * exception.c: Simplify functions using the new helper.
6241 * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6244 * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6245 mono_raise_exception, since otherwise gcc doesn't generate the function
6246 epilog for raise_exception, confusing the stack unwinding in the JIT.
6249 * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6250 PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6253 2003-10-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6255 * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6258 2003-10-18 Lluis Sanchez Gual <lluis@ximian.com>
6260 * icall.c: Removed GetUninitializedObject method because
6261 AllocateUninitializedClassInstance does the same.
6263 2003-10-18 Martin Baulig <martin@ximian.com>
6265 * class.c (inflate_generic_signature): Renamed to
6266 mono_class_inflate_generic_signature() and made it public.
6267 (my_mono_class_from_generic_parameter): New static function; if we
6268 don't already have the generic parameter's MonoClass, create a
6269 very simple one which is just used internally in the runtime and
6270 not passed back to managed code.
6272 * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6274 * metadata.h (MonoMethodSignature): Moved the
6275 `MonoGenericParam *gen_params' to the MonoMethodHeader.
6276 (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6278 * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6279 ves_icall_MonoMethod_GetGenericArguments(); this is now an
6280 interncall on the MonoMethod class, not on MethodInfo.
6281 (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6282 calling mono_reflection_bind_generic_method_parameters() directly.
6284 * loader.c (mono_method_get_signature): If this is a MethodSpec;
6285 return the already computed `method->signature'.
6286 (method_from_methodspec): New static function to load a method
6287 from a MethodSpec entry.
6288 (mono_get_method_from_token): Call the new method_from_methodspec()
6289 for MethodSpec tokens.
6290 (mono_get_method_from_token): If we're a generic method, load the
6293 * reflection.c (mono_image_get_memberref_token): Allow
6294 MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6296 (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6297 (mono_image_create_token): First check whether it's a generic
6298 method (so we'd need to create a MethodSpec), then do the other
6300 (mono_reflection_bind_generic_method_parameters): Return a
6301 `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6302 called directly from the interncall.
6304 2003-10-17 Zoltan Varga <vargaz@freemail.hu>
6306 * reflection.c (load_public_key): Move loading of the public key
6309 * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6311 * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6314 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6315 culture, hash_alg and public_key. Fixes #49555.
6317 2003-10-17 Martin Baulig <martin@ximian.com>
6319 * class.h (MonoGenericInst): Moved this declaration here and added
6320 `MonoMethod *generic_method'.
6323 (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6324 (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6326 * metadata.c (mono_metadata_type_equal): Two types of
6327 MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6328 index; ie. don't compare the address of the `MonoGenericParam'
6330 (mono_metadata_load_generic_params): Removed the `MonoMethod
6333 * metadata.h (MonoGenericInst): Moved declaration to class.h.
6334 (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6336 * reflection.c (method_encode_signature): Encode the number of
6338 (encode_generic_method_sig): New static function.
6339 (method_encode_methodspec): New static function; creates an entry
6340 in the MethodSpec table for a generic method.
6341 (mono_image_get_methodspec_token): New static function.
6342 (mono_image_create_token): Call mono_image_get_methodspec_token()
6343 for generic methods.
6344 (mono_reflection_bind_generic_method_parameters): New public
6345 function. Instantiates a generic method.
6347 2003-10-16 Martin Baulig <martin@ximian.com>
6349 * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6350 *gen_params' here from MonoMethodHeader.
6352 * metadata.c (mono_metadata_parse_method_signature): If we have
6353 generic parameters, initialize `method->gen_params' and then set
6354 the correct `type->data.generic_param' in all the parameters.
6356 2003-10-16 Zoltan Varga <vargaz@freemail.hu>
6358 * threads.c (mono_threads_get_default_stacksize): New function to
6359 return the default stacksize.
6361 * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6362 termination of the finalizer thread, since the previous method had
6363 race conditions. Fixes #49628.
6365 * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6366 as for the other managed threads.
6368 2003-10-16 Martin Baulig <martin@ximian.com>
6370 * class.c (inflate_generic_signature): Copy `generic_param_count'
6373 * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6376 * metadata.c (mono_metadata_parse_method_signature): Actually set
6377 the `method->generic_param_count' here.
6378 (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6380 2003-10-15 Zoltan Varga <vargaz@freemail.hu>
6382 * object.h: Add a new field to TypedRef to simplify the implementation
6383 of the REFANY opcodes in the JIT.
6385 * icall.c: Make use of the new field.
6387 * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6390 2003-10-15 Martin Baulig <martin@ximian.com>
6392 * class.c (mono_class_from_gen_param): Renamed to
6393 mono_class_from_generic_parameter() and moved most of the
6394 functionality from mono_reflection_define_generic_parameter()
6395 here; ie. we create a "real" class here.
6396 (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6397 MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6398 previously been called.
6400 * class.h (MonoGenericParam): Moved the declaration of this struct
6401 here from metadata.h and added `MonoMethod *method'.
6403 * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6406 * loader.c (mono_get_method_from_token): If we have any generic
6407 parameters, call mono_metadata_load_generic_params() to read them
6408 from the MONO_TABLE_GENERICPAR.
6410 * metadata.c (mono_metadata_load_generic_params): Added
6411 `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6413 * metadata.h (MonoMethodSignature): Replaced
6414 `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6415 (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6417 * reflection.c (mono_reflection_define_generic_parameter): Moved
6418 most of the functionality into the new
6419 mono_class_from_generic_parameter(); set the `method' field if
6420 we're a method parameter.
6422 2003-10-13 Bernie Solomon <bernard@ugsolutions.com>
6424 * marshal.c (emit_struct_conv): if native size is 0
6427 2003-10-14 Martin Baulig <martin@ximian.com>
6429 * icall.c: The generics API has changed in the spec since it was
6430 added to System.Type; these modifications make it match the spec
6432 (ves_icall_Type_GetGenericParameters): Renamed to
6433 `ves_icall_Type_GetGenericArguments'.
6434 (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6435 (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6436 `ves_icall_MonoType_get_HasGenericArguments'.
6437 (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6438 `ves_icall_MonoType_get_IsGenericParameter'.
6439 (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6440 this is no interncall anymore.
6441 (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6442 `ves_icall_TypeBuilder_get_IsGenericParameter'.
6444 2003-10-14 Martin Baulig <martin@ximian.com>
6446 * reflection.c (mono_reflection_bind_generic_parameters): Also
6447 inflate generic methods if we're reading the class from IL.
6449 2003-10-13 Martin Baulig <martin@ximian.com>
6451 * reflection.c (mono_reflection_define_generic_parameter): This
6452 method isn't called directly from the icall anymore; take a
6453 `MonoReflectionAssemblyBuilder *' so we can use this for type and
6454 method generic parameters.
6455 (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6456 (method_builder_encode_signature): Encode generic parameters.
6457 (mono_image_get_method_info): Write generic params to the
6458 MONO_TABLE_GENERICPARAM table.
6460 * reflection.h (MonoReflectionMethodBuilder): Added
6461 `MonoArray *generic_params'.
6463 * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6465 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6466 wrapper for mono_reflection_define_generic_parameter().
6467 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
6469 2003-10-13 Zoltan Varga <vargaz@freemail.hu>
6471 * marshal.h: Add missing function to fix build.
6473 * marshal.c (mono_marshal_get_native_wrapper): Add support for
6474 the SetLastError pinvoke attribute.
6476 * marshal.c (mono_marshal_set_last_error): New helper function called
6477 by the generated code.
6479 * marshal.c (mono_mb_emit_branch): New helper function.
6481 * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6483 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6484 classes as parameters and return values of delegates. Fixes #29256.
6486 2003-10-12 Bernie Solomon <bernard@ugsolutions.com>
6488 * locales.c: use gint32 in non HAVE_ICU case
6490 2003-10-11 Martin Baulig <martin@ximian.com>
6492 * mono-debug.c (mono_debug_add_method): Added a workaround for
6495 2003-10-10 Zoltan Varga <vargaz@freemail.hu>
6497 * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6498 delegates passed to native code must use the STDCALL calling
6499 convention. Fixes #35987.
6501 2003-10-10 Martin Baulig <martin@ximian.com>
6503 * class.c (inflate_generic_type): If we're inflating for a generic
6504 type instance (and not for a generic method), return
6505 MONO_TYPE_MVAR unchanged.
6507 2003-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6509 * string-icalls.c: Join ignores null strings in the source array.
6510 * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6511 * threads.c: GetAvailableTheads is slightly more accurate.
6513 2003-10-09 Bernie Solomon <bernard@ugsolutions.com>
6515 * threads.h threads.c : add mono_threads_set_default_stacksize
6516 and pass default to CreateThread calls.
6518 2003-10-09 Dick Porter <dick@ximian.com>
6522 * locales.c: Internal calls for constructing CultureInfo and
6523 related objects from libicu (if its available.)
6525 2003-10-09 Zoltan Varga <vargaz@freemail.hu>
6527 * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6529 2003-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6531 * threadpool.c: added an argument to async_invoke_thread that is the
6532 item to process, pass the MonoAsyncResult to the thread start function
6533 when creating a new thread. This way we don't need to acquire any lock
6534 when we're creating a new thread. Readded a semaphore for faster
6535 response times (instead of that Sleep i added).
6537 2003-10-08 Bernie Solomon <bernard@ugsolutions.com>
6539 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6540 get daylight change dates better on Windows, fix handling
6541 of platforms without tm_gmtoff.
6543 2003-10-06 Martin Baulig <martin@ximian.com>
6545 * class.c (inflate_generic_method): Renamed to
6546 mono_class_inflate_generic_method() and made public.
6547 (mono_class_init): Don't inflate the generic methods here.
6548 (mono_class_from_generic): Added `gboolean inflate_methods'
6549 argument. Inflate the methods here.
6551 * loader.c (mono_method_get_param_names): Ignore instances of
6552 generic types for the moment.
6554 * reflection.c (fixup_method): Added support for inflated methods.
6555 (mono_image_create_token): Use mono_image_get_methodref_token()
6556 for inflated methods.
6557 (mono_custom_attrs_from_param): Ignore instances of generic types
6559 (mono_reflection_bind_generic_parameters): New public function.
6560 Moved all the functionality from
6561 ves_icall_Type_BindGenericParameters() here and added support for
6563 (mono_reflection_define_generic_parameter): Initialize
6564 `klass->methods' here.
6566 * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6567 functionality into mono_reflection_define_generic_parameter().
6568 (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6569 TypeBuilder, return that TypeBuilder.
6571 2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6573 * appdomain.c: removed mono_delegate_semaphore.
6576 (mono_thread_pool_add): moved hash table creation inside and the thread
6577 creation outside of the critical region.
6578 (mono_thread_pool_finish): removed obsolete code.
6579 (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6580 continue or exit the thread depending on the queue.
6582 2003-10-07 Bernie Solomon <bernard@ugsolutions.com>
6584 * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6585 marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6586 handle more bool marshalling options
6588 2003-10-07 Zoltan Varga <vargaz@freemail.hu>
6590 * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6591 arrays of structs. Also add a more descriptive error message when
6592 a structure member is marshalled as LPArray.
6594 2003-10-06 Zoltan Varga <vargaz@freemail.hu>
6596 * marshal.c (mono_marshal_get_native_wrapper): Add support for
6597 marshalling arrays of complex types. Fixes #29098. Also remove an
6598 usused and incomplete function.
6600 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6602 * gc.c: report heap_size - free_bytes as total memory allocated
6605 2003-10-05 Zoltan Varga <vargaz@freemail.hu>
6607 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally
6608 fix timezone handling problems on Windows.
6610 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6611 asserts when the year is outside the range handled by ms the functions.
6613 * class.c (setup_interface_offsets): If the class is an interface,
6614 fill out its interface_offsets slot.
6616 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6618 * threadpool.c: mark threadpool threads as background.
6620 2003-10-03 Bernie Solomon <bernard@ugsolutions.com>
6622 * decimal.c - define DECINLINE to nothing if not using GCC
6624 2003-10-03 Zoltan Varga <vargaz@freemail.hu>
6626 * assembly.c: More refcount fixes.
6628 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6630 * string-icalls.c: if we're not trimming, return the same string.
6631 When not splitting, don't create a new string.
6633 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6636 (mono_image_open): increment the ref_count inside the critical section.
6638 2003-10-02 Zoltan Varga <vargaz@freemail.hu>
6640 * image.c (mono_image_open): Fix reference counting bug.
6642 2003-09-30 Bernie Solomon <bernard@ugsolutions.com>
6644 * marshal.c (mono_marshal_type_size) struct alignment changed for
6645 64bit machines. (emit_ptr_to_str_conv) Fix bool conversions for
6646 64bits. Avoid leak in mono_marshal_get_native_wrapper when
6647 mono_lookup_pinvoke_call throws.
6649 2003-09-30 Zoltan Varga <vargaz@freemail.hu>
6651 * reflection.c (mono_reflection_parse_type): Fix #49114.
6653 * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6654 temporary workaround for cygwin header problem.
6656 * object.c (mono_object_isinst): Synchronize this with the code
6657 generated by the JIT for casts.
6659 2003-09-29 Zoltan Varga <vargaz@freemail.hu>
6661 * reflection.c (encode_type): Fix #38332.
6663 2003-09-26 Zoltan Varga <vargaz@freemail.hu>
6665 * marshal.c (mono_marshal_method_from_wrapper): New function to return
6666 the original method from the wrapper method.
6668 2003-09-25 Martin Baulig <martin@ximian.com>
6670 * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6671 interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6672 (ves_icall_Type_get_IsGenericInstance): New interncall.
6674 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6676 * object.c: fix cast warning in big endian code.
6678 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6680 * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6682 2003-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6684 * assembly.c: don't call check_env from mono_assembly_load. It's
6685 already done once in mono_assemblies_init and may cause headaches when
6686 multiple threads are loading assemblies.
6688 2003-09-19 Martin Baulig <martin@ximian.com>
6690 * reflection.c (mono_reflection_define_generic_parameter): Don't
6691 allocate `klass->methods', set `klass->flags' to
6692 TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
6694 2003-09-18 Martin Baulig <martin@ximian.com>
6696 * class.c (mono_class_init): Don't create `class->methods' if it's
6697 already initialized.
6699 * metadata.c (mono_metadata_load_generic_params): Make this
6702 * reflection.c (mono_reflection_define_generic_parameter): Set
6703 parent class and interfaces from the constraints.
6705 * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
6706 to keep this struct in sync with the declaration in TypeBuilder.cs.
6708 2003-09-17 Martin Baulig <martin@ximian.com>
6710 * metadata.h (MonoType): Replaced the data's `int type_param'
6711 field with `MonoGenericParam *generic_param'.
6712 (MonoGenericParam): Added `MonoClass *klass'.
6714 * class.c (mono_class_from_gen_param): Removed the
6715 `MonoImage *image' and `int type_num' arguments.
6717 * metadata.c (mono_metadata_parse_generic_param): New static
6718 method; creates a MonoGenericParam which just contains the index.
6719 (do_mono_metadata_parse_type): Call
6720 mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
6723 * reflection.c (mono_image_typedef_or_ref): Generic type
6724 parameters may be in the same assembly, but never use a typedef
6726 (mono_reflection_define_generic_parameter): We're now creating a
6727 "real" class for the type parameter; it's now safe to call
6728 mono_class_from_mono_type() on the class'es type, it'll do the
6731 2003-09-16 Martin Baulig <martin@ximian.com>
6733 * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
6734 `symfile->range_entry_size' and `symfile->class_entry_size' here;
6735 the `symfile' data structure must be fully initialized before it
6736 gets added to the table.
6738 2003-09-15 Zoltan Varga <vargaz@freemail.hu>
6740 * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
6742 * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
6743 class init trampolines.
6745 2003-09-11 Zoltan Varga <vargaz@freemail.hu>
6747 * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
6748 to the built-in profiler to turn off time and allocation profiling
6751 2003-09-10 Zoltan Varga <vargaz@freemail.hu>
6753 * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
6756 * debug-helpers.c (mono_method_full_name): Print the wrapper type
6757 in human readable form.
6759 2003-09-08 Zoltan Varga <vargaz@freemail.hu>
6761 * reflection.c icall.c: Fixed warnings.
6763 * image.c (load_class_names): Use a temporary hash table to hold the
6764 namespaces in order to avoid doing many string comparisons.
6766 * image.h: Fix typo.
6768 * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
6769 Pass NULL instead of g_direct_equal to the GHashTable constructor
6770 since the NULL case is short-circuited inside g_hash_table_lookup,
6771 leading to better performance.
6773 * metadata.c (mono_metadata_custom_attrs_from_index): New function to
6774 obtain the first custom attribute for a given index. Depends on the
6775 CustomAttribute table being sorted by the parent field.
6777 * reflection.c (mono_custom_attrs_from_index): Use the new function
6778 for better performance.
6780 2003-09-07 Martin Baulig <martin@ximian.com>
6782 * class.c (mono_class_init): If we're a generic instance, inflate
6783 all our methods instead of loading them from the image.
6784 (mono_class_from_generic): Set `class->methods = gklass->methods'.
6786 2003-09-07 Martin Baulig <martin@ximian.com>
6788 * mono-debug-debugger.c: Added support for constructors.
6790 2003-09-06 Martin Baulig <martin@ximian.com>
6792 * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
6795 * reflection.c (mono_reflection_setup_generic_class): Call
6796 ensure_runtime_vtable() to create the vtable.
6798 2003-09-05 Martin Baulig <martin@ximian.com>
6800 * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
6803 2003-09-04 Martin Baulig <martin@ximian.com>
6805 * reflection.c (mono_reflection_define_generic_parameter): Generic
6806 parameters start with zero.
6808 2003-09-04 Martin Baulig <martin@ximian.com>
6810 * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6812 * reflection.h (MonoReflectionGenericParam): New typedef.
6813 (MonoReflectionTypeBuilder): Added `generic_params' fields to get
6814 the generic parameters from the managed TypeBuilder.
6816 * reflection.c (mono_reflection_define_generic_parameter): New function.
6817 (mono_reflection_create_runtime_class): Encode generic parameters.
6818 (mono_reflection_setup_generic_class): New function; this is
6819 called after adding adding all generic params to the TypeBuilder.
6820 (encode_type): Added MONO_TYPE_VAR.
6822 2003-09-04 Zoltan Varga <vargaz@freemail.hu>
6824 * class.h class.c (mono_class_needs_cctor_run): Moved this method
6827 * assembly.h assembly.c: Moved the AOT loading code into an assembly
6830 2003-09-03 Zoltan Varga <vargaz@freemail.hu>
6832 * reflection.h reflection.c class.h class.c: Delete duplicate
6833 definition of mono_type_get_name () from reflection.c and export the
6836 * class.c: Class loading fixes from Bernie Solomon
6837 (bernard@ugsolutions.com).
6839 * reflection.c: Endianness fixes from Bernie Solomon
6840 (bernard@ugsolutions.com).
6842 2003-09-01 Zoltan Varga <vargaz@freemail.hu>
6844 * assembly.h assembly.c: Define a file format version for AOT
6847 * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
6849 * appdomain.h (MonoJitInfo): New field to determine whenever the
6850 code is domain neutral.
6852 2003-08-31 Miguel de Icaza <miguel@ximian.com>
6854 * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
6856 2003-08-30 Zoltan Varga <vargaz@freemail.hu>
6858 * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir):
6859 (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
6860 Avoid caching the result since strings must be domain specific. Fixes
6863 2003-08-29 Zoltan Varga <vargaz@freemail.hu>
6865 * marshal.c (mono_marshal_init): Make this callable multiple times
6866 since it is hard to find a correct place to call it.
6868 * object.c (mono_runtime_class_init): Execute static constructors in
6869 the correct appdomain.
6871 * image.c (build_guid_table): Handle the case when multiple images have
6874 2003-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6876 * icall.c: added a couple of icalls for System.Web.
6878 2003-08-28 Martin Baulig <martin@ximian.com>
6880 * icall.c (ves_icall_Type_BindGenericParameters): Use
6881 `klass->generic_inst' instead of `&klass->byval_arg' in the
6882 mono_type_get_object() call. The returned type must be
6883 MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
6885 2003-08-27 Zoltan Varga <vargaz@freemail.hu>
6889 * object.c (mono_class_proxy_vtable): Make it thread safe.
6891 * pedump.c: Fix warning.
6893 * object.c appdomain.h: Get rid of metadata_section.
6894 It is no longer needed and it was causing deadlocks with domain->lock.
6896 * appdomain.c (add_assemblies_to_domain): Make it thread safe.
6898 2003-08-26 Martin Baulig <martin@ximian.com>
6900 * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
6902 2003-08-26 Martin Baulig <martin@ximian.com>
6904 * pedump.c (main): Call mono_metadata_init(),
6905 mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
6906 and mono_loader_init().
6908 2003-08-26 Zoltan Varga <vargaz@freemail.hu>
6910 * loader.h: Add missing include to fix build.
6912 * image.h: mono_image_load_references is no more.
6914 * assembly.c: Reworked assembly loading to make it really thread safe.
6915 After these changes, the assembly returned by mono_assembly_open is
6916 fully initialized, i.e. all its references assemblies are loaded.
6918 * assembly.c (mono_image_load_references): Renamed to
6919 mono_assembly_load_references, and made private, since clients no
6920 longer need to call it.
6922 * class.c: Removed calls to mono_assembly_load_references, since it was
6923 a source of deadlocks.
6925 * loader.h loader.c class.h class.c: Protect data structures using a
6926 new lock, the loader lock.
6928 * class.c (mono_class_setup_vtable): Create temporary hash tables and
6929 GPtrArrays only when needed.
6931 * class.c (mono_class_layout_fields): Ignore the dummy field inserted
6932 into empty structures by mcs. Fixes pinvoke7.cs.
6934 * domain.c (mono_init): Call a new initialization function.
6936 * appdomain.c (mono_runtime_init): Call the new initializer function
6937 of the marshal module.
6939 * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
6940 inserted into empty structures by mcs. Fixes pinvoke7.cs.
6942 * marshal.h marshal.c: Added locks around the wrapper caches to make
6943 this module thread safe.
6945 * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
6946 this argument. Fixes pinvoke1.exe.
6948 2003-08-25 Lluis Sanchez <lluis@ximian.com>
6950 * object.h: Added call_type field to MonoMethodMessage and the corresponding
6951 enumeration of values. Removed fields to store remote call output values in
6952 MonoAsyncResult. Not needed any more.
6953 * object.c: Initialize call_type and async_result fields in mono_message_init.
6954 * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
6955 dispatching the message.
6956 mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
6957 async call to finish. To do it use a message with EndInvoke call type.
6959 2003-08-25 Zoltan Varga <vargaz@freemail.hu>
6961 * loader.h loader.c (mono_method_hash_marhal_info): New function which
6962 determines whenever a method has marshalling info.
6964 2003-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6966 * assembly.c: fix the build on windows.
6968 2003-08-22 Lluis Sanchez <lluis@ximian.com>
6970 * object.cs: Fixed bug #47785.
6972 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
6974 * string-icalls.c (StringReplace): If their are no occurances of
6975 the old string found return a reference to the supplied
6976 string. This saves some memory and matches MS behavoir.
6978 2003-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6980 * socket-io.c: fixed compilation for systems that define AF_INET6
6981 and don't define SOL_IP/SOL_IPV6.
6983 2003-08-21 Zoltan Varga <vargaz@freemail.hu>
6985 * object.c (mono_object_isinst): Fix casts to TransparentProxy in
6986 the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
6988 * rawbuffer.c rawbuffer.h: Make this module thread safe.
6990 * domain.c: Make this module thread safe.
6992 * domain.c (mono_init): Call new initialization function.
6994 * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
6995 reference types too. Fixes #38812.
6997 * image.c (mono_image_init): Fixed warnings.
6999 * class.c (mono_class_from_typeref): Handle assembly load failure
7002 * appdomain.c (add_assemblies_to_domain): Handle the case when
7003 the references of an assembly are not yet loaded.
7005 * metadata.c image.c assembly.c: Moved initialization of global
7006 variables to a separate function called at startup since lazy
7007 initialization of these variables is not thread safe.
7009 * image.c assembly.c: Made this module thread safe by adding locks in
7010 the appropriate places.
7012 * domain.c (mono_init): Call the new initialization functions of the
7015 2003-08-20 Lluis Sanchez Gual <lluis@ximian.com>
7017 * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
7018 make a direct call. It is proxy's work to make the call asynchronous.
7019 mono_delegate_end_invoke(): If the targe is a proxy, just collect
7021 * object.cs: mono_method_call_message_new(): read AsyncResult and
7022 state object from parameters list, if this info is requested.
7023 * object.h: Added fields to store remote call output values in
7024 MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
7026 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7028 * object.h: add needed fields to MonoThread.
7029 * threads.c, threads.h: allow registering a function to cleanup data
7030 allocated per thread by the JIT.
7032 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7034 * loader.h: portability fix by Bernie Solomon
7035 * <bernard@ugsolutions.com>.
7037 2003-08-16 Zoltan Varga <vargaz@freemail.hu>
7039 * reflection.h reflection.c (mono_param_get_objects): Changed this to
7040 return a MonoArray. This simplifies the code and also ensures that
7041 the cache allways contains an object reference as a value.
7043 * icall.c (ves_icall_get_parameter_info): Simplified using the new
7046 2003-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7048 * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
7049 fixes a problem with byte ordering when getting the address family for
7052 2003-08-15 Zoltan Varga <vargaz@freemail.hu>
7054 * .cvsignore: Added monosn.
7056 * reflection.h reflection.c loader.c: Added support for parameter
7057 marshalling to dynamically created types. Fixes #47295.
7059 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
7061 * rand.c: remove useless warnings.
7063 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7065 * class.c: implemented ldtoken for methods and fieldrefs.
7067 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7069 * threadpool.c: when mono_async_invoke was called, no one took care of
7070 monitoring the queue. So if the method invoked took some time and we
7071 got new async invoke requests after 500 ms (the thread created waited
7072 that long in WaitForSingleObject), the new async invoke was not called
7073 until the previous one finished.
7075 This is fixed now. Thanks to Totte for helping with it.
7077 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7079 * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
7081 2003-08-11 Martin Baulig <martin@ximian.com>
7083 * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
7085 2003-08-06 Martin Baulig <martin@ximian.com>
7087 * mono-debug-debugger.c: Added support for static fields,
7088 properties and methods.
7090 2003-08-06 Martin Baulig <martin@ximian.com>
7092 * mono-debug-debugger.c: Don't store the MonoString's vtable to
7093 make this work for applications with multiple application domains.
7095 2003-08-04 Martin Baulig <martin@ximian.com>
7097 * mono-debug-debugger.c: Completely reworked the type support; the
7098 most important thing is that we're now just using one single
7099 `MonoType' instance per type.
7101 Sat Aug 2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
7103 * mono-endian.h, mono-endian.c, icall.c: Added icall
7104 ves_icall_System_Double_AssertEndianity to assert double word endianity
7105 on ARM (FPA). The icall uses a macro defined in mono-endian.h.
7107 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7109 * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7110 support, icalls and fixes.
7112 2003-07-31 Miguel de Icaza <miguel@ximian.com>
7114 * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7115 classes that are a punctuation character in .NET is not the same a
7118 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7120 * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7122 2003-07-29 Miguel de Icaza <miguel@ximian.com>
7124 * icall.c: Add new MemCopy internalcall.
7125 (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7126 Simplified code; It is not necessary to handle all the cases here,
7127 as the C# code takes care of it. Only handle the case of the name
7128 resource embedded into the assembly.
7130 Changed signature to return the data pointer and the size of the
7133 2003-07-26 Miguel de Icaza <miguel@ximian.com>
7135 * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7136 encoded. (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7138 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
7140 * socket-io.c: ignore EINTR error in select.
7142 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7144 * class.h, class.c: removed unused subclasses field in MonoClass.
7146 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
7148 * icall.c: improve fix of get_base_definition(). If the parent class
7149 doesn't have the mehod, look at the parent of the parent.
7150 * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7151 to check if a parameter is an in or out parameter
7152 (PARAM_ATTRIBUTE_IN is not set by default).
7153 mono_method_return_message_restore(): Use mono_class_value_size to
7154 get the size of a value type. mono_type_stack_size (parameterType)
7155 does not return the correct value if parameterType is byRef.
7156 mono_load_remote_field(), mono_load_remote_field_new(),
7157 mono_store_remote_field(), mono_store_remote_field_new():
7158 raise exception if the remote call returns an exception.
7160 2003-07-28 Martin Baulig <martin@ximian.com>
7162 * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7163 method. This is a wrapper around mono_runtime_invoke() which
7164 boxes the instance object if neccessary.
7166 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7168 * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7169 metadata.h, row-indexes.h, verify.c: first cut of generics support.
7171 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7173 * icall.c: disable mcs bug workaround.
7175 2003-07-21 Miguel de Icaza <miguel@ximian.com>
7177 * object.c (mono_runtime_class_init): Take the metadata_section
7178 mutex before obtaining the domain mutex.
7180 * appdomain.h: Added definition of metadata_section mutex here.
7182 * object.c: define metadata_mutex here.
7184 2003-07-24 Ravi Pratap <ravi@ximian.com>
7186 * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7189 2003-07-24 Lluis Sanchez Gual <lluis@ximian.com>
7191 * reflection.c: Fix bug #46669
7193 2003-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7198 * object.h: fill in the type name for TypeLoadException.
7200 2003-07-23 Ravi Pratap <ravi@ximian.com>
7202 * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7203 relationship between TypeBuilders while compiling corlib) and bug
7204 45993 (Array types returned from the runtime while compiling
7205 corlib were from the loaded corlib).
7207 2003-07-22 Martin Baulig <martin@ximian.com>
7209 * mono-debug-debugger.c: Reworked the type support a bit more;
7210 distinguish between types and classes.
7212 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7214 * icall.c: add IsArrayImpl icall.
7216 2003-07-22 Zoltan Varga <vargaz@freemail.hu>
7218 * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7219 initializing real_size only once. Also fix bug #46602.
7221 2003-07-21 Jerome Laban <jlaban@wanadoo.fr>
7223 * object.c: Renamed mono_metadata_section to metadata_section.
7225 2003-07-21 Lluis Sanchez Gual <lluis@ximian.com>
7227 * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7228 empty array if the type is an array. Fixed.
7229 ves_icall_MonoMethod_get_base_definition: if the base method
7230 is abstract, get the MethodInfo from the list of methods of
7232 * reflection.c: ParameterInfo.PositionImpl should be zero-based
7233 and it was 1-based. Fixed in mono_param_get_objects.
7235 2003-07-20 Martin Baulig <martin@ximian.com>
7237 * mono-debug.h: Set version number to 31.
7238 (mono_debug_init): Added `MonoDomain *' argument.
7240 * mono-debug-debugger.c: Reworked the type support; explicitly
7241 tell the debugger about builtin types; pass the `klass' address to
7244 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7246 * image.c: Allow new metadata tables to be loaded without a
7247 warning. Also update the warning message to give the new constant value.
7249 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7251 * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7252 metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c:
7253 array type representation changes.
7255 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7257 * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7258 on Environment.Exit () call.
7260 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7262 * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7263 requires a matching corlib.
7265 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
7267 * Changelog: My editor decided to add a CR to each line. Sorry about that.
7268 Committed again without the CRs.
7270 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
7272 * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7273 getting it from the "this" socket instance. Did not work
7274 if the socket is a subclass of Socket.
7275 Also fixed bug #35371.
7277 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7279 * metadata.c: fixed size for TypedByRef.
7280 * loader.c: when searching for a method, consider the vararg amrker.
7281 * unicode.c, decimal.c: constify some arrays.
7283 2003-07-15 Dick Porter <dick@ximian.com>
7285 * socket-io.c: Fixed compilation for gcc < 3.2.
7287 Fixed compilation for machines that don't have AF_INET6 (thanks to
7288 Bernie Solomon <bernard@ugsolutions.com> for that part.)
7290 Fixed compile warnings.
7292 Fixed formatting and line endings.
7294 2003-07-14 Jerome Laban <jlaban@wanadoo.fr>
7297 * socket-io.c: Added IPv6 support.
7299 2003-07-13 Zoltan Varga <vargaz@freemail.hu>
7301 * class.c (mono_class_is_assignable_from): New function to implement
7302 the is_assignable_from logic. Used by mono_object_isinst,
7303 Type::IsAssignableFrom () and the interpreter.
7305 * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7306 Object, even interfaces.
7308 * object.c (mono_object_isinst): Implement in terms of
7311 * icall.c (ves_icall_type_is_assignable_from): New icall.
7313 2003-07-11 Zoltan Varga <vargaz@freemail.hu>
7315 * domain.c (foreach_domain): fix compiler warning.
7317 2003-07-11 Dietmar Maurer <dietmar@ximian.com>
7319 * image.c (load_metadata_ptrs): use g_strndup because strndup is
7320 not available on all plattforms
7322 2003-07-10 Zoltan Varga <vargaz@freemail.hu>
7324 * image.h image.c: Store the metadata version string in MonoImage.
7325 * icall.c: New icall to retrieve the image version.
7326 * reflection.c (create_dynamic_image): Fill in the image version field
7327 * reflection.c (build_compressed_metadata): Use the image version
7328 from the image structure.
7330 2003-07-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7332 * appdomain.c: modified comment.
7333 * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7334 That will be its last iteration when mono_gc_cleanup is called from
7335 mono_runtime_cleanup and before the domain is unloaded.
7339 2003-07-04 Dietmar Maurer <dietmar@ximian.com>
7341 * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7344 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7346 * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7347 rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7348 Bernie Solomon <bernard@ugsolutions.com>.
7350 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7352 * object.c, object.h: provide mono_object_new_fast() for faster
7353 allocation in some special cases.
7355 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7357 * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7358 mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7360 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7362 * threadpool.c: fix leaks.
7364 2003-07-01 Dick Porter <dick@ximian.com>
7366 * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7367 using MonoGHashTables. Fixes threadpool bug posted to list.
7369 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7371 * image.h, image.c: added support to load an assembly from a byte array.
7372 * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added
7373 assembly bundle support.
7375 2003-06-27 Dietmar Maurer <dietmar@ximian.com>
7377 * threadpool.c (mono_thread_pool_add): keep a reference to the
7378 AsyncResult to prevent GC
7380 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7382 * class.c: leak fix.
7384 2003-06-25 Dick Porter <dick@ximian.com>
7386 * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7387 for the async object, the WaitHandle object will close the handle.
7390 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7392 * class.c: in mono_array_class_get (), lookup from the hash with the
7393 same type we insert: this works around a bug in
7394 mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7395 lluis. The real fix will have to wait for after the release.
7397 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7399 * icall.c: fix memory leak when getting type members.
7401 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7403 * reflection.c: added more pubtoken special cases.
7405 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7407 * class.c: handle field offset correctly when class size
7408 is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7410 2003-06-20 Martin Baulig <martin@ximian.com>
7412 * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7415 2003-06-20 Martin Baulig <martin@ximian.com>
7417 * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7419 2003-06-20 Martin Baulig <martin@ximian.com>
7421 * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed. We
7422 just distinguish between variables in registers and variables at
7423 an offset relative to a register.
7425 2003-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7427 * icall.c: #ifdef out latest changes until mcs is fixed.
7429 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7431 * icall.c: return members in metadata order.
7433 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7435 * icall.c: avoid infinite loop in GetTimeZoneData.
7437 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7439 * icall.c: added Marshal.Prelink/All icalls.
7441 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7443 * object.c, object.h: fix warnings and do some overflow checking
7444 when creating arrays.
7446 2003-06-17 Dick Porter <dick@ximian.com>
7449 * file-io.c: File attributes need to be tweaked slightly when
7450 passed from the managed to the w32 world.
7452 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
7453 * profiler.h profiler-private.h profiler.c: Rework last patch
7454 based on suggestion by Paolo.
7456 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
7458 * profiler.h profiler-private.h profiler.c: Added infrastructure for
7459 instruction level coverage data collection.
7460 * profiler.h profiler.c (: Added new callback function which can be
7461 used by the profiler to limit which functions should have coverage
7463 * profiler.c (mono_profiler_load): Call g_module_build_path to
7464 generate the file name of the profiler library.
7466 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7468 * profiler.c, profiler.h, profiler-private.h: added basic block
7469 coverage profiling API.
7471 2003-06-15 Zoltan Varga <vargaz@freemail.hu>
7473 * reflection.c (mono_reflection_create_runtime_class): Add support
7474 for events in dynamically generated code.
7476 * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7479 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7481 * icall.c: when getting timezone info, return reasonable values if we
7482 can't get the actual data.
7484 2003-06-14 Dick Porter <dick@ximian.com>
7486 * threads.c (start_wrapper): Remove the reference to the thread
7487 object in the TLS data, so the thread object can be finalized.
7488 This won't be reached if the thread threw an uncaught exception,
7489 so those thread handles will stay referenced :-( (This is due to
7490 missing support for scanning thread-specific data in the Boehm GC
7491 - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7493 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7495 * reflection.c: ensure streams and tables are first allocated with
7496 ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7498 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7500 * icall.c: fixed GetElementType for byrefs (bug# 44792).
7502 2003-06-13 Zoltan Varga <vargaz@freemail.hu>
7504 * reflection.c (mono_reflection_create_runtime_class): Add support for
7505 properties to dynamically created classes.
7506 * reflection.c: Fix a few places where non-MonoObjects were inserted
7507 into the tokens hashtable.
7509 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7511 * object.c: some support to handle out of memory exceptions.
7513 2003-06-12 Dietmar Maurer <dietmar@ximian.com>
7515 * marshal.c (mono_marshal_get_native_wrapper): support reference
7518 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7520 * object.h, object.c: more portability stuff from Bernie Solomon.
7521 Unexport mono_object_allocate(). Added mono_object_unbox ().
7522 Set exitcode when an unhandled exception is thrown.
7524 2003-06-11 Dietmar Maurer <dietmar@ximian.com>
7526 * marshal.c (mono_marshal_get_native_wrapper): use custom
7527 marshaler for return types.
7529 2003-06-10 Dick Porter <dick@ximian.com>
7531 * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7532 ip_mreq is available
7534 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7536 * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7537 mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7538 by Bernie Solomon <bernard@ugsolutions.com>.
7540 2003-06-10 Zoltan Varga <vargaz@freemail.hu>
7542 * gc.c (mono_gc_init): Avoid error message on shutdown when
7543 GC_DONT_GC=1 is used.
7545 * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal):
7546 New icall to return the GUID of a module.
7548 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7550 * class.c: ensure instance size always includes the parent's size
7551 even whem class size is set explicitly (fixes bug#44294).
7553 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7555 * profiler.h, profiler.c: made the simple profiler thread-safe,
7556 get more accurate timing info. Allow the loading of an
7557 externally-developed profiler module.
7559 2003-06-05 Dietmar Maurer <dietmar@ximian.com>
7561 * marshal.c (mono_marshal_get_native_wrapper): improved
7562 class/byref arguments.
7563 (mono_marshal_get_native_wrapper): better string marshaling support.
7565 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7567 * class.c: ensure .pack and .size are handled correctly and
7568 simplified layout of static fields.
7570 2003-06-04 Dietmar Maurer <dietmar@ximian.com>
7573 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7575 * loader.c (mono_lookup_pinvoke_call): look for modules in the
7576 current directory (fix bug 44008)
7578 2003-06-03 Dietmar Maurer <dietmar@ximian.com>
7580 * marshal.c (mono_marshal_get_native_wrapper): started support for
7582 (mono_delegate_to_ftnptr): consider marshalling specifications
7584 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7586 * reflection.c, reflection.h: emit custom marshal info.
7588 2003-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7590 * object.c: free the GError.
7591 * icall.c: added CloseEvent_internal.
7593 (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7596 2003-06-01 Zoltan Varga <vargaz@freemail.hu>
7598 * loader.c (mono_method_get_signature): Add support for dynamic
7601 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7603 * reflection.c: fixed bug #43905.
7605 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7607 * class.c, domain.c, icall.c, metadata.h, object.h: support for
7608 handling TypedReference and ArgIterator.
7609 * loader.c, loader.h: added function to get signature at call site.
7611 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7613 * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more
7614 data readonly. Buglets and warning fixes. Some MethodSpec support.
7616 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7618 * class.h, class.c, object.c: remove relative numbering support.
7620 2003-05-26 Miguel de Icaza <miguel@ximian.com>
7622 * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7623 free the string, until we get a chance to fix Gtk#
7625 2003-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7627 * marshal.c: revert last patch.
7629 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7631 * icall.c: updates for new mono_class_vtable() not calling
7632 the type constructor anymore.
7634 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7636 * object.h, object.c: separate vtable creation from type
7637 initialization. Make running the .cctor thread safe.
7639 2003-05-26 Dietmar Maurer <dietmar@ximian.com>
7641 * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7643 2003-05-21 Dietmar Maurer <dietmar@ximian.com>
7645 * loader.c (mono_get_method): consider calling convention
7647 2003-05-21 Zoltan Varga <vargaz@freemail.hu>
7649 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7650 to return the invisible global type for a module.
7652 * reflection.c (mono_image_build_metadata): Emit global fields too.
7654 2003-05-20 Peter Williams <peterw@ximian.com>
7656 * loader.c (mono_lookup_internal_call): Add a few newlines.
7658 2003-05-20 Zoltan Varga <vargaz@freemail.hu>
7660 * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7663 * appdomain.c (set_domain_search_path): Recalculate search path when
7664 AppDomainSetup.PrivateBinPath changes.
7666 * object.c (mono_class_compute_gc_descriptor): It turns out some
7667 parts of the class libs (like System.Thread) holds pointers to
7668 GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7669 to treat native int a pointer type here.
7671 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7673 * appdomain.h, domain.c: add hashtable for jump target resolution.
7675 2003-05-19 Zoltan Varga <vargaz@freemail.hu>
7677 * reflection.h reflection.c icall.c: Added new icalls
7678 GetManifestResourceInfoInternal, GetModulesInternal and support
7681 2003-05-16 Dick Porter <dick@ximian.com>
7685 * file-io.c: Implement System.IO.MonoIO::GetTempPath
7687 2003-05-14 Lluis Sanchez Gual <lluis@ideary.com>
7689 * object.c: mono_store_remote_field: little fix to previous patch.
7691 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7693 * class.c: add constructors to array classes.
7694 * icall.c: special case array construction for InternalInvoke (),
7696 2003-05-14 Zoltan Varga <vargaz@freemail.hu>
7698 * class.h class.c reflection.c object.c: Added support for field
7699 defaults in dynamically generated classes.
7701 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
7703 * reflection.c: properly encode charset for ddlimport.
7705 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
7707 * threads.c: allow compiling without GC.
7709 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7711 * appdomain.h, object.c, object.h, threads.c, threads.h: added
7712 handling of thread static data.
7714 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7716 * reflection.h, reflection.c: added mono_custom_attrs_free ().
7718 2003-05-13 Dietmar Maurer <dietmar@ximian.com>
7720 * class.c (mono_array_class_get): always set the serializable flags
7721 (mono_array_class_get): always set the SEALED attribute for array types
7723 2003-05-12 Dietmar Maurer <dietmar@ximian.com>
7725 * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
7726 attributes (fix for bug 42021).
7728 2003-05-12 Dick Porter <dick@ximian.com>
7730 * gc.c: Don't run finalizers when the finalizer thread is
7731 finishing up, because the default domain has already been
7734 2003-05-11 Miguel de Icaza <miguel@ximian.com>
7736 * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
7737 value is null, we should throw an exception. This is slightly
7738 different than the other conventions used for the constructor.
7740 2003-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7742 * socket-io.c: fixed windows build.
7744 2003-05-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7746 * socket-io.c: patch by Jerome Laban that fixes bug #42393.
7748 2003-05-10 Zoltan Varga <vargaz@freemail.hu>
7750 * object.c (mono_string_new_wrapper): Compatibility fix for MS
7753 2003-05-09 Zoltan Varga <vargaz@freemail.hu>
7755 * class.c (mono_class_layout_fields): Add experimental GC aware
7756 auto layout facility. Requires class library changes to work correctly.
7758 (mono_class_setup_vtable): Avoid overriding explicit interface
7759 method implementations. Fixes iface3.exe test.
7761 * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
7763 (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
7764 (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
7766 * metadata.h: Add new type classification macro which determines
7767 whenever the type holds an object reference.
7769 2003-05-08 Dietmar Maurer <dietmar@ximian.com>
7771 * marshal.c (mono_marshal_get_native_wrapper): cleanups
7773 2003-05-07 Zoltan Varga <vargaz@freemail.hu>
7775 * gc.c (finalizer_thread): Work around a GC bug.
7777 2003-05-07 Dietmar Maurer <dietmar@ximian.com>
7779 * marshal.c (emit_struct_conv): allow unions
7781 * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
7783 2003-05-06 Dietmar Maurer <dietmar@ximian.com>
7785 * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
7787 2003-05-06 Martin Baulig <martin@ximian.com>
7789 * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
7791 2003-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7794 (Select_internal): allow NULLs, don't create arrays if not needed.
7795 Coupled with Socket.cs changes.
7798 (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
7799 register a finalizer for it that will close the semaphore handle. This
7800 fixes the leak and make Lupus' test run with > 4080 loops.
7802 2003-05-05 Dietmar Maurer <dietmar@ximian.com>
7804 * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
7805 Jerome Laban (bug #42287)
7807 2003-05-02 Martin Baulig <martin@ximian.com>
7809 * debug-mono-symfile.h
7810 (MonoSymbolFile): Moved declaration into mono-debug.h.
7811 (MonoDebugMethodJitInfo): Likewise.
7812 (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
7814 (_mono_debug_address_from_il_offset): Take a
7815 MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
7818 (MonoDebugDomainData): New struct.
7819 (mono_debug_get_domain_data): New function.
7820 (mono_debug_add_method): Take an additional `MonoDomain *'
7822 (mono_debug_source_location_from_address): Likewise.
7823 (mono_debug_il_offset_from_address): Likewise.
7824 (mono_debug_address_from_il_offset): Likewise.
7826 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
7828 * reflection.c: one more check for null type in custom attrs.
7830 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7832 * reflection.c: avoid warning (comparison is always false due to limited
7833 range of data type).
7835 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7837 * icall.c: throw an exception in Type.GetField if the argument 'name'
7840 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
7842 * reflection.c: fixed handling of enums in named arguments to custom
7843 attributes (bug #42123).
7845 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
7847 * reflection.c: use the right array element type and handle
7848 a null for a Type argument, too.
7850 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
7852 * reflection.c: handle arrays as arguments to custom attributes.
7854 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7856 * reflection.c: handle a string value in a custom attr
7857 ctor that takes an object.
7859 2003-04-29 Dietmar Maurer <dietmar@ximian.com>
7861 * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
7864 2003-04-28 Zoltan Varga <vargaz@freemail.hu>
7866 * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
7868 2003-04-27 Martin Baulig <martin@ximian.com>
7870 * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
7871 MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
7872 MONO_DEBUGGER_EVENT_BREAKPOINT.
7873 (mono_breakpoint_trampoline_code): Removed.
7874 (mono_debugger_event_handler): The last argument is now a
7876 (mono_debugger_insert_breakpoint_full): Removed the
7877 `use_trampoline' argument.
7878 (mono_debugger_method_has_breakpoint): Likewise.
7879 (mono_debugger_trampoline_breakpoint_callback): Renamed to
7880 mono_debugger_breakpoint_callback(); take the method and
7881 breakpoint number as arguments.
7883 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
7885 * metadata.c: fix off by one when loading parameters attributes.
7887 2003-04-24 Martin Baulig <martin@ximian.com>
7889 * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
7891 2003-04-24 Martin Baulig <martin@ximian.com>
7893 * mono-debug-debugger.c: Moved all code which interacts with the
7896 * debug-mono-symfile.c: This code now just deals with the symbol
7897 file itself, the debugger code is now in mono-debug-debugger.c.
7899 2003-04-23 Martin Baulig <martin@ximian.com>
7901 * mono-debug.c (mono_debug_source_location_from_il_offset):
7902 New method; like mono_debug_source_location_from_address(), but
7903 takes an IL offset instead of a machine address.
7905 2003-04-23 Martin Baulig <martin@ximian.com>
7907 * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
7908 `line' field; this is now computed by the debugger.
7910 2003-04-23 Martin Baulig <martin@ximian.com>
7912 * mono-debug.[ch]: New files. This is the new debugging interface.
7914 * mono-debug-debugger.[ch]: New files. Moved all code which
7915 interacts with the Mono Debugger here.
7917 2003-04-22 Dietmar Maurer <dietmar@ximian.com>
7919 * domain.c (mono_init): initialize mono_defaults.monitor_class
7921 2003-04-21 Miguel de Icaza <miguel@ximian.com>
7923 * reflection.c (method_encode_code): Add a spicy exception to help
7924 future compiler authors.
7926 2003-04-21 Martin Baulig <martin@ximian.com>
7929 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
7930 Make this work with relative pathnames; g_filename_to_uri() needs
7931 an absolute filename.
7933 2003-04-18 Zoltan Varga <vargaz@freemail.hu>
7935 * icall.c: Track name changes in Object and ValueType.
7937 2003-04-18 Dietmar Maurer <dietmar@ximian.com>
7939 * metadata.c (mono_type_stack_size): size should be a multiple of
7942 2003-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7945 (internal_domain_finalize): moved into mono_domain_finalize. No need
7946 to create another thread because the finalizers will be run in the
7949 (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
7950 (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
7951 to be run (MS does this too).
7953 2003-04-17 Zoltan Varga <vargaz@freemail.hu>
7955 * object.c (mono_class_compute_gc_descriptor): Update comment.
7957 * loader.h marshal.h marshal.c: Added synchronized method wrappers.
7959 * image.h: Add synchronized wrapper cache.
7961 * image.c (do_mono_image_open): Initialize cache.
7963 * reflection.c (create_dynamic_mono_image): Initialize cache.
7965 2003-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7967 * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
7968 ves_icall_System_Buffer_ByteLengthInternal.
7970 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7972 * reflection.c: setup klass->nested_in earlier. Allow
7973 a dash in the assembly name.
7975 2003-04-15 Dietmar Maurer <dietmar@ximian.com>
7977 * metadata.c (mono_type_to_unmanaged): dont access
7978 type->data.klass for MONO_TYPE_OBJECT
7979 (mono_type_to_unmanaged): consider System.Delegate class
7981 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
7983 * class.c: just setup supertypes in the proper place instead of
7984 initializing the full element class for arrays.
7986 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7988 * class.c: ensure the element class of arrays is initialized.
7989 Setup the supertype info for array classes, too.
7991 2003-04-14 Miguel de Icaza <miguel@ximian.com>
7993 * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
7995 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7997 * Makefile.am: re-added -m option when running cygpath. This way,
7998 MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
8000 * mono-config.c: same codepath for locating mono config file for WIN32
8002 * assembly.c: if mono_assembly_setrootdir is called, don't override
8005 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8007 * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
8008 MONO_ASSEMBLIES variable.
8010 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
8012 * icall.c: added Assembly::GetNamespaces() icall.
8014 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8016 * reflection.c: fix from Jaak <jaak@zd.com.pl>.
8018 2003-04-10 Lluis Sanchez Gual <lluis@ideary.com>
8020 * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
8021 * object.c: fixed bug in the construction of vtable for proxies
8023 2003-04-10 Zoltan Varga <vargaz@freemail.hu>
8025 * object.c (mono_array_new): Mark mono_array_new as an icall.
8027 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8029 * class.c: fixed test for public method when overriding interfaces.
8032 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
8034 * appdomain.h, domain.c: added mono_domain_foreach() to
8035 be able to access the currently loaded appdomains.
8036 * object.c: make string interning work across sppdomains.
8037 Mark some functions for use as icalls.
8039 2003-04-09 Zoltan Varga <vargaz@freemail.hu>
8041 * class.c reflection.c: Fix memory leaks reported by ccmalloc.
8043 * reflection.h reflection.c: Allocate long living data using
8044 GC_MALLOC_ATOMIC so the collector does not need to scan it.
8046 * reflection.c: Double the allocation size in streams instead of
8047 increasing it, to prevent unneccesary copying on large assemblies.
8049 * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
8050 creation if the assembly does not have the Run flag set.
8052 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
8054 * class.h: avoid the C++ keywords in header files (Jerome Laban
8055 spotted and fixed this).
8057 2003-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8060 (mono_unhandled_exception): fill in the arguments for the
8061 UnhandledException event. Only trigger that event for the default
8062 domain (as MS does).
8064 2003-04-04 Zoltan Varga <vargaz@freemail.hu>
8066 * object.c: Improve typed allocation stuff based on suggestions from
8067 Paolo. Also turn it on if the GC library supports it.
8069 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
8071 * object.c object.h class.h: Added experimental typed allocation
8072 facility using the interfaces in gc_gcj.h.
8074 * os/gc_wrapper.h: Added new include files.
8076 2003-04-03 Martin Baulig <martin@ximian.com>
8078 All the following changes are conditional to `WITH_INCLUDED_LIBGC'
8079 which is not yet enabled by default.
8081 * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
8083 (mono_gc_lock, mono_gc_unlock): New static functions.
8085 * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
8086 functions; stop/start the world for the garbage collector. This
8087 is using the windows API; we need to complete the SuspendThread()/
8088 ResumeThread() implementation in the io-layer to make this work on Unix.
8089 (mono_gc_push_all_stacks): New public function; tells the garbage
8090 collector about the stack pointers from all managed threads.
8092 2003-04-03 Martin Baulig <martin@ximian.com>
8094 * object.h (MonoThread): Added `gpointer stack_ptr'.
8096 * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
8098 2003-04-03 Martin Baulig <martin@ximian.com>
8100 * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
8102 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
8104 * reflection.c (typebuilder_setup_fields): Initialize field.first and
8107 2003-04-02 Miguel de Icaza <miguel@ximian.com>
8109 * loader.c (mono_lookup_internal_call): Report the corlib that is
8112 2003-03-05 Aleksey Demakov <avd@openlinksw.com>
8114 * icall.c (ves_icall_type_GetTypeCode): fixed check for
8115 System.DBNull (it's class not valuetype).
8117 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8119 * reflection.c: set table_idx in MonoReflectionArrayMethod object even
8120 if the array method was already assigned a token (fixes bug#40646).
8122 2003-04-02 Zoltan Varga <vargaz@freemail.hu>
8124 * reflection.c (mono_reflection_get_type): Attempt type resolve even
8125 if no assembly is given.
8127 2003-04-01 Miguel de Icaza <miguel@ximian.com>
8129 * metadata.h: Added the new tables.
8131 * row-indexes.h: Added definitions for new tables.
8133 * metadata.c: Add schemas for new tables, and add support for
8134 computing the sizes of them.
8136 * class.c: Update for handling the new type cases.
8138 2003-04-01 Dietmar Maurer <dietmar@ximian.com>
8140 * metadata.h (MONO_TYPE_IS_VOID): new macro
8142 2003-03-31 Martin Baulig <martin@ximian.com>
8144 * threads.h (MonoThreadCallbacks): Added `thread_created'.
8146 * threads.c (mono_thread_new_init): Call `thread_created' in the
8147 mono_thread_callbacks.
8149 2003-03-31 Lluis Sanchez Gual <lluis@ideary.com>
8151 * loader.h: added marshalbyrefobject_class to mono_defaults
8152 * domain.c: added initialization of mono_defaults.marshalbyrefobject_class
8153 * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8154 generation of output parameters.
8155 ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8156 * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8157 contextbound and the target object belongs to the context of the caller.
8158 * object.h: added context and unwrapped_server variables in MonoRealProxy.
8159 * object.c: Implemented support for interfaces and abstract classes
8160 in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8161 proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8163 2003-03-30 Zoltan Varga <vargaz@freemail.hu>
8165 * class.h class.c (mono_class_is_subclass_of): New function.
8167 * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8168 routines for most common case (calls from ArrayList::ToArray).
8170 * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown
8171 routine so programs which call Environment::Exit() can be profiled.
8173 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8174 Added MONO_ARCH_SAVE_REGS.
8176 * icall.c (ves_icall_type_is_subtype_of): Use new function.
8178 2003-03-29 Miguel de Icaza <miguel@ximian.com>
8180 * blob.h: Add a couple of new MonoType types definitions.
8182 * tabledefs.h: Add a couple of new call convs.
8184 2003-03-27 Zoltan Varga <vargaz@freemail.h>
8186 * reflection.h (MonoReflectionDynamicAssembly): track changes in
8187 the layout of the class.
8189 * reflection.c (alloc_table): double the size on overflow to avoid
8190 unnecessary copying.
8192 * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8193 avoid filling out metadata tables and blobs. Also set mb->ilgen to
8194 null so it can be garbage collected.
8196 2003-03-27 Zoltan Varga <vargaz@freemail.hu>
8198 * reflection.c (mono_reflection_get_type): Return the resolved type
8199 only if it is in the assembly we searched.
8201 * reflection.c (ensure_runtime_vtable): Initialize method slots.
8203 * class.c (mono_class_setup_vtable): Set the slot of the overriding
8206 2003-03-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8209 (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8210 the right one is 'file:///blah', but MS allows it.
8212 (mono_assembly_open): allow 'file://blah'
8214 Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8216 2003-03-26 Aleksey Demakov <avd@openlinksw.com>
8218 * socket-io.c: fixes bug #40310.
8220 2003-03-25 Zoltan Varga <vargaz@freemail.hu>
8222 * reflection.c (mono_reflection_parse_type): handle deeply nested
8225 * reflection.c (mono_image_create_token): Use unique token values
8226 since they will be put into a hash table.
8228 * class.c (mono_class_setup_vtable): If a method occurs in more than
8229 one place in the vtable, and it gets overriden, then change the
8230 other occurances too.
8232 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8233 object as return type.
8235 2003-03-22 Pedro Mart�nez Juli� <yoros@wanadoo.es>
8237 * icall.c: Deleted "ToString" implementation for double and float
8238 because they are full implemented in managed code.
8240 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8242 * reflection.c, reflection.h: implemented and exported functions
8243 to retrieve info about custom attributes.
8245 2003-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8247 * appdomain.c: moved Uri handling to assembly.c
8248 * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8249 work when using a file Uri in *nix and windows.
8251 * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8252 GetReferencedAssemblies.
8254 2003-03-18 Dick Porter <dick@ximian.com>
8256 * icall.c: Rename a couple of internal calls
8258 * threads.c: Set the thread state to Stopped when a thread exits.
8261 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
8263 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8266 * object.c (mono_class_vtable): fix warning.
8268 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
8270 * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8272 * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8274 (method_encode_clauses): Create exception info structures in the right
8276 (mono_reflection_setup_internal_class): Initialize supertypes field.
8278 * class.c object.c: Handle interfaces which implement other interfaces
8281 * class.h class.c: Move the supertypes array initialization code into
8282 a separate function so it can be used for dynamic types too. Also call
8283 it earlier, in mono_class_init(), since it can be used before the
8284 type is initialized.
8286 2003-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8290 * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8295 * object.c: remove warnings.
8297 2003-03-13 Martin Baulig <martin@ximian.com>
8299 * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8300 (MonoDebugLexicalBlockEntry): New types.
8302 * debug-mono-symfile.c
8303 (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8305 2003-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8307 * process.c: ret can be any non-zero value accroding to MS doc.
8309 2003-03-07 Miguel de Icaza <miguel@ximian.com>
8311 * class.c (mono_marshal_load_type_info): Fix buglet: Noticed when
8312 fixing a warning for a miss-used prototype, would have cause
8313 random memory corruption.
8315 2003-03-07 Martin Baulig <martin@ximian.com>
8317 * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8318 getting really annoying ....
8320 2003-03-07 Zoltan Varga <vargaz@freemail.hu>
8322 * reflection.c (fixup_method): added support for array methods.
8324 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8326 * socket-io.c: handle case when AF_INET6 and AF_IPX are not defined
8327 (pointed out by Michael Adams).
8329 2003-03-04 Dick Porter <dick@ximian.com>
8331 * icall.c: Temporarily reverted the Double and Single ToString()
8332 change, because it broke nunit.
8334 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8336 * object.h, threads.h: make include files compatible with C++
8337 (patch by Jerome Laban <jlaban@wanadoo.fr>).
8339 2003-03-04 Pedro Mart�nez Juli� <yoros@wanadoo.es>
8341 * icall.c: Erased ToString helper functions for Double and Single.
8342 Now, that implementations ar all in managed code (Double and Single
8345 2003-03-03 Lluis Sanchez Gual <lluis@ideary.com>
8347 * appdomain.c: Added method for initializing the default context of
8348 a domain. Added internal call for getting the default context.
8349 * appdomain.h: Added context variable in MonoDomain struct.
8350 * domain.c: mono_domain_set also sets the default context of the domain
8351 * icall.c: Mapped internal method InternalGetDefaultContext.
8352 * object.c: mono_object_get_virtual_method returns always a remoting
8353 wrapper if the object is a transparent proxy.
8354 mono_runtime_invoke_array: when creating an object by calling the
8355 constructor, if the created object is a proxy, then the constructor should
8356 be called using the a remoting wrapper.
8358 2003-03-03 Dick Porter <dick@ximian.com>
8360 * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8361 variable so it compiles on solaris. Problem spotted by
8362 Christopher Taylor <ct@cs.clemson.edu>
8364 2003-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8367 (get_info_from_assembly_name): don't leak value.
8370 (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8373 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8375 * assembly.c: export mono_image_load_references ().
8376 * class.c: handle function pointers. mono_class_from_name() now
8377 supports nested type names directly.
8379 2003-02-28 Zoltan Varga <vargaz@freemail.hu>
8381 * reflection.h reflection.c: Encode already created dynamic methods
8382 and fields correctly as a DEF instead of a REF.
8384 * reflection.c: Get rid of the force_ref argument to
8385 mono_image_typedef_or_ref since it was wrong in the first place.
8387 * string-icalls.c: add error checking to string constructors according
8390 * reflection.c: Emit types in the order their TypeBuilders were
8391 created. Previously, a new table index was assigned to each type before
8392 the tables were emitted. This was wrong because the signature blob
8393 might already refer to a type by its original table index.
8395 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
8397 * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8400 2003-02-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8402 * Makefile.am: make assemblies dir have \ instead of / on windows.
8404 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
8406 * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8407 iterate over the NESTEDCLASS table using a linear search since the
8408 table is not guaranteed to be sorted by the secondary key.
8410 * class.c (mono_class_create_from_typedef): fixed up call to
8411 mono_metadata_nesting_typedef.
8413 2003-02-27 Dietmar Maurer <dietmar@ximian.com>
8415 * marshal.c (mono_string_to_byvalstr): clear the memory as
8416 suggested by Jerome Laban <jlaban@wanadoo.fr>
8418 2003-02-26 Dick Porter <dick@ximian.com>
8420 * process.c: Cope with padding in .rsrc blocks
8422 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
8424 * metadata.h: reverted the filter_len change, it breaks reflection
8426 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
8428 * metadata.h: added a new field to store the filter_len
8431 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8433 * reflection.c: handle custom attributes for types and members
8434 created with Reflection.Emit (bug#38422).
8436 2003-02-22 Zoltan Varga <vargaz@freemail.hu>
8438 * reflection.c: define RTSpecialName automatically for constructors for
8439 compatibility with MS.NET.
8441 * reflection.c (mono_reflection_create_runtime_class): initialize
8442 nested_in field of dynamically created classes.
8444 2003-02-22 Martin Baulig <martin@ximian.com>
8446 * debug-mono-symfile.h: Incremented version number.
8448 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
8450 * object.h icall.c process.c: fix warnings.
8452 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
8454 * appdomain.h appdomain.c:
8455 (mono_domain_try_type_resolve): split the
8456 name_or_tb argument into a name and a tb argument.
8457 (mono_domain_has_type_resolve): new function to check whenever the
8458 application has registered a TypeResolve event handler.
8460 * icall.c reflection.h reflection.c: move the type resolve logic into
8461 mono_reflection_get_type () so it will be invoked when
8462 Assembly::GetType () is called.
8465 (mono_reflection_get_type): renamed to get_type_internal.
8466 (mono_reflection_get_type): fixed type name generation so it works
8467 for nested types too.
8468 (mono_reflection_get_type): call has_type_resolve () to avoid the
8469 costly type name generation if there is no resolve event handler.
8471 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8473 * class.c, image.c: load exported types from file references.
8475 2003-02-19 Lluis Sanchez Gual <lluis@ideary.com>
8477 * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8478 used to cache the managed methods used to create proxies and make
8479 remote invocation of methods.
8480 * class.h: Added in MonoVTable a flag to indicate that a class needs
8481 to be remotely created.
8482 * object.c: Modified the method mono_class_vtable(). It now initializes
8483 the remote flag of the vtable. Modified mono_object_new_specific(),
8484 so now it checks the remote flag.
8485 * icall.c: Added a couple of internal methods, one for enabling instance
8486 creation interception for a type, and one for creating objects bypassing
8489 2003-02-18 Martin Baulig <martin@ximian.com>
8491 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8492 New interncall to get a method's metadata token.
8494 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8495 New interncall for the debugger.
8497 2003-02-18 Dietmar Maurer <dietmar@ximian.com>
8499 * class.c (mono_class_setup_vtable): allocate supertype array
8501 2003-02-18 Martin Baulig <martin@ximian.com>
8503 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8505 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8508 (assembly_name_to_aname): jump over unknown properties (i've found
8509 something like: 'type, assembly, version=xxx, custom=null, public...',
8510 so now will ignore custom=null and still get the rest of the values).
8512 2003-02-17 Dick Porter <dick@ximian.com>
8514 * threads.c: Have Thread.Start() wait for a semaphore to signal
8515 that the thread has set up all its local data. This fixes bug
8516 34323, where Abort() raced the new thread's TLS data.
8518 Also removes the handle_store() call from start_wrapper, because
8519 threads are now always created suspended and there is no longer a
8520 race between the parent and child threads to store the info.
8522 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8524 * image.c: explain the #- heap issue in a message, hopefully
8525 avoiding FAQs on mono-list.
8527 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8530 (GetEntryAssembly): if the domain has not invoked
8531 AppDomain.ExecuteAssembly yet, return the assembly of the default
8534 2003-02-16 Zoltan Varga <vargaz@freemail.hu>
8536 * class.c (mono_ldtoken): make it work in dynamic assemblies.
8538 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8540 * metadata.c, reflection.c: simple speedup to type hash
8543 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8545 * image.c, image.h, class.c, assembly.c: move module loading
8546 to MonoImage. When loading metadata, consider alignemnet from
8547 the start of metadata, not from the metadata address in memory.
8549 2003-02-13 Zoltan Varga <vargaz@freemail.hu>
8551 * reflection.c (mono_reflection_get_custom_attrs): Added support for
8552 AssemblyBuilder objects. Factored out custom attribute creation into
8553 a separate function.
8554 (create_custom_attr): new function to create custom attributes.
8556 2003-02-12 Miguel de Icaza <miguel@ximian.com>
8558 * Makefile.am: Got tired of typing the full pathname to pedump.
8559 Until there is another option, am installing this.
8561 2003-02-12 Dietmar Maurer <dietmar@ximian.com>
8563 * class.c (class_compute_field_layout): always set field->parent
8564 (mono_ldtoken): use mono_defaults.fieldhandle_class;
8566 2003-02-11 Dick Porter <dick@ximian.com>
8569 * monitor.c: Rewrote Monitor, making lock much faster and
8570 Pulse/Wait work as specified. Also uses much fewer handles, and only
8571 creates them as needed.
8573 * exception.c: Added SynchronizationLockException
8575 * threads.c: Deleted old Monitor implementation. The new one is
8578 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8580 * class.c: handled TypedReference type code. Set the correct size for
8581 class data. Setup interface_offsets for interface classes, too.
8583 2003-02-09 Martin Baulig <martin@ximian.com>
8585 * debug-mono-symfile.h: Reflect latest symbol writer changes.
8587 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8589 * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8590 * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8591 * object.c: fixed mono_object_get_virtual_method () for interfaces.
8592 * verify.c: check for code that runs after the end of the method.
8594 2003-02-08 Pedro Mart�nez Juli� <yoros@wanadoo.es>
8596 * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8597 "System.Math::Round2".
8598 * sysmath.h: Added Floor, Round and Round2 definitions.
8599 * sysmath.c: Modified certain functions that were not 100% compliant
8600 with MS.NET (math precision) and added the implementation of Floor,
8603 2003-02-07 Martin Baulig <martin@ximian.com>
8605 * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8607 2003-02-07 Martin Baulig <martin@ximian.com>
8609 * debug-mono-symfile.c: Reflected latest symwriter changes.
8610 (mono_debug_create_mono_symbol_file): Removed.
8611 (mono_debug_open_mono_symbol_file): Take an argument which
8612 specifies whether to create a dynamic symbol file.
8614 2003-02-07 Dietmar Maurer <dietmar@ximian.com>
8616 * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8618 2003-02-05 Martin Baulig <martin@ximian.com>
8620 * reflection.c (mono_image_build_metadata): Make this public,
8621 protect it against being called multiple times, don't create
8622 resources and don't build the compressed metadata here.
8623 (mono_image_create_pefile): Do this here.
8626 ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8628 2003-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8630 * socket-io.c: fixed bug #36322.
8632 2003-02-06 Piers Haken <piersh@friskit.com>
8636 * debug-mono-symfile.c:
8642 * socket-io.c: warning cleanups
8644 2003-02-06 Dietmar Maurer <dietmar@ximian.com>
8646 * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8647 function. works like remoting invoke, but does a check for the Proxy first.
8649 2003-02-05 Miguel de Icaza <miguel@ximian.com>
8651 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8653 2003-02-05 Dietmar Maurer <dietmar@ximian.com>
8655 * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8657 (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8658 (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8660 * object.c (mono_store_remote_field_new): used by the new jit
8661 instead of mono_store_remote_field
8662 (mono_load_remote_field_new): used by the new jit
8663 instead of mono_load_remote_field
8665 2003-02-05 Patrik Torstensson
8667 * appdomain.c: changed unload to take the domain id instead
8670 * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8673 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8675 * appdomain.c: don't look for assemblies in ApplicationBase if
8676 PrivateBinPathProbe is set.
8678 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8680 * object.c: make the first argument in main_args contain the absolute
8681 path to the assembly. Fixes bug #37511.
8683 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8685 * icall.c: get correct UTC offset for countries not using daylight
8686 time saving. Fixes bug #30030.
8688 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8690 * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
8691 and 1 are the family).
8693 2003-02-04 Dietmar Maurer <dietmar@ximian.com>
8695 * icall.c (ves_icall_InternalExecute): removed wrong assertion
8697 * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
8699 2003-02-04 Zoltan Varga <vargaz@freemail.hu>
8701 * reflection.c: added support for SignatureHelper tokens, which is
8702 needed by the Calli opcode.
8704 * reflection.h: track changes to SignatureHelper class.
8706 * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
8708 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8710 * appdomain.c: fixed loading assemblies from PrivateBinPath.
8712 2003-02-03 Patrik Torstensson
8713 * appdomain.[c|h], domain.c :
8714 - Added support for getting a domain via domain id
8715 - Support for setting and getting domain from System.AppDomain
8716 (used in cross appdomain channel)
8717 - Added support for get/set for a MonoAppContext on a thread
8718 (Context class in System.Runtime.Remoting.Contexts),
8719 - Removed hack in Get/SetData and ExecuteAssembly.
8721 * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
8722 the managed world to get control when a proxy is created.
8724 * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
8726 2003-02-03 Miguel de Icaza <miguel@ximian.com>
8729 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8730 Populate the codebase field as well.
8732 2003-02-02 Martin Baulig <martin@ximian.com>
8734 * debug-mono-symfile.c
8735 (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
8736 (mono_debug_symfile_add_method): Allow interncalls.
8738 2003-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8740 * icall.c: throw parse exception if strtod fails or the string is empty.
8742 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
8744 * marshal.c: handle object type separately from defined
8747 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
8749 * marshal.c: handle NATIVE_LPSTR for strings when it's
8750 explicitly specified.
8752 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
8754 * reflection.c, reflection.h, icall.c: setup the reflection
8755 handle cache for ModuleBuilders and AssemblyBuilders.
8757 2003-01-30 Dietmar Maurer <dietmar@ximian.com>
8759 * reflection.c (reflection_methodbuilder_to_mono_method): set
8762 2003-01-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8764 * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
8766 2003-01-29 Dick Porter <dick@ximian.com>
8768 * threads.c: No need for the fake_thread kludge now that Thread
8769 doesn't run a class constructor
8771 2003-01-29 Dick Porter <dick@ximian.com>
8773 * threads.c: Use g_direct_hash instead of the rather bogus
8776 2003-01-29 Dietmar Maurer <dietmar@ximian.com>
8778 * marshal.c (mono_marshal_get_native_wrapper): add check for null
8780 (mono_marshal_get_struct_to_ptr): generate valid IL code
8781 (mono_marshal_get_ptr_to_struct): generate valid IL code
8782 (*): correctly set sig->pinvoke, we need to memdup the signature
8785 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8787 * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
8788 to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
8790 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8792 * profiler.c: provide more callers information.
8794 2003-01-28 Dietmar Maurer <dietmar@ximian.com>
8796 * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
8798 * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
8800 * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
8802 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
8804 * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
8805 exception instead of going into an infinite loop on dates which it
8808 * string-icalls.c (ves_icall_System_String_get_Chars): raise
8809 out-of-range exception if needed.
8811 * class.c (mono_class_setup_vtable): allow a virtual method to provide
8812 an implementation for an interface method and to override an inherited
8813 method at the same time.
8814 Imagine a scenario when a virtual method is used to override a
8815 virtual abstract method in a parent class, and this same method
8816 provides an implementation for an method inherited from an interface.
8817 In this case, the interface resolution code will set im->slot, which
8818 means that the virtual method override pass will skip this method
8819 which means a pointer to the abstract method inherited from the parent
8820 will remain in the vtable of this non-abstract class.
8822 * class.c: (mono_class_setup_vtable): continue search for a real
8823 method if only an abstract method is found.
8825 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
8827 * reflection.c: add size to encoding for ByValStr and ByValArray
8828 marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
8830 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
8832 * class.c (mono_class_setup_vtable): pass the override info as an
8835 * class.c (mono_class_setup_vtable): set the slot of overriding methods
8838 * reflection.c (ensure_runtime_vtable); add support for method
8841 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
8843 * reflection.c (resolution_scope_from_image): Hack to work to work with
8846 * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and
8847 added a 'force_ref' argument to force this function to allways return
8848 a TypeRef. This is needed by mono_image_get_memberref_token ().
8850 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
8852 * reflection.c (mono_image_get_type_info): interfaces really don't have
8855 * reflection.c (mono_image_basic_init): fill out missing fields of
8858 * reflection.c (mono_image_basic_init): Invoke assembly load hooks for
8859 dynamic assemblies. This is required so dynamic assemblies show up in
8860 AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
8861 Type::GetType() etc. This is consistent with MS behaviour.
8863 * image.c image.h reflection.c: add newly created classes to the name
8864 cache so mono_class_get () will find them.
8866 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
8868 First part of changes to get IKVM.NET running under mono.
8870 * appdomain.h, appdomain.c: added new function
8871 mono_domain_try_type_resolve() which will emit TypeResolve events.
8872 This function will call AppDomain::DoTypeResolve to do the actual work.
8874 * class.h, class.c, loader.c, object.c, reflection.h, reflection.c:
8875 moved existing code dealing with dynamic tokens to a new function
8876 called mono_reflection_lookup_dynamic_token (). This function will
8877 raise TypeResolve events when appropriate. Since reflection.c is not
8878 part of libmetadata, a new hook function called
8879 mono_lookup_dynamic_token() is added to class.c which will call this.
8881 * assembly.h assembly.c: make the invoke_load_hook function public,
8882 so it can be called for dynamic assemblies.
8884 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
8886 * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the
8889 * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a
8890 MonoGHashTable, since it contains pointers to objects which the GC
8893 * assembly.c (search_loaded): remove unused variable.
8895 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
8897 * object.c: fixed issue exposed by gcc-generated IL programs
8898 that use RVA data for pointers.
8900 2003-01-25 Martin Baulig <martin@ximian.com>
8902 * threads.c (start_wrapper): Moved the initialization of
8903 `start_func' above the mono_new_thread_init() call to which we
8904 pass it as argument.
8906 2003-01-24 Martin Baulig <martin@ximian.com>
8908 * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
8909 the MonoThread pointer.
8911 2003-01-21 Miguel de Icaza <miguel@ximian.com>
8913 * icall.c: Rename `PowImpl' to Pow.
8915 2003-01-23 Dick Porter <dick@ximian.com>
8917 * threads.c (start_wrapper): Create a Thread object if needed, so
8918 the Main() thread can do the class initialisation in a subthread
8919 that has been set up to allow managed code execution.
8921 Pass the thread ID instead of the MonoThread pointer to the thread
8922 start and attach callbacks. This change is required, because the
8923 jit thread start callback must be called _before_ the Thread
8924 object can be created.
8926 (mono_thread_init): Removed much object creation code that is no
8927 longer needed. No managed code is called from here now.
8929 * object.c (mono_runtime_exec_managed_code): Create a subthread
8930 for Main, and call back to the runtime to use it.
8931 Set the exit code when Main exits.
8933 * gc.c: Make sure domain finalisation happens in a subthread.
8934 Re-enable threaded GC, fixing bug 31333 (again).
8936 * environment.c: System.Environment internall calls (so far just
8937 ExitCode is here, the others are still in icall.c)
8939 * appdomain.c (mono_runtime_cleanup): All threads running managed
8940 code should have finished before mono_runtime_cleanup() is
8941 reached, so no need to clean up threads.
8943 2003-01-22 Martin Baulig <martin@ximian.com>
8945 * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
8946 `gpointer func' arguments.
8947 (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
8948 but added `MonoThread *thread' argument.
8949 (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
8951 * threads.c (mono_new_thread_init): Added `gpointer func' argument
8952 and pass it to the mono_thread_start_cb callback.
8953 (mono_install_thread_callbacks): New public function to install a
8954 set of callbacks which are set by the debugger.
8955 (mono_thread_init): The last argument is now a MonoThreadAttachCB.
8957 2003-01-22 Martin Baulig <martin@ximian.com>
8959 * Makefile.am: Install debug-mono-symfile.h.
8961 2003-01-21 Aleksey Demakov <avd@openlinksw.com>
8963 * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
8965 2003-01-21 Dietmar Maurer <dietmar@ximian.com>
8967 * added the following fix from Jackson Harper <jackson@latitudegeo.com>
8968 * class.c (mono_ptr_class_get): correctly set access levels of pointers
8969 (mono_array_class_get): correctly set access levels of arrays
8971 2003-01-20 Patrik Torstensson
8972 * image.h (MonoAssemblyName): changed major, minor, build, revision
8973 from signed to unsigned.
8975 2003-01-20 sean kasun <skasun@azstarnet.com>
8977 * reflection.c (load_cattr_value): Now this handles
8978 MONO_TYPE_SZARRAY. Fixes bug #35629
8980 2003-01-20 Miguel de Icaza <miguel@ximian.com>
8982 * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
8985 2003-01-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8987 * decimal.c: fixed bug #26056.
8989 2003-01-17 Martin Baulig <martin@ximian.com>
8991 * gc.c: Raise an ExecutionEngineException instead of using g_error().
8993 2003-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8996 (mono_get_exception_type_initialization): new function.
8998 * object.c: throw a TypeInitializationException when an exception is
8999 thrown invoking the class constructor.
9001 2003-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9003 * reflection.c: fixed attribute reading.
9005 2003-01-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9008 (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
9009 provided, look for the type in the calling assembly and then in
9010 mscorlib; if the assembly name is provided, only try that one.
9012 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
9014 * object.c: register the vtable before there is a chance it's
9015 queried again recursively.
9017 2003-01-13 Duncan Mak <duncan@ximian.com>
9019 * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
9022 2003-01-12 Patrik Torstensson <totte@race-x-change.com>
9024 * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
9026 2003-01-11 Martin Baulig <martin@ximian.com>
9028 * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
9029 this to 20 for the release.
9031 2003-01-10 Dietmar Maurer <dietmar@ximian.com>
9033 * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
9035 * loader.c (mono_method_get_marshal_info): bug fix
9037 * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
9038 structures with explicit layout
9040 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9042 * profiler.c: made the output more readable (and sorted).
9043 Added caller information for the allocation profiler.
9045 2003-01-09 Sebastien Pouliot <spouliot@videotron.ca>
9047 * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
9049 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9051 * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
9054 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
9056 * object.c, profiler.h, profiler.c, profiler-private.h:
9057 Added object allocation profiler.
9059 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
9061 * reflection.h, reflection.c: handle global methods.
9062 Compress blob entries.
9064 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
9066 * marshal.c: fix compilation.
9068 2003-01-09 Dietmar Maurer <dietmar@ximian.com>
9070 * loader.c (mono_method_get_marshal_info): impl.
9072 * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
9074 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9076 * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
9077 for reference types.
9079 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
9081 * loader.c: fixed off by one error in loaded parameter names.
9083 2003-01-08 Dietmar Maurer <dietmar@ximian.com>
9085 * marshal.c (mono_marshal_get_icall_wrapper): like
9086 mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
9087 instead of a MonoMethod.
9089 2003-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9091 * decimal.c: fixed bug #36537.
9093 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
9095 * marshal.c: throw a missing method exception if a
9096 P/Invoke method is not found.
9098 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9100 * icall.c: allow a null this for constructors.
9102 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
9104 * icall.c: raise the proper exceptions if the arguments to the
9105 internal Invoke are incorrect.
9107 2003-01-03 Dietmar Maurer <dietmar@ximian.com>
9109 * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9111 2003-01-03 Martin Baulig <martin@ximian.com>
9113 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9115 2002-12-31 Martin Baulig <martin@ximian.com>
9117 * debug-mono-symfile.c: Completely rewrote the type section.
9118 Instead of using individual malloc()ed fields, we use one big
9119 continuous memory area and offsets into this area.
9120 See the comments in the source code for details.
9122 2002-12-30 Martin Baulig <martin@ximian.com>
9124 * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9126 2002-12-30 Martin Baulig <martin@ximian.com>
9128 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9129 line number table in this data blob instead of using an external
9132 2002-12-28 Martin Baulig <martin@ximian.com>
9134 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9136 2002-12-22 Rachel Hestilow <hestilow@ximian.com>
9138 * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9139 as a boxed return type.
9141 2002-12-21 Miguel de Icaza <miguel@ximian.com>
9144 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9145 g_build_filename to properly get separators on the filename created.
9147 * object.h: Small change, introduce MonoMarshalByRefObject to
9148 track the layout of that structure in the C# universe as we make
9151 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9153 * object.c: removed assert to allow static fields on interfaces.
9154 * loader.c: a TypeSpec may be used for any type, not just arrays.
9156 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9158 * class.c, class.h: added mono_class_array_element_size ().
9159 Ignore static methods in interfaces.
9161 2002-12-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9163 * threads.c: fixed the build under cygwin.
9165 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9167 * reflection.c: handle nullref constants. Allocate keys for
9168 reflection handles with the GC.
9170 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9172 * threads.c, threads.h: added mono_thread_get_abort_signal()
9173 to get a suitable signal for thread abort.
9175 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9177 * metadata.c: fix handling of ExportedType table.
9179 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9181 * icall.c: added WriteWindowsDebugString internal call.
9183 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9185 * reflection.h: added fields to match C# implementation.
9187 2002-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9189 * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9191 2002-12-12 Juli Mallett <jmallett@FreeBSD.org>
9193 * gc.h, gc-internal.h: Rename header for GC internal calls to
9194 gc-internal.h from gc.h as to not clash with Boehm GC having its
9195 header installed as <gc.h> in outside include paths.
9196 * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9197 * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9199 2002-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9201 * icall.c: assign minor, build and revision in FillName.
9203 2002-12-11 Zoltan Varga <vargaz@freemail.hu>
9205 * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9206 Added support for running code generated by Reflection.Emit.
9208 2002-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9210 * appdomain.c: check for NULL argument in LoadFrom.
9212 2002-12-10 Dick Porter <dick@ximian.com>
9214 * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9216 2002-12-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9218 * appdomain.c: fix buglet when building exe file name. Handle full
9219 assembly name (needed after latest changes to AssemblyName).
9221 (mono_image_close): free some hashtables.
9223 2002-12-05 Dietmar Maurer <dietmar@ximian.com>
9225 * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN
9226 instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation
9227 on some systems (redhat 7.3)
9229 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9231 * threads.c: delete the critical section of a sync block,
9232 spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9234 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9236 * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9238 2002-12-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9240 * appdomain.[ch]: handle the assembly preload event to try loading the
9241 assemblies using the paths we have in the current domain.
9243 * assembly.[ch]: created an assembly preload hook that is called to try
9244 loading the assembly by other means that the ones provided here.
9246 * domain.c: initialize the domain search path.
9248 From now on, assemblies (TODO: except corlib and System) are loaded
9249 according to these rules when using mono_assembly_load ():
9251 1. It tries to load the assembly from the ApplicationBase
9252 of the current domain appending .dll and .exe (TODO: have to
9253 try loading from name/name.dll and name/name.exe).
9255 2. It tries the search path specified in PrivateBinPath for the
9256 current domain (if any).
9258 3. Previous behavior.
9260 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9262 * icall.c: implemented GetInterfaceMap() related icall.
9263 * domain.c, loader.h: load MethodInfo in mono_defaults.
9265 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9267 * gc.c: disable the finalizer thread for now, untill all the issues
9268 with it are resolved.
9270 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9272 * string-icalls.c: handle embedded nulls in string ctor when the
9273 length is specified.
9275 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9277 * class.c: look for explicit interface implementation in parent
9280 2002-12-03 Dietmar Maurer <dietmar@ximian.com>
9282 * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3)
9284 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9286 * gc.c: protect handles with a critical section.
9288 2002-12-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9291 (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9292 parameters. If no assembly specified, try getting the type from all
9293 the assemblies in the current domain, else, load the assembly and get
9296 2002-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9298 * marshal.c: applied patch from Aleksey Demakov that fixes
9299 ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9301 2002-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9303 * icall.c: fixed get_location.
9305 2002-11-28 Dietmar Maurer <dietmar@ximian.com>
9307 * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9308 declarations to make it work with older gcc.
9310 * loader.c (mono_get_method): set signature->pinvoke for native calls
9312 2002-11-20 Dick Porter <dick@ximian.com>
9314 * threads.c (mono_thread_init): Set the main thread's handle
9316 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9318 * gc.c: allow compilation without GC support. Changed to match the
9321 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9323 * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9325 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9327 * reflection.c: set a public key token on the core assemblies.
9329 2002-11-18 Dick Porter <dick@ximian.com>
9331 * threads.c: Split out some thread initialisation so that other
9332 files can set the start callback function.
9334 * gc.c: Run finalisers in a separate thread, to avoid stack
9335 overflow. Fixes bug 31333.
9337 * appdomain.c: Set up GC finalisation thread.
9341 * domain.c: Use gc.h macros for GC_malloc
9343 2002-11-15 Dick Porter <dick@ximian.com>
9347 * appdomain.c: Removed mono_runtime_init_with_attach(),
9348 mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9349 merging the extra parameter with the existing function. Removed
9350 unneeded code in mono_thread_attach().
9352 2002-11-14 Dietmar Maurer <dietmar@ximian.com>
9354 * image.c (mono_image_loaded_by_guid): a method to get loaded
9356 (load_metadata_ptrs): we store the guid as string.
9358 2002-11-11 Dietmar Maurer <dietmar@ximian.com>
9360 * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9362 * metadata.c (mono_guid_to_string): imported method form Zoltan
9363 Varga (slightly modified)
9365 * assembly.c (mono_assembly_open): load precompiled code
9367 * loader.h (MonoMethod): we store the method token for use in the
9370 2002-11-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9372 * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9373 the hook function called when an assembly is loaded.
9375 * domain.c: Modified file.
9376 (mono_domain_assembly_load): removed hash table insertion of assemblies.
9380 2002-11-07 Miguel de Icaza <miguel@ximian.com>
9382 * reflection.c: Map PEFileKind to the value expected by the WinNT
9385 2002-11-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9387 * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9388 Read until the buffer is filled completely.
9390 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9392 * icall.c: implemented MonoType.InternalGetEvent ().
9394 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9396 * appdomain.c: implemented InitAppDomainSetup. Delayed
9397 AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9400 * assembly.c: base_dir is now an absolute path ending with
9403 * icall.c: modified get_location according to the above changes.
9405 * object.c: init AppDomain.SetupInformation for the default domain after
9406 we have the entry assembly.
9408 * domain.c: when unloading a domain, setup = NULL.
9410 2002-11-04 Dietmar Maurer <dietmar@ximian.com>
9412 * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9414 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9416 * object.h, object.c: introduced mono_object_get_virtual_method ()
9417 to lookup the method invoked on an object when a callvirt is done on
9419 * icall.c: make MethodInfo::Invoke() always do a virtual call.
9421 2002-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9423 * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9424 current domain when loaded an assembly and failed to load it.
9426 * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9428 2002-10-31 Dick Porter <dick@ximian.com>
9432 * file-io.c: Return the error status in a parameter, as the
9433 GetLastError() value has long since been blown away if we try and
9434 look it up in a subsequent internal call invocation. Delete the
9435 GetLastError() internal call, because it's useless.
9437 2002-10-31 Dietmar Maurer <dietmar@ximian.com>
9439 * class.[ch]: added cast_class to fix bug 29517
9441 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9443 * marshal.c: create valid IL code in the filter clause:
9444 the new JIT is less forgiving:-)
9446 2002-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9448 * icall.c: removed get_property internal call.
9450 2002-10-25 Zoltan Varga <vargaz@freemail.hu>
9452 * appdomain.h domain.c: Added an ID to appdomains.
9454 * threads.c threads.h icall.c: Implement icall
9455 Thread:GetDomainID(), and remove unused icall
9456 CurrentThreadDomain_internal.
9458 2002-10-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9460 * icall.c: Don't recurse through the base types in GetConstructor.
9463 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9465 * mempool.h, mempool.c: added mono_mempool_empty() and
9466 mono_mempool_stats().
9468 2002-10-23 Dick Porter <dick@ximian.com>
9472 * icall.c: Added MonoIO.GetFileType internal call
9474 2002-10-17 Dick Porter <dick@ximian.com>
9476 * appdomain.c (mono_runtime_cleanup): Don't signal the async
9477 delegate semaphore before waiting for all threads to finish,
9478 because new threads can also call async delegates. Fixes bug
9481 * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9482 of 3 seconds, in case another async job is queued. (This part is
9483 needed because the bug fix reintroduced the 3s exit lag.) This
9484 makes the mono_runtime_shutdown flag superfluous.
9486 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9488 * reflection.c: include ehader size in method section headers.
9489 Really check for suplicated modules entries.
9491 2002-10-17 Martin Baulig <martin@gnome.org>
9493 * debug-mono-symfile.c: Added back support for locals.
9495 2002-10-14 Martin Baulig <martin@gnome.org>
9497 * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9500 2002-10-14 Martin Baulig <martin@gnome.org>
9502 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9503 mono_class_get() instead of looking in the class cache.
9505 2002-10-13 Martin Baulig <martin@gnome.org>
9507 * debug-mono-symfile.c: Set version number to 28, include the
9508 signature in method names.
9510 2002-10-13 Martin Baulig <martin@gnome.org>
9512 * debug-mono-symfile.h: Set version number to 27.
9514 2002-10-11 Martin Baulig <martin@gnome.org>
9516 * gc.c: Don't register/unregister NULL pointers as disappearing links.
9518 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9520 * metadata.c, metadata.h: added helper function to allocate signatures.
9522 2002-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9524 * icall.c: added internal call to get the location of machine.config.
9526 2002-10-08 Martin Baulig <martin@gnome.org>
9528 * debug-mono-symfile.c: Ignore classes with a pending init for the
9531 2002-10-03 Dick Porter <dick@ximian.com>
9533 * threads.c: Freebsd pthread_t is a pointer
9535 2002-10-03 Dick Porter <dick@ximian.com>
9537 * socket-io.c: Implemented GetHostName_internal
9539 2002-10-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9542 (mono_config_parse_file): don't leak the text.
9544 2002-10-02 Martin Baulig <martin@gnome.org>
9546 * debug-mono-symfile.c: Added support for methods.
9548 2002-10-01 Martin Baulig <martin@gnome.org>
9550 * debug-mono-symfile.c: Don't emit methods and line numbers for
9551 the dynamic symbol file, just write the type table. We can easily
9552 have an external helper program which creates a symbol file for an
9555 2002-10-01 Dick Porter <dick@ximian.com>
9557 * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9558 Only add the handle to the cleanup array when we're about to
9559 launch the thread. Bug 31425 deadlocked when the test was run on
9562 2002-10-01 Martin Baulig <martin@gnome.org>
9564 * debug-mono-symfile.c: Added support for properties.
9566 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9568 * reflection.c: unaligned store fix from Mark Crichton
9569 <crichton@gimp.org>.
9571 2002-09-27 Martin Baulig <martin@gnome.org>
9573 * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9576 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9578 * assembly.h, assembly.c: use a sane API to hook into the assembly
9579 loading process instead of a useless special-purpouse hack
9580 (ngen needs a hook, too, for example).
9582 2002-09-27 Dick Porter <dick@ximian.com>
9584 * threads.c (mono_thread_init): Call GetCurrentProcess() so
9585 io-layer can set up some process handle info. Not needed on w32,
9586 but doesn't hurt either.
9588 * process.c: Pass the program name in the second parameter to
9589 CreateProcess, so the path is searched. Include the working
9590 directory. Implemented process name, process enumeration, and some
9591 process detail internal calls.
9593 * icall.c: Added internal calls for process lookup, and some
9596 2002-09-26 Martin Baulig <martin@gnome.org>
9598 * assembly.c (mono_install_open_assembly_hook): New global
9599 function to install a function to be invoked each time a new
9601 (mono_assembly_open): Run this callback function if set.
9603 * debug-mono-symfile.c: Put back line numbers for the dynamic
9604 symbol file and also record the .il file as source file. This
9605 allows us to install the temporary symbol file as `file.dbg' just
9606 like a compiler-generated one.
9608 2002-09-26 Nick Zigarovich <nick@chemlab.org>
9610 * Corrected typo in gc.c (BOHEM vs BOEHM).
9612 2002-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9614 * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9615 GetProperties. Also avoid calling g_slist_length in GetProperties and
9618 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9620 * reflection.c: avoid unaligned stores (bug spotted by
9621 Mark Crichton <crichton@gimp.org>).
9623 2002-09-25 Martin Baulig <martin@gnome.org>
9625 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9626 instead of guint64 for addresses and added prologue/epilogue info.
9628 2002-09-25 Martin Baulig <martin@gnome.org>
9630 * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9631 store line number info. For the dynamic symbol file, we only need
9632 to provide the JIT generated dynamic line number info for the dynamic
9635 2002-09-25 Martin Baulig <martin@gnome.org>
9637 * debug-mono-symfile.h: Incremented version number.
9639 2002-09-24 Martin Baulig <martin@gnome.org>
9641 * class.c (mono_debugger_class_init_func): New global function
9643 (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9646 * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9647 function. This is called via the mono_debugger_class_init_func
9648 hook to add all types to the dynamic type table.
9649 (ves_icall_MonoDebugger_GetType): New interncall to get a class
9650 from its metadata token.
9652 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9653 New interncall for the debugger.
9655 2002-09-24 Nick Drochak <ndrochak@gol.com>
9657 * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9658 before using it in case it is null.
9660 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9662 * metadata.c: allow custom modifiers in local var signatures
9663 (bug spotted by Zoltan Varga).
9665 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9667 * class.c: deal with the <Module> class that may have a NULL vtable.
9670 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9672 * image.c, image.h: more strong name helpers.
9673 * monosn.c: more work: convert pem keys to cryptoapi format.
9675 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9677 * string-icalls.c: speedup IndexOf.
9679 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9681 * icall.c: updates from Zoltan.2.Varga@nokia.com.
9683 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9685 * icall.c: cleanup: use mono_object_domain ().
9687 2002-09-23 Martin Baulig <martin@gnome.org>
9689 * debug-mono-symfile.c: Improved type support.
9691 2002-09-22 Martin Baulig <martin@gnome.org>
9693 * debug-mono-symfile.c: Added support for reference types and strings.
9695 2002-09-22 Martin Baulig <martin@gnome.org>
9697 * debug-mono-symfile.c: Started to work on the type table.
9699 2002-09-21 Martin Baulig <martin@gnome.org>
9701 * debug-mono-symfile.c: Largely reworked the symbol table format.
9702 The symbol table is now incrementally updated each time a new
9703 method is added. We're now also using our own magic and version
9704 so that you don't need to recompile all your classes if the
9705 dynamic table changes.
9706 (mono_debug_update_mono_symbol_file): Removed.
9707 (mono_debug_symfile_add_method): New function to add a method.
9709 2002-09-21 Martin Baulig <martin@gnome.org>
9712 ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
9715 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
9716 New interncall to get a method from its metadata token.
9718 2002-09-21 Martin Baulig <martin@gnome.org>
9720 * debug-mono-symfile.c: Create type table.
9722 2002-09-20 Martin Baulig <martin@gnome.org>
9724 * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
9726 2002-09-20 Martin Baulig <martin@gnome.org>
9728 * debug-mono-symfile.c: Provide information about params and locals.
9730 2002-09-20 Martin Baulig <martin@gnome.org>
9732 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
9735 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
9736 interncall to get a method from its metadata token.
9738 2002-09-20 Martin Baulig <martin@gnome.org>
9740 * debug-mono-symfile.c: Added a few checks for method->header
9741 being non-NULL. This should never happen, but for the moment
9742 let's use a g_warning() rather than a g_assert().
9744 2002-09-19 Mark Crichton <crichton@gimp.org>
9746 * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
9747 even if support for it isn't present. Added an #ifdef to fix this.
9749 * socket-io.c: Added checks back for Solaris support.
9751 2002-09-19 Martin Baulig <martin@gnome.org>
9753 * debug-mono-symfile.c (read_string, write_string): Reflect latest
9754 changes in the symbol file format.
9756 2002-09-18 Martin Baulig <martin@gnome.org>
9758 * debug-mono-symfile.c: Set version number to 21.
9760 2002-09-18 Dick Porter <dick@ximian.com>
9762 * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
9763 on netbsd. Fixes bug 30051.
9765 2002-09-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9768 (set_version_from_string): little fix.
9770 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9772 * monosn.c, Makefile.am: added strong name utility.
9773 * reflection.h, reflection.c: implemented delayed signing,
9774 locale, version and hash id assembly attributes.
9776 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9778 * loader.c, metadata.c: load param attributes in signatures.
9780 2002-09-16 Martin Baulig <martin@gnome.org>
9782 * debug-mono-symfile.c: Added string table with all method names.
9784 2002-09-14 Martin Baulig <martin@gnome.org>
9786 * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
9789 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9791 * reflection.c: record the public key token of referenced assemblies.
9793 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9795 * image.c, image.h: added functions to get the strong name and the
9796 public key of an assembly.
9797 * pedump.c: use them.
9799 2002-09-12 Dietmar Maurer <dietmar@ximian.com>
9801 * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
9803 2002-09-12 Miguel de Icaza <miguel@ximian.com>
9805 * marshal.c (mono_marshal_get_managed_wrapper): Added
9808 2002-09-11 Martin Baulig <martin@gnome.org>
9810 * gc.c: Call GC_unregister_disappearing_link() on all links when
9811 finalizing them, this is necessary to aviod a crash in boehm's
9814 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9816 * gc.c: handle GetTarget for finalized objects spotted and fixed by
9819 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
9821 * icall.c: implemented MonoType::Module.
9822 * reflection.c, reflection.h: mono_module_get_object () from
9823 Tomi Pakarinen <tomi.pakarinen@welho.com>.
9825 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9827 * icall.c: ignore overridden methods in GetMethods ().
9828 Fix for FieldInfo::SetValue().
9829 * object.c: handle float/double in runtime invoke.
9831 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9833 * object.c: allow a constructor to be called again on an object.
9835 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9837 * class.h, class.c: move field layout code to it's own function and
9838 export it. Get an interface id earlier. Move fields in MonoClass
9839 so they are more cache friendly and align the bitfields.
9840 * loader.c: temporary handle get_param_names() for a runtime method.
9841 * reflection.c, reflection.h: more code to handle runtime creation of
9844 2002-09-09 Martin Baulig <martin@gnome.org>
9846 * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
9847 signature with the pinvoke field being set for the actual call.
9849 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9851 * icall.c: removed some unused icalls. Start of map of glib charsets
9852 to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
9854 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9856 * debug-helpers.c: break infinite loop (found and fixed by
9857 Holger Arnold <harnold@gmx.de>).
9859 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9861 * icall.c: target may be null in create_delegate.
9863 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9865 * marshal.c: handle a boolean return type.
9867 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9869 * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
9871 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9873 * gc.c: fix weakreferences.
9875 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
9877 * icall.c: added icall to get default codepage.
9879 2002-09-03 Dick Porter <dick@ximian.com>
9882 * threads.c: Use MonoThread instead of MonoObject where
9885 Store running thread objects in a hash table, so that we have all
9886 the info to hand when waiting for them to finish
9887 (means we don't need OpenThread() any more, so mingw builds should
9888 be fully functional again.)
9891 * object.h: Added thread ID to MonoThread
9893 2002-09-03 Martin Baulig <martin@gnome.org>
9895 * icall.c (System.Reflection.Assembly::get_location): New interncall.
9897 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9899 * icall.c: fixed leak in get_temp_path. Thanks lupus.
9901 2002-09-03 Martin Baulig <martin@gnome.org>
9903 * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
9904 argument to store the end address of the disassembled instruction.
9906 * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
9907 here from debug-symfile.h.
9908 (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
9909 JIT into this struct.
9910 (MonoSymbolFile): Added `char *image_file' field.
9911 (MonoDebugGetMethodFunc): Removed.
9912 (mono_debug_update_mono_symbol_file): Removed the hash table argument.
9913 (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
9914 (mono_debug_find_method): New method.
9916 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
9917 create a full symbol file.
9918 (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
9919 and static symbol files.
9920 (mono_debug_find_method): The symbol file keeps an internal method hash,
9921 call this to get a MonoDebugMethodInfo from a MonoMethod.
9923 * debug-symfile.[ch]: Removed.
9925 2002-08-29 Miguel de Icaza <miguel@ximian.com>
9927 * image.c (do_mono_image_open): Remove linker version check.
9929 2002-08-29 Dietmar Maurer <dietmar@ximian.com>
9931 * marshal.c (mono_marshal_get_managed_wrapper): don't cache
9932 wrappers for instance methods.
9934 2002-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9936 * icall.c: added ves_icall_System_IO_Path_get_temp_path.
9938 2002-08-28 Dick Porter <dick@ximian.com>
9940 * Makefile.am: Export HOST_CC for w32 builds
9942 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9944 * file-io.c process.c: MonoString are null terminated, no
9945 need for mono_string_to_utf16() anymore.
9947 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9949 * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
9951 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
9953 * icall.c, reflection.h: speedup System.MonoType.
9955 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9957 * reflection.c: allow null as the value of a string argument in
9958 custom attributes constructors.
9960 2002-08-27 Martin Baulig <martin@gnome.org>
9962 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
9963 `trampoline_address' field.
9965 2002-08-27 Dietmar Maurer <dietmar@ximian.com>
9967 * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
9968 check (fixes bug #29486)
9970 2002-08-27 Martin Baulig <martin@gnome.org>
9972 * debug-mono-symfile.c: Changed the file format in a way that allows us
9973 open it read-only and to use a specially malloced area for all the
9974 dynamic data. We can now also generate a symbol file on-the-fly if we're
9975 debugging IL code and there is no MCS generated symbol file for it.
9977 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
9979 * object.c: added a define for a good string and array
9980 creation speedup (not enabled by default because we need to deal with
9983 2002-08-26 Martin Baulig <martin@gnome.org>
9985 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
9986 function to create a dynamic symbol file. This is used by the
9987 debugger to create a symbol file for IL code on-the-fly.
9989 2002-08-26 Martin Baulig <martin@gnome.org>
9991 * loader.c (mono_lookup_pinvoke_call): Include the error message
9992 from g_module_error() in the error message.
9994 2002-08-24 Martin Baulig <martin@gnome.org>
9996 * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
9997 function to update the symbol file. The symbol file is mmap()ed
9998 writable, but private. This allows us to install the symbol file
9999 together with the assembly.
10001 2002-08-24 Martin Baulig <martin@gnome.org>
10003 * debug-mono-symfile.[ch]: New files. Similar to debug-symfile.[ch]
10004 but they can read the new symbol file format which mcs is now creating.
10006 * debug-symfile.c (mono_debug_find_source_location): Moved to
10007 debug-mono-symfile.c; this is now operating on the new symbol file.
10009 2002-08-23 Martin Baulig <martin@gnome.org>
10011 * debug-helpers.c (mono_method_desc_from_method): New function to get
10012 a MonoMethodDesc from a MonoMethod.
10014 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10016 * object.c: fixes assertion failure caused by multiple ExecuteAssembly
10017 calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
10019 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10021 * string-icalls.[ch]: make helper methods static.
10023 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10025 * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
10026 types to it and to SetValueInternal.
10028 * object.c: Moved handle_enum label to its proper place. This was the
10031 This time i compiled mcs and gtk-sharp and they both work.
10033 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10035 * icall.c: reverted partially my previous patch until
10036 object.c:set_value handles enums correcly.
10038 2002-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10041 (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
10042 (ves_icall_System_Environment_get_MachineName): removed warning when
10043 compiling under cygwin.
10045 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10047 * object.c: fixed field_get_value() for reference types.
10049 2002-08-22 Dick Porter <dick@ximian.com>
10051 * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
10052 Don't free a buffer while it's still needed. Patch from Jonathan
10053 Liger <Jonathan.liger@wanadoo.fr>
10055 2002-08-21 Miguel de Icaza <miguel@ximian.com>
10057 * icall.c (ves_icall_System_Environment_get_Platform): Add new
10060 2002-08-21 Dietmar Maurer <dietmar@ximian.com>
10062 * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
10063 (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
10065 * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
10066 we call unmanaged code which throws exceptions.
10068 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10070 * appdomain.h: added per-domain entry_assembly.
10071 * appdomain.c: ensure mono_runtime_exec_main () gets non-null
10073 * icall.c: Assembly::GetEntryAssembly icall.
10074 * object.c: set domain->entry_assembly in mono_runtime_exec_main().
10075 Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
10077 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10079 * appdomain.h, gc.c: added mono_domain_finalize ().
10081 2002-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10084 (mono_print_unhandled_exception): changed g_warning by g_printerr
10085 because g_log has a 1024 characters limit (yeah, i got a big stack
10086 trace). Don't print exception name, that should be in ToString
10089 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10091 * icall.c: added ves_icall_FieldInfo_SetValueInternal.
10092 * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
10094 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10097 (mono_print_unhandled_exception): after previous commit, i realized
10098 that MS calls ToString on the exception. I changed this function to
10099 do that. This way we get stack_trace for free.
10101 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10104 (mono_print_unhandled_exception): invoke Message property instead of
10105 getting 'message' field from Exception. Don't allocate memory for
10106 'trace' and 'message' if not needed.
10108 2002-08-18 Dick Porter <dick@ximian.com>
10110 * unicode.c: Fix asserts to match Encoder.cs checks
10112 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10114 * marshal.c: fix unaligned store issue and a few wrong
10115 opcode argument types.
10117 2002-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10119 * icall.c: added GetUninitializedObjectInternal internal call.
10121 2002-08-16 Dietmar Maurer <dietmar@ximian.com>
10123 * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10124 to the right domain.
10126 2002-08-14 Dietmar Maurer <dietmar@ximian.com>
10128 * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10130 * class.c (class_compute_field_layout): set blittable to false for Strings
10132 * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10134 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10136 * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10137 first chunk of code to create types at runtime. Code to
10138 handle ReflectedType/DeclaringType. Make reflection handles
10141 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10143 * class.c: set correct name in arrays.
10145 2002-08-13 Dietmar Maurer <dietmar@ximian.com>
10147 * appdomain.c (mono_domain_transfer_object): make it work with
10148 valuetypes. bug fixes.
10150 2002-08-12 Dick Porter <dick@ximian.com>
10152 * object.h: Rename some parameters to avoid c++ keywords (Patch
10153 from Joseph Wenninger <kde@jowenn.at>)
10155 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10157 * icall.c: added icall to implement Assembly.GetFile*.
10159 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10161 * reflection.h, reflection.c: code to embed managed resources.
10163 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10165 * class.c: move all the type size stuff into
10166 class_compute_field_layout().
10168 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10170 * class.c: ensure enums have always the correct instance size.
10171 * unicode.c: remove wrong assert.
10173 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10175 * assembly.c: fix mem corruption issue.
10176 * image.h, image.c: added mono_image_get_resource () to access
10178 * icall.c: implemented Assembly.EntryPoint property and some
10179 Managed Resources related internalcalls.
10182 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10184 * image.c, image.h: impemented mono_image_get_entry_point ().
10185 * appdomain.c: use mono_image_get_entry_point.
10187 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10189 * reflection.c: support the object type argument when loading
10192 2002-08-05 Dietmar Maurer <dietmar@ximian.com>
10194 * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10195 String as return type.
10197 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10199 * reflection.c: fix encoding of named args for custom attrs to match
10200 the ms implementation. Read them back when instantiating custom
10203 2002-08-02 Radek Doulik <rodo@ximian.com>
10205 * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10206 by Dietmar as quick fix
10207 (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10208 16 as stack size, used on more places as quick fix before Dietmar
10209 will fix it properly
10211 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10213 * object.h, object.c: added accessors for fields and properties.
10215 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10217 * class.c, class.h: made mono_class_get_field_from_name ()
10218 loop on parent types.
10219 Added mono_class_get_property_from_name ().
10221 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10223 * class.c, class.h: move the code to setup the type vtable in its own
10224 function so that it can be reused also for types created at runtime.
10225 Eliminate the "class" identifier from the header file.
10226 * reflection.c: setup the vtable for enums so that we can create
10227 objects for use in SetConstant ().
10229 2002-08-02 Dietmar Maurer <dietmar@ximian.com>
10231 * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10232 instead of the delegate itself as this pointer (bug #28383)
10234 2002-08-01 Dietmar Maurer <dietmar@ximian.com>
10236 * marshal.c (mono_marshal_get_managed_wrapper): added return type
10239 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10241 * loader.c: don't set the pinvoke bit on icalls.
10243 2002-07-31 Dietmar Maurer <dietmar@ximian.com>
10245 * debug-helpers.c (mono_method_full_name): only print a number to
10246 indicate wrapper type (so that the output is more readable in traces).
10248 2002-07-30 Dietmar Maurer <dietmar@ximian.com>
10250 * class.c (mono_class_init): include method override patch from Paolo
10252 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10254 * icall.c: fixed GetTypeCode().
10256 2002-07-29 Dietmar Maurer <dietmar@ximian.com>
10258 * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10259 use real delegate invoke function to make it work with multicast
10260 delegates (fix bug# 28291).
10262 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10264 * object.c: load constant strings.
10266 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10268 * reflection.c: no magic numbers.
10269 * tabledefs.h: security action enum.
10271 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10273 * assembly.c: fix possible memory corruption.
10275 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10277 * reflection.h, reflection.c: added support for linking resources.
10278 * verify.c: check we have an updated corlib.
10280 2002-07-25 Dietmar Maurer <dietmar@ximian.com>
10282 * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10284 (mono_marshal_string_array): null terminate unmanaged string arrays.
10285 (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10287 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10289 * icall.c: Type.GetType () can now return also types from the
10292 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10294 * loader.h, loader.c: stack walking support.
10295 * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10296 GetCallingAssembly.
10298 2002-07-24 Dietmar Maurer <dietmar@ximian.com>
10300 * marshal.c: added optimisations for blittable types
10302 * class.c (mono_array_class_get): do not set blittable attribute on arrays
10303 (mono_class_setup_mono_type): set blittable attribute for single
10306 * marshal.c (mono_string_utf8_to_builder): impl.
10307 (mono_string_builder_to_utf8): impl.
10308 (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10310 2002-07-23 Dietmar Maurer <dietmar@ximian.com>
10312 * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10313 (mono_marshal_get_managed_wrapper): impl. byref types
10315 2002-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10318 (search_method): don't display debug message.
10320 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
10322 * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10324 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10326 * appdomain.c: set the missing filename when throwing exception.
10328 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
10330 * metadata.c (mono_type_size): code cleanup
10331 (mono_type_stack_size): removed some test code
10333 2002-07-21 Miguel de Icaza <miguel@ximian.com>
10335 * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10336 mono_get_exception_file_not_found now.
10338 * exception.c (mono_exception_from_name_two_strings): New version
10339 that will call a constructor with two string arguments.
10340 (mono_get_exception_file_not_found): New helper routine, used to
10341 report file-not-found errors.
10343 2002-07-20 Dick Porter <dick@ximian.com>
10346 * process.c: Pass file handles to CreateProcess
10350 * file-io.c: Implemented CreatePipe
10352 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
10354 * metadata.c (mono_get_param_info): set alignment for value types
10356 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10358 * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10359 Constify mono_domain_assembly_open().
10360 * loader.c: handle null namespace in icalls.
10362 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
10364 * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10365 (emit_str_to_ptr_conv): marshal object as structs
10367 * metadata.c (mono_type_to_unmanaged): marshal object as structs
10369 * marshal.c (mono_marshal_get_runtime_invoke): support value types
10371 2002-07-18 Dietmar Maurer <dietmar@ximian.com>
10373 * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10374 (mono_marshal_get_native_wrapper): we an now return value types
10376 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10378 * verify.c: more checks implemented.
10380 2002-07-17 Dietmar Maurer <dietmar@ximian.com>
10382 * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10384 (mono_marshal_get_native_wrapper): allow byref arguments
10385 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10386 impl. PtrToStringXXX methods
10387 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10388 (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10389 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10390 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10391 (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10393 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10395 * reflection.c: fix buglet in parsing an assembly name.
10397 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
10399 * marshal.c (emit_ptr_to_str_conv): first impl.
10401 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10403 * object.c, class.h: cache the vtable in the class as suggested by
10404 vargaz@freemail.hu (Zoltan Varga).
10406 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10408 * class.h, loader.c: added mono_field_from_token().
10409 * verify.c: first cut of type checking code.
10411 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
10413 * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10415 2002-07-15 Dietmar Maurer <dietmar@ximian.com>
10417 * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10419 (mono_marshal_get_remoting_invoke): impl.
10420 (mono_delegate_begin_invoke): impl.
10421 (mono_mb_emit_save_args): impl.
10422 (mono_delegate_end_invoke): impl.
10423 (mono_marshal_get_delegate_begin_invoke):
10424 (mono_marshal_get_delegate_end_invoke):
10425 (mono_marshal_get_delegate_invoke): generate a special name for
10426 those methods (including the signature) and associate them whith
10427 the delegate class.
10429 2002-07-13 Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10432 (mono_reflection_type_from_name): now it has a MonoImage parameter
10433 which is used as the default image to search the type in. If the image
10434 is NULL or getting the type from it fails, it defaults to corlib.
10436 * icall.c: changed 1 call to mono_reflection_type_from_name to match
10439 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10441 * reflection.c: update the parameter table index.
10443 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10445 * domain.c: don't include the mark byte in the string hash.
10447 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10449 * icall.cs: icall for Type.GetTypeCode ().
10450 * verify: a couple of fixes and disabled local initialization checks.
10452 2002-07-12 Dietmar Maurer <dietmar@ximian.com>
10454 * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10456 * debug-helpers.c (mono_method_full_name): print the type of the
10459 * metadata.c (mono_signature_hash): a hash function for signatures
10460 (mono_signature_hash): better hash algorithm
10462 * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10464 * debug-helpers.c (mono_method_full_name): this can now generate
10465 method names with signatures
10467 * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10468 method dont have this pointers.
10470 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10472 * reflection.c: fixup typebuilder tokens.
10473 * image.c: fix buglet.
10474 * marshal.h: remove whitespace.
10475 * metadata.h, metadata.c: reinstate code that was removed.
10476 * verify.c: handle catch directives and fix another couple of bugs.
10478 2002-07-11 Dietmar Maurer <dietmar@ximian.com>
10480 * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10481 (mono_marshal_get_native_wrapper): make it comp. with the old code
10482 (mono_marshal_get_native_wrapper): support boolean
10483 (mono_marshal_get_managed_wrapper): support more types
10485 2002-06-25 Dietmar Maurer <dietmar@ximian.com>
10487 * class.c (class_compute_field_layout): compute class->blittable attribute.
10489 2002-07-09 Dick Porter <dick@ximian.com>
10491 * threads.c: Make the thread cleaning up cope with threads that
10494 2002-07-08 Radek Doulik <rodo@ximian.com>
10496 * reflection.c (method_encode_code): use non-translated values to
10497 compute finally_start, this fixes exception handling on ppc, yay!
10499 * decimal.h (struct signscale): fix endianess
10501 2002-07-07 Radek Doulik <rodo@ximian.com>
10503 * reflection.c: swap box_val and not val
10505 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10507 * reflection.c, reflection.h: handle full assembly info in type name.
10508 Handle Type arguments when loading custom attributes.
10509 * icall.c: updated to use new mono_reflection_type_from_name () method.
10511 2002-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10514 (method_from_memberref): also print assembly name when method not found.
10516 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10519 (ves_icall_TypeGetProperties): fixed bug #27473.
10521 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10523 * reflection.c: display image name and token when cannot find the
10524 .ctor for an attribute.
10526 2002-07-05 Martin Baulig <martin@gnome.org>
10528 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10530 2002-07-04 Dick Porter <dick@ximian.com>
10532 * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10533 compile on mingw. This will cause mingw builds to not wait for
10534 subthreads to terminate after the main thread does. I've lodged a
10535 bug with the mingw developers for them to wrap OpenThread().
10537 2002-07-03 Dick Porter <dick@ximian.com>
10539 * threads.c: Store thread IDs instead of handles, because
10540 GetCurrentThread() returns a pseudohandle and therefore stores
10541 useless values. mono_thread_cleanup() continues checking the
10542 array of threads until it is empty, to cope with subthreads
10543 spawning new threads after the main thread has finished.
10547 * profiler-private.h: Pass the thread ID to thread profiler
10548 functions, instead of a handle
10550 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10552 * verify.c: fixes to make it more usable.
10553 * pedump.c: added --verify code to verify IL code in an assembly.
10555 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10557 * reflection.c: turn errors into warnings to allow compiling corlib.
10559 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10561 * reflection.c: add special cases to compile corlib.
10563 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10565 * reflection.c: handle properties with only a set method.
10567 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10569 * opcodes.h: add enum with opcodes in opval order.
10571 2002-07-01 Dick Porter <dick@ximian.com>
10574 * object.c (mono_runtime_run_main): Removed unneeded argument
10576 2002-06-28 Martin Baulig <martin@gnome.org>
10578 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10580 2002-06-27 Dick Porter <dick@ximian.com>
10582 * threads.c: Store the handle in both the parent thread and in the
10583 subthread, to minimise the time between starting a new thread and
10586 2002-06-26 Dick Porter <dick@ximian.com>
10588 * appdomain.c (mono_runtime_cleanup): Close the socket library
10589 after all the threads have finished, not before
10591 2002-06-26 Martin Baulig <martin@gnome.org>
10593 * debug-symfile.c (mono_debug_find_source_location): Added
10594 `guint32 *line_number' argument. If it's not NULL, store the line number
10595 there and return the file name without the line number.
10597 2002-06-25 Dick Porter <dick@ximian.com>
10601 * process.c: Process forking and other support functions
10603 2002-06-25 Dick Porter <dick@ximian.com>
10605 * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10606 things dont happen when the image is closed.
10607 (mono_image_lookup_resource): Walk the resource section looking
10608 for a particular entry
10610 * cil-coff.h: PE resource section decoding
10612 2002-06-25 Dick Porter <dick@ximian.com>
10616 (mono_assembly_foreach): Accessor functions to walk the list of
10618 (mono_assembly_set_main):
10619 (mono_assembly_get_main): Process methods need to know which
10620 assembly is the "main" one
10622 * object.c (mono_runtime_run_main): Record the main assembly
10624 * debug-helpers.c: Fix typo
10626 2002-06-24 Dietmar Maurer <dietmar@ximian.com>
10628 * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10629 (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10631 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10633 * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10635 2002-06-21 Miguel de Icaza <miguel@ximian.com>
10637 * image.c (do_mono_image_open): Initialize reference count,
10638 otherwise we leak the MonoImage.
10640 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10642 * reflection.c: small tweak to handle self-hosting.
10644 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10646 * reflection.c: fix type name parse code.
10648 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10650 * reflection.c: break out of the loop.
10651 * image.c: special case corlib.
10653 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10655 * reflection.c: add all the custom attrs at the end to ensure the
10656 ctors have been properly initialized when the attributes are defined
10657 in the current assembly.
10659 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10661 * reflection.c: handle correctly multiple-nested types.
10663 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10665 * row-indexes.h: fix typos.
10666 * reflection.c: adjust for typos and fix method_def_or_ref
10667 encoding in MethodImpl table.
10669 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10671 * reflection.c: fix entry point patching (thanks Serge!).
10673 2002-06-18 Dietmar Maurer <dietmar@ximian.com>
10675 * verify.c: add check for System.Exception
10677 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10679 * image.c, class.c: minifix for code just c&p'ed.
10680 * reflection.c: warning fix.
10681 * object.h, loader.h, domain.c: load also StringBuilder.
10683 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10685 * marshal.h, marshal.c: some support code to handle complex marshaling.
10687 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10689 * class.h, class.c, reflection.c: handle ignorecase in GetType ().
10690 Better signatures with vtable error dump.
10692 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
10694 * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
10696 2002-06-17 Dietmar Maurer <dietmar@ximian.com>
10698 * icall.c (ves_icall_Type_GetField): impl.
10700 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10702 * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
10703 to retrieve a marshal description blob for a field or param.
10705 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10707 * reflection.h, reflection.c: change order of nested type emission
10708 to avoid table corruption. The NestedTypes table is sorted.
10709 * icall.c: change order of GetConstructor results to workaround mcs bug.
10711 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10713 * reflection.h, reflection.c: handle field and param marshal
10716 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10718 * icall.c, marshal.c marshal.h: more Marshal class implementation.
10720 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10722 * reflection.c: fix call convention.
10724 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10726 * reflection.h, reflection.c: mono_image_get_memberref_token()
10727 takes a type instead of a class, now. Added
10728 mono_image_get_array_token() to create tokens for the special
10729 multi-dim array methods.
10731 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10733 * assembly.c: handle modules (no assembly table). Split
10734 loading references in its own function.
10735 * class.c: handle moduleref resolution scope.
10736 * image.c, image.h: cache module name in image.
10738 2002-06-07 Martin Baulig <martin@gnome.org>
10740 * reflection.c (mono_image_get_type_info): Only add a class layout entry
10741 if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
10743 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10745 * icall.c: more signature fixes that used uint instead of int.
10747 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10749 * reflection.c: fixed signature of field refs.
10751 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10753 * class.c, reflection.c: handle typerefs of nested types
10754 (both on read and when writing files).
10756 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10758 * icall.c: fix method signatures that tried to workaround the previous
10761 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10763 * debug-helpers.c: fix typo.
10765 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10767 * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
10768 rewrote the PE/COFF writing code (our programs are understood by the
10771 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10773 * gc.c, gc.h, icall.c: weakreference support.
10775 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10777 * Makefile.am, mono-config.c: use $(sysconfdir).
10779 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10781 * icall.c: changed default precision of Double.ToString() to 15.
10782 Fixed memory leak. Unified with Single.ToString.
10784 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10786 * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
10788 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10790 * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
10791 gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
10792 warnings and compilation fixes from Dennis Haney (davh@davh.dk)
10795 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10797 * debug-symfile.c, sysmath.c: yet more compilation fixes.
10799 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10801 * reflection.c, socket-io.c: more compilation fixes.
10803 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10805 * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
10806 domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
10807 unicode.c: warning and compiler compatibility fixes.
10809 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10811 * class.h, metadata.c: fixed warnings/compilation errors.
10813 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10815 * Makefile.am, mono-config.c, mono-config.h: configuration file
10817 * loader.c, loader.h: make Dll mapping configurable at runtime in the
10818 config file. Export methods to insert and lookup mappings.
10820 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10822 * reflection.c: handle types and boxed objects in custom attr
10825 2002-05-30 Martin Baulig <martin@gnome.org>
10828 (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
10830 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
10832 * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
10833 to lookup the implmap row for a P/Invoke method.
10834 * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
10835 P/Invoke method from the runtime on an as needed basis.
10837 2002-05-28 Dietmar Maurer <dietmar@ximian.com>
10839 * metadata.c (mono_metadata_parse_signature): impl.
10841 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10843 * class.c: handle .pack directive.
10845 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10847 * object.c: initialize static fields with RVA data.
10849 2002-05-25 Martin Baulig <martin@gnome.org>
10852 (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
10854 2002-05-24 Martin Baulig <martin@gnome.org>
10857 (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
10858 (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
10859 `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
10861 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10863 * object.c: special case string ctros in invoke.
10864 * gc.c: silly whitespace changes.
10866 2002-05-23 Dietmar Maurer <dietmar@ximian.com>
10868 * threadpool.[ch]: impl. a threadpool that can
10869 be used by mint and mono.
10871 2002-05-22 Martin Baulig <martin@gnome.org>
10873 * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
10874 The first argument is now a `MonoReflectionModuleBuilder *', the return
10875 value is a `MonoReflectionModuleBuilder *'. Use the AssemblyBuilder's
10876 `methods' field to get the method builder. The `token' argument is the
10879 * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
10880 invalid characters instead of g_assert_not_reached()ing. This seems
10881 to be the behaviour of mscorlib.
10883 2002-05-22 Dietmar Maurer <dietmar@ximian.com>
10885 * object.c (mono_runtime_invoke_array): applied patch from Rachel
10886 Hestilow to fix bug #25104
10888 2002-05-21 Martin Baulig <martin@gnome.org>
10890 * debug-symfile.c (mono_debug_find_source_location): New function.
10891 Looks up an IL offset in the line number table and returns the source
10892 location as a string.
10894 2002-05-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10897 (mono_double_ToStringImpl): changed %f by %g until we have something
10900 2002-05-21 Nick Drochak <ndrochak@gol.com>
10902 * icall.c : Use different name for Math.Pow's icall. Needed to check
10903 parameters first in C#.
10905 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10907 * icall.c, reflection.h: added icall to get info about an event.
10909 2002-05-20 Radek Doulik <rodo@ximian.com>
10911 * object.c (mono_value_box): don't use memcpy for boxing on BIG
10913 (mono_value_box): don't use memcpy for small sizes on
10914 architectures with unaligned access
10916 2002-05-20 Martin Baulig <martin@gnome.org>
10918 * reflection.c (mono_reflection_setup_internal_class): Don't crash
10919 if `tb->parent == NULL'.
10920 (mono_reflection_create_internal_class): New function. This is
10921 called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
10924 * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
10927 2002-05-19 Martin Baulig <martin@gnome.org>
10929 * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
10930 argument to get the length, don't default to the array length.
10932 2002-05-18 Miguel de Icaza <miguel@ximian.com>
10934 * assembly.c (mono_assembly_setrootdir): New function used to
10935 override the MONO_ASSEMBLIES directory.
10937 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10939 * icall.c: ValueType_GetHashCode() initialize local var.
10941 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10943 * reflection.c: sort custom attributes table.
10945 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10947 * reflection.c: support named args in custom attributes (write support).
10949 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10951 * reflection.c: fix finally position calculation.
10953 2002-05-15 Radek Doulik <rodo@ximian.com>
10955 * reflection.c: fixed endianess at many places
10957 * icall.c (ves_icall_InitializeArray): comment out debug msg
10959 2002-05-15 Dietmar Maurer <dietmar@ximian.com>
10961 * object.c (mono_unhandled_exception): new function to handle
10962 unhandled exceptions.
10963 (mono_unhandled_exception): call the UnhandledException event.
10964 (mono_runtime_delegate_invoke): impl.
10966 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
10968 * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
10969 returns the RVA, not the direct pointer to the data. Handle the case
10970 when the class size is fixed.
10972 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10974 * reflection.c: fix some endianess issues.
10976 2002-05-14 Dietmar Maurer <dietmar@ximian.com>
10978 * object.c (mono_runtime_invoke): is now able to catch exceptions.
10980 * threads.c (mono_thread_init): added a callback which is invoked
10983 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
10985 * icall.c: make GetHashCode return non-negative values.
10987 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
10989 * object.c, icall.c, gc.c: revert to address-based hashcode.
10991 2002-05-13 Miguel de Icaza <miguel@ximian.com>
10993 * icall.c (mono_double_ParseImpl): Added ParseImpl method.
10995 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10997 * icall.c, class.c: special case <Module>.
10999 2002-05-13 Dan Lewis <dihlewis@yahoo.co.uk>
11001 * icall.c: fix bug in GetNow().
11003 2002-05-11 Dietmar Maurer <dietmar@ximian.com>
11005 * object.c (mono_runtime_class_init): make sure that we call all
11006 static class constructors.
11008 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11010 * reflection.c: sort methodsemantics table.
11012 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11014 * reflection.h, reflection.c: honour init locals setting.
11016 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
11018 * icall.c: copied Double ToStringImpl for Single ToStringImpl
11020 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11022 * reflection.c: support ContructorBuilders in attribute blob creation.
11024 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11026 * reflection.c: some changes to build a binary that can be run
11027 directly in windows.
11029 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11031 * loader.c: print a big message when an icall can't be found.
11033 2002-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11035 * string-icalls.c: fix bug 24248.
11037 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
11039 * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
11040 icall.c, reflection.h: separate assembly loading by pathname and by
11041 assembly name. Use the MONO_PATH env var to search for assemblies.
11043 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11045 * assembly.c, image.h: add some support for assemblies
11046 with multiple modules.
11047 * class.c, class.h: export mono_class_from_typeref().
11048 * loader.c: remove duplicated code and use mono_class_from_typeref(),
11051 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11053 * unicode.c: Char.IsNumber doesn't include hex digits as the ms
11054 documentation says (the ECMA one is correct).
11056 2002-05-02 Dick Porter <dick@ximian.com>
11058 * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
11059 Don't name the synchronisation mutex.
11061 2002-04-30 Jeffrey Stedfast <fejj@ximian.com>
11064 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
11065 Make the prototypes match.
11066 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
11070 (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
11071 systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
11072 all systems have tm.tm_zone, so use strftime() with %Z to print
11073 the timezone abreviation into a temp string.
11075 * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
11076 rather than mono_array_addr() on a MonoString on Big Endian
11079 2002-04-30 Dietmar Maurer <dietmar@ximian.com>
11081 * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
11084 2002-04-30 Dick Porter <dick@ximian.com>
11086 * socket-io.c: Cope with SOCKET being an integer rather than a
11089 * threads.c: Added Thread_free_internal, to deal with thread
11090 handle cleanup. Moved calls to handle_store() and handle_remove()
11091 to start_wrapper(), so each can only be called once. Allocate
11092 synchronisation blocks with GC_malloc(), and use GC finalisation
11093 to close the handles.
11095 * icall.c: added System.Threading.Thread::Thread_free_internal
11097 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11099 * icall.c: support Environment.Exit, CommandLineArgs().
11101 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11103 * object.c, object.h: added mono_runtime_run_main () and
11104 mono_runtime_get_main_args () for use in System.Environment.
11106 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11108 * gc.c: fix thinko, enable actual finalization since the jit is now
11111 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11113 * gc.c, object.c: take into account that an object may be offset wrt the address
11114 returned by GC_malloc().
11116 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11118 * image.c: handle files without entries in the assembly table (modules).
11120 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11122 * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow
11123 mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11124 allowed to be null when it's System.Object class setup.
11126 2002-04-27 Martin Baulig <martin@gnome.org>
11128 * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11129 if `tb->parent == NULL' rather than crashing.
11131 2002-04-28 Nick Drochak <ndrochak@gol.com>
11133 * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error. Was
11134 calling acos() where asin() should have been called.
11136 2002-04-26 Martin Baulig <martin@gnome.org>
11138 * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11139 instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11140 there's a subdirectory called `System', but we don't want to read that
11141 subdirectory as an assembly.
11143 2002-04-25 Martin Baulig <martin@gnome.org>
11145 * debug-symfile.c: Reflect latest MonoString changes.
11147 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11149 * rand.c, rand.h: instance method icalls need to have an explicit
11150 this pointer as first argument in the C implementation.
11152 2002-04-25 Nick Drochak <ndrochak@gol.com>
11154 * icall.c: Fix typo in map for GetNonZeroBytes
11156 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
11158 * string-icalls.c : String does now passes unit tests without any
11159 errors, the following changes has been made:
11161 Implemented replace methods.
11162 Renaming of methods to (try) follow the standard.
11163 Fixed compare ordinal
11164 Made all memory allocated directly to function instead of via icall function.
11165 Small performance fix in is_in_array function
11167 (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11169 c (mono_string_Internal_ctor_charp_int_int):
11170 (mono_string_Internal_ctor_sbytep_int_int): Removed check for
11171 sindex < 0, throw ArgumentOutOfRangeException instead of
11172 ArgumentNullException.
11174 Added new check for length == 0, however
11175 I need to make it return String.Empty from the C code.
11177 (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11178 that calculate the length for us here.
11180 (mono_string_Internal_ctor_sbytep_int_int): Replaced
11181 mono_string_new_utf16 with mono_string_new, since value is utf8.
11183 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11185 * object.c: register the object for finalization if needed.
11186 Allocate one more char in the string for the terminating 0 char.
11188 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11190 * class.c, class.h, image.c: check if a type implemenst a destructor.
11191 Use the proper key for array class lookups.
11192 * icall.c: register the icalls in the System.GC class.
11193 * gc.c, gc.h: GC-related functions and icalls.
11195 2002-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11199 * unicode.c: free some strings gotten from mono_string_to_utf8 and
11200 changed a couple of free () by g_free ().
11202 * decimal.c: one-liner in the comments for decimal2string ().
11204 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
11206 * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11208 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
11210 * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11211 * object.c (mono_runtime_invoke_array) : handle null in params
11213 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
11215 * string-icalls.c: fixed bug in split (one off bug)
11217 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
11219 * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11220 * icalls.c: added String::Equals as internal method
11222 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
11224 * threads.c: fixed bug in the double interlocked functions
11226 2002-04-22 Patrik Torstensson <patrik.torstensson@labs2.com>
11228 * threads.c: implemented all of the new interlocked icalls.
11229 * string-icalls.c: fix a bug in insert.
11230 * icalls.c: added the icalls for interlocked, removed old string functions.
11232 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11234 * loader.c: fix off-by-one error when reading argument names.
11236 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11238 * profiler.c: win32 counter implementation (untested).
11239 * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11240 (the latter needs testing and more complete impl. from win32 folks).
11242 2002-04-21 Dan Lewis <dihlewis@yahoo.co.uk>
11244 * object.c: mono_array_new_full workaround mono_array_class_get
11247 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
11249 * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11250 * object.h (mono_string_chars): Changed casting type.
11252 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
11254 * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11255 method signatures to use gunichar2 instead of gint16.
11257 2002-04-20 Dan Lewis <dihlewis@yahoo.co.uk>
11259 * object.h, object.c: domain-specific versions of mono_object_new and
11262 2002-04-20 Dietmar Maurer <dietmar@ximian.com>
11264 * object.c: changed String layout
11266 * string-icalls.c (mono_string_Internal_ctor_chara): added
11267 internal string constructors.
11269 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11271 * threads.c: pass 'this' to the thread start routine.
11273 2002-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11275 * string-icalls.c: fix IndexOf and LastIndexOf. Now
11276 InternalCompareStr don't call twice mono_string_cmp_char for the last
11277 character. Improved performance in mono_string_cmp_char.
11279 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11281 * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11282 code into its own library: libmonoruntime.
11284 2002-04-19 Dan Lewis <dihlewis@yahoo.co.uk>
11286 * object.h, object.c: changed array format so that szarrays do not
11287 require a bounds structure.
11288 * icall.c, appdomain.c: support for new szarray format.
11290 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11292 * metadata.c: compare also the retuns type when comparing signatures:
11293 we didn't do this as an optimization since really overloaded methods
11294 must differ also in the arguments, but this doesn't work with
11295 low-level IL code (or when using explicit conversion operators: see
11296 bug#23498 for an example).
11298 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11300 * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11302 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11304 * icall.c: make MonoType::GetElementType its own icall.
11306 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11308 * icall.c: remove MonoMethod_get_Name().
11309 * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11312 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
11314 * string-icalls.c: optimized a few methods.
11316 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
11318 * icall.c: added all new string internal calls
11319 * string-icalls.c: added, new string internal call implementation.
11320 * object.c: added mono_string_new_size for allocating a string a size
11322 2002-04-17 Dietmar Maurer <dietmar@ximian.com>
11324 * object.c (mono_object_isinst): use the same code as in the
11325 optimized x86 version.
11327 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11329 * profiler.c: TSC-based timer code (faster and more accurate).
11330 Not hooked up in configure, yet (set USE_X86TSC to 1).
11332 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11334 * profiler.c, profiler.h: track time spent compiling methods.
11335 * threads.c: track thread creation/destruction.
11337 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11339 * profiler.c, profiler.h, profiler-private.h: profiling interface
11340 and sample implementation. Moved here so that it can be used also by
11343 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11345 * reflection.c, reflection.h: keep types and other handles separate in
11346 the hash tables for referred tokens. Add guid for modules.
11348 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11350 * assembly.c: fix bugs found with valgrind.
11351 * metadata.h, metadata.c: added mono_metadata_guid_heap().
11353 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
11355 * threads: added icall support for getting current domain for
11358 2002-04-13 Martin Baulig <martin@gnome.org>
11360 * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11361 (MonoDebugVarInfo): Added `index' field for register based addresses.
11362 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11363 (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11364 `MonoDebugVarInfo *params' and `guint32 this_offset' with
11365 `MonoDebugVarInfo *this_var'.
11367 * debug-symfile.c (relocate_variable): New static function to write
11368 a location description for a local variable or method parameter.
11370 2002-04-12 Martin Baulig <martin@gnome.org>
11372 * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11373 stack offset and begin/end scope address of a local variable.
11374 (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11375 'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11376 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11378 * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11379 Added new relocation types for start/end scope of a local variable.
11381 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11383 * object.h: add mono_object_domain() macro.
11384 * reflection.c: handle typespecs.
11385 * icall.c: MonoMethod::get_Name() implementation.
11387 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11389 * icall.c: String::GetHashCode() icall implementation.
11391 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11393 * icall.c: String::IndexOfAny icall.
11394 * object.c, object.h: make array->max_length more useful.
11395 Intrduced mono_object_class() and mono_string_length() macros.
11397 2002-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11399 * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11400 instead of g_unichar_isdigit.
11402 2002-04-11 Nick Drochak <ndrochak@gol.com>
11404 * icall.c: Implement a simple Double.ToString().
11406 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11408 * appdomain.h: only io-layer.h is supposed to be included.
11409 * icall.c: explicitly import environ. Fix warning.
11411 2002-04-10 Nick Drochak <ndrochak@gol.com>
11413 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11414 return true even if it's not Daylight Savings time.
11415 Only return false for the case where the function isn't
11416 implemented for a plaform (read Windows).
11418 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11420 * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11423 2002-04-09 Dietmar Maurer <dietmar@ximian.com>
11425 * mempool.c (mono_mempool_alloc): only use g_malloc when
11426 absolutely necessary.
11428 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
11430 * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11432 * class.c (mono_class_vtable): use domain mempool to allocate vtable
11433 (mono_class_proxy_vtable): use domain mempool
11435 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11437 * appdomain.h, appdomain.c: split initialization that requires the
11438 execution engine support into mono_runtime_init().
11440 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
11442 * class.c (mono_class_init): don't include vtable inside MonoClass
11443 to save some memory, gather some statistics.
11444 (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11446 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11448 * icall.c: internalcall implementation for ValueType.Equals().
11450 2002-04-06 Dietmar Maurer <dietmar@ximian.com>
11452 * object.c (mono_message_init): moved
11453 (mono_runtime_exec_main): new arch. independent impl.
11454 (mono_runtime_invoke_array): new method - like
11455 mono_runtime_invoke, but you can pass an array of objects.
11456 (mono_remoting_invoke): new arch. independent impl.
11457 (mono_message_invoke): new arch. independent impl.
11458 (mono_runtime_class_init): new arch. independent impl.
11459 (mono_runtime_object_init): new arch. independent impl.
11461 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11463 * metadata.c, object.c, reflection.c: documented the exported
11466 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11468 * icall.c: simpler code to pass the assembly builder data to corlib.
11469 Implement GetNestedTypes() internalcall.
11471 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11473 * class.c: warn if a type can't be loaded.
11475 2002-04-04 Dietmar Maurer <dietmar@ximian.com>
11477 * image.h: typedef MonoImageOpenStatus
11478 * types.h: removed unused file
11480 2002-04-04 Dan Lewis <dihlewis@yahoo.co.uk>
11482 * icall.c: Enum_ToObject accepts enum value arguments.
11484 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11486 * class.c: move initialization of properties, events and nested
11487 classes, so that they happen for interfaces, too.
11489 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11491 * icall.c: cleanup some ugly casts in Array_SetValue*.
11493 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11495 * icall.c: the values array fro enums is of the correct type, now.
11496 Implement (correctly) getFullName instead of assQualifiedName for
11498 * reflection.h, reflection.c: added mono_type_get_name ().
11500 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11502 * assembly.c, image.h: for each MonoImage, record from wich assembly
11504 * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11505 Make Type.Assembly work.
11507 2002-04-03 Dietmar Maurer <dietmar@ximian.com>
11509 * debug-symfile.h: use char* instead of gpointer to avoid
11512 * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11514 * icall.c (ves_icall_InternalExecute): impl. FielSetter
11515 (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11517 2002-03-30 Dietmar Maurer <dietmar@ximian.com>
11519 * icall.c (mono_message_init): impl. (code cleanup)
11520 (ves_icall_InternalExecute): impl. FieldGetter
11522 * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11523 defined we call all (non-static)methods through the vtable.
11525 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11527 * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11528 finalizer even though the memory is still referenced (and the chunk of
11529 memory is not freed).
11531 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11533 * assembly.c: fix brokeness.
11535 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11537 * class.c: kill some warnings. Check explicit interface method
11538 implementation also without considering the namespace.
11539 Load also literal strings in static class data.
11541 2002-03-29 Miguel de Icaza <miguel@ximian.com>
11543 * assembly.c (default_assembly_name_resolver): Kill memory leak.
11544 (default_assembly_name_resolver): Make the resolver take the
11545 "base" directory where the assembly was originally defined, so we
11546 can load DLLs that are in the same directory as the assembly that
11547 is being referenced.
11549 2002-03-28 Dick Porter <dick@ximian.com>
11555 * unicode.c: Warning cleanups
11557 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11559 * object.h, reflection.h: use the correct type instead of MonoObject.
11561 2002-03-28 Martin Baulig <martin@gnome.org>
11563 * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11564 (mono_debug_update_symbol_file): Initialize classes if necessary.
11566 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11568 * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11569 rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11571 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11573 * assembly.h: fix function prototype.
11574 * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11575 * mono-endian.h: use const cast.
11577 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
11579 * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11581 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11583 * loader.c: don't assert when a typeref can't be loaded, give
11584 a chance to the runtime to trow an exception instead.
11585 * loader.h: fix warning.
11587 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
11589 * class.c (mono_class_proxy_vtable): added proxy support
11591 2002-03-27 Dan Lewis <dihlewis@yahoo.co.uk>
11593 * icall.c: removed last of PAL calls, added System.Environment
11594 * file-io.h, file-io.c: MonoIO implementation
11595 * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11597 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11599 * appdomain.c: do not use the byte marker in ldstr table lookup.
11600 * debug-helpers.c: allow two ':' to separate class and method name.
11601 * object.c: allocate arrays bounds with the GC, too.
11602 * verify: add a few more checks.
11604 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11606 * reflection.c: output also literal strings. Allocate parameter data
11607 with GC_malloc() (thanks, Martin, for catching this!).
11609 2002-03-26 Martin Baulig <martin@gnome.org>
11611 * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11612 include the `this' offset in the `param_offsets'.
11614 2002-03-25 Martin Baulig <martin@gnome.org>
11616 * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11617 mono_debug_get_class() function to get the classes. Added new
11618 relocation types for arrays and strings.
11619 (mono_debug_get_class): New static function to search in all
11620 referenced assemblies for a metadata token.
11622 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11624 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11626 * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11627 hold gc-allocated objects. Make the string heap a stream like the
11628 others. Removed duplicated code when writing stream info.
11629 Added asserts to catch possible buffer overflows. Set the sorted map
11630 for tables that need sorting. Added some documentation.
11632 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11634 * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table
11635 for interned strings and vtables.
11637 2002-03-24 Martin Baulig <martin@gnome.org>
11639 * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11640 it in the array since it was created with g_slist_prepend().
11642 2002-03-24 Martin Baulig <martin@gnome.org>
11644 * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11645 to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11646 (mono_debug_method_from_token): Renamed to
11647 ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11648 (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11650 * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11653 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11655 2002-03-24 Martin Baulig <martin@gnome.org>
11657 * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11658 (mono_debug_method_from_token): New func.
11660 * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11661 New interncall, calls mono_debug_local_type_from_signature().
11662 (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11663 calls mono_debug_method_from_token().
11665 2002-03-23 Martin Baulig <martin@gnome.org>
11667 * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11668 specifies the number of bytes to be converted, not the array size.
11669 Return the number of chars, not the number of bytes.
11670 (ves_icall_iconv_get_chars): The `byteCount' argument
11671 specifies the number of bytes to be converted, not the array size.
11673 2002-03-23 Martin Baulig <martin@gnome.org>
11675 * reflection.h (MonoReflectionSigHelper): New type.
11677 * reflection.c (mono_reflection_sighelper_get_signature_local),
11678 (mono_reflection_sighelper_get_signature_local): New functions.
11680 * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11681 (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11684 2002-03-23 Martin Baulig <martin@gnome.org>
11686 * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
11687 is_writeable is set.
11688 (mono_raw_buffer_update): New function to write the modified map
11691 * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
11693 * debug-symfile.c (mono_debug_update_symbol_file): Call
11694 mono_raw_buffer_update() when done writing.
11696 2002-03-23 Martin Baulig <martin@gnome.org>
11698 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
11700 * debug-symfile.c: Added support for arguments and local variables.
11702 2002-03-23 Dick Porter <dick@ximian.com>
11704 * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
11705 protected by ifdefs, hence breaking the w32 build.
11707 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11709 * object.c: implement is_interned() the right way.
11711 2002-03-21 Martin Baulig <martin@gnome.org>
11713 * debug-symfile.[ch]: New files to handle debugging information
11714 files. There's also support to dynamically update these symbol
11715 files to include machine dependent information.
11717 2002-03-20 Dietmar Maurer <dietmar@ximian.com>
11719 * threads.c (mono_thread_create): new function to create thread
11722 2002-03-20 Martin Baulig <martin@gnome.org>
11724 * icall.c (ves_icall_InternalInvoke): Create a new object if the
11725 method is a constructor.
11726 (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
11727 points to ves_icall_InternalInvoke().
11729 2002-03-20 Dan Lewis <dihlewis@yahoo.co.uk>
11731 * file-io.c: Flush shouldn't throw exceptions.
11733 2002-03-19 Dan Lewis <dihlewis@yahoo.co.uk>
11735 * file-io.c: FileStream flush support; FileSetLength now
11736 restores file pointer.
11738 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
11740 * class.c: set image for pointer classes.
11742 2002/03/19 Nick Drochak <ndrochak@gol.com>
11744 * sysmath.c: Forgot one.
11746 2002-03-18 Miguel de Icaza <miguel@ximian.com>
11748 * sysmath.c: Avoid redefining existing names.
11750 2002-03-18 Dan Lewis <dihlewis@yahoo.co.uk>
11752 * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
11753 handled by runtime as icall rather than dllimport from libm.so
11754 * file-io.c, file-io.h: fixed handle argument type.
11756 2002-03-18 Dick Porter <dick@ximian.com>
11758 * reflection.c (mono_image_get_type_info): rename interface to
11759 iface, because of "#define interface struct" on windows.
11761 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
11763 * class.c, class.h: rename and export mono_ptr_class_get().
11764 * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
11765 * reflection.c, reflection.h, icall.c: better/saner type name
11766 parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
11769 2002-03-14 Dietmar Maurer <dietmar@ximian.com>
11771 * class.c (mono_class_init): removed hardcoded GHC_SLOT
11773 * icall.c (ves_icall_InternalInvoke): impl.
11775 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11777 * reflection.c: output the interface map table, too.
11779 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
11781 * class.c (class_compute_field_layout): separate computation of
11782 static field layout
11784 2002-03-12 Dan Lewis <dihlewis@yahoo.co.uk>
11786 * icall.c: added System.Buffer support.
11787 * file-io.c: moved file icalls from PAL to FileStream.
11789 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
11791 * icall.c (ves_icall_System_Object_GetHashCode): impl.
11793 2002-03-11 Dietmar Maurer <dietmar@ximian.com>
11795 * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
11797 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11799 * verify.c, verify.h: moved here the corlib/runtime consistency checks.
11801 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
11803 * debug-helpers.{c,h}: moved here from monograph some useful functions
11804 to locate a method by name/signature in a class or image. Included
11805 also a small and flexible IL disassembler.
11807 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11809 * reflection.c: fixup tokens in methods with small header size, too.
11811 2002-03-08 Dietmar Maurer <dietmar@ximian.com>
11813 * object.c (mono_string_to_utf8): remove assert(!error), instead
11816 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
11818 * icall.c: update to the new mono_Array_class_get interface.
11820 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11822 * appdomain.c, object.c: Boehm-GC enable.
11823 * icall.c: make get_data_chunk() support split data requests.
11824 Ensure a class is initialized in more cases. Return only the first
11825 property found in GetProperties() or the compiler gets confused.
11826 Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
11827 * reflection.h, reflection.c: add fixup mechanism for field and method
11828 tokens. Initialize assembly->typeref in a single place. Output
11829 properties after events. Support custom attributes for events, too.
11830 Typo fix for paramter custom attrs.
11832 2002-03-07 Martin Baulig <martin@gnome.org>
11834 * icall.c (ves_icall_System_Array_FastCopy): Small fix.
11836 2002-03-07 Dietmar Maurer <dietmar@ximian.com>
11838 * class.c (mono_array_class_get): fix. for multi. dim. arrays
11840 2002-03-06 Martin Baulig <martin@gnome.org>
11842 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
11843 non-zero lower bounds. See testcases #F10-#F13.
11845 2002-03-05 Martin Baulig <martin@gnome.org>
11847 * exception.c (mono_get_exception_argument_out_of_range): New exception.
11849 * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
11850 ves_icall_System_Array_GetValue(), only calculate the absolute array position
11852 (ves_icall_System_Array_SetValue): Likewise.
11853 (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
11854 as argument and does the actual work. This function is used when copying a
11855 multi-dimensional array.
11856 (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
11857 now do all the widening conversions of value types.
11858 (ves_icall_System_Array_CreateInstanceImpl): Implemented.
11860 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11862 * class.c: remove some magic numbers and use the smbolic names,
11863 instead. Added init_events() to load event info at class init time.
11864 * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
11865 and mono_metadata_methods_from_event().
11866 * reflection.h, reflection.c: added support for writing out the evnets
11867 related information.
11869 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11871 * reflection.h, icall.c: use a different method (GetInterfaces)
11872 to gather interface info and add isbyref, isprimitive and
11873 ispointer to the ves_icall_get_type_info() return value.
11875 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
11877 * class.h: stared adding support for events.
11878 * icall.c: split find_members implementation. Added debug icall to get
11879 the address of an object.
11880 * reflection.c: handle TypeBuilders in mono_type_get_object().
11882 2002-03-01 Martin Baulig <martin@gnome.org>
11884 * icall.c (ves_icall_System_Array_GetLength): This must throw an
11885 ArgumentOutOfRangeException(), not an ArgumentException().
11886 (ves_icall_System_Array_GetLowerBound): Likewise.
11887 (ves_icall_System_Array_GetValue): Improved argument checking.
11888 (ves_icall_System_Array_SetValue): Improved argument checking.
11890 2002-03-01 Martin Baulig <martin@gnome.org>
11892 * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
11893 called with invalid arguments rather than just dying with g_assert().
11894 (ves_icall_System_Array_SetValue): Likewise.
11895 (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
11896 raise a NotImplementedException instead.
11897 (ves_icall_System_Array_GetLength): Added argument checking.
11898 (ves_icall_System_Array_GetLowerBound): Added argument checking.
11900 2002-03-01 Dietmar Maurer <dietmar@ximian.com>
11902 * object.h (mono_assert): new macros mono_assert and
11903 mono_assert_not_reached
11905 2002-02-28 Martin Baulig <martin@gnome.org>
11907 * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
11908 and "System::String::IsInterned" to "System::String::_IsInterned".
11910 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
11912 * icall.c: remove hacks for typebuilder. Added icall to create a
11913 modified type from a tybebuilder.
11914 * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
11915 in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
11916 to create a backing MonoClass for a TypeBuilder.
11918 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11920 * class.c, class.h: more refactoring of class init.
11921 Export mono_class_setup_mono_type() and mono_class_setup_parent().
11923 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
11925 * marshal.c, marshal.h: start of marshaling interface.
11927 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
11929 * icall.c: fix order in assembly qualified name icall.
11931 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
11933 * class.c: do not free str, since we store it in the hash table.
11934 * reflection.h: add label field to MonoILExceptionInfo.
11935 * reflection.c: handle references to more than one assembly. Handle
11936 case when there isn't a module created in the assembly.
11938 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11940 * class.c: Fix typo. Start refactoring of class init code.
11942 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11944 * appdomain.c: exit with 1 on error.
11945 * class.c: we already have the name in MonoClassField.
11946 * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
11947 MonoStreamHeader instead of an offset of image->raw_metadata.
11949 2002-02-26 Miguel de Icaza <miguel@ximian.com>
11951 * appdomain.c (mono_init): Be even more descriptive about the error.
11953 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
11955 * appdomain.c: give the user an informative message when corlib can't
11958 2002-02-26 Martin Baulig <martin@gnome.org>
11960 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
11961 New icall to get the time zone data.
11963 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11965 * reflection.c: set virtual and raw size of section correctly.
11966 * threads.c: transfer domain information to newly created threads.
11968 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
11970 * class.c: when instancing a class in a domain, load the default
11971 vaules for static fields from the constant table. Fix System.Enum to
11973 * icall.c: implement Object::GetType() internalcall. Implemented
11974 MonoField::GetValue() internalcall. Avoid SEGV in search_method().
11975 Fixed checking of binding flags in find_members().
11976 * metadata.c, metadata.h: introduce mono_metadata_type_hash().
11977 * reflection.c: handle enumerations when writing to the constant
11978 table. Use a different object cache for types.
11981 2002-02-22 Dietmar Maurer <dietmar@ximian.com>
11983 * object.c (mono_object_isinst): fix for arrays
11985 * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
11987 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
11989 * object.c: don't use mprotect () and fix intern pool hash table
11990 lookup for big endian systems.
11992 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
11994 * icall.c: change type_is_subtype_of () signature.
11996 2002-02-21 Mark Crichton <crichton@gimp.org>
11998 * rand.c, rand.h: Added random number generator for
11999 System.Security.Cryptography classes.
12001 * exception.c, exception.h: Added mono_get_exception_not_implemeted.
12003 * icall.c: Added System.Security.Cryptography calls.
12005 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12007 * class.c, icall.c, metadata.c: better support for pointer types.
12008 Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
12009 * reflection.c: Add support for getting custom attrs for properties
12010 and simplify some code.
12012 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12014 * icall.c: change getToken () and add custom attribute GetBlob()helper
12016 * reflection.h: add custom attrs array to the reflection builder structures.
12017 * reflection.c: encode and emit custom attributes for all the relevant
12018 reflection objects. Cache fieldref and methodref tokens. Change
12019 mono_image_create_token() interface to take a MonoDynamicAssembly.
12020 More complete custom attributes decoder. Load custom attributes for
12021 Assembly, Field, Method and Constructor objects, too. Make the
12022 returned array an Attribute[] one, not object[]. Added
12023 mono_reflection_get_custom_attrs_blob() to encode the arguments of a
12024 custom attribute constructor.
12026 2002-02-20 Dick Porter <dick@ximian.com>
12030 * socket-io.c: Windows portability fixes (sometimes just ifdeffing
12031 problem code out for now).
12033 2002-02-19 Radek Doulik <rodo@ximian.com>
12035 * object.c (mono_ldstr): use hash table to avoid multiple swapping
12037 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
12039 * icall.c: register the GetCustomAttributes method.
12040 * object.c, object.h: add mono_string_new_len ().
12041 * reflection.h, reflection.c: added mono_runtime_invoke(),
12042 mono_install_runtime_invoke(). Added
12043 mono_reflection_get_custom_attrs () to load custom attributes and
12044 create the attribute objects.
12046 2002-02-19 Dick Porter <dick@ximian.com>
12047 * threads-dummy-types.c:
12048 * threads-dummy-types.h:
12051 * threads-pthread-types.c:
12052 * threads-pthread-types.h:
12053 * threads-pthread.c:
12054 * threads-pthread.h: Deleted obsolete files
12056 2002-02-19 Dietmar Maurer <dietmar@ximian.com>
12058 * class.c (mono_class_vtable): runtime init the class when we
12059 allocate static class data.
12061 * icall.c (ves_icall_System_Array_SetValue): check for null values.
12063 * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
12064 and String - but we will need generic marshalling support in the
12066 (mono_init): set the domain name in a ms compatible way
12068 * object.c (mono_string_new_utf16): bug fix: use char[] instead of
12071 2002-02-18 Dietmar Maurer <dietmar@ximian.com>
12073 * object.c (mono_array_clone): use alloca() instead of g_malloc
12076 * appdomain.c (mono_domain_unload): impl.
12078 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12080 * appdomain.c, object.c: fix intern pool implementation.
12081 * class.c: fix alignment code.
12083 2002-02-16 Radek Doulik <rodo@ximian.com>
12085 * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
12086 and s2 > s1, just copy lower bytes to be compatible with little
12087 endian (i.e. 64bit value & 0xffffffff --> 32bit value)
12088 (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
12090 * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
12091 force big_endian to be 1 for big endian machines
12092 (ves_icall_iconv_new_decoder): ditto
12094 2002-02-16 Jeffrey Stedfast <fejj@ximian.com>
12096 * socket-io.c (convert_sockopt_level_and_name): If the system
12097 doesn't define SOL_IP or SOL_TCP, get them by hand using
12098 getprotobyname() and caching the values (because this could be a
12100 (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
12101 Use the appropriate struct when the system does support it. Ie,
12102 not all systems have struct ip_mreqn so use struct ip_mreq when
12105 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
12107 * reflection.c: handle finally clauses.
12109 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12111 * socket-io.c: use g_snprintf() instead of snprintf.
12113 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
12115 * reflection.c (mono_param_get_objects): Cast second argument to
12116 mono_method_get_param_names to a const char** to silence the
12119 * appdomain.c (mono_domain_assembly_open): Put parens around the
12120 truth statement in the for-loop.
12122 * unicode.c (iconv_convert): Got rid of a compiler warning about
12123 int i being unused when the system has a new iconv.
12124 (iconv_get_length): Same.
12126 * image.c (load_class_names): Cast the second argument to
12127 g_hash_table_insert() to char* to hush compiler warnings about the
12129 (mono_image_open): Same here.
12131 * socket-io.c: Don't conditionally include sys/filio.h or
12132 sys/sockio.h here anymore since we now get them from
12133 io-layer/io-layer.h
12134 (inet_pton): If the system doesn't support inet_aton, implement
12135 using inet_addr and also #define INADDR_NONE if it isn't defined
12138 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12140 * metadata.c, metadata.h: added function to get packing and size info
12142 * reflection.h, reflection.c: handle field RVA data. Save info about
12143 the table layout if needed. Assign typedef indexes to all the types
12144 before dumping the info about them to avoid forward reference problems.
12146 2002-02-14 Dietmar Maurer <dietmar@ximian.com>
12148 * socket-io.c (convert_sockopt_level_and_name): ifdef
12149 SO_ACCEPTCONN because it is not defined on my system (old debian)
12151 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12153 * opcode.c: use stddef.h to get NULL.
12155 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
12157 * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12158 for FIONBIO, FIONREAD and SIOCATMARK.
12159 (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12160 define INADDR_NONE and besides, inet_addr() is deprecated and
12161 should not be used. Use inet_pton() instead - it also has the
12162 added bonus that it can easily handle IPv6 addresses as well.
12163 (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12165 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12167 * decimal.c: remove _MSC_VER conditional.
12169 2002-02-13 Dick Porter <dick@ximian.com>
12172 * icall.c: Internal calls for Blocking, Select, Shutdown,
12173 GetSocketOption and SetSocketOption
12175 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12177 * assembly.cs: better resolver: use it instead of some kludgy
12180 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12182 * reflection.c: the best way to speed-up the compiler is to avoid
12185 2002-02-13 Dietmar Maurer <dietmar@ximian.com>
12187 * class.c (mono_class_vtable): changed the object layout
12188 (obj->vtable->class).
12189 (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12191 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12193 * assembly.c: look for assemblies in the assembly dir, too.
12195 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12197 * class.c: fix thinko in mono_class_from_type().
12199 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12201 * exception.h, exception.c: added TypeLoadException.
12202 * object.h, object.c: added mono_array_clone ().
12203 * icall.c: handle throwOnError in AssemblyGetType().
12204 Added Array.Clone().
12205 * opcode.h, opcode.c: use a single value for the opcode val.
12206 Compile fix for non-gcc compilers.
12208 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12210 * opcodes.c, opcodes.h: export interesting info about opcodes.
12212 2002-02-05 Dietmar Maurer <dietmar@ximian.com>
12214 * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12217 * class.c (class_compute_field_layout): set element_class for enums
12218 (mono_class_create_from_typedef): set element_class for normal classes
12220 * icall.c (ves_icall_System_Enum_get_value): impl.
12222 * class.c (mono_class_create_from_typedef): do not set valuetype
12223 flag for System.ValueType and System.Enum
12225 2002-02-04 Dietmar Maurer <dietmar@ximian.com>
12227 * unicode.c (iconv_convert): fix big endian problem.
12229 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12231 * class.c: add asserts if we are ever going to scribble over memory.
12232 * socket-io.c: not all systems have AF_IRDA defined.
12234 2002-01-31 Dietmar Maurer <dietmar@ximian.com>
12236 * class.c (class_compute_field_layout): do not consider static
12237 fields to compute alignment
12239 2002-01-25 Dietmar Maurer <dietmar@ximian.com>
12241 * appdomain.c (mono_appdomain_get): impl.
12242 (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12244 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12246 * icall.c: ignore "file://" prefix when loading an assembly.
12248 2002-01-23 Dick Porter <dick@ximian.com>
12252 * Makefile.am: Added socket support
12254 2002-01-23 Miguel de Icaza <miguel@ximian.com>
12256 * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12257 code back. This should return the assemblies that are loaded by
12258 the runtime on behalf of an application domain.
12260 The current implementation is still broken, it just returns every
12261 assembly loaded, but until we get real applications domain this
12264 2002-01-23 Dietmar Maurer <dietmar@ximian.com>
12266 * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12269 2002-01-23 Miguel de Icaza <miguel@ximian.com>
12271 * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12272 the mono_class_from_name lookup.
12273 (ves_icall_get_parameter_info): ditto.
12274 (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12276 (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12278 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12280 * class.c: load also nested classes on class init.
12281 System.ValueType instance methods gets passed boxed
12282 values, unless methods in derived classed that get a pointer to the
12284 * icall.c: use better name parsing code in GetType().
12285 * image.c, image.h: add mono_image_loaded ().
12286 * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12287 * reflection.c, reflection.h: added mono_reflection_parse_type().
12289 2002-01-22 Veronica De Santis <veron78@interfree.it>
12291 * icall.c : Added mapping of internal calls for Manual and Auto reset events
12292 * threads.c : Added the implementation of internal calls for events
12293 * threads.h : Added prototypes of internal calls for events
12295 2002-01-21 Radek Doulik <rodo@ximian.com>
12297 * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12299 2002-01-21 Dietmar Maurer <dietmar@ximian.com>
12301 * class.c (mono_class_init): set min_align to 1 (instead of 0)
12302 (mono_class_value_size): use min_align
12304 2002-01-20 Dick Porter <dick@ximian.com>
12307 * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12308 so it compiles on w32.
12310 2002-01-17 Dietmar Maurer <dietmar@ximian.com>
12312 * metadata.c (mono_type_stack_size): impl.
12314 * class.c (mono_class_get_field): impl. memberref token
12316 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12318 * icall.h : Added the internal calls mapping for CreateMutex_internal
12319 and ReleaseMutex_internal.
12320 * threads.h : Added the prototype of mutexes internal calls.
12321 * threads.c : Added the implementations of mutexes internal calls.
12323 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12325 * metaparse.h: removed unused file.
12326 * reflection.c, reflection.h: added stream_data_align () function
12327 to align data in streams and keep stream aligned. Add support for
12328 exception support in method headers.
12330 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12332 * unicode.c: make iconv_convert () return the number of bytess written
12333 in the output buffer.
12335 2002-01-15 Dick Porter <dick@ximian.com>
12336 * threads.c: Make the runtime's idea of infinite timeouts coincide
12337 with the class library's
12339 Fix a particularly egregious bug in mono_thread_cleanup(). That
12340 code was so utterly bogus it must have been written on a Monday.
12342 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12344 * reflection.h: add subtypes field to TypeBuilder.
12345 * reflection.c: encode constants for literal fields.
12346 Handle subtypes. Fix user string token (and add a zero byte)
12349 2002-01-14 Dietmar Maurer <dietmar@ximian.com>
12351 * class.c (mono_class_init): bug fix: assign slot numbers for
12354 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12356 * reflection.c: don't try to output a code RVA for abstract methods.
12357 Small fixes for method header format. Output parameter info to the
12358 ParamDef table. Save method overriding info to MethodImpl table.
12359 Fix property support. Allow typedef.extends to be a type in the
12361 * verify.c: fix off-by-one error.
12363 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12365 * class.c: fix mono_class_from_mono_type () for szarray types.
12366 Remove unused cache check in mono_class_from_type_spec().
12367 * icall.c: *type_from_name () functions handle simple arrays and byref.
12368 * reflection.c: handle byref and szarray types. Handle methods without
12369 body (gets P/Invoke compilation working). Handle types and fields in
12371 * reflection.h: add rank to MonoTypeInfo.
12373 2002-01-10 Dick Porter <dick@ximian.com>
12375 * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12378 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12380 * icall.c: initialize class in type_from_handle ().
12381 Loop also in parent classes for get_method ().
12382 * reflection.c: properly encode class and valuetype types.
12383 Start on encoding TypeBuilder types. Handle fieldrefs.
12384 Use correct length when registering a user string.
12385 Handle ConstructorBuilder and MonoMethod in get_token ().
12386 Make mono_type_get_object () aware of cached types.
12387 * object.c: back out change to mono_string_new ().
12389 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12390 * object.c: mono_string_new should return a NULL when the string
12391 passed in is NULL -- not try to deference it.
12393 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12395 * icall.c: hack to make IsSubType work for TypeBuilders.
12396 * reflection.c: emit constructors before methods.
12397 Retrieve param names in mono_param_get_objects().
12399 2002/01/05 Nick Drochak <ndrochak@gol.com>
12401 * Makefile.am: fix list of headers and sources so automake 1.5
12402 doesn't complain. Removed \# at end of list.
12404 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12406 * reflection.c: get token for a method ref. Set return type of
12407 constructor to void.
12408 * loader.c: debug message.
12409 * class.c: typo fix.
12411 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12413 * icall.c: fix array init with rank > 1. FindMembers
12414 loops in parent class as well.
12415 * image.c: do not insert nested types in name cache.
12416 * reflection.c: warning fix.
12417 * reflection.h: add override method (for interface impl).
12419 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12421 * metadata.c: fix customattr decoding.
12423 2001-12-21 Miguel de Icaza <miguel@ximian.com>
12425 * rawbuffer.cs: Added native Win32 implementation, avoids using
12426 mmap on Cygwin. This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12428 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12430 * class.c: make the low-level routines handle the cache.
12432 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12434 * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12436 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12438 * class.c: fix mono_array_element_size() for objects.
12439 * class.h, class.c: add properties to MonoClass and load them
12441 * icall.c: check with isinst() when assigning a value to an array
12442 instead of requiring the classes to match exactly.
12443 Implemented icall for System.Type::GetType().
12444 Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12445 enums. Handle bindingflags when looking for methods and fields.
12446 * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12447 and mono_metadata_methods_from_property().
12448 * reflection.h, reflection.c: added structures for propreties,
12449 parameters and enums. Implemented mono_property_get_object() and
12450 mono_param_get_objects().
12452 2001-12-18 Dick Porter <dick@ximian.com>
12454 * file-io.c: Use mono_string_to_utf16() instead of
12455 mono_string_chars()
12457 * object.c: Added mono_string_to_utf16(), which copies the non
12458 NULL-terminated MonoString into a new double-null-terminated
12461 2001-12-17 Dietmar Maurer <dietmar@ximian.com>
12463 * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12465 2001-12-16 Dietmar Maurer <dietmar@ximian.com>
12467 * file-io.c: raise exceptions if handle is invalid.
12469 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12471 * assembly.c: yet another check for mscorlib.
12472 * class.c, class.h: load nesting info for classes.
12473 * icall.c: many new functions to support the Reflection classes.
12474 * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12475 * reflection.h, reflection.c: mono_image_create_token(),
12476 mono_assembly_get_object(), mono_type_get_object(),
12477 mono_method_get_object(), mono_field_get_object(): methods to return
12478 objects that parallel the C representation of assemblies, types,
12481 2001-12-11 Dick Porter <dick@ximian.com>
12484 * file-io.c: Internal calls for file IO.
12486 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12488 * tabledefs.h: missing FileAttributes.
12489 * verify.h, verify.c: use is_valid_string () to simplify and check for
12490 valid strings more correctly. Fix warnings and speeling.
12491 Check more tables: Filed, File, ModuleRef, StandAloneSig.
12492 Check code: branches, maxstack, method calls.
12494 2001-12-04 Dietmar Maurer <dietmar@ximian.com>
12496 * object.c (mono_object_allocate): removed static, so that the jit
12497 can allocate value types.
12499 * icall.c (ves_icall_System_DateTime_GetNow): impl.
12501 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12503 * class.c: init enum types right away and register the
12504 token->MonoClass map in mono_class_create_from_typedef ().
12505 * verify.h, verify.c: first cut of the verifier.
12506 * pedump.c: add --verify switch to verify metadata tables.
12507 * tabledefs.h: add some missing enums.
12509 2001-11-30 Dietmar Maurer <dietmar@ximian.com>
12511 * class.c (mono_install_runtime_class_init): impl.
12512 (mono_class_init): renamed mono_class_metadata_init to
12513 mono_class_init, also removed the metadata_inited flag
12515 * object.c (mono_object_isinst): use faster algorithm
12517 2001-11-30 Radek Doulik <rodo@ximian.com>
12519 * mono-endian.h: reverted last change
12520 added function prototypes
12522 * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12523 add mono-endian.c back
12525 * mono-endian.c: returned back, as Paolo pointed out, it's needed
12526 for unaligned access, I've mistaked it with endianess. I am
12528 (mono_read16): fix reverted endianess
12529 (mono_read64): ditto
12530 (mono_read32): ditto
12532 2001-11-30 Dick Porter <dick@ximian.com>
12534 * exception.c: Implement mono_exception_from_name()
12536 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12538 * metadata.h, metadata.c: remove params_size and locals_size and their
12539 calculation from the metadata code: they are only usefult to the
12542 2001-11-29 Radek Doulik <rodo@ximian.com>
12544 * object.c (mono_ldstr): swap bytes here, it's probably not the
12545 best place, but works for me now, I'll redo it once I know mono
12546 better, also note that I add PROT_WRITE and don't reset back, also
12547 note that it's only affects big endians, so x86 should be OK
12549 * mono-endian.h (read16): use just glib macros for both endians
12551 * mono-endian.c: removed as glib macros are used in in
12552 mono-endian.h so we don't need to care about endianess for read
12553 macros as glib does that for us already
12555 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12557 * class.h, class.h: take minimum alignment into consideration so
12558 that the fields of a class remain aligned also when in an array.
12560 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12562 * loader.h, loader.c: add mono_method_get_param_names().
12563 * class.c: 0-init class fields.
12565 2001-11-26 Dick Porter <dick@ximian.com>
12569 * threads.c: New file that handles System.Threading on all platforms
12572 * object.h: Remove the synchronisation struct from MonoObject,
12573 replace it with a pointer that gets initialised on demand
12575 * Makefile.am: Replace all the system-specific threading code with
12576 a single file that uses the new wrapper library
12578 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12580 * class.c, class.h: add mono_install_trampoline() so that the runtime
12581 can register a function to create a trampoline: removes the ugly
12582 requirement that a runtime needed to export arch_create_jit_trampoline.
12583 * object.h, object.c: added mono_install_handler() so that the runtime
12584 can install an handler for exceptions generated in C code (with
12585 mono_raise_exception()). Added C struct for System.Delegate.
12586 * pedump.c: removed arch_create_jit_trampoline.
12587 * reflection.c: some cleanups to allow registering user strings and
12588 later getting a token for methodrefs and fieldrefs before the assembly
12590 * row-indexes.h: updates and fixes from the new ECMA specs.
12592 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12594 * class.h, class.c: add enum_basetype field to MonoClass.
12595 * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12596 to get index in the constant table reated to a field, param or
12598 * reflection.h, reflection.c: handle constructors. Set public-key and
12599 version number of the built assembly to 0.
12600 * row-indexes.h: update from new ECMA spec.
12602 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12604 * class.h, class.c: add a max_interface_id to MonoClass.
12605 * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12606 since it's used to do that. Added mono_type_type_from_obj().
12607 Make GetType() return NULL instead of segfaulting if the type was not
12608 found. Handle simple arrays in assQualifiedName.
12609 * object.h: add a struct to represent an Exception.
12610 * reflection.c: output call convention in method signature.
12611 Add code to support P/Invoke methods and fixed offsets for fields.
12613 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12615 * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12617 * icall.c: use mono_array_addr instead of array->vector: fixes the
12618 reflection image writing.
12619 * reflection.c: init call convention byte to 0 in method signature.
12620 Encode the property signature. Don't output property-related methods
12621 twice. Really process the properties for a type (don't cast a field to
12622 a property, my mom always told me that).
12623 Fix 64 bit issues in pointer alignment in a different and more
12626 2001-11-10 Sean MacIsaac <macisaac@ximian.com>
12628 * loader.h: Removed type class from MonoDefaults, added monotype
12630 * loader.c: Loaded MonoType, removed loading of Type
12632 * icall.c (my_mono_new_object): Now returns a System.MonoType,
12633 and fills in System.Type._impl with a RuntimeTypeHandle rather
12634 than the actual MonoClass *
12636 (ves_icall_type_from_handle): change from type_class to
12639 (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12642 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12645 (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12647 (ves_icall_System_Reflection_Assembly_GetType): implemented
12649 (ves_icall_System_MonoType_assQualifiedName): implemented
12651 (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12653 2001-11-09 Miguel de Icaza <miguel@ximian.com>
12655 * assembly.c (mono_assembly_open): Implement a cache for the
12658 (mono_assembly_close): only destroy the assembly when the last
12661 2001-11-09 Dick Porter <dick@ximian.com>
12663 * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12665 2001-11-09 Dietmar Maurer <dietmar@ximian.com>
12667 * class.c (mono_class_metadata_init): bug fix: compute the right slot
12669 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12671 * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12672 from Martin Weindel.
12673 * object.h: add mono_string_chars ().
12675 2001-11-07 Miguel de Icaza <miguel@ximian.com>
12677 * reflection.c (build_compressed_metadata): Eliminates warnings
12678 and uses 64-bit clean code.
12680 * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12681 (mono_type_equal): Change signature to eliminate warnings.
12683 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12685 * icall.c, loader.c: remove the internalcall array constructors.
12686 Changes to match the new MonoArray structure.
12687 * object.h, object.c: an array object doesn't allocate an extra
12688 vector. Add mono_array_new_full () to create jagged arrays easily.
12690 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12692 * metadata.h, metadata.c: add mono_metadata_field_info () to
12693 retreive all the info about a field from vairous tables.
12694 * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
12695 * class.h, class.c: augment MonoClassField with more info.
12696 Implemented mono_ldtoken for fields. Implemented ExplicitLayout
12697 policy and load a field's RVA if needed.
12699 2001-11-05 Dietmar Maurer <dietmar@ximian.com>
12701 * class.c (mono_class_metadata_init): create a trampoline for all
12702 virtual functions instead of actually compiling them.
12704 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
12706 * class.h, class.c: include name in MonoClassField.
12707 * class.c: fix fundamental type of System.Object and System.String.
12708 Set the right fundamental type for SZARRAY, too. Handle TypeSpec
12710 * icall.c: remove internalcalls for the Reflection stuff that is now
12712 * loader.c: mono_field_from_memberref () implementation.
12713 * mono-endian.c: thinko (s/struct/union/g).
12714 * object.c, object.h: make the mono_string_* prototypes actually use
12715 MonoString instead of MonoObject.
12716 * reflection.c, reflection.h: updates for changes in the reflection
12717 code in corlib: we use C structures that map to the actual C# classes.
12718 Handle SZARRAYs when encoding types. Handle locals in methods. Use a
12719 fat method header if needed and use the info from the ILGenerator for
12720 methods. Handle fields in types. Misc fixes.
12722 2001-10-17 Dietmar Maurer <dietmar@ximian.com>
12724 * class.c (mono_class_metadata_init): bug fix: always allocate
12725 space for static class data
12727 2001-10-25 Dietmar Maurer <dietmar@ximian.com>
12729 * class.c (mono_compute_relative_numbering): use relative
12730 numbering to support fast runtime type checks.
12732 2001-10-17 Sean MacIsaac <macisaac@ximian.com>
12734 * class.c (mono_class_create_from_typeref): added debugging output
12735 to print class name when MonoDummy is returned instead of real class
12737 2001-10-15 Dietmar Maurer <dietmar@ximian.com>
12739 * class.c (mono_class_metadata_init): interface offset table now
12740 contains pointers into the vtable - this is more efficient for the jit
12742 2001-10-12 Dietmar Maurer <dietmar@ximian.com>
12744 * class.c (mono_class_metadata_init): use a temporary vtable (the
12745 old algorithm only worked for the interpreter, but not for the jit)
12747 2001-10-11 Dietmar Maurer <dietmar@ximian.com>
12749 * loader.c (method_from_memberref): use mono_class_get to get the
12750 class of an array instead of using System.Array directly.
12751 (mono_get_method): also add MEMBERREF methods to the method cache
12752 which usefull for arrays.
12754 2001-10-10 Dietmar Maurer <dietmar@ximian.com>
12756 * pedump.c (arch_compile_method): added to compute vtable entry
12758 * metadata.c (mono_metadata_interfaces_from_typedef): also return the
12759 number of interfaces.
12761 * class.h: merged MonoArrayClass into MonoClass
12763 * class.c (mono_class_create_from_typedef): compute the vtable size and
12764 allocate space to include the vtable inside MonoClass
12765 (mono_class_metadata_init): initialize the vtable
12767 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
12769 * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
12770 Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
12771 * image.c: endian fixes by Laurent Rioux.
12772 * object.h, object.c: rename MonoStringObject to MonoString and
12773 MonoArrayObject to MonoArray. Change some function names to conform to
12774 the style mono_<object>_<action>. mono_string_new_utf16 () takes a
12775 guint16* as first argument, so don't use char*.
12776 Provide macros to do the interesting things on arrays in a portable way.
12777 * threads-pthread.c: updates for the API changes and #include <sched.h>
12778 (required for sched_yield()).
12779 * icall.c: updates for the API changes above.
12780 * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
12781 platforms that need them.
12783 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
12785 * class.c: set the correct type for all the fundamental
12786 type when loading the class.
12788 2001-10-05 Dick Porter <dick@ximian.com>
12790 * threads-pthread.c (pthread_mutex_timedlock): Simple
12791 compatibility version for C libraries that lack this call.
12793 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12795 * class.c: MonoTypes stored in MonoClass are stored as
12796 fundamental MonoTypes when the class represents a
12797 fundamental type (System.Int32, ...).
12798 The TypeHandle return by ldtoken is a MonoType*.
12799 * icall.c: ves_icall_get_data_chunk () write out all the
12800 PE/COFF stuff. Implement ves_icall_define_method (),
12801 ves_icall_set_method_body (), ves_icall_type_from_handle ().
12802 * image.c: properly skip unknown streams.
12803 * loader.h, loader.c: add type_class to mono_defaults.
12804 * metadata.c, metadata.h: export compute_size () as
12805 mono_metadata_compute_size () with a better interface.
12806 Typo and C&P fixes.
12807 * pedump.c: don't try to print the entry point RVA if there is no entry point.
12808 * reflection.c, reflection.h: many cleanups, fixes, output method
12809 signatures and headers, typedef and typeref info, compress the metadata
12810 tables, output all the heap streams, cli header etc.
12811 * row-indexes.h: typo fixes.
12813 2001-10-04 Dick Porter <dick@ximian.com>
12815 * object.h: Add a synchronisation mutex struct to MonoObject
12817 * object.c (mono_new_object): Initialise the object
12818 synchronisation mutexes
12820 * icall.c: System.Threading.Monitor internal calls
12822 * threads-pthread.h:
12823 * threads-pthread.c: System.Threading.Monitor internal calls
12825 * threads-types.h: New file, includes the system-specific thread
12828 * threads-pthread-types.h:
12829 * threads-pthread-types.c: New files, handle pthread-specific
12830 synchronisation types
12832 * threads-dummy-types.h:
12833 * threads-dummy-types.c: New files of dummy support for
12834 thread-specific types
12838 * pedump.c: include mono-endian.h not endian.h
12840 * Makefile.am: More threads files.
12841 Name mono-endian.h not endian.h
12843 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
12845 * Makefile.am, reflection.h, reflection.c: move here the reflection related
12846 stuff and implement a few more bits.
12847 * icall.c: a field needs to be dereferenced twice. Do not use the same
12848 name for two variables in the same scope.
12849 * image.c, image.h: cleanups.
12851 2001-10-02 Dietmar Maurer <dietmar@ximian.com>
12853 * class.c (mono_class_metadata_init): bug fix: compute the right size
12855 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
12857 * icall.c: implemented some of the Reflection internalcalls.
12858 * image.c, image.h: start writing out the PE/COFF image.
12859 * metadata.h, metadata.c: implement mono_metadata_encode_value ()
12860 that does the reverse than decode_blob_size ().
12861 * object.c: use mono_metadata_encode_value (). Move here
12862 temporary implementation of mono_string_to_utf8 ().
12863 * rawbuffer.c: make malloc_map static.
12865 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
12867 * metadata.c: fix type comparison for arrays.
12868 * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
12869 Added a couple of new classes to monodefaults.
12870 * icall.c: added a couple of Reflection-related internalcalls.
12871 * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
12872 Added a byval_arg MonoType to MonoClass.
12874 2001-09-28 Dick Porter <dick@ximian.com>
12877 * threads-pthread.h:
12878 * threads-pthread.c: Implemented internal calls for
12879 LocalDataStoreSlot operations. Applied mutexes around all shared
12880 data. Reworked the thread creation and Start() operations to
12881 avoid a race condition.
12884 * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
12886 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
12888 * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
12890 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
12892 * class.c, loader.c: warn and return NULL instead of erroring out.
12893 * icall.c: added System.AppDomain::getCurDomain().
12894 * loader.c: we don't need to lookup the typedef again for p/invoke calls.
12896 2001-09-25 Dick Porter <dick@ximian.com>
12898 * threads-pthread.h:
12899 * threads-pthread.c: Implemented timed thread joining and added
12900 System.Threading.Thread::Join_internal internal call
12902 * icall.c: Added System.Threading.Thread::Join_internal internal call
12905 * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
12907 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
12909 * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
12910 mono_string_intern () to implement the semantics of the ldstr opcode
12911 and the interning of System.Strings.
12912 * icall.c: provide hooks to make String::IsIntern and String::Intern
12915 2001-09-23 Dick Porter <dick@ximian.com>
12918 * threads-dummy.h: New files of dummy threading routines
12920 * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
12921 support code based on system specifics
12923 Rename PTHREAD_LIBS to THREAD_LIBS
12925 2001-09-23 Dick Porter <dick@ximian.com>
12927 * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
12928 Schedule (called when asked to Sleep for 0 ms) and CurrentThread
12930 (mono_thread_init): Set up a Thread object instance to return when
12931 the main thread calls Thread.CurrentThread
12932 (mono_thread_cleanup): Wait for all subthreads to exit
12934 * icall.c: New internal calls for System.Threading.Thread::Sleep
12935 (including Schedule) and CurrentThread
12937 * threads.h: New file, to insulate thread-specific stuff from the
12940 2001-09-21 Dick Porter <dick@ximian.com>
12942 * threads-pthread.h:
12943 * threads-pthread.c: New file, for handling pthreads-style
12944 threading support. Start() now starts a new thread and executes
12945 the ThreadStart delegate instance.
12947 * icall.c: Added the internalcall for
12948 System.Threading.Thread::Start_internal
12950 * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
12952 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
12954 * loader.c: work around the different signatures for delegates
12955 constructors csc generates in compiled code vs the ones compiled in mscorlib.
12957 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
12959 * class.h, class.c: add mono_class_get_field_from_name ().
12960 * *: Fix C comments and other ANSI C issues.
12962 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
12964 * endian.h, assembly.c: fix some endianness issues.
12966 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
12968 * loader.h, load.c: add delegate_class to mono_defaults.
12969 Handle runtime provided methods in mono_get_method ().
12971 2001-08-29 Dietmar Maurer <dietmar@ximian.com>
12973 * loader.c (mono_get_method): use pinvoke for internal call
12975 * icall.c: use pinvoke for internal call
12977 * loader.c (method_from_memberref): set the method name
12979 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
12981 * metadata.c: help the compiler generate better code for
12982 mono_class_from_mono_type ().
12984 2001-08-28 Dietmar Maurer <dietmar@ximian.com>
12986 * class.c (mono_class_metadata_init): delayed computing of the
12987 class size to mono_class_metadata_init ()
12989 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
12991 * class.c, class.h: add an interfaces member to MonoClass.
12992 * image.c, image.h: add assembly_name field to MonoImage
12993 from the assembly table.
12994 * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
12996 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
12998 * class.c: Handle Array in mono_class_from_mono_type ().
12999 * metadata.c, pedump.c: some endian fixes.
13001 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13003 * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
13004 * metadata.c: fix small problem introduced with the latest commit.
13006 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
13008 * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
13009 We don't need a MonoMetadata pointer anymore to compare signatures in
13010 mono_metadata_signature_equal (), update callers.
13011 Reduced memory usage an number of allocations for MonoMethodHeader and
13012 MonoMethodSignature.
13014 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
13016 * metadata.c: added compare for szarray.
13018 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
13020 * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
13021 and add a couple more types to it and mono_defaults. Give an hint on
13022 classes that need implementing in our corlib and are referenced
13025 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
13027 * class.h, class.c: keep track if a class is also an Enum.
13028 * loader.c: Implement a couple more types for use in libffi
13029 marshalling. Gives better diagnostics when failing to dlopen
13030 a library. Set method->klass for P/Invoke methods, too.
13032 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
13034 * class.c, class.h: add a MonoType this_arg to MonoClass that
13035 represents a pointer to an object of the class' type that
13036 can be used by the interpreter and later the type cache.
13037 Add best guess alignment info for valuetype objects.
13039 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
13041 * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
13042 into MonoType: one less level of indirection and allocation and
13043 simplifies quite a bit of code. Added cache for MonoTypes that are
13044 used frequently, so that we don't need to allocate them all the time.
13046 2001-08-24 Dietmar Maurer <dietmar@ximian.com>
13048 * class.c (mono_class_create_from_typedef): System.Enum is also a
13049 value type, although it does not derive from System.ValueType
13050 (maybe a bug in the ms compiler?)
13052 * metadata.c (mono_type_size): return the right size for value types
13054 * loader.c (mono_get_method): only initialize method header if not abstract
13056 * class.c (mono_class_from_mono_type): use mono_default values.
13058 2001-08-23 Dietmar Maurer <dietmar@ximian.com>
13060 * *: use MonoClass pointers instead of <type_tokens>
13062 * class.h: new flag: metadata_inited.
13064 * class.c (mono_class_metadata_init): impl.
13065 (mono_class_instance_size): impl.
13066 (mono_class_data_size): impl.
13068 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13070 * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
13071 MonoClass now has the name and name_space fields.
13072 MonoMethod has a pointer to its MonoClass, instead of MonoImage.
13073 mono_get_method () takes and optional MonoClass as argument.
13074 Removed mono_typedef_from_name() and added mono_class_token_from_name()
13075 instead that takes advantage of a map from class names to typedef
13076 tokens in MonoImage.
13078 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
13080 * metadata.c: zero is not a valid alignment boundary.
13081 Merge MONO_TYPE_VOID in default decoding code.
13083 2001-08-21 Dietmar Maurer <dietmar@ximian.com>
13085 * image.h: merged MonoMetadata into MonoImage
13087 * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
13088 identify the type of elements.
13090 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
13092 * blob.h: fix MONO_TYPE_TYPEDBYREF value.
13093 * cil-coff.h: split MonoMSDOSHeader and add size info.
13094 * image.c: add some consistency checks.
13095 * metadata.c: fix row size computation: one programmer
13096 error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
13097 add explanation for the locator routine.
13098 Fix decoding of size in method header.
13100 2001-08-20 Miguel de Icaza <miguel@ximian.com>
13102 * assembly.c (g_concat_dir_and_file): Use _S for string concat.
13103 (g_concat_dir_and_file): Bring g_concat_dir_and_file
13104 function from gnome-libs. This uses the right path separator
13105 based on the OS, and also works around a bug in some systems where
13106 a double slash is not allowed.
13107 (default_assembly_name_resolver): Use g_concat_dir_and_file
13108 (mono_assembly_open): ditto.
13110 2001-08-20 Dietmar Maurer <dietmar@ximian.com>
13112 * metadata.c (mono_metadata_signature_equal): impl.
13114 * *: void is now a realy MonoType (instead of using NULL)
13116 * metadata.c (do_mono_metadata_parse_type): use
13117 mono_metadata_parse_type to parse void value.
13119 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13121 * metadata.c, metadata.h: in the signature and method header store
13122 only the space required for holding the loca vars and incoming arguments.
13124 2001-08-15 Dietmar Maurer <dietmar@ximian.com>
13126 * metadata.c (do_mono_metadata_parse_type): treat void like any
13127 other type (instead of assigning NULL);
13129 2001-08-14 Dietmar Maurer <dietmar@ximian.com>
13131 * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13133 2001-08-09 Dietmar Maurer <dietmar@ximian.com>
13135 * image.c (do_mono_image_open): added a cache for arrays.
13137 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13139 * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13140 decode a single column from a row in a metadata table and changes
13141 to take advantage of it in the typedef locator (gives a nice speed up).
13142 Store offset info for function params.
13144 2001-08-02 Dietmar Maurer <dietmar@ximian.com>
13146 * image.h (MONO_IMAGE_IS_CORLIB): removed
13148 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13150 * assembly.c: how could mono_assembly_close () had ever worked?
13151 * metadata.c, metadata.h: provide offset info for local vars.
13152 Implement mono_type_size () to take care of alignment as well
13153 as size (it was mono_field_type_size in cli/class.c before).
13155 2001-08-01 Dietmar Maurer <dietmar@ximian.com>
13157 * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13159 * assembly.h (CORLIB_NAME): set to corlib.dll
13161 * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13163 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13165 * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13166 cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13167 tokentype.h: massive namespace cleanup.
13169 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13171 * metadata.h, metadata.c: decode exception clauses when parsing method header.
13173 2001-07-27 Dietmar Maurer <dietmar@ximian.com>
13175 * metadata.c (mono_metadata_free_type): added check for type !=
13176 NULL (void) before calling mono_metadata_free_type()
13178 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13180 * metadata.h, row_indexes.h: added header with enumerations to use
13181 to index in the columns from tables in metadata and to decode coded
13182 tokens: we should start using this instead of embedding magic numbers
13185 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13187 * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13188 Move metadata_t info from cli_image_info_t to MonoImage, where
13189 it's easily accessible. Changed all the uses accordingly.
13190 Added the method and class caches to MonoImage.
13191 * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13192 and mono_metadata_decode_value () signature to be more consistent
13193 with the other parse functions (and simplify code). Taken advantage
13194 of zero-length array allocation with GCC. Removed reduntant (and
13195 wrong) MonoFieldType struct and use MonoParam instead. Changed
13196 mono_metadata_parse_field_type () to use common code for parsing.
13197 Added mono_metadata_typedef_from_field () and
13198 mono_metadata_typedef_from_method () to lookup a typedef index from a
13199 field or method token.
13200 Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13202 2001-07-23 Miguel de Icaza <miguel@ximian.com>
13204 * metadata.c (mono_metadata_parse_field_type): Implement.
13205 (do_mono_metadata_parse_type): Split engine from
13206 mono_metadata_parse_type, so that we can create smaller structures
13207 for things that just have one pointer to the MonoType (look at
13210 2001-07-20 Miguel de Icaza <miguel@ximian.com>
13212 * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13213 as Jan Gray found out, it is incorrect.
13215 2001-07-18 Miguel de Icaza <miguel@ximian.com>
13217 * assembly.c: Implement asssembly loading. This loads an image
13218 and loads all the referenced assemblies. Come to think of it, we
13219 could always do lazy loading of the assemblies.
13221 * image.c (mono_image_open): Keep loaded images in a hashtable.
13223 * image.h (MonoImage): Add reference count.
13225 2001-07-17 Miguel de Icaza <miguel@ximian.com>
13227 * assembly.c (mono_assembly_open): Keep track of the file name in
13228 case the assembly has no ASSEMBLY table.
13230 * metadata.h: Fixed Paolo's quick hack. Put the documnentation
13233 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13235 * metadata.c, metadata.h: decode local vars in method header
13236 parse function. Change callers accordingly.
13238 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13240 * metadata.h, cil-coff.h: protect against multiple inclusion.
13241 Added some new structures to hold information decoded from metadata:
13242 MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13243 and relevant decoding/free functions.
13244 * metadata.c: implement decoding functions. Add warning for out of bounds
13245 index in mono_metadata_locate(). Implement mono_get_method () to retreive
13246 all the info about a method signature and invocation. Remove check on
13247 uninitialized local var in parse_mh() and fix memory leak.
13249 2001-07-12 Miguel de Icaza <miguel@ximian.com>
13251 * metadata.h: More macros.
13253 * tokentype.h: New file.
13255 Fri Jul 6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13257 * assembly.c: added a consistency check and initialize
13258 some structures with g_new0().
13259 * metadata.c: fixed a couple more bugs in table size computation
13260 and add other checks for out-of bound access to metadata.
13262 Thu Jul 5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13264 * metatada.c: fix bugs computing table sizes. Spew a
13265 warning when index in string heap is out of bounds.
13267 2001-07-04 Miguel de Icaza <miguel@ximian.com>
13269 * metadata.h: Add a couple of macros to manipulate tokens.
13271 Tue Jul 3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13273 * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13274 cli_section_tables).
13276 2001-07-01 Miguel de Icaza <miguel@ximian.com>
13278 * metadata.c (mono_metadata_user_string): New function, provides
13279 access to the UserString heap.
13281 2001-06-27 Miguel de Icaza <miguel@ximian.com>
13283 * metadata.c: Add inline documentation.
13285 2001-06-26 Miguel de Icaza <miguel@ximian.com>
13287 * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13290 2001-06-22 Miguel de Icaza <miguel@ximian.com>
13292 * typeattr.h: New file, TypeAttribute flags.
13294 2001-06-21 Miguel de Icaza <miguel@ximian.com>
13296 * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13297 mono_assembly_ensure_section): Section loading code.
13298 (load_section_tables): Load the sections.
13300 * mono/metadata/metadata.c (mono_metadata_locate_token,
13301 mono_metadata_locate): Functions to locate the information
13302 definition given a token or a table and an index.
13303 (mono_metadata_compute_table_bases): New.
13304 (compute_size): New function to compute the sizes of the various
13307 * mono/metadata/metadata.h: Finish listing the different index
13310 * mono/metadata/pedump.c: Improve to dump new information.
13312 2001-06-19 Miguel de Icaza <miguel@ximian.com>
13314 * mono/metadata/metadata.c: Entered all the tables matching
13317 * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2