1 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
3 * object-internals.h (MonoEventInfo): Add 'other_methods' field.
5 * class.c (init_events): Fill out event->other field.
7 * class.c: Fix warnings.
9 * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
11 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
13 * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
14 walk which doesn't supply the IL offset.
16 2004-09-22 Martin Baulig <martin@ximian.com>
18 * reflection.c (mono_reflection_setup_internal_class): If we're
19 System.ValueType, System.Object or System.Enum, set
20 `klass->instance_size' and create the vtable.
21 (mono_reflection_create_internal_class): If we're an enum type,
22 get the base class from our current corlib.
24 2004-09-22 Zoltan Varga <vargaz@freemail.hu>
26 * reflection.h (MonoResolveTokenError): New type.
28 * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
31 * icall.c: Add an 'error' argument to the ResolveToken icalls.
33 2004-09-22 Lluis Sanchez Gual <lluis@novell.com>
35 * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
36 Support also calling constructors, but only for already allocated objects.
38 2004-09-17 Geoff Norton <gnorton@customerdna.com>
40 * reflection.c (type_get_qualified_name): If the klass is null
41 return the typename to avoid a NullRefEx.
42 (encode_cattr_value): Get the qualified name of the boxed type,
43 not the underlying enumtype. Fixes #62984.
45 2004-09-21 Zoltan Varga <vargaz@freemail.hu>
47 * marshal.c: Fix problems with previous checkin.
49 2004-09-21 <vargaz@freemail.hu>
51 * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
52 existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
54 * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
56 2004-09-21 Geoff Norton <gnorton@customerdna.com>
58 * icall.c (ves_icall_MonoType_GetElementType): GetElementType
59 should only return a type for pointers, arrays, and passbyref types.
62 2004-09-21 Martin Baulig <martin@ximian.com>
64 * domain.c (mono_debugger_check_runtime_version): New public
67 * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.
69 2004-09-20 Sebastien Pouliot <sebastien@ximian.com>
71 * reflection.c: Added missing sort to the declarative security
72 attributes table. MS implementation stops seeing the attributes if the
73 token number regress in the table (as shown by ildasm and permview).
75 2004-09-20 Zoltan Varga <vargaz@freemail.hu>
77 * object-internals.h (MonoReflectionModule): Add 'token' field.
79 * reflection.c (mono_reflection_get_token): Add support for Module
81 (mono_module_get_object): Set 'token' field.
82 (mono_module_file_get_object): Set 'token' field.
84 * icall.c: Add new Assembly and Module icalls.
86 * appdomain.c: Bump corlib version.
88 2004-09-19 Zoltan Varga <vargaz@freemail.hu>
90 * loader.h loader.c class.h class.c: Add helper functions for obtaining
91 tokens of metadata objects.
93 * reflection.h reflection.c (mono_reflection_get_token): New function
94 to obtain the token of a metadata object.
96 * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
98 2004-09-17 Zoltan Varga <vargaz@freemail.hu>
100 * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
102 * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
104 2004-09-16 Sebastien Pouliot <sebastien@ximian.com>
106 * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
107 * object-internals.h: Added 3 MonoArray* members to MonoReflection
108 AssemblyBuilder to access the permissions set in the class lib.
109 * reflection.c: Added security attributes encoding step in
110 mono_image_build_metadata.
111 * tabledefs.h: Added new security actions defined in 2.0:
112 LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
114 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
116 * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
119 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
121 * locales.c: nullify the ICU_collator member of CompareInfo when it is
122 finalized. There where random SIGSEVs at program termination, when
123 an object being finalized was trying to do a string comparison and
124 the current culture was already finalized.
126 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
128 * threads.c: call thread_cleanup before finishing the thread if we get
131 2004-09-16 Zoltan Varga <vargaz@freemail.hu>
133 * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
134 assemblies from the parent. Fixes #65665.
136 2004-09-15 Zoltan Varga <vargaz@freemail.hu>
138 * metadata.c (mono_metadata_parse_type): Fix parsing of custom
141 2004-09-14 Bernie Solomon <bernard@ugsolutions.com>
143 * reflection.h: add prototype for mono_get_dbnull_object
144 * reflection.c: add prototypes for get_default_param_value_blobs
145 and mono_get_object_from_blob for fussier compilers
147 2004-09-14 Lluis Sanchez Gual <lluis@novell.com>
149 * object.c: Added a "done" flag to TypeInitializationLock. This avoids
150 false deadlock checks in class initialization.
152 2004-09-13 Zoltan Varga <vargaz@freemail.hu>
154 * image.c (mono_image_addref): Fix comment.
156 * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
159 2004-09-12 Jambunathan K <kjambunathan@novell.com>
161 * reflection.c (mono_param_get_objects): Modified to return
162 ParameterInfo.DefaultValue object.
164 (get_default_param_value_blobs):
165 (mono_get_object_from_blob):
166 (mono_get_dbnull_object): New helper routines.
168 * object.c (mono_get_constant_value_from_blob): New helper routine
169 carved out from get_default_field_value ()
171 * object-internals.h (mono_get_constant_value_from_blob): Added
172 function declaration.
174 2004-09-11 Zoltan Varga <vargaz@freemail.hu>
176 * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load
177 referenced assemblies. Fixes #62135.
179 * exception.h exception.c (mono_get_exception_file_not_found2): New
182 2004-09-10 Zoltan Varga <vargaz@freemail.hu>
184 * class.h class.c: Add mono_type_get_underlying_type ().
186 2004-09-09 Geoff Norton <gnorton@customerndna.com>
188 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
189 Fix GetTypes() to support dynamically created assemblies.
191 2004-09-09 Zoltan Varga <vargaz@freemail.hu>
193 * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
195 * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
198 * reflection.h reflection.c loader.c: Allow dynamic construction of
199 pinvoke methods. Fixes #65571.
201 * reflection.c (mono_reflection_get_type): Revert previous change since
202 it causes regressions.
204 2004-09-08 Martin Baulig <martin@ximian.com>
206 * class.c (class_compute_field_layout): Don't call
207 mono_class_layout_fields() for open generic instances.
209 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
210 * threads.c appdomain.c: fix typo in GC macro
212 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
214 * threads.c: don't call mono_thread_detach() in start_wrapper(),
215 avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
217 2004-09-08 Zoltan Varga <vargaz@freemail.hu>
219 * image.c (mono_image_close): Applied patch from
220 vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
221 assembly is loaded multiple times from data.
223 * image.c (mono_image_open): Fix warning.
225 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
227 * reflection.h reflection.c icall.c: Only call TypeResolve handlers
230 * reflection.c (mono_reflection_create_runtime_class): Initialize
231 klass->nested_classes. Fixes #61224.
233 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
235 * threads.c: sched_yield() on exit, to allow threads to quit.
237 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
239 * object.c (mono_unhandled_exception): Remove leftover debug code.
241 2004-09-07 Atsushi Enomoto <atsushi@ximian.com>
243 * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
245 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
247 * marshal.c (emit_marshal_array): Really null terminate string arrays.
249 * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
251 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
253 * marshal.c (emit_marshal_array): Null terminate string arrays.
255 * marshal.c (raise_auto_layout_exception): Fix warning.
257 * reflection.c (mono_param_get_objects): Initialize the default value
258 with DBNull.Value, not null. Fixes #62123.
260 2004-09-01 Miguel de Icaza <miguel@ximian.com>
262 * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
263 throw an exception with a cute explanation.
265 2004-09-06 Dick Porter <dick@ximian.com>
267 * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
268 Close the new process's thread handle, as we don't use it. The
269 handle stays around forever otherwise.
271 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
273 * object.c (arith_overflow): Fix warning.
275 * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
276 calling conventions in method refs. Fixes #65352.
278 * reflection.c: Fix warnings.
280 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
282 * icall.c: Add a new icall for Array.Clear
284 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
286 * object.c: When allocating an array, we have to throw
287 an overflow exception if any of the lengths are < 0.
289 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
291 * marshal.h marshal.c: Free unmanaged memory allocated by managed code
292 properly. Also move implementation of string array marshalling to
293 managed code. Fixes #42316.
295 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
297 * assembly.c: provide more information when loading an assembly fails.
299 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
301 * filewatcher.c: don't expect the development fam package to be
304 2004-09-03 Zoltan Varga <vargaz@freemail.hu>
306 * marshal.c: Make a copy of the signature cookie since it will be
309 * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
311 * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
313 * metadata.c (mono_metadata_free_marshal_spec): New function to free
316 * marshal.c: More refactoring.
318 * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
321 2004-09-03 Lluis Sanchez Gual <lluis@novell.com>
323 * object.c: In mono_message_invoke, fill the output parameter array after
324 calling the managed method (it was done before the call). This fixes
327 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
329 * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
332 2004-09-02 Martin Baulig <martin@ximian.com>
334 * class.c (mono_class_instance_size): Don't allow generic type
335 definitions or open generic instances.
336 (mono_class_array_element_size): If we're a value type, call
337 mono_class_instance_size() on the original class.
339 * metadata.c (mono_type_size, mono_type_stack_size): Correctly
340 handle generic instances.
342 * mono-debug-debugger.c (write_type): Handle generic instances
345 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
347 * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
348 the allocation request fails. Fixes #65089.
350 * object.c (mono_runtime_free_method): Do not call mono_free_method.
352 * object.c (mono_runtime_free_method): New function to free a dynamic
355 * marshal.c (mono_delegate_free_ftnptr): New function to free the
358 * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
359 with hasthis as dynamic,
361 * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
363 * domain.c (mono_jit_info_table_remove): New function to remove an
364 entry from the jit info table.
366 * class-internals.h (MonoMethod): Add 'dynamic' field.
368 * loader.c: Fix warnings.
370 2004-09-01 Martin Baulig <martin@ximian.com>
372 * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
373 instead of mono_debugger_lock() because the latter one is a no-op
374 unless running in the debugger.
376 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
378 * class.c (class_compute_field_layout): Classes with auto-layout or
379 reference fields are not blittable.
381 2004-09-01 Dick Porter <dick@ximian.com>
383 * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
384 mono_image_get_filename() to get the assembly location.
387 * metadata.h: Fix compile warnings
389 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
391 * class.c (class_compute_field_layout): System.Object is blittable.
393 * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
394 as in/out. Fixes #59909.
396 2004-09-01 Martin Baulig <martin@ximian.com>
398 * metadata.h (MONO_TYPE_ISREFERENCE): Call
399 mono_metadata_generic_inst_is_valuetype() if we're a generic
400 instance to check whether our underlying type is a reference type.
402 2004-09-01 Martin Baulig <martin@ximian.com>
404 * metadata.c (mono_type_size): If we're a generic instance, call
405 mono_class_value_size() for value types.
407 2004-08-31 Zoltan Varga <vargaz@freemail.hu>
409 * marshal.c: Implement more custom marshalling functionality. Fixes
412 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
414 * mono-debug.c, debug-mono-symfile.c: add some locking love.
416 2004-08-30 Zoltan Varga <vargaz@freemail.hu>
418 * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
420 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
422 * icall.c: Fix some warnings.
424 * threads.c (abort_appdomain_thread): Fix unref errors.
425 (mono_thread_current): Fix THREAD_DEBUG define.
427 2004-08-29 Zoltan Varga <vargaz@freemail.hu>
429 * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
431 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
433 2004-08-28 Zoltan Varga <vargaz@freemail.hu>
435 * marshal.c (mono_marshal_get_native_wrapper): Add support for byref
438 2004-08-28 Martin Baulig <martin@ximian.com>
441 (mono_metadata_generic_inst_is_valuetype): New public function.
443 * metadata.h (MONO_TYPE_ISSTRUCT): Call
444 mono_metadata_generic_inst_is_valuetype() if we're a generic
445 instance to check whether our underlying type is a valuetype.
447 2004-08-26 Zoltan Varga <vargaz@freemail.hu>
449 * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
452 2004-08-25 Martin Baulig <martin@ximian.com>
454 * loader.c (mono_get_method_from_token): Abstract methods can also
455 be generic and thus have type parameters.
457 * metadata-internals.h
458 (MonoDynamicImage): Added `GPtrArray *gen_params'.
460 * reflection.c (mono_image_get_generic_param_info): Don't create a
461 metadata row, just add an entry to the `gen_params' array.
462 (build_compressed_metadata): Sort the `gen_params' array and then
463 actually create the metadata.
465 2004-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
467 * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
469 2004-08-25 Zoltan Varga <vargaz@freemail.hu>
471 * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
473 2004-08-24 Martin Baulig <martin@ximian.com>
475 * class.cs (mono_class_is_subclass_of): Like an interface, a
476 generic instance also derives from System.Object.
478 2004-08-23 Zoltan Varga <vargaz@freemail.hu>
480 * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
481 custom modifiers to be in any order. Fixes #61990.
483 2004-08-20 Zoltan Varga <vargaz@freemail.hu>
485 * object.c: Register mono_object_new_fast icall.
487 * object.c (mono_class_get_allocation_ftn): Return to calling
488 mono_object_new_fast, since it seems faster to compute the object
489 size in unmanaged code than passing it as a parameter.
491 * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
493 * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
494 this function with Boehm as the oom handler, so we don't have to check
495 the result of GC_malloc.
497 * object.c: Remove checks for oom.
499 * object.h object.c (mono_class_get_allocation_ftn): New function to
500 return the icall which can be used to allocate an instance of a given
503 * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
505 * class-internals.h: Add 'enabled' field.
507 2004-08-19 Zoltan Varga <vargaz@freemail.hu>
509 * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
511 2004-08-18 Jambunathan K <kjambunathan@novell.com>
512 * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
515 2004-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
517 * appdomain.c: use the Tls function for appdomain too,
518 at Zoltan's request. Actually return in mono_context_get
520 * appdomain.c, profiler.c, threads.c: use __thread
522 2004-08-18 Zoltan Varga <vargaz@freemail.hu>
524 * appdomain.c threads.c: Call GC_CreateThread on windows.
526 * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
527 multiple libraries since this don't work on windows.
529 2004-08-18 Martin Baulig <martin@ximian.com>
532 (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
535 * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
536 MonoMethodNormal since we also need it for abstract and interface
540 (build_compressed_metadata): Sort the GenericParam table.
541 (mono_image_create_token): Added `gboolean create_methodspec'
542 argument; this is false when generating a MethodImpl token.
543 (reflection_methodbuilder_to_mono_method): Abstract and interface
544 methods may also have generic parameters.
546 2004-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
548 * appdomain.c: thread local alloc
550 2004-08-17 Martin Baulig <martin@ximian.com>
552 * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
555 (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
558 * class.c (mono_type_get_full_name): New public function.
559 (mono_type_get_name): Don't include the type arguments.
561 2004-08-16 Zoltan Varga <vargaz@freemail.hu>
563 * Makefile.am: Build static versions of libmetadata and libmonoruntime
564 for inclusion into the mono executable.
566 2004-08-16 Martin Baulig <martin@ximian.com>
568 * metadata.c (do_mono_metadata_parse_generic_inst): Store the
569 MonoGenericInst, not the MonoType in the `generic_inst_cache'.
571 2004-08-14 Martin Baulig <martin@ximian.com>
573 * class.c (dup_type): Also copy the `byref' field.
575 2004-08-15 Zoltan Varga <vargaz@freemail.hu>
577 * reflection.c (create_dynamic_mono_image): Revert the last change
578 since it breaks bootstrap.
580 2004-08-14 Zoltan Varga <vargaz@freemail.hu>
582 * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
584 * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
585 not free them with g_free.
587 2004-08-11 Martin Baulig <martin@ximian.com>
589 * reflection.c (mono_reflection_setup_internal_class): Also call
590 mono_class_setup_mono_type() if we already have a `tb->type.type'.
592 2004-08-09 Sebastien Pouliot <sebastien@ximian.com>
594 * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when
595 called during default (first) AppDomain creation. Keep track of
596 Evidence when loading assemblies.
598 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
600 * opcodes.c, opcodes.h: reduce runtime relocations.
602 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
604 * culture-info.h, locales.c: fixes and chages to sue the new
605 optimized format of the locale data.
606 * culture-info-tables.h: regenerated.
608 2004-08-06 Geoff Norton <gnorton@customerdna.com>
610 * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
612 2004-08-05 Sebastien Pouliot <sebastien@ximian.com>
614 * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
615 ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
616 * domain-internals.h: icall declaration.
617 * icall.c: icall registration.
618 * object-internals.h: New fields in MonoAssembly for CAS.
620 2004-08-05 Duncan Mak <duncan@ximian.com>
622 * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
625 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
627 * reflection.c: fix to deal with object[] arrays in custom ctors
630 2004-08-05 Martin Baulig <martin@ximian.com>
632 * class.c (mono_class_array_element_size): Added support for
633 generic instances and correctly handle "recursive" types.
635 2004-08-05 Zoltan Varga <vargaz@freemail.hu>
637 * assembly.c: Fix warnings.
639 2004-08-04 Martin Baulig <martin@ximian.com>
642 (mono_type_get_name_recurse): Added `gboolean include_arity'
643 argument specifying whether or not we should include the generic
644 arity in the type name.
645 (_mono_type_get_name): New static function.
646 (mono_class_setup_vtable): If we're a generic instance, don't
647 include the generic arity in the names of explicit method
650 2004-08-03 Martin Baulig <martin@ximian.com>
652 * class.c (mono_type_get_name_recurse): Enclose the generic type
653 arguments in `<', '>'.
655 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
657 * gc.c: make GC warning messages use the trace API, they are just
658 noise to most of the users.
660 2004-08-03 Martin Baulig <martin@ximian.com>
662 * debug-mono-symfile.c (read_string): Correctly read the string.
664 2004-07-30 Zoltan Varga <vargaz@freemail.hu>
666 * marshal.c (signature_dup_add_this): Fix bug in previous patch.
668 * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
670 (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
672 2004-07-30 Martin Baulig <martin@ximian.com>
674 * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
675 Reflect latest symbol writer changes.
677 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
679 * object.c: always create an object if null is passed
680 to Invoke() where a valuetype is expected.
682 2004-07-29 Bernie Solomon <bernard@ugsolutions.com>
684 * marshal.c (mono_marshal_init): make managed
685 signatures match native ones better for 64bits.
687 2004-07-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
689 * appdomain.c: hack to build correctly the private bin path on windows.
692 2004-07-28 Lluis Sanchez Gual <lluis@novell.com>
694 * assembly.c: Load mscorlib from the correct framework directory
695 (mono/<version>/mscorlib.dll).
696 * appdomain.h: Added prototypes for new functions.
697 * internals.h: Added some prototypes.
698 * domain.c: When initializing the runtime, get from the executable and
699 the configuration files the runtime version that the app supports.
700 Added support methods for reading app.exe.config. Added list of versions
701 supported by the JIT. Added two new methods: mono_init_from_assembly,
702 which initializes the runtime and determines the required version from
703 the provided exe file, and mono_init_version, which initializes
704 the runtime using the provided version.
705 * icall.c: Get machine.config from version-specific directory.
706 * reflection.c: When generating an image, embed the version number
707 of the current runtime.
709 2004-07-28 Dick Porter <dick@ximian.com>
712 (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
713 returned sockaddr size before creating the remote address object.
714 Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
717 2004-07-28 Dick Porter <dick@ximian.com>
719 * locales.c (string_invariant_compare_char): Fix invariant char
720 compares between upper and lower cases. Fixes bug 61458.
722 2004-07-27 Ben Maurer <bmaurer@ximain.com>
724 * marshal.c: actually cache stelem.ref wrappers.
726 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
728 * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image
729 sections and remove the mono_cli_rva_map () function.
731 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
733 * debug-mono-symfile.c: fix one more endianess issue, from a patch
734 by Geoff Norton (<gnorton@customerdna.com>).
736 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
738 * class.c: fix class loads for pointer types (typeof(int) !=
741 2004-07-27 Martin Baulig <martin@ximian.com>
743 * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
744 reading the debugging information from an external ".mdb" file.
746 2004-07-24 Martin Baulig <martin@ximian.com>
748 * reflection.c (mono_image_get_type_info): Only write a class
749 layout entry if we actually have a size or a packing size.
751 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
753 * reflection.c (type_get_fully_qualified_name):
754 insert cast to get type checking of ?: with non-gcc compilers
756 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
758 * rand.c: use g_getenv for both lookups of
761 2004-07-17 Martin Baulig <martin@ximian.com>
763 * reflection.c (mono_reflection_bind_generic_method_parameters):
764 Set `gmethod->reflection_info'.
766 2004-07-17 Martin Baulig <martin@ximian.com>
768 * class.c (mono_class_create_from_typedef): Insert the newly
769 created class into the hash table before computing the interfaces
770 since we could be called recursively.
772 2004-07-16 Ben Maurer <bmaurer@ximain.com>
774 * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
775 function to implement stelem.ref in managed code
776 * class-internals.h, debug-helpers.c: a new wrapper type
779 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
781 * gc.c: allow GC handles to work even when no GC is compiled in.
782 Fix part of bug #61134 (GetAddrOfPinnedObject).
784 2004-07-13 Peter Williams <peter@newton.cx>
786 * process.c (complete_path): Make sure we don't attempt to execute
789 2004-07-12 Geoff Norton <gnorton@customerdna.com>
791 * DateTime.cs: Patch for bug #61112. Our DateTime wasn't roundtripping over timezone
792 boundaries properly. This patch checkes ToLocalTime() to see if we're tripping over a boundary
793 and will add/subtract the hour if needed
795 2004-07-12 Martin Baulig <martin@ximian.com>
797 * reflection.c (mono_field_get_object): If we have
798 `field->generic_info', take the attributes from
799 `field->generic_info->generic_type'.
801 2004-07-12 Martin Baulig <martin@ximian.com>
803 * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
804 This function must be called before initializing the runtime.
805 (mono_debug_init_1): New function; call this after initializing
806 the runtime, but before loading the assembly. It tells the
807 debugger to load corlib and the builtin types.
809 * mono-debug-debugger.c: Did some larger changes in the debugging
810 code; support recursive class declarations, make sure we actually
813 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
815 * debug-helpers.c: undo my previous patch and fixed the real issue in
816 ../mini/exceptions-x86.c
818 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
820 * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
821 when no HOME env. variable was set and a NullRef was thrown in a .cctor
822 called from other .cctors.
824 2004-07-09 Miguel de Icaza <miguel@ximian.com>
826 * loader.c: Removed the mono_loader_wine_init hack now that we are
827 doing a managed version of Windows.Forms.
829 2004-07-09 Ben Maurer <bmaurer@ximian.com>
831 * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
832 threadpool.c, threads.c: remove static data from rootset.
834 2004-07-09 Dick Porter <dick@ximian.com>
836 * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
837 Don't do any more processing if the matched length was 0. It was
838 increasing the size of the string before. Fixes bug 61167.
840 2004-07-09 Dick Porter <dick@ximian.com>
844 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
845 Add support for SO_PEERCRED if its available.
847 2004-07-09 Peter Bartok <pbartok@novell.com>
848 * loader.c: winelib.exe.so error message is now only displayed if
849 MONO_DEBUG is set. To help us avoid questions when people are trying
850 out the new Managed.Windows.Forms.
852 2004-07-08 Zoltan Varga <vargaz@freemail.hu>
854 * class-internals.h debug-helpers.c marshal.c: Add new wrapper types
855 for isinst and castclass wrappers.
857 * class-internals.h icall.c: Move registration and lookup of JIT icalls
858 to libmetadata from the JIT, so they could be used by the marshalling
859 code and the interpreter.
861 * marshal.c: Register marshalling related JIT icalls here instead of
862 in mini.c. Use CEE_MONO_ICALL instead of the family of
863 CEE_MONO_PROC<x> opcodes to call marshalling functions.
865 * metadata.h: Remove unneeded marshalling conversions.
867 * opcodes.c: Update for new opcodes.
869 2004-07-08 Martin Baulig <martin@ximian.com>
871 * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
872 (mono_debug_get_domain_data): Make this function static.
874 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
876 * gc.c, object.h: add nice GC handle API for embedders.
878 2004-07-06 Ben Maurer <bmaurer@ximian.com>
880 * reflection.c: more changes for the new api
882 * object.c: When we reflect on a field w/ a constant value, it
883 will not have a memory location, so we must access metadata. Also,
884 allow easier reading of strings so that we can read them from
887 * class.c (mono_class_layout_fields): no need for literal fields here.
889 * class-internals.h: api changes for const fields
891 * icall.c (ves_icall_get_enum_info): use new apis for const fields
893 2004-07-06 Martin Baulig <martin@ximian.com>
895 * mono-debug.h: Increment version number to 44.
897 * mono-debug.c (mono_debug_add_wrapper): The second argument is
898 now a gpointer, rewrote this whole method.
900 * mono-debug-debugger.c (mono_debugger_add_wrapper): New
901 function. Add information about the wrapper in a new "misc table".
903 * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
904 for the new misc table.
906 2004-07-05 Zoltan Varga <vargaz@freemail.hu>
908 * metadata-internals.h image.c: Add a cache for helper signatures.
910 * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
912 2004-07-03 Zoltan Varga <vargaz@freemail.hu>
914 * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
915 delegates from a delegate. Fixes #61033.
917 * marshal.c: Fix managed->native stringbuilder marshalling. Implement
918 marshalling of stringbuilder arrays. Fixes #59900.
920 2004-07-02 Zoltan Varga <vargaz@freemail.hu>
922 * icall.c: Add EnumBuilder:setup_enum_type icall.
924 2004-06-30 Ben Maurer <bmaurer@ximian.com>
926 * icall.c: Added a new icall for the property version of
929 2004-06-30 Zoltan Varga <vargaz@freemail.hu>
931 * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
932 it has a constant size across platforms.
934 * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
937 2004-06-29 Martin Baulig <martin@ximian.com>
939 * mono-debug.c (mono_debug_add_method): Protect the whole function
940 in mono_debugger_lock(), not just parts of it.
942 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
944 * reflection.c: make sure padding bytes in heaps are zeroed.
946 2004-06-24 David Waite <mass@akuma.org>
948 * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
949 image.c, loader.c, locales.c, marshal.c, metadata.c,
950 mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
951 string-icalls.c, threads.c: change to C90-style comments from C99 /
954 2004-06-24 Dick Porter <dick@ximian.com>
957 (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
958 return createdNew. Fixes bug 60412.
961 * icall.c: Add createdNew parameter to CreateMutex icall
963 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
965 * reflection.c, object-internals.h: save default value in params.
967 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
969 * appdomain.c: for paths in PrivateBinPath that are absolute, there's
970 no need to build a new path combining that with the application base.
973 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
975 * reflection.c: fixed minor standard compliance issues.
977 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
979 * reflection.c: fixed issue with encoding some custom attributes
980 (arrays in properties and fields, bug #60411).
982 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
984 * reflection.c: fix start address when copying the public key token.
986 2004-06-23 Martin Baulig <martin@ximian.com>
988 * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
989 the `exc' object in a static object to put it into the GC's root set.
991 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
993 * reflection.c: make mono_reflection_setup_internal_class ()
994 callable a second time to setup a new parent class.
996 2004-06-23 Dick Porter <dick@ximian.com>
998 * threads.c: Check for WAIT_IO_COMPLETION return values.
1000 2004-06-22 Sebastien Pouliot <sebastien@ximian.com>
1002 * appdomain.c: Removed the g_free on the public key token. Now copy
1003 the pk token string into the MonoAssemblyName buffer using g_strlcpy.
1004 * assembly.c: Added public key token string value when loading
1005 assemblies. Fix bug #60439.
1006 * icall.c: Added missing informations (like public key) in
1007 GetReferencedAssemblies. Fix #60519.
1008 * image.h: Changed definition for public key token from const char*
1009 public_tok_value to guchar public_key_token [17];
1010 * reflection.c: Updated for changes to public key token.
1012 2004-06-22 Lluis Sanchez Gual
1014 * icall.c: In ves_icall_InternalExecute, when setting a filed, also look
1015 for the field in base classes.
1017 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
1019 * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
1020 mark headers as not supported, they are installed only for use by the
1023 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
1025 * *.c, *.h: avoid namespace pollution in public headers.
1027 2004-06-21 Martin Baulig <martin@ximian.com>
1029 * exception.c (mono_get_exception_security): It's in
1030 "System.Security", not in "System".
1032 * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
1033 the exception classes.
1035 2004-06-21 Martin Baulig <martin@ximian.com>
1037 * mono-debug-debugger.c (mono_debugger_unhandled_exception):
1038 Protect the exception object from being finalized.
1040 2004-06-21 Martin Baulig <martin@ximian.com>
1042 * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
1045 2004-06-21 Sebastien Pouliot <sebastien@ximian.com>
1047 * reflection.c: Load the assembly in mono_reflection_type_from_name,
1048 if it was not loaded before. Fix parts of #60439.
1050 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
1052 * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
1053 code that was broken since Ben's change: wrappers are now
1054 dependent on the method signature only again.
1056 2004-06-21 Martin Baulig <martin@ximian.com>
1058 * mono-debug-debugger.c (write_class): Cleaned this up a bit and
1059 added interface support.
1061 2004-06-21 Martin Baulig <martin@ximian.com>
1063 * class.c (mono_vtable_get_static_field_data): New public method.
1065 2004-06-20 Atsushi Enomoto <atsushi@ximian.com>
1067 * filewatcher.c : Windows build fix to be compliant with API changes.
1069 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
1071 * class.h, class.c: more accessors.
1072 * metadata.h, metadata.c: prepare for hiding MonoType and
1073 MonoMethodSignature: people should use the accessors from now on
1074 outside of the tree.
1076 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
1078 * *.c, *.h: more API cleanups.
1080 2004-06-18 Jackson Harper <jackson@ximian.com>
1082 * assembly.c: Trace loading assemblies.
1083 * loader.c: Trace loading native libraries.
1084 * mono-config.c: Trace loading config files.
1086 2004-06-18 Dick Porter <dick@ximian.com>
1088 * locales.c: Tell ICU the lengths of strings, it can cope with
1089 embedded \0 then. Fixes bug 59274, and doesn't break bug 55822.
1091 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
1093 * image.c: swapped name/filename;
1095 2004-06-18 Martin Baulig <martin@ximian.com>
1097 * mono-debug-debugger.c (write_class): Write the parent class at
1098 the end of the header.
1100 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
1102 * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
1104 2004-06-17 Raja R Harinath <rharinath@novell.com>
1106 * Makefile.am (PLATFORM_LIB): New. Possibly refer to ../os/libmonoos.la.
1107 (bundle_obj): New conditional define.
1108 (BUILT_SOURCES): Remove.
1109 ($(bundle_srcs)): Make parallel-make safe.
1110 (libmonoruntime_la_LIBADD): Make unconditional.
1111 (libmetadata_la_LIBADD): Make unconditional. Refer to $(bundle_obj).
1112 (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
1114 2004-06-17 Atsushi Enomoto <atsushi@ximian.com>
1116 * culture-info-tables.h: It was inconsistent with the latest
1119 2004-06-17 Zoltan Varga <vargaz@freemail.hu>
1121 * assembly.c (mono_assembly_open): Fix crash when the assembly can't
1124 * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
1127 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
1129 * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
1130 cleaned up public header threads.h.
1132 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
1134 * Makefile.am, *.c, *.h: more API cleanups.
1136 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
1138 * Makefile.am: removed monosn from compilation.
1139 * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
1140 debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
1141 image.c, image.h, loader.c, marshal.c, metadata-internals.h,
1142 metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
1143 mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
1144 reflection.c, reflection.h, verify.c: more API cleanups and fixes.
1146 2004-06-15 Jackson Harper <jackson@ximian.com>
1148 * assembly.c: Make locales lower case when searching the GAC for
1149 assemblies. gacutil will always make locales lowercase when
1150 installing so this effectively makes them case insensitive.
1152 2004-06-15 Lluis Sanchez Gual <lluis@ximian.com>
1154 * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
1155 * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
1156 parameter which allows to choose whether the wait can be interrupted or
1157 not. Also added the method mono_monitor_enter(), which locks the monitor
1158 using an infinite wait and without allowing interruption.
1159 In the Monitor.Enter and Wait icalls, retry the lock if the wait is
1161 * object.h: Added new fields in MonoThread. suspend_event holds the event
1162 used to susped/resume the thread. synch_lock is the lock object to use for
1163 modifying the thread state.
1164 * threads.c: Use the new synch_lock object for locking, instead of "this",
1165 which can generate deadlocks.
1166 Moved thread state change in Thread.Sleep and Thread.Join from managed
1167 to unmanaged code. This avoids a deadlock when the thread was suspended
1168 just after acquiring the thread lock.
1169 In general, use mono_monitor_enter instead of mono_monitor_try_enter.
1170 Implemented Thread.Suspend using an event instead of ThreadSuspend,
1171 which is not fully implemented in the io-layer.
1172 * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
1174 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
1176 * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
1177 threads-types.h: more API cleanups.
1179 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
1181 * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
1182 domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
1183 threadpool.c, threads.c: first pass at the exported API cleanup.
1185 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
1187 * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
1189 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1191 * icall.c: added internalGetHome.
1193 2004-06-14 Dick Porter <dick@ximian.com>
1195 * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
1196 possible to return successfully when '.' or '..' were the only
1197 entries in a directory, but were skipped. The MonoIOStat was not
1198 filled in in that case. Now return ERROR_NO_MORE_FILES instead.
1201 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
1203 * reflection.c: make binaries run on .Net 1.1 by default.
1205 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
1207 * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
1209 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
1211 * marshal.c: keep track of struct size with explicit layout
1214 2004-06-12 Martin Baulig <martin@ximian.com>
1216 * mono-debug-debugger.c: Comment out a debugging g_message().
1218 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
1220 * reflection.c, reflection.h: do not free custom attrs that are cached.
1221 * icall.c: use braces to make code clearer.
1223 2004-06-11 Martin Baulig <martin@ximian.com>
1225 * class.h (MonoInflatedField): New type.
1226 (MonoClassField): Replaced `MonoType *generic_type' with
1227 `MonoInflatedField *generic_info'.
1230 (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
1232 2004-06-11 Martin Baulig <martin@ximian.com>
1234 * reflection.c (mono_image_create_method_token): Correctly encode
1237 2004-06-11 Martin Baulig <martin@ximian.com>
1239 * metadata.c (mono_metadata_parse_method_signature): When parsing
1240 a MethodDef which has VarArgs, also set sentinelpos if we don't
1241 have any parameters.
1243 2004-06-11 Martin Baulig <martin@ximian.com>
1245 * verify.c (mono_method_verify): In CEE_CALL, use
1246 mono_method_get_signature() to get the method's signature, unless
1247 we're a PInvoke method.
1249 2004-06-10 Jackson Harper <jackson@ximian.com>
1251 * assembly.c: Use <path>/lib/mono/gac for the extra paths
1252 lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
1253 logical name as the supplied path is just a prefix to the gac not
1254 the direct path to it.
1256 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
1258 * reflection.c: make the token for a created method match
1259 the token of the MethodBuilder it was created from
1260 (IKVM requires this behaviour now).
1262 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
1264 * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
1265 reflection.c, socket-io.c: leak fixes.
1267 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
1269 * icall.c: handle sentinel pos in vararg methods in position different
1272 2004-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1274 * culture-info-tables.h: freshly generated.
1276 2004-06-09 Martin Baulig <martin@ximian.com>
1278 * loader.c (mono_get_method_constrained): Call `mono_class_init
1279 (constrained_class)'.
1281 2004-06-08 Gert Driesen <drieseng@users.sourceforge.net>
1283 * icall.c (ves_icall_MonoType_GetEvent): Handle events without
1284 any methods. Fixes #59629.
1286 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
1288 * culture-info-tables.h: reflecting locale-builder updates.
1290 2004-06-08 Dick Porter <dick@ximian.com>
1293 * locales.c: Fixed compile warnings, including a real bug in
1294 CompareInfo_internal_compare.
1296 2004-06-08 Dick Porter <dick@ximian.com>
1299 (ves_icall_System_Globalization_CompareInfo_internal_index):
1300 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
1301 Double-check the resuls of usearches, because ICU currently
1302 ignores most of the collator settings here. Fixes bug 59720.
1304 2004-06-08 Dick Porter <dick@ximian.com>
1307 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
1308 Fix memory leak and segfault-causing typo. No idea how this one
1309 lasted so long without being noticed.
1311 2004-06-09 Zoltan Varga <vargaz@freemail.hu>
1313 * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
1314 any methods. Fixes #59629.
1316 2004-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1319 (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
1320 own the critical section before). Removed dead code (that's done
1321 in the preload hook).
1323 (mono_assembly_load_with_partial_name): call the preload hook.
1325 2004-06-08 Martin Baulig <martin@ximian.com>
1327 * metadata.c (mono_metadata_signature_alloc): Default
1328 `sentinelpos' to -1.
1330 * reflection.c (mono_image_get_array_token): Likewise.
1332 2004-06-08 Martin Baulig <martin@ximian.com>
1334 * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
1336 * metadata.c (mono_metadata_parse_method_signature): When parsing
1337 a MethodDef which has VarArgs, set sentinelpos.
1339 * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
1340 `gint16' since we're using -1 for non-varargs methods.
1343 (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
1344 (method_encode_signature): Added varargs support.
1345 (method_builder_encode_signature): Likewise.
1346 (mono_image_get_varargs_method_token): New static method.
1347 (mono_image_create_method_token): New public method; this is
1348 called via an icall instead of mono_image_create_token() when
1349 calling a varargs method.
1351 2004-06-08 Lluis Sanchez Gual <lluis@ximian.com>
1353 * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
1355 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
1357 * culture-info-tables.h : Reflecting the latest locale-builder that
1358 fixed empty array representation ({} to {0}).
1360 2004-06-07 Jackson Harper <jackson@ximian.com>
1362 * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
1363 looking up extra gac paths. This allows MONO_GAC_PATH to act
1364 exactly like a prefix.
1366 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
1368 * reflection.c (mono_reflection_type_from_name): Make a copy of the
1369 type name before modifying it. Fixes #59405.
1371 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
1373 * culture-info.h: added fields for "all datetime patterns".
1374 * locales.c: ( ves_icall_System_Globalization_CultureInfo
1375 _construct_datetime_format ()): fill xxx_patterns fields.
1376 * object.h: added fields for "all datetime patterns" to
1377 MonoDateTimeFormatInfo.
1378 * culture-info-tables.h: reflecting locale-builder updates.
1380 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
1382 * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
1383 the event has no add and remove methods. Fixes #59629.
1385 2004-06-05 Sebastien Pouliot <sebastien@ximian.com>
1387 * object.c: Fixed possible integer overflow when allocating large
1390 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
1392 * culture-info-tables.h: reflecting locale-builder updates.
1394 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
1396 * culture-info-tables.h: reflecting locale-builder updates.
1398 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
1400 * culture-info-tables.h: reflecting locale-builder updates.
1402 2004-06-03 Lluis Sanchez Gual <lluis@ximian.com>
1404 * threads.c: Made Thread.Sleep abortable.
1406 2004-06-02 Martin Baulig <martin@ximian.com>
1408 * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
1410 * debug-mono-symfile.h: Bumped symbol file version number to 37.
1412 2004-05-31 Zoltan Varga <vargaz@freemail.hu>
1414 * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
1416 2004-05-30 Jackson Harper <jackson@ximian.com>
1418 * reflection.c: Do not hardcode assembly versions or public key
1419 tokens anymore. All of this except the corlib section was dead
1422 2004-05-29 Zoltan Varga <vargaz@freemail.hu>
1424 * object.c (mono_runtime_invoke_array): Automatically create boxed
1425 objects for byref valuetypes if needed. Fixes #59300.
1427 * object.c (mono_method_return_message_restore): Handle
1428 MONO_TYPE_OBJECT as well.
1430 2004-05-28 Jackson Harper <jackson@ximian.com>
1432 * reflection.c: The modified type encoding was causing build
1433 problems. Reverted for now.
1435 2004-05-28 Jackson Harper <jackson@ximian.com>
1437 * reflection.c/h: Take an assembly ref so that we dont create
1438 fully qualified names when encoding types in the same assembly as
1439 the custom attribute being emitted.
1440 * appdomain.c: Increment version number.
1442 2004-05-26 Duncan Mak <duncan@ximian.com>
1445 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
1446 Set the full version number (major, minor, build, revision).
1448 2004-05-28 Vladimir Vukicevic <vladimir@pobox.com>
1450 * marshal.c (emit_struct_conv): increment src/dst after blit
1451 (mono_marshal_get_managed_wrapper,
1452 mono_marshal_get_native_wrapper): make sure we have marshalling
1453 info before marshalling params (info computation affects
1456 * class.c (class_compute_field_layout): correctly deal with
1458 (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
1459 value types (as per what windows dows by default)
1460 (mono_class_setup_mono_type): System.ValueType is blittable
1461 (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
1464 * marshal.c (mono_marshal_load_type_info): flag types as
1465 non-blittable if the native layout doesn't match the managed
1468 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1470 * appdomain.c: don't add stuff in the private search path that is
1471 above the application base. If application base is not set, there's
1472 no private search path.
1474 2004-05-28 Zoltan Varga <vargaz@freemail.hu>
1476 * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
1477 byref struct arguments in native->managed marshalling.
1479 2004-05-28 Patrik Torstensson <totte@hiddenpeaks.com>
1481 * marshal.c (mono_marshal_get_runtime_invoke): correctly
1482 cache methods using signature (special case for methods
1483 that are value type or string class)
1485 * image.c (mono_image_close): clean up allocated GSList's
1486 in runtime_invoke_cache.
1488 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1490 * mono-config.c: set the correct path for mono_cfg_dir on windows when
1491 there's no MONO_CFG_DIR environment variable defined.
1493 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1495 * threads.c: windows version must be >= 0x0500 to include OpenThread.
1497 2004-05-28 Lluis Sanchez Gual <lluis@ximian.com>
1499 * threadpool.c: Really wait for 500ms after the async call, even if the wait
1501 * threads.c: In mono_thread_manage, call OpenThread to ref each handle
1502 before waiting for it, and call CloseHandle after the wait to unref it.
1503 This will make sure that handles are not disposed too early.
1505 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1510 ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
1513 * object.c: se the application_base only for the domain that runs
1514 Main. Fixes bug #59216,
1516 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1519 * object.c: only the domain in which Main is run have
1520 SetupInformation.ConfigurationFile set, so moved a few lines from
1521 appdomain.c to object.c.
1523 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1525 * appdomain.c: we tried to load [name].(dll|exe), but according
1526 to bug #57710, we must also try [culture]/[name].(dll|exe) and
1527 [culture]/[name]/[name](dll|exe). This patch fixes the bug.
1528 There's a test case attached to bug #58922.
1530 2004-05-27 Dick Porter <dick@ximian.com>
1533 * file-io.c: Implemented icalls for locking and unlocking regions
1535 (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
1536 FALSE on error (fixes both compiler warning and real bug.)
1538 2004-05-27 Atsushi Enomoto <atsushi@ximian.com>
1540 * culture-info-tables.h: reflecting locale-builder updates.
1542 (Added missing ChangeLog entry for 05/26)
1544 2004-05-27 Jackson Harper <jackson@ximian.com>
1546 * locales.c: Fix some cut and paste errors.
1548 2004-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1550 * mono-config.c: set the correct path for config. directory on windows.
1552 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
1554 * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
1557 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
1559 * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
1560 from pinvoke functions.
1562 * marshal.c (mono_ftnptr_to_delegate): Implement this.
1564 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
1566 * culture-info-tables.h: reflecting locale-builder updates.
1568 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
1570 * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
1573 2004-05-26 Sebastien Pouliot <sebastien@ximian.com>
1575 * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
1576 * icall.c: Modified icalls for RNG.
1577 * rand.c|h: Changed RNG interface to allow thread-safe usage under
1578 Windows (CryptoAPI).
1580 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
1582 * locales.c: Fix build.
1584 2004-05-25 Atsushi Enomoto <atsushi@ximian.com>
1586 * culture-info-tables.h: reflecting locale-builder updates.
1588 2004-05-25 Jackson Harper <jackson@ximian.com>
1590 * locales.c: When creating the current culture use the $LANGs
1591 specific culture. So DateTimeFormat and NumberFormat entries are created.
1593 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
1595 * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
1596 a char array as parameter.
1598 2004-05-24 Lluis Sanchez Gual <lluis@ximian.com>
1600 * image.c: In mono_image_open(), always use an absolute path name to
1601 look for already loaded images.
1603 2004-05-24 Sebastien Pouliot <sebastien@ximian.com>
1605 * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
1606 missing in the windows build (like older cygwin include files).
1608 2004-05-23 Sebastien Pouliot <sebastien@ximian.com>
1610 * icall.c: Fixed check for possible integer overflow in Buffer_
1611 BlockCopy icall. Replaced comments style // by /* */.
1613 2004-05-22 Zoltan Varga <vargaz@freemail.hu>
1615 * marshal.c (mono_ftnptr_to_delegate): Fix warning.
1617 * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
1618 check after MONO_VTADDR. Fixes pinvoke2.exe.
1620 * marshal.h marshal.c metadata.h: Add beginnings of support for
1621 ftnptr -> delegate marshalling.
1623 2004-05-21 Zoltan Varga <vargaz@freemail.hu>
1625 * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
1626 * threads.c: Fix warnings.
1628 2004-05-20 Lluis Sanchez Gual <lluis@ximian.com>
1630 * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
1631 * icall.c: Registered icalls for Suspend and Resume.
1632 * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
1634 * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
1635 * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
1636 * process.c: Use WaitForSingleObjectEx.
1637 * threadpool.c: Use WaitForSingleObjectEx. Added some interruption
1639 * threads.c, threads.h: Make use of new Ex wait methods. Improved
1640 implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
1641 for Suspend and Resume. Added new mono_thread_stop, used for stoping
1642 background threads. Added basic support for Abort in Windows.
1643 Start new threads using a managed delegate invoke wrapper. This wrapper
1644 has an interruption checkpoint that is needed since an interruption
1645 can be requested before the thread leaves the unmanaged code that starts
1647 * marshal.c: Added interruption checkpoint after every native call, and
1648 also before managed calls for wrappers called from unmanaged code to
1649 go into managed code.
1650 * object.h: Added new field in MonoThread to keep track of interruption
1653 2004-05-20 Zoltan Varga <vargaz@freemail.hu>
1655 * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
1658 2004-05-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1665 * rand.c: getenv -> g_getenv (windows!)
1667 * process.c: complete_path is also used on non-windows platforms.
1669 2004-05-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1671 * icall.c: new signature for Process_Start.
1673 * process.[ch]: new signature for Process_Start. If we're on windows
1674 and UseShellExecute is false, we have to search for the program by
1675 ourselves if we don't get a full path.
1677 2004-05-18 Zoltan Varga <vargaz@freemail.hu>
1679 * marshal.c (mono_marshal_get_native_wrapper): Fix up custom
1680 marshalling and call CleanUpNativeData if needed. Fixes #58646.
1682 2004-05-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1684 * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
1687 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1689 * process.c: use double quotes to quote program name and arguments on
1690 windows. Fixes bug #58575.
1692 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1694 * file-io.c: don't return "." and ".." when using windows Find*File.
1696 2003-05-17 Patrik Torstensson <totte@hiddenpeaks.com>
1698 * marshal.c: Don't pass wrappers to message init because method
1699 addressed used to lookup metadata. part of remoting[2|3] fix.
1701 2004-05-15 Jackson Harper <jackson@ximian.com>
1703 * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
1704 path is essentially the same as MONO_PATH except that it points to
1705 GACs instead of lib directories.
1706 * loader.h: The user gac is gone so we dont need function to
1708 * mono-config.c: user gac option is now gone.
1710 2004-05-15 Jackson Harper <jackson@ximian.com>
1712 * culture-info.h: Make defines more consistent, add calendar data
1713 to the culture info table.
1714 * culture-info-tables.h: Add basic calendar data. Basically
1715 everyone gets default gregorian until all the data is
1717 * locales.c: Use the new consistent defines. Set calendar data for
1718 culture info objects.
1719 * object.h: add a field for calendar data to CultureInfo
1721 2004-05-14 Ben Maurer <bmaurer@users.sourceforge.net>
1723 * image.c: image->runtime_invoke_cache is keyed on signatures now.
1724 * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
1726 (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
1727 (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
1728 an extra param that is the pointer of the method to invoke. The IL for
1729 the invoke method is no longer specific to the method, but to the
1730 signature of the method. Thus, we can share the same code for multiple
1731 methods. This reduces the number of methods that have to be compiled.
1733 2004-05-14 Zoltan Varga <vargaz@freemail.hu>
1735 * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
1737 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1739 * icall.c: Optimize Buffer.BlockCopy.
1741 2004-05-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1743 * culture-info-tables.h: seems like Spanish and Portuguese cultures had
1744 DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
1745 quote). Changed them to "MMMM yyyy".
1747 2004-05-12 Miguel de Icaza <miguel@ximian.com>
1750 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file.
1752 2004-05-13 Zoltan Varga <vargaz@freemail.hu>
1754 * reflection.h: Updated after changes to managed structures.
1756 * appdomain.c: Bump corlib version.
1758 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1760 * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
1763 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1765 * Makefile.am: link to ../os/libmonoos.la on windows.
1768 -If MONO_DEBUG, warn about non-existing directories in
1770 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
1771 compile time variable.
1772 -Removed init_default_path and call mono_set_rootdir from
1773 libmonoos.a instead (windows only).
1775 * assembly.h: declare mono_assembly_getrootdir().
1778 * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
1780 * loader.c: s/getenv/g_getenv/
1782 2004-05-11 Zoltan Varga <vargaz@freemail.hu>
1784 * marshal.{h,c}: Add support for UnmanagedType.AsAny.
1786 * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
1788 * metadata.h: Add new marshalling conversions.
1790 * metadata.h metadata.c (mono_metadata_signature_dup): New helper
1793 * reflection.c (mono_reflection_get_type): Lookup the type in all
1794 modules of a multi-module assembly. Fixes #58291.
1796 2004-05-11 Lluis Sanchez Gual <lluis@ximian.com>
1798 * threads.c: Before aborting a background, set the StopRequested
1799 state. This avoids throwing the Abort exception.
1800 In mono_thread_manage, don't continue with the shutdown until all
1801 aborted threads have actually stopped.
1803 2004-05-10 Jackson Harper <jackson@ximian.com>
1805 * locales.c: Remove the modifier from culture names.
1807 2004-05-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1809 * Makefile.am: monosn is not installed any more. It has been deprecated
1812 2004-05-07 Jackson Harper <jackson@ximian.com>
1815 (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
1816 Fix array construction, add bailout if the length is 0.
1818 2004-05-07 Dick Porter <dick@ximian.com>
1820 * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
1821 machine doesn't have a DNS entry. Patch by Urs Muff
1822 (umuff@quark.com), fixes bug 57928.
1824 2004-05-06 Jackson Harper <jackson@ximian.com>
1826 * reflection.c: Handle null PublicTokens properly. alloc mem for
1827 assembly names culture so we dont crash when freeing it.
1829 2004-05-06 Jackson Harper <jackson@ximian.com>
1831 * assembly.c: Check the usergac when loading with partial names.
1833 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
1835 * rand.c|h: Added new icall for (optionally) seeding the PRNG. This
1836 does nothing for now (not required for Linux/Windows) but the class
1837 library can call it (and a newer or modified runtime could need it).
1838 * icall.c: Registred icall.
1840 2004-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1842 * loader.c: prints a message on module loading error we set MONO_DEBUG
1843 environment variable.
1845 2004-05-05 Jackson Harper <jackson@ximian.com>
1847 * appdomain.c: Handle PublicKeyToken=null properly.
1849 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
1851 * environment.c|h: Added icall ves_icall_System_Environment_
1852 GetOSVersionString to get the current OS version as a string.
1853 * icall.c: Registred icall.
1855 2004-05-05 Lluis Sanchez Gual <lluis@ximian.com>
1857 * object.c: in mono_object_get_virtual_method(), take into account that
1858 non-virtual methods don't have a slot in the vtable. Check needed when
1859 the object is a proxy.
1861 2004-05-05 Zoltan Varga <vargaz@freemail.hu>
1863 * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
1864 (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
1866 * object.c (mono_class_compute_gc_descriptor): Fix warning.
1868 * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
1869 passed when a valuetype is expected.
1871 * object.c (mono_unhandled_exception): Only set the exit code if the
1872 exception happens in the main thread. Fixes thread5.exe.
1874 * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
1875 invalid names. Fixes #58047.
1877 2004-05-03 Jackson Harper <jackson@ximian.com>
1879 * assembly.c: This line was committed accidently and is unneeded.
1881 2004-05-03 Jackson Harper <jackson@ximian.com>
1883 * icall.c: Add new icall for Assembly::LoadWithPartialName
1884 * assembly.c/.h: new function that probes the GAC to load partial
1885 assembly names by Paolo Molaro.
1887 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1889 * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
1890 * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
1891 (type_get_fully_qualified_name): Added PublicKeyToken when building a
1894 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1896 * appdomain.c: fixed check for 'neutral' culture and removed warning.
1897 * reflection.c: fix bug when parsing a full type name and Version is not
1898 the last thing in the string.
1900 2004-05-03 Zoltan Varga <vargaz@freemail.hu>
1902 * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
1903 crashes when it is freed.
1905 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1907 * assembly.c: print the compat warning to stderr.
1909 2004-05-01 Miguel de Icaza <miguel@ximian.com>
1911 * assembly.c (mono_assembly_load_references): Add a compatibility
1912 hack to run old applications that might be still referencing the
1913 3300-based assemblies, only do this for System.xxx.
1915 2004-05-01 Jackson Harper <jackson@ximian.com>
1917 * appdomain.c: If the culture is neutral we set it to "".
1919 2004-04-29 Jackson Harper <jackson@ximian.com>
1921 * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
1923 2004-04-29 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1925 * string-icalls.c: added low overhead function for copying chars
1926 * icall.c: added needed icall for the above function
1928 2004-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1930 * icall.c: fix return value of get_global_assembly_cache. Implemented
1931 Environment.GetLogicalDrives.
1933 2004-04-28 Bernie Solomon <bernard@ugsolutions.com>
1935 * rand.c: try and talk to egd or prngd
1936 for random bytes if opening devices fail.
1938 2004-04-28 Zoltan Varga <vargaz@freemail.hu>
1940 * marshal.c (mono_marshal_load_type_info): Calculate the minimum
1941 alignment for the type using the native alignment of its members
1942 instead of using klass->min_align.
1944 * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
1946 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1949 * socket-io.c: added check for sys/aio.h.
1951 2004-04-28 Dick Porter <dick@ximian.com>
1953 * threads.c: Don't abort a thread thats already aborting, when
1954 terminating everything.
1956 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1958 * icall.c: added 2 new async calls for Socket.
1960 * socket-io.[ch]: fixed some warnings. Added support for asynchronous
1963 * threadpool.c: removed unused variable.
1965 2004-04-27 Zoltan Varga <vargaz@freemail.hu>
1967 * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
1969 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
1971 * locales.c: put back string_invariant_tolower () and
1972 string_invariant_toupper ().
1974 2004-04-26 David Waite <mass@akuma.org>
1979 * unicode.h: remove comma from end of enumeration declarations
1981 2004-04-26 David Waite <mass@akuma.org>
1983 * debug-mono-symfile.h:
1986 * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
1989 2004-04-26 Jackson Harper <jackson@ximian.com>
1991 * appdomain.c: Increment version number.
1993 2004-04-26 Jackson Harper <jackson@ximian.com>
1995 * appdomain.c: Set assembly references public token value when
1996 PublicKeyToken is specified, not the hash_value. Free public token
1997 values when free assembly name data. Previously the public key
1998 token was hex decoded, however we are using hex encoded public key
1999 tokens, so this is not neccasary.
2000 * assembly.c: Lookup assemblies in the gac if their public token
2001 value is set. Add function to allow enabling user gac
2002 lookups. Specify whether or not the assembly was loaded from the
2003 GAC. Compare full assembly names when checking the cache for
2004 assemblies (Temporarily disabled see comment in code). Remove
2005 mscorlib -> corlib mapping cruft. Add trace-loading. When a user
2006 specifies trace-loader they get extra info to stdout on the
2007 loading of assemblies.
2008 * image.h: Add a field for an assembly references public token
2009 value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
2010 whether an assembly has been loaded from the GAC.
2011 * image.c: Remove a corlib -> mscorlib name mapping.
2012 * loader.h: Add function to enable/disable the user gac.
2013 * mono-config.c: Check if the usergac is enabled in the config
2015 * icall.c: New icall to determine whether or not an assembly has
2016 been loaded from the GAC. Remove some mscorlib -> corlib mappings.
2017 * tabldefs.h: Add constant for assemblyref flag that specifies a
2018 full public key is used instead of a public token.
2019 * reflection.c: Remove mscorlib -> corlib mappings. Set
2020 PublicTokenValue instead of hash value. This value is a hex
2021 string so it does not need to be expanded.
2023 2004-04-26 Martin Baulig <martin@ximian.com>
2025 * mono-debug-debugger.c (mono_debugger_initialize): Set
2026 `mono_debugger_initialized' before calling mono_debug_lock().
2028 2004-04-42 Robert Shade <rshade@dvsconsulting.com>
2030 * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
2031 InternalToUpper/InternalToLower.
2032 * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
2033 removed invariant culture shortcut. This is now done in managed code.
2034 * locales.c: (string_invariant_toupper/tolower) removed.
2036 2004-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2038 * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
2039 Added Poll internal call.
2041 * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
2042 call for Poll. Select was too heavy for polling a single socket.
2044 * threadpool.[ch]: added mono_threadpool_cleanup.
2045 * threads.c: use it. Don't use Thread_Abort on windows.
2047 2004-04-23 Martin Baulig <martin@ximian.com>
2049 * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
2051 2004-04-23 Sebastien Pouliot <sebastien@ximian.com>
2053 * icall.c: Registred new icalls for key pair protection and added an
2054 icall for Environment.GetFolderPath on Windows.
2055 * security.c|h: Added new icalls for key pair protection.
2057 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2059 * socket-io.c: don't display the non-supported family warning for known
2060 families. Now this is not displayed on windows when checking support
2063 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2065 * class.c: don't display the layout warning for static fields.
2067 2004-04-21 Lluis Sanchez Gual <lluis@ximian.com>
2069 * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
2070 * locales.c, locales.h: Added new icalls for culture-specific
2071 Char.ToLower and Char.ToUpper.
2073 2004-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2075 * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
2078 2004-04-20 Martin Baulig <martin@ximian.com>
2080 * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
2081 of the type name before passing it to mono_reflection_type_from_name().
2083 2004-04-19 Zoltan Varga <vargaz@freemail.hu>
2085 * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
2086 encodings here. Fixes #56965.
2088 2004-04-18 Bernie Solomon <bernard@ugsolutions.com>
2090 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
2091 fix test on strstr result not that I can see anything that
2092 relies on the result.
2094 2004-04-18 Zoltan Varga <vargaz@freemail.hu>
2096 * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
2099 * marshal.c (mono_marshal_get_string_encoding): New helper function.
2101 * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
2102 function to determine which marshalling to use for strings. Fixes
2105 * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
2107 * reflection.c (encode_marshal_blob): Add support for LPARRAY.
2109 2004-04-15 Bernie Solomon <bernard@ugsolutions.com>
2111 * icall.c: #include mono-config.h
2113 2004-04-15 Jackson Harper <jackson@ximian.com>
2115 * culture-info-tables.h: Fix date formats for en-US culture.
2117 2004-04-15 Lluis Sanchez Gual <lluis@ximian.com>
2119 * icall.c: Registered icalls for ThreadPool.GetMinThreads and
2120 ThreadPool.SetMinThreads.
2121 * threadpool.c: Implemented ThreadPool.GetMinThreads and
2122 ThreadPool.SetMinThreads.
2124 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2126 * mono-config.c: also load the .config file in the directory
2127 where the assembly was found.
2129 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
2131 * assembly.c: load per-assembly config files.
2132 * icall.c: decrapified code to get the config dir and moved to
2134 * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
2135 per-assembly config files. When doing a dll map lookup give precedence
2136 to the per-assembly data.
2138 2004-04-14 Martin Baulig <martin@ximian.com>
2140 * mono-debug-debugger.h (MonoDebuggerEvent): Removed
2141 MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
2142 and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
2144 * mono-debugger-debugger.c: While the debugger is locked, remember
2145 whether the symbol tables have changes and send one single
2146 MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
2148 2004-04-14 Zoltan Varga <vargaz@freemail.hu>
2150 * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
2152 * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New
2155 * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
2156 account when marshalling string arrays. Fixes #56965.
2158 2004-04-13 Sebastien Pouliot <sebastien@ximian.com>
2160 * icall.c: Add new icalls mapping for security.
2161 * security.c|h: Add internal calls for WindowsIdentity,
2162 WindowsImpersonationContext and WindowsPrincipal.
2164 2004-04-13 Gert Driesen (drieseng@users.sourceforge.net)
2166 * class.c: Added comment to ensure the System.MonoDummy class
2167 is removed when no longer necessary
2169 2004-04-13 Miguel de Icaza <miguel@ximian.com>
2171 * appdomain.c: Pass arguments to the bootstraping exceptions to
2172 minimize JITed methods at boot
2174 * metadata.c (mono_exception_from_name_two_strings): Allow for the
2175 second string to be null.
2177 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
2178 Change the protocol to minimize the JIT methods at startup. Now
2179 it Returns the internal codepage, if the value of "int_code_page"
2180 is 1 at entry, and we can not compute a suitable code page
2181 number, returns the code page as a string.
2183 2004-04-13 Jackson Harper <jackson@ximian.com>
2185 * culture-info-tables.h: Fix number of decimal digits for all
2188 2004-04-13 Jackson Harper <jackson@ximian.com>
2190 * icall.c: Clairfy out of sync error message. It is not always
2191 your corlib that is out of sync.
2193 2004-04-13 Zoltan Varga <vargaz@freemail.hu>
2195 * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
2196 properties when only the set accessor is overriden. Fixes #55874.
2198 2004-04-09 Zoltan Varga <vargaz@freemail.hu>
2200 * assembly.c (mono_assembly_load_references): Make this thread safe.
2203 2004-04-08 Zoltan Varga <vargaz@freemail.hu>
2205 * monosn.c: Add missing initialization calls.
2207 2004-04-08 Bernie Solomon <bernard@ugsolutions.com>
2210 ves_icall_System_Globalization_CultureInfo_construct_number_format
2211 Fix g_assert so it compiles on fussier compilers re int/ptr
2214 2004-04-08 Dick Porter <dick@ximian.com>
2217 * socket-io.c: Don't set SO_REUSEADDR on windows. Fixes bug
2218 53992. Also rearrange the code so that the internal calls return
2219 an error value and exceptions are thrown from managed code.
2221 * icall.c: Add type info to the socket icalls.
2223 2004-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2225 * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
2228 2004-04-07 Martin Baulig <martin@ximian.com>
2230 * class.c (mono_class_from_generic_parameter): Don't default
2231 `klass->parent' to `mono_defaults.object_type'.
2233 2004-04-07 Martin Baulig <martin@ximian.com>
2235 * reflection.c (mono_reflection_initialize_generic_parameter): Set
2236 `param->pklass->reflection_info'.
2238 2004-04-07 Jackson Harper <jackson@ximian.com>
2240 * culture-info-tables.h: Fix date separator symbol.
2242 2004-04-07 Martin Baulig <martin@ximian.com>
2244 * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
2245 from System.Type to System.MonoType.
2247 2004-04-07 Martin Baulig <martin@ximian.com>
2250 (MonoReflectionGenericParam): Added `has_reference_type' and
2251 `has_value_type' fields.
2253 * reflection.c (mono_image_get_generic_param_info): Encode the
2254 correct flags if we have the `class' or `struct' constraint.
2256 2004-04-07 Martin Baulig <martin@ximian.com>
2259 (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
2261 2004-04-07 Jackson Harper <jackson@ximian.com>
2263 * appdomain.c: Revert extra patches, just wanted to bump the
2266 2004-04-07 Jackson Harper <jackson@ximian.com>
2268 * Makefile.am: Add culture-info private headers.
2269 * icall.c: Add new icalls for contructing locales.
2270 * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
2271 * locales.h: Declare new culture info construction methods.
2272 * object.h: Add new fields used to avoid the CultureMap to
2274 * culture-info.h: Definition of structs used in the culture info
2276 * culture-info-tables.h: Autogenerated tables that contain culture
2277 info data. This file was generated with the locale-builder tool.
2278 * appdomain.c: Incement corlib version number.
2280 2004-04-07 Bernie Solomon <bernard@ugsolutions.com>
2282 * appdomain.c: (mono_runtime_init) move mono_thread_init
2283 to before mono_object_new calls so critical sections
2284 are initialized before use.
2286 2004-04-07 Martin Baulig <martin@ximian.com>
2289 (ves_icall_TypeBuilder_define_generic_parameter): Removed.
2290 (ves_icall_MethodBuilder_define_generic_parameter): Removed.
2291 (ves_icall_MonoGenericParam_initialize): Removed.
2292 (monogenericparam_icalls): Removed.
2293 (generictypeparambuilder_icalls): Added new table for
2294 System.Reflection.Emit.GenericTypeParameterBuilder.
2297 (mono_reflection_define_generic_parameter): Removed.
2298 (mono_reflection_initialize_generic_parameter): This is now called
2299 from GenericTypeParameterBuilder's .ctor.
2301 2004-04-06 Martin Baulig <martin@ximian.com>
2303 * class.c (mono_class_init): Don't inflate nested classes in a
2305 (mono_type_get_name_recurse): Include the generic arguments for
2306 generic instances and generic type declarations.
2307 (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
2308 (_mono_class_get_instantiation_name): Removed.
2309 (mono_class_create_generic): Always use `gklass->name' as our name.
2311 * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
2313 * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
2314 (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
2315 (ves_icall_MonoMethod_GetGenericParameters): Renamed to
2316 ves_icall_MonoMethod_GetGenericArguments() and correctly handle
2317 closed generic methods here.
2320 (mono_reflection_generic_inst_get_nested_types): Removed.
2321 (inflate_mono_method): Copy the generic parameters from the
2322 MonoMethodHeader into out MonoGenericMethod.
2324 2004-04-06 Martin Baulig <martin@ximian.com>
2327 (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
2329 * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
2331 * reflection.c (build_compressed_metadata): If we have any entries
2332 in the GenericParam, MethodSpec or GenericParamConstraint tables,
2333 set the header version to 1.1.
2335 2004-04-06 Martin Baulig <martin@ximian.com>
2337 * class.c (mono_class_init): If we're a generic instance,
2338 initialize our nested classes, too.
2339 (_mono_class_get_instantiation_name): Deal with the new `!%d'
2342 2004-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2344 * process.c: quote the argument passed to the shell on windows.
2346 2004-04-05 Zoltan Varga <vargaz@freemail.hu>
2348 * threads.c (mono_alloc_special_static_data): Allow this to be
2349 called during startup.
2351 2004-04-02 Martin Baulig <martin@ximian.com>
2354 (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
2356 2004-04-02 Zoltan Varga <vargaz@freemail.hu>
2358 * icall.c: Fix build.
2360 2004-04-02 Sebastien Pouliot <sebastien@ximian.com>
2362 * Makefile.am: Added security.c|h.
2363 * icall.c: Added icall for get_UserName;
2364 * security.c: New file for security related icalls. Added function
2365 get_UserName for System.Environment (fix #56144).
2366 * security.h: New. Header file for security.c
2368 2004-04-02 Dick Porter <dick@ximian.com>
2370 * icall.c: Deleted the icalls that were obsoleted some time ago
2371 by the ICU string code, and which were mixed into the icall
2372 rearranging. Fixes bug 55969.
2375 * string-icalls.c: Deleted the code that those icalls reference.
2377 2004-04-01 Martin Baulig <martin@ximian.com>
2379 * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
2381 * class.c (mono_class_from_generic_parameter): Don't set
2382 TYPE_ATTRIBUTE_INTERFACE.
2383 (my_mono_class_from_generic_parameter): Likewise.
2385 2004-04-01 Martin Baulig <martin@ximian.com>
2387 * loader.c (find_method): Added an optional `MonoClass *ic'
2388 argument to search in a specific interface.
2389 (mono_get_method_constrained): New public function.
2391 2004-04-01 Martin Baulig <martin@ximian.com>
2393 * reflection.c (mono_image_get_generic_field_token): Use the
2394 `handleref' cache here.
2396 2004-04-01 Martin Baulig <martin@ximian.com>
2398 * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
2400 * reflection.c (create_generic_typespec): Use the `typespec' hash
2401 here, not the `typeref' one.
2403 2004-04-01 Martin Baulig <martin@ximian.com>
2405 * class.c (mono_class_inflate_generic_type): Moved the
2406 functionality into a new static inflate_generic_type() which
2407 returns NULL if it didn't do anything. Only increment the
2408 `mono_stats.inflated_type_count' if we actually inflated
2410 (mono_class_get_full): Check the classes type to see whether we
2411 need to inflate it; also inflate MONO_TYPE_(M)VAR.
2413 2004-04-01 Jackson Harper <jackson@ximian.com>
2415 * reflection.c: Set culture for assembly references.
2417 2004-04-01 Ben Maurer <bmaurer@users.sourceforge.net>
2419 * reflection.[ch], icall.[ch], Fix support for pinning variables.
2421 2004-04-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2424 (do_mono_assembly_open): the critical section also covers
2425 mono_image_open and mono_image_open_from_data. Fixes bug #56327.
2427 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2430 (mono_manage_threads): abort the background threads when finishing.
2433 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2435 * gc.c: only close the done_event handle if there was no timeout.
2438 2004-03-30 Martin Baulig <martin@ximian.com>
2440 * icall.c (icall_entries): It's called "System.Activator", not
2441 "System.Activation".
2443 2004-03-30 Martin Baulig <martin@ximian.com>
2445 * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
2446 (mono_class_create_from_typespec): Likewise.
2448 2004-03-30 Martin Baulig <martin@ximian.com>
2450 * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
2451 `has_ctor_constraint' and `initialized'.
2453 2004-03-30 Martin Baulig <martin@ximian.com>
2455 * reflection.c (encode_new_constraint): New static function to add
2456 the constructor constraint attribute to a type parameter.
2457 (encode_constraints): Call encode_new_constraint() if necessary.
2460 (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
2462 * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
2464 2004-03-29 Ben Maurer <bmaurer@users.sourceforge.net>
2466 * reflection.c, icall.c: add support for pinning variables.
2468 2004-03-29 Bernie Solomon <bernard@ugsolutions.com>
2470 * marshal.c (mono_marshal_get_managed_wrapper):
2471 init bool local with zero rather than null.
2473 2004-03-29 Martin Baulig <martin@ximian.com>
2475 * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
2476 the "official" behavior here.
2477 (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
2479 2004-03-29 Martin Baulig <martin@ximian.com>
2481 * icall.c: Reflect latest API changes.
2483 2004-03-29 Martin Baulig <martin@ximian.com>
2485 * loader.c (mono_get_method_from_token): Also call
2486 mono_metadata_load_generic_params () for abstract and interface
2487 methods; replace the type arguments in the method signature with
2488 the ones which are loaded from the metadata.
2490 2004-03-29 Lluis Sanchez Gual <lluis@ximian.com>
2492 * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
2493 of the lock is not the current thread. MS.NET don't do it, in spite of
2494 what the documentation says. See bug #56157.
2496 2004-03-28 Martin Baulig <martin@ximian.com>
2498 * class.c (mono_class_init): Don't call init_properties() and
2499 init_events() for generic instances; set `prop->parent' when
2500 inflating properties.
2502 * reflection.c (mono_generic_inst_get_object): Call
2503 `mono_class_init (ginst->klass)'.
2504 (mono_type_get_object): Only create a MonoGenericInst if your
2505 generic type is a TypeBuilder.
2506 (do_mono_reflection_bind_generic_parameters): Only set
2507 `ginst->is_dynamic' if our generic type is a TypeBuilder.
2509 2004-03-28 Zoltan Varga <vargaz@freemail.hu>
2511 * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
2514 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2516 * icall.c: added Kill_internal icall.
2517 * process.[ch]: added Kill_internal icall.
2519 2004-03-25 Martin Baulig <martin@ximian.com>
2521 * class.h (MonoStats): Added `generic_instance_count',
2522 `inflated_method_count', `inflated_type_count' and
2523 `generics_metadata_size'.
2525 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2527 * reflection.c: no warnings now.
2529 2004-03-25 Martin Baulig <martin@ximian.com>
2531 * class.c (mono_class_get_full): New public function; does a
2532 mono_class_get(), but also takes a `MonoGenericContext *'.
2534 * loader.c (mono_field_from_memberref): Renamed to
2535 `field_from_memberref', made static and added `MonoGenericContext *'
2537 (mono_field_from_token): Added `MonoGenericInst *' argument.
2538 (method_from_memberef): Likewise.
2539 (mono_get_method_from_token): Likewise.
2540 (mono_get_method_full): New public function; does a
2541 mono_get_method(), but also takes a `MonoGenericContext *'.
2543 * verify.c (mono_method_verify): Get the method's generic context
2544 and pass it to mono_field_from_token(), mono_get_method_full() and
2545 mono_class_get_full().
2547 2004-03-25 Martin Baulig <martin@ximian.com>
2549 * class.c (mono_class_inflate_generic_type): Take a
2550 `MonoGenericContext *' instead of a `MonoGenericInst *' and a
2551 `MonoGenericMethod *'.
2553 2004-03-25 Martin Baulig <martin@ximian.com>
2555 * loader.h (MonoMethodInflated): Store the MonoGenericContext
2556 instead of the MonoGenericMethod here.
2558 2004-03-25 Martin Baulig <martin@ximian.com>
2560 * class.h (MonoGenericInst): Added `MonoGenericContext *context';
2561 each time we create a new MonoGenericInst, we also create a new
2562 context which points back to us.
2564 * class.c (inflate_method): Use `ginst->context' instead of
2565 creating a new context.
2567 * loader.c (method_from_memberref): Use
2568 `klass->generic_inst->context' instead of creating a new context.
2570 2004-03-25 Martin Baulig <martin@ximian.com>
2572 * class.h (MonoGenericContext): New struct.
2573 (MonoGenericMethod): Removed `generic_inst'.
2575 * class.c (mono_class_inflate_generic_method): Take a
2576 `MonoGenericContext *' instead of a `MonoGenericMethod *'.
2578 2004-03-25 Martin Baulig <martin@ximian.com>
2580 * loader.h (MonoMethodInflated): New typedef.
2582 * metadata.h (MonoMethodSignature): Removed `gen_method', make
2583 `generic_param_count' consume just 30 bits, added `is_inflated'
2584 and `has_type_parameters' flags (one bit each).
2586 * class.c (mono_class_inflate_generic_method): Create a
2587 MonoMethodInflated instead of a MonoMethodNormal and set
2588 `is_inflated' in the method signature.
2590 * class.h (MonoGenericMethod): Removed `generic_method'.
2592 2004-03-25 Lluis Sanchez Gual <lluis@ximian.com>
2594 * image.c: Make sure the name of a MonoImage is always an absolute path.
2595 This fixes bug #54415.
2597 2004-03-24 Martin Baulig <martin@ximian.com>
2599 * class.c (mono_class_setup_vtable): If we're a generic instance,
2600 use our generic type's vtable size.
2602 2004-03-24 Zoltan Varga <vargaz@freemail.hu>
2604 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
2605 MONO_NO_UNLOAD env var as a temporary workaround for unloading
2608 2004-03-23 Martin Baulig <martin@ximian.com>
2610 * class.h (MonoDynamicGenericInst): Added `int count_events' and
2611 `MonoEvent *events'.
2613 * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
2614 (typebuilder_icalls): Added "get_event_info"; calls
2615 mono_reflection_event_builder_get_event_info().
2617 * reflection.c (mono_reflection_generic_inst_initialize): Added
2618 `MonoArray *events'.
2619 (mono_reflection_event_builder_get_event_info): New function.
2621 2004-03-23 Bernie Solomon <bernard@ugsolutions.com>
2623 * object.h: add mono_type_initialization_init
2625 * object.c (mono_runtime_class_init):
2626 implement class constructor synchronization rules
2627 to cope with threading issues.
2628 add mono_type_initialization_init
2630 * appdomain.c (mono_runtime_init): call
2631 mono_type_initialization_init
2633 * class.h: removing initializing field from MonoVTable
2635 2004-03-23 Martin Baulig <martin@ximian.com>
2637 * class.c (my_mono_class_from_generic_parameter): Use
2638 `param->name' if it's not NULL.
2640 2004-03-22 Ben Maurer <bmaurer@users.sourceforge.net>
2642 * class.c: do not insert non-virtual methods in the vtable.
2643 * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
2644 that means the method is non-virtual. This never would have
2647 2004-03-22 Lluis Sanchez Gual <lluis@ximian.com>
2649 * profiler.c: Added lock for accessing coverage_hash.
2651 2004-03-22 Martin Baulig <martin@ximian.com>
2653 * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
2654 `method->method->signature->generic_param_count != 0' to make it
2655 work for interface methods.
2657 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2659 * process.c: quote the string passed to the shell using g_shell_quote.
2661 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2664 (mono_threads_manage): don't remove the finalizer thread and self
2665 from the threads hash table so that mono_thread_manage can be called
2668 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2670 * process.c: quote the arguments when UseShellExecute is true. Fixes
2673 2004-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2675 * threads.c: set mono_thread_detach as a cleanup routine for every
2676 thread. This way it's always executed upon thread termination, either
2677 aborted or finished normally. No more xsp hangs!
2679 2004-03-17 Martin Baulig <martin@ximian.com>
2681 * class.h (MonoGenericInst): Replaced the `GList *nested' with an
2682 `int count_nested' and a `MonoType **nested'.
2684 * reflection.c (mono_reflection_bind_generic_parameters): Moved
2685 most of the functionality into a new static
2686 do_mono_reflection_bind_generic_parameters() and don't take a
2687 `MonoType *nested_in' argument any more. Don't compute nested
2689 (mono_reflection_generic_inst_get_nested_types): New public method
2690 to get nested types.
2692 * class.c (mono_class_create_generic): Set `klass->nested_in' if
2693 we're a nested class.
2695 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
2696 mono_reflection_generic_inst_get_nested_types() to compute the
2699 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
2701 * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
2702 descriptive error message under windows.
2704 2004-03-17 Martin Baulig <martin@ximian.com>
2706 * class.c (dup_type): Added `const MonoType *original' argument;
2707 copy the attrs from the original type.
2709 2004-03-17 Martin Baulig <martin@ximian.com>
2711 * metadata.c (do_mono_metadata_parse_generic_inst): Use the
2712 `m->generic_inst_cache' here.
2714 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
2716 * exception.h exception.c: Add stack_overflow_exception.
2718 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2721 (overlapped_callback): call SetEvent *after* invoking the callback.
2722 No need to call CloseHandle.
2724 2004-03-16 Martin Baulig <martin@ximian.com>
2726 * reflection.c (mono_image_get_fieldref_token): Take a
2727 `MonoReflectionField *' instead of a `MonoClassField *' and a
2728 `MonoClass *'; store the `MonoReflectionField *' in the hash.
2730 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2732 * appdomain.c: don't add the culture to the filename we're looking for
2733 if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
2735 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2737 * locales.c: don't ignore symbols when doing case insensitive compares.
2738 Thanks Dick! Fixes bug #54046.
2740 * threads.c: surround 'threads' usage with enter/leave in
2743 2004-03-16 Zoltan Varga <vargaz@freemail.hu>
2745 * marshal.c (mono_marshal_get_native_wrapper): Char arrays are
2746 implicitly marshalled as [Out]. Fixes #55450.
2748 (mono_marshal_get_runtime_invoke): Zero out the result if there is
2751 2004-03-16 Martin Baulig <martin@ximian.com>
2753 * class.c (mono_class_from_generic_parameter): Use the actual
2756 2004-03-16 Martin Baulig <martin@ximian.com>
2758 * reflection.c (type_get_signature_size): New static function.
2759 Compues the size of the type in a method signature.
2760 (method_get_signature_size): New static function; calls
2761 type_get_signature_size() to compute the actual size of the
2763 (method_encode_signature): Use method_get_signature_size() to get
2764 the signature's size rather than using `nparams * 10'.
2766 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2768 * file-io.h: define here WapiOverlapped on windows. I don't want the
2769 regular OVERLAPPED one.
2772 * threadpool.c: somehow, BindIoCompletionCallback is not found.
2773 Disabling AIO on windows.
2775 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2777 * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
2780 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2782 * appdomain.c: upgraded corlib version.
2784 * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
2785 and BeginWrite. Allow opening files for asynchrnous operations.
2787 * file-io.h: new struct that maps FileStreamAsyncResult.
2788 * icall.c: added new icalls.
2789 * process.[ch]: support setting child process environment variables
2790 and use the SHELL or COMSPEC when UseShellExecute is true.
2792 * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
2793 callback for async. IO is here and also BindHandle.
2795 * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
2798 2004-03-14 Zoltan Varga <vargaz@freemail.hu>
2800 * reflection.c (create_custom_attr): Allow len == 0.
2802 * object.c (mono_class_compute_gc_descriptor): Fix descriptor
2803 computation on big-endian machines.
2805 2004-03-13 Martin Baulig <martin@ximian.com>
2807 * class.h (MonoGenericInst): Added `int count_ifaces'.
2809 * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
2810 `ginst->count_ifaces' instead `klass->interface_count' since we
2811 may get called before the vtable is created.
2813 * loader.c (mono_method_get_param_names): If we're a generic
2814 instance, return and don't initialize the class.
2816 * reflection.c (mono_reflection_setup_generic_class): Don't call
2817 ensure_runtime_vtable().
2818 (mono_reflection_bind_generic_parameters): Set
2819 `ginst->count_ifaces'.
2821 2004-03-11 Jackson Harper <jackson@ximian.com>
2825 * unicode.h: Remove unused System.Char icalls.
2827 2004-03-11 Miguel de Icaza <miguel@ximian.com>
2829 * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
2830 code when we P/Invoke the first library in Windows.Forms, instead
2831 of when we first open the assembly.
2833 * assembly.c: Drop the lookup from here.
2835 2004-03-10 Martin Baulig <martin@ximian.com>
2837 * reflection.c (mono_reflection_get_custom_attrs): Use the correct
2838 class for properties, fields and events. Finally fixes #54945.
2840 2004-03-10 Martin Baulig <martin@ximian.com>
2842 * metadata.c (mono_metadata_class_equal): New static function;
2843 checks whether two generic instances or two generic parameters are
2845 (mono_metadata_type_equal): Use mono_metadata_class_equal() to
2848 2004-03-10 Martin Baulig <martin@ximian.com>
2850 * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
2852 * reflection.c (inflate_mono_method): Added `MonoObject *obj'
2853 argument and write it into the `reflection_info' field.
2856 (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
2857 (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
2859 2004-03-09 Jackson Harper <jackson@ximian.com>
2861 * char-conversions.h: use 8 bits for numeric data its all we need
2862 * icall.c: numeric data is only 8 bits now.
2864 2004-03-09 Martin Baulig <martin@ximian.com>
2866 * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
2868 * class.c (init_properties, init_events): Initialize the new
2871 * reflection.c (typebuilder_setup_properties): Likewise.
2872 (typebuilder_setup_events): Likewise.
2874 * reflection.h (MonoEventInfo): Replaced `parent with
2875 `declaring_type' and `reflected_type'.
2877 * icall.c (ves_icall_get_property_info): Distinguish between
2878 declaring and reflected type.
2879 (ves_icall_get_event_info): Likewise.
2881 2004-03-09 Martin Baulig <martin@ximian.com>
2883 * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
2884 (ves_icall_Type_GetField): Correctly set field->klass.
2886 2004-03-09 Zoltan Varga <vargaz@freemail.hu>
2888 * loader.h: Fix warning.
2890 2004-03-08 Miguel de Icaza <miguel@ximian.com>
2892 * loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
2893 library routine if present. Notice that it will still continue
2894 executing even if its missing, for those working on the Gtk#
2895 edition of Windows.Forms.
2897 * assembly.c (do_mono_assembly_open): If loading the
2898 System.Windows.Forms call mono_loader_wini_init.
2900 2004-03-04 Lluis Sanchez Gual <lluis@ximian.com>
2902 * class.h: Added MonoRemoteClass struct.
2903 * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
2904 function for MonoStrings.
2905 * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
2906 Added internal call for getting the proxy type.
2907 * marshal.c: Get the type of transparent proxies from its remote_class.
2908 Added methods that generate the IL for type checks and casts:
2909 mono_marshal_get_isinst, mono_marshal_get_castclass,
2910 mono_marshal_get_proxy_cancast.
2911 * marshal.h: Declaration of the previous new methods.
2912 * object.c: Added new moethods for creating and updating MonoRemoteClass
2913 instances: mono_remote_class, mono_upgrade_remote_class,
2914 * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
2915 * verify.c: FIx transparent_proxy_fields layout.
2916 * appdomain.c: Bump corlib version.
2918 2004-03-04 Jackson Harper <jackson@ximian.com>
2920 * icall.c: Add icall to access char conversion tables.
2921 * char-conversions.h: Character conversion tables.
2922 * Makefile.am: Add char-conversions.h private header file.
2924 2004-03-04 Zoltan Varga <vargaz@freemail.hu>
2926 * appdomain.c (unload_thread_main): Increase unloading timeout to
2927 10 sec as a temporary workaround for Nant problems.
2929 2004-02-29 Zoltan Varga <vargaz@freemail.hu>
2931 * gc.c: Add checks for GC_enable and GC_disable.
2933 * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
2934 (jaak@zd.com.pl). Fix memory corruption in String.Replace
2937 2004-02-27 Martin Baulig <martin@ximian.com>
2939 * reflection.c (mono_reflection_bind_generic_parameters): Take a
2940 `MonoReflectionType *' instead of a `MonoType *'.
2942 2004-02-26 Zoltan Varga <vargaz@freemail.hu>
2944 * gc.c (run_finalize): Avoid finalizing the object representing the
2946 (finalizer_thread): Fix warning.
2948 2004-02-25 Martin Baulig <martin@ximian.com>
2950 * class.c (_mono_class_get_instantiation_name): Added `int offset'
2951 argument for nested types.
2952 (mono_class_create_generic): Added support for nested generictypes.
2954 * class.h (MonoGenericInst): Added `MonoType *nested_in' and
2957 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
2959 * reflection.c (method_encode_signature): Increase the minimum
2960 value of `size' from 10 to 11.
2961 (mono_reflection_bind_generic_parameters): Take `int type_argc'
2962 and `MonoType **types' arguments instead of the `MonoArray
2963 *types'; added `MonoType *nested_in'. Recursively instantiate
2966 2004-02-23 Zoltan Varga <vargaz@freemail.hu>
2968 * appdomain.h (MonoDomain): Add preallocated null_reference_ex and
2969 stack_overflow_ex members which are used by exception handling.
2971 * appdomain.c (mono_runtime_init): Initialize the new members.
2973 * gc.c (mono_gc_enable): New helper function.
2974 * gc.c (mono_gc_disable): New helper function.
2976 2004-02-23 Martin Baulig <martin@ximian.com>
2978 * icall.c: I must have been really stupid - make it actually work
2981 2004-02-23 Martin Baulig <martin@ximian.com>
2983 * loader.c (method_from_memberref): Only inflate the method if
2984 it's in another klass.
2986 2004-02-23 Martin Baulig <martin@ximian.com>
2988 * class.c (mono_class_inflate_generic_type): Fixed two bugs.
2989 (mono_class_init): If we're a generic instance and an interface,
2990 compute `class->interface_id'; also create `class->interfaces'
2991 here and inflate them.
2993 * metadata.c (do_mono_metadata_parse_generic_inst): Compute
2995 (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
2997 * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
2999 2004-02-15 Miguel de Icaza <miguel@ximian.com>
3001 * reflection.c (method_encode_code): Improved the error message
3002 generated by the exception.
3004 2004-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3006 * icall.c: Martin did not do what he said in the ChangeLog for
3007 2004-02-18, but put back the changes for properties and events.
3008 Commenting those changes out again and adding comment to bug #54518.
3010 * process.c: removed warning.
3012 2004-02-20 Zoltan Varga <vargaz@freemail.hu>
3014 * marshal.c (emit_struct_conv): Print an error message instead of
3015 asserting when a type does not have the StructLayout attribute.
3017 2004-02-20 Martin Baulig <martin@ximian.com>
3019 * reflection.c (mono_type_get_object): Also use the cache for
3021 (mono_reflection_bind_generic_parameters): Always compute
3024 2004-02-20 Martin Baulig <martin@ximian.com>
3026 * class.h (MonoGenericMethod): Removed `klass'.
3028 * class.c (mono_class_inflate_generic_method): Added `MonoClass
3031 2004-02-20 Martin Baulig <martin@ximian.com>
3033 * reflection.c (method_encode_methodspec): Actually use the
3034 uninflated signature for the memberref.
3036 2004-02-20 Martin Baulig <martin@ximian.com>
3038 * class.h (MonoGenericMethod): Removed `declaring'.
3040 * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
3041 is NULL, compute it here.
3043 2004-02-20 Martin Baulig <martin@ximian.com>
3045 * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
3047 * metadata.c (mono_metadata_generic_inst_hash): New method.
3048 (mono_metadata_generic_inst_equal): New method.
3050 * reflection.c (mono_reflection_bind_generic_parameters): Use the
3051 `klass->image->generic_inst_cache' cache to avoid creating
3052 duplicate MonoGenericInst's.
3054 * class.c (mono_class_inflate_generic_type): Use the cache.
3056 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
3058 * object.c: fixed gc descriptor calculation for embedded valuetypes.
3060 2004-02-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3062 * icall.c: added Socket.WSAIoctl icall.
3064 * socket-io.[ch]: implemented
3065 ves_icall_System_Net_Sockets_Socket_WSAIoctl.
3067 2004-02-19 Atsushi Enomoto <atsushi@ximian.com>
3069 * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
3071 2004-02-18 Urs C Muff <umuff@quark.com>
3073 * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
3074 this work on PPC and other big-endian architectures.
3076 * debug-mono-symfile.h: Prepended the names of all the `guint32'
3077 fields with an underscore to make sure they're only accessed by
3080 2004-02-18 Martin Baulig <martin@ximian.com>
3082 * icall.c: Put the klass->refclass changes back for methods and
3083 fields, but not for properties and events. We're currently not
3084 distinguishing between DeclaringType and ReflectedType for
3085 properties and events, that's what caused the regressions.
3087 2004-02-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3090 (mono_async_result_new): the handle can be NULL.
3092 * threadpool.c: Use an event instead of a semaphore, don't initialize
3093 it until needed. This saves quite a few semaphores from being created
3094 when using the threadpool.
3096 2004-02-18 Zoltan Varga <vargaz@freemail.hu>
3098 * object.c (mono_string_is_interned_lookup): Fix interning of long
3099 strings. Fixes #54473.
3101 * domain.c (ldstr_equal): Optimize if the two strings are equal.
3103 * icall.c: Revert the klass->refclass changes since they introduce
3104 regressions (bug #54518).
3106 2004-02-18 Martin Baulig <martin@ximian.com>
3108 * class.c (mono_class_init): If we're a generic instance and don't
3109 come from a TypeBuilder, inflate our members here.
3110 (mono_class_from_generic): Removed; just use `ginst->klass' instead.
3111 (mono_class_create_generic): New public method.
3112 (mono_class_initialize_generic): Removed.
3113 (get_instantiation_name): Renamed to
3114 _mono_class_get_instantiation_name() and made it public.
3116 2004-02-18 Martin Baulig <martin@ximian.com>
3118 * class.c (mono_class_inflate_generic_type): Clear the new
3119 instance's `nginst->klass' when inflating a generic instance.
3120 (mono_class_is_subclass_of): Added (basic) support for generic
3123 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
3125 * appdomain.h, domain.c: use a MonoCodeManager instead of a
3126 MonoMempool to hold compiled native code.
3128 2004-02-17 Martin Baulig <martin@ximian.com>
3130 * class.h (MonoDynamicGenericInst): Added `count_properties' and
3133 * reflection.c (mono_reflection_generic_inst_initialize): Added
3134 `MonoArray *properties' argument.
3136 * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.
3138 2004-02-17 Martin Baulig <martin@ximian.com>
3140 * icall.c (ves_icall_Type_GetFields): Renamed to
3141 ves_icall_Type_GetFields_internal() and added a
3142 `MonoReflectionType *rtype' argument; pass it to
3143 mono_field_get_object() to set the field's "reflected" type.
3144 (ves_icall_Type_GetConstructors): Likewise.
3145 (ves_icall_Type_GetEvents): Likewise.
3146 (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
3147 argument; pass it to mono_method_get_object() to set the method's
3150 2004-02-17 Martin Baulig <martin@ximian.com>
3152 * class.h (MonoDynamicGenericInst): New type.
3153 (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
3155 * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
3156 (ves_icall_MonoGenericInst_GetConstructors): New interncall.
3157 (ves_icall_MonoGenericInst_GetFields): New interncall.
3159 * class.c (mono_class_from_generic): Don't call
3160 mono_class_initialize_generic() if this is a dynamic instance;
3161 ie. it's being created from a TypeBuilder.
3162 Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
3163 `class->byval_arg.type'.
3165 * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
3166 to `inflate_method' and made static.
3167 (mono_reflection_inflate_field): Removed.
3168 (mono_reflection_generic_inst_initialize): New public method.
3170 * reflection.h (MonoReflectionGenericInst): Removed `methods',
3171 `ctors' and `fields'; added `initialized'.
3173 2004-02-14 Zoltan Varga <vargaz@freemail.hu>
3175 * debug-helpers.c (mono_method_full_name): Fix output for empty
3178 2004-02-12 Martin Baulig <martin@ximian.com>
3180 * class.h (MonoClassField): Added `MonoType *generic_type'.
3182 * reflection.c (mono_image_get_fieldref_token): Added support for
3183 instantiated generic types.
3184 (field_encode_inflated_field): Removed.
3185 (mono_image_get_inflated_field_token): Removed.
3186 (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
3188 * reflection.h (MonoReflectionInflatedField): Removed.
3190 2004-02-12 Martin Baulig <martin@ximian.com>
3192 * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
3193 `gen_method' field from MonoMethodHeader to MonoMethodSignature.
3195 * reflection.c (mono_image_get_methodspec_token): Take a
3196 `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
3197 (mono_image_create_token): Check whether we have a
3198 `method->signature->gen_method' and call
3199 mono_image_get_methodspec_token() if appropriate.
3200 (inflated_method_get_object): Removed.
3201 (mono_reflection_bind_generic_method_parameters): Return a
3202 `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
3203 (mono_reflection_inflate_method_or_ctor): Likewise.
3205 * reflection.h (MonoReflectionInflatedMethod): Removed.
3207 2004-02-12 Zoltan Varga <vargaz@freemail.hu>
3209 * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
3210 for custom valuetype marshalling.
3212 * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
3214 2004-02-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3216 * icall.c: fixed WSAGetLastError_internal name.
3218 2004-02-11 Zoltan Varga <vargaz@freemail.hu>
3220 * threads.c (mono_thread_attach): Allow this to be called multiple
3223 * threads.c (build_wait_tids): Do not wait for ourselves.
3225 * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the
3226 appdomain list is empty.
3228 * marshal.c (mono_marshal_get_native_wrapper): Do not free the
3229 memory returned by mono_string_builder_to_utf16, since it points into
3230 managed memory. Thanks to Bernie Solomon for noticing this.
3232 * icall.c: Add AppDomainSetup icalls.
3234 * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
3236 * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
3239 * reflection.c (reflection_methodbuilder_to_mono_method): Save
3240 custom attributes to the method_aux struct. Also fix array indexes etc.
3242 * loader.c (mono_method_get_param_names): Make dynamic case work again.
3244 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
3246 * icall.c, loader.c: icall cleanup: we save quite a bit of memory
3247 (both static and runtime) and reduce startup time.
3249 2004-02-10 Zoltan Varga <vargaz@freemail.hu>
3251 * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
3252 AsAny marshalling conversion instead of crashing.
3254 * marshal.c: Fix warnings.
3256 2004-02-09 Martin Baulig <martin@ximian.com>
3258 * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
3260 * reflection.h (MonoReflectionInflatedMethod): Removed the
3261 `declaring' field, it's now in the unmanaged MonoGenericMethod.
3263 * reflection.c (method_encode_methodspec): Removed the `method'
3264 argument; we get it from `gmethod->declaring'.
3265 (inflated_method_get_object): Removed the `declaring' argument.
3267 2004-02-09 Martin Baulig <martin@ximian.com>
3269 * class.h (MonoGenericMethod): New type.
3270 (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
3273 * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
3274 a `MonoGenericMethod *gen_method' one.
3276 * class.c (mono_class_inflate_generic_type): Take an additional
3277 `MonoGenericMethod * argument. This is only non-NULL if we're
3278 inflating types for a generic method.
3279 (mono_class_inflate_generic_signature): Renamed to
3280 inflate_generic_signature() and made static; take a
3281 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
3282 (inflate_generic_header): Take a `MonoGenericMethod *' argument
3283 instead of a `MonoGenericInst *' one.
3284 (mono_class_inflate_generic_method): Likewise.
3286 * reflection.c (encode_generic_method_sig): Take a
3287 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
3288 (method_encode_methodspec): Likewise.
3289 (inflated_method_get_object): Likewise.
3291 * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
3292 field with a `MonoGenericMethod *gmethod' one.
3294 2004-02-08 Bernie Solomon <bernard@ugsolutions.com>
3296 * class.h (mono_class_has_parent): add parens to expansion
3299 2004-02-08 Martin Baulig <martin@ximian.com>
3301 * image.h (MonoImage): Removed `generics_cache'.
3303 * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
3304 instead of a `MonoType *' argument; removed the `inflate_methods'
3305 argument. Don't inflate methods here.
3307 * loader.c (find_method): If it's a generic instance, call
3308 mono_class_init() on the `sclass->generic_inst->generic_type'.
3310 * metadata.c (mono_type_size): Make this work on uninitialized
3311 generic instances; call it on the `ginst->generic_type's class.
3313 * reflection.c (mono_reflection_bind_generic_parameters): Call
3314 mono_class_from_generic() to create the `ginst->klass'.
3316 2004-02-08 Martin Baulig <martin@ximian.com>
3318 * class.h (MonoClass): Changed type of `generic_inst' from
3319 `MonoType *' to `MonoGenericInst *'.
3321 2004-02-08 Martin Baulig <martin@ximian.com>
3323 * icall.c (ves_icall_Type_BindGenericParameters): Just call
3324 mono_type_get_object(), this is now creating a `MonoGenericInst'
3325 for MONO_TYPE_GENERICINST.
3326 (ves_icall_MonoGenericInst_GetParentType): Likewise.
3327 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
3329 * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
3330 instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
3331 (inflated_method_get_object): Added `MonoClass *refclass' argument.
3332 (mono_reflection_inflate_method_or_ctor): Correctly set declaring
3335 * reflection.h (MonoReflectionInflatedMethod): Removed
3336 `declaring_type' and `reflected_type'.
3338 2004-02-08 Martin Baulig <martin@ximian.com>
3340 * class.h (MonoGenericInst): Added `MonoType *parent' and
3341 `MonoType **ifaces'.
3343 * reflection.h (MonoReflectionGenericInst): Removed `klass',
3344 `parent' and `interfaces'.
3346 * reflection.c (mono_reflection_bind_generic_parameters): Take a
3347 `MonoType *' argument and return a `MonoType *'.
3350 (ves_icall_MonoGenericInst_GetParentType): New interncall.
3351 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
3353 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
3355 * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
3356 valuetype marshalling.
3358 2004-02-06 Martin Baulig <martin@ximian.com>
3361 (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
3362 (my_mono_class_from_generic_parameter): Likewise.
3364 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
3366 * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
3367 contents of the symbol files lazily.
3369 * object.h (MonoThread): Add 'name' and 'name_len' fields.
3371 * threads.h threads.c icall.c: New icalls for getting and setting the
3374 2004-02-05 Zoltan Varga <vargaz@freemail.hu>
3376 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID):
3377 Raise an exception when the domain is not found.
3379 2004-02-03 Martin Baulig <martin@ximian.com>
3381 * reflection.c (mono_image_get_methodspec_token): Use the
3382 uninflated signature; fixes gen-33.
3384 2004-02-02 Zoltan Varga <vargaz@freemail.hu>
3386 * gc.c threads.c: Make the finalizer thread a normal managed thread so
3387 the finalizer code can use thread functionality.
3389 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for
3390 the finalizer thread.
3392 * threads.c: Make some functions more robust.
3394 * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
3396 * metadata.h: Add new marshalling conventions.
3398 * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
3399 stringbuilder marshalling. Fixes #53700.
3401 * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
3403 * reflection.c (mono_image_get_type_info): Save declarative security
3406 * reflection.c (mono_image_get_field_info): Handle uninitialized
3407 unmanaged fields as well.
3409 * appdomain.c: Bump corlib version.
3411 2004-02-01 Martin Baulig <martin@ximian.com>
3413 * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
3414 method type arguments.
3416 2004-01-30 Duncan Mak <duncan@ximian.com>
3418 * marshal.h: Add prototype for
3419 "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
3421 "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
3424 2004-01-30 Zoltan Varga <vargaz@freemail.hu>
3426 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
3427 (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
3429 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
3431 * marshal.c (mono_marshal_get_native_wrapper): Add support for
3432 custom marshalling of valuetypes.
3434 * marshal.c: Fix some warnings.
3436 2004-01-29 Martin Baulig <martin@ximian.com>
3438 * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
3439 for generic method parameters.
3441 * reflection.c (method_encode_methodspec): Write the uninflated
3442 signature into the methodspec table.
3443 (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
3444 is always the uninflated method.
3445 (reflection_methodbuilder_to_mono_method): Copy the generic
3446 parameters from the MethodBuilder into `header->gen_params'.
3448 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
3450 * class.c (mono_class_from_generic_parameter): Fix warning.
3452 2004-01-27 Martin Baulig <martin@ximian.com>
3454 * class.c (mono_class_from_generic_parameter): Don't create
3455 `klass->methods' here.
3457 2004-01-26 Zoltan Varga <vargaz@freemail.hu>
3459 * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
3460 extension since it does not work with libraries named lib<FOO>.dll.so.
3462 2004-01-25 Martin Baulig <martin@ximian.com>
3464 * class.c (mono_class_inflate_generic_type): Added support for
3465 MONO_TYPE_GENERICINST.
3467 * reflection.c (mono_reflection_inflate_method_or_ctor): Also
3468 inflate methods on open constructed types.
3470 2004-01-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3472 * object.c: fire ProcessExit event in the root AppDomain after running
3473 Main. Fixes bug #53299.
3475 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
3477 * socket-io.c: include the new socket-wrappers.h header.
3478 Use the wrappers instead of the unix socket functions to make the code
3481 2004-01-23 Zoltan Varga <vargaz@freemail.hu>
3483 * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
3485 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
3488 2004-01-22 Zoltan Varga <vargaz@freemail.hu>
3490 * reflection.c (mono_image_create_pefile): Handle the case when the
3491 entry point is not a MethodBuilder.
3493 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
3494 field to ReflectionMethod since it is not allways a builder.
3496 * reflection.c (type_get_fully_qualified_name): New helper function to
3497 return the fully qualified name of a type.
3499 * reflection.c (encode_marshal_blob): Always emit the fully qualified
3500 type name for custom marshallers.
3502 * reflection.c (mono_marshal_spec_from_builder): Ditto.
3504 * class.c (mono_class_setup_vtable): If a parent class already
3505 implements an interface, use the implementing methods from that class.
3508 2004-01-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3510 * threadpool.c: just return instead of ExitThread to allow for thread
3513 2004-01-21 Zoltan Varga <vargaz@freemail.hu>
3515 * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
3516 when closing resource modules.
3518 * reflection.c (mono_image_create_pefile): Handle the case when the
3519 entry point is not a MethodBuilder.
3521 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
3522 field to ReflectionMethod since it is not allways a builder.
3524 2004-01-20 Bernie Solomon <bernard@ugsolutions.com>
3526 * marshal.c (mono_marshal_get_managed_wrapper):
3527 mono_marshal_alloc takes native int so CONV_I
3530 2004-01-20 Zoltan Varga <vargaz@freemail.hu>
3532 * reflection.c (fixup_cattrs): New function to fixup the methoddef
3533 tokens in the cattr table. Fixes #53108.
3535 2004-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3537 * loader.c: don't trim ".dll" before looking up in the config file.
3538 Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
3540 2004-01-19 Zoltan Varga <vargaz@freemail.hu>
3542 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
3543 Return the module which contains the resource as well.
3544 (ves_icall_System_Reflection_Module_Close): New icall.
3546 * appdomain.c: Bump corlib version number.
3548 * image.c (mono_image_addref): New public function.
3550 * assembly.c: Call mono_image_addref.
3552 * reflection.c (mono_module_get_object): Increase reference count of
3555 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
3558 * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
3559 Applied patch from Bernie Solomon <bernard@ugsolutions.com>. Throw
3560 proper exceptions on DllImport problems.
3562 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
3564 * class.c, metadata.c: eliminate CSIZE macro.
3566 2004-01-19 Lluis Sanchez Gual <lluis@ximian.com>
3568 * icall.c: Added ves_icall_type_IsInstanceOf internal call.
3569 * object.h: Added async_callback field in MonoAsyncResult.
3570 * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
3571 * verify.c: Added async_callback in MonoAsyncResult layout.
3573 2004-01-17 Zoltan Varga <vargaz@freemail.hu>
3575 * reflection.c (mono_reflection_get_custom_attrs): Add support
3578 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
3580 * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder
3582 (mono_marshal_method_from_wrapper): Add null pointer check.
3584 2004-01-16 Martin Baulig <martin@ximian.com>
3586 * debug-mono-symfile.h: Set version number to 36 and reflect
3587 latest symbol writer changes.
3589 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
3591 * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
3592 multi-dimensional arrays.
3593 (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
3594 (mono_class_from_mono_type): Use bounded_array_class_get.
3596 * class.c (mono_bounded_array_class_get): New function which takes
3597 a 'bounded' bool argument to distinguish vectors from one dimensional
3600 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call
3601 bounded_array_class_get if the array has bounds.
3603 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
3604 Search modules loaded using AssemblyBuilder:AddModule as well.
3606 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3608 * appdomain.c: increased corlib version.
3609 * filewatcher.c: removed g_print.
3611 (get_property_info): only allocate what is actually requested.
3612 (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
3614 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3616 * Makefile.am: added filewatcher.[ch]
3617 * filewatcher.[ch]: FileSystemWatcher runtime support.
3618 * icall.c: added new FSW icalls.
3620 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
3622 * string-icalls.c: fix stringbuilder regression as suggested by
3623 Iain McCoy <iain@mccoy.id.au>.
3625 2004-01-13 Zoltan Varga <vargaz@freemail.hu>
3627 * process.c (process_read_stringtable_block): Recognize '007f' as
3628 a language neutral stringtable block.
3630 2004-01-12 Patrik Torstensson
3632 * object.h (MonoStringBuilder) : Changed layout to support our
3633 new stringbuilder class.
3634 * marshal.c: Change marshalling to support the new layout of
3636 * appdomain.c: increased version number because new layout of
3639 2004-01-12 Zoltan Varga <vargaz@freemail.hu>
3641 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
3642 assembly name as an string instead of an AssemblyName, since it is
3643 easier to extract info from it.
3645 * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
3646 the culture subdirectories too. Fixes #52231.
3648 2004-01-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3650 * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
3651 It takes 2 new parameters with an optional name for the method to look
3652 for and case ignoring info.
3654 * threadpool.c: removed unused variable.
3656 2004-01-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3658 * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
3659 It takes 2 new parameters with an optional name for the property to look
3660 for and case ignoring info.
3663 2004-01-09 Zoltan Varga <vargaz@freemail.hu>
3665 * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
3668 2004-01-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3671 * assembly.c: escape the uri before passing it to g_filename_from_uri.
3674 2004-01-07 Zoltan Varga <vargaz@freemail.hu>
3676 * reflection.c: Add support for more than one unmanaged resource.
3678 * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
3679 in field->def_value, as done in all other cases.
3681 * reflection.c (mono_reflection_get_custom_attrs): Add support for
3684 * reflection.c (mono_reflection_create_runtime_class): Remove
3685 errorneous assignment to klass->element_class, since it is already
3686 done in mono_reflection_setup_internal_class.
3688 2004-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3690 * gc.c: added missing LeaveCriticalSection.
3691 * icall.c: indented a couple of lines.
3692 * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
3693 if we call EndInvoke inside a callback. Fixes bug #52601.
3695 2004-01-07 Martin Baulig <martin@ximian.com>
3697 * mono-debug-debugger.h
3698 (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
3700 2004-01-06 Miguel de Icaza <miguel@ximian.com>
3702 * appdomain.c: Use messages in NotImplementedException.
3704 * exception.c (mono_get_exception_not_implemented): Now this takes
3707 * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
3708 exception instead of g_asserting an aborting when something is not
3711 Add some inline docs.
3713 2004-01-05 Zoltan Varga <vargaz@freemail.hu>
3715 * reflection.h: Update after changes to object layout.
3717 * reflection.c: Implement saving of unmanaged aka win32 resources.
3719 * appdomain.c: Bump version number.
3721 * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID):
3722 Handle missing domains gracefully.
3724 2004-01-05 Atsushi Enomoto <atsushi@ximian.com>
3726 * file-io.c : On Windows, there are much more invalid_path_chars.
3728 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
3730 * class.h, object.c: prepare for GetType () speedup.
3732 2003-12-24 Atsushi Enomoto <atsushi@ximian.com>
3734 * profiler.c: workaround for --profile null reference exception on
3735 cygwin. Patch by Patrik Torstensson.
3737 2003-12-22 Bernie Solomon <bernard@ugsolutions.com>
3739 * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
3740 make work for unaligned access.
3742 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
3744 * class.c: small cleanup (class->fields [i] -> field).
3745 * image.c: check address of metadata is valid.
3747 2003-12-22 Zoltan Varga <vargaz@freemail.hu>
3749 * assembly.h assembly.c (mono_assembly_loaded): New public function to
3750 search the list of loaded assemblies.
3752 * reflection.c (mono_reflection_type_from_name): Use
3753 mono_assembly_loaded instead of mono_image_loaded.
3755 * reflection.c: Fix warnings.
3757 2003-12-20 Zoltan Varga <vargaz@freemail.hu>
3759 * image.h (MonoImage): Add a new 'dynamic' field to denote that the image
3760 is dynamic. This is needed since an assembly can contain both dynamic and
3763 * class.c loader.c metadata.c object.c: Use image->dynamic instead of
3766 * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
3768 * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
3769 to store modules loaded using AddModule.
3771 * reflection.c (mono_image_fill_file_table): Generalize this so it works
3774 * reflection.c (mono_image_fill_export_table_from_class): New helper function.
3776 * reflection.c (mono_image_fill_export_table_from_module): New function to
3777 fill out the EXPORTEDTYPES table from a module.
3779 * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
3780 into a separate function. Also handle loaded non-dynamic modules.
3782 * reflection.c (mono_image_basic_init): Fix memory allocation.
3784 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3786 * assembly.c (mono_assembly_load_references): Make this public.
3788 2003-12-19 Martin Baulig <martin@ximian.com>
3790 * class.c (mono_class_initialize_generic): Made this static, take
3791 a `MonoGenericInst *' instead of a `MonoClass *'.
3792 (mono_class_from_generic): Call mono_class_initialize_generic()
3793 unless we're already initialized or being called from
3794 do_mono_metadata_parse_generic_inst().
3796 * class.h (MonoGenericInst): Added `initialized' and
3797 `init_pending' flags.
3799 * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
3800 `mono_class_init (gklass)' or mono_class_initialize_generic()
3801 here; set `generic_inst->init_pending' while parsing the
3804 2003-12-19 Bernie Solomon <bernard@ugsolutions.com>
3806 * locales.c: include string.h for memxxx prototypes
3808 2003-12-19 Zoltan Varga <vargaz@freemail.hu>
3810 * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
3811 constructor when accessing literal fields.
3813 2003-12-17 Zoltan Varga <vargaz@freemail.hu>
3815 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3817 * reflection.c (assembly_add_resource_manifest): New function to fill
3818 the MANIFESTRESOURCE table.
3820 * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
3822 * reflection.h: Update to changes in class layout.
3824 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted):
3825 Reenable call to mono_runtime_is_shutting_down ().
3827 * appdomain.c (mono_runtime_is_shutting_down): New helper function to
3828 determine if the runtime is shutting down.
3830 2003-12-16 Jackson Harper <jackson@ximian.com>
3832 * icall.c: comment out call to mono_runtime_is_shutting_down to
3835 2003-12-16 Zoltan Varga <vargaz@freemail.hu>
3837 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
3838 (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
3840 2003-12-15 Bernie Solomon <bernard@ugsolutions.com>
3842 * reflection.c: move definition of swap_with_size
3843 to before its first call
3845 2003-12-15 Zoltan Varga <vargaz@freemail.hu>
3847 * appdomain.c (mono_runtime_is_shutting_down): New public function.
3849 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
3852 * object.c: Fix warnings.
3854 * icall.c (ves_icall_Type_Get...): Only consider inherited static
3855 members if FlattenHierarchy is set.
3857 * reflection.c (mono_image_add_decl_security): New function to emit
3858 declarative security.
3860 * reflection.h reflection.c: Add support for declarative security.
3862 * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
3864 2003-12-13 Zoltan Varga <vargaz@freemail.hu>
3866 appdomain.c (MONO_CORLIB_VERSION): Bump version number.
3868 * appdomain.c verify.c: Moved corlib version checking into its own
3869 function in appdomain.c since it needs to create vtables etc.
3871 2003-12-13 Patrik Torstensson <p@rxc.se>
3873 * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this
3874 instead of unwrapped server.
3876 2003-12-12 Zoltan Varga <vargaz@freemail.hu>
3878 * verify.c (check_corlib): Fix field index.
3880 2003-12-10 Zoltan Varga <vargaz@freemail.hu>
3882 * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
3885 2003-12-10 Bernie Solomon <bernard@ugsolutions.com>
3887 * process.c: (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
3888 ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
3889 cope with sizeof(size_t) != sizeof(guint32).
3891 2003-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3893 * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
3896 2003-12-10 Mark Crichton <crichton@gimp.org>
3898 * icall.c: removed the GetNonZeroBytes. We now handle this case
3901 * rand.c, rand.h: Same here. Also cleaned up the clode slightly.
3903 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
3905 * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
3908 2003-12-09 Zoltan Varga <vargaz@freemail.hu>
3910 * verify.c (check_corlib): Handle the case when the version field is
3911 initialized by a static constructor.
3913 2003-12-08 Patrik Torstensson <p@rxc.se>
3915 * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
3917 2003-12-08 Martin Baulig <martin@ximian.com>
3919 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
3920 a MonoReflectionGenericParameter, also take the parameter index
3921 and name as arguments.
3922 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
3923 (ves_icall_MonoGenericParam_initialize): New interncall.
3924 (ves_icall_Type_make_byref_type): New interncall.
3926 * reflection.h (MonoReflectionGenericParam): Derive from
3927 MonoReflectionType, not just from MonoObject. Added `refobj' and
3930 * reflection.c (mono_reflection_define_generic_parameter): Create
3931 and return a new MonoReflectionGenericParam; don't initialize the
3933 (mono_reflection_initialize_generic_parameter): New public method;
3934 initializes the constraints and creates the `param->pklass'.
3936 2003-12-08 Zoltan Varga <vargaz@freemail.hu>
3938 * reflection.h reflection.c: Use the new fields 'num_types',
3939 'num_fields' and 'num_methods' to track the number of types etc.
3941 * verify.c (check_corlib): Check corlib version number.
3943 2003-12-07 Zoltan Varga <vargaz@freemail.hu>
3945 * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
3946 function works on all methods.
3948 2003-12-07 Lluis Sanchez Gual <lluis@ximian.com>
3950 * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
3951 * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
3952 the custom_type_info flag of the transparent proxy.
3953 * object.c: Added method mono_object_isinst_mbyref for casting mbyref
3954 objects that supports IRemotingTypeInfo.
3955 * object.h: Added custom_type_info field in transparent proxy.
3957 2003-12-06 Martin Baulig <martin@ximian.com>
3959 * class.c (mono_class_create_from_generic): Removed.
3960 (mono_class_from_generic): Check `ginst->klass' before doing
3961 anything else. This is important to fully support "recursive"
3964 * metadata.c (do_mono_metadata_parse_generic_inst): Create an
3965 empty `generic_inst->klass' before doing anything else.
3967 2003-12-06 Dick Porter <dick@ximian.com>
3972 * locales.c: Use C structs to access class fields. Don't do a
3973 conversion between MonoString and UChar because both are
3974 platform-endian UTF-16. Compare now takes startindex and count
3975 parameters. Add a char overload for IndexOf. Speed up the
3976 invariant string IndexOf.
3978 2003-12-05 Zoltan Varga <vargaz@freemail.hu>
3980 * Makefile.am (monosn_LDADD): Fix parallel build.
3982 2003-12-04 Martin Baulig <martin@ximian.com>
3985 (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
3986 (ves_icall_Type_make_array_type): New interncall.
3988 2003-12-04 Martin Baulig <martin@ximian.com>
3990 * locales.c: also change it in the !HAVE_ICU case.
3992 2003-12-04 Dick Porter <dick@ximian.com>
3995 * locales.c: construct_compareinfo is now in CompareInfo, not
3998 2003-12-04 Zoltan Varga <vargaz@freemail.hu>
4000 * image.c (mono_image_load_file_for_image): Cache loaded images in the
4003 * image.c (load_class_name): Load class names from the EXPORTEDTYPES
4006 * assembly.c (mono_assembly_load_references): Only load references
4009 * class.c (mono_class_from_name): Avoid linear search of the
4012 * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
4014 2003-12-03 Zoltan Varga <vargaz@freemail.hu>
4016 * image.h (MonoImage): Add 'field_cache' field.
4018 * loader.c (mono_field_from_token): Cache field lookups.
4020 * reflection.c (mono_module_get_object): Fix name property.
4022 * icall.c (ves_icall_get_enum_info): Update after changes to
4023 mono_metadata_get_constant_index ().
4025 * icall.c: Get rid of get_type_info icall, use a separate icall for
4026 each type property to avoid needless memory allocations. Fixes #51514.
4028 * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
4029 to avoid needless binary searches.
4031 * class.c (class_compute_field_layout): Move the initialization of
4032 field->def_value to mono_class_vtable ().
4034 * class.c (mono_class_layout_fields): Enable GC aware auto layout for
4037 * object.c (mono_object_allocate): Make it inline.
4039 * object.c (mono_object_allocate_spec): Make it inline.
4041 2003-12-02 Dick Porter <dick@ximian.com>
4043 * locales.c (create_NumberFormat): NumberFormatInfo construction.
4044 Patch by Mohammad DAMT (mdamt@cdl2000.com).
4046 2003-12-01 Dick Porter <dick@ximian.com>
4048 * threads.c: Fix signature and call in CreateMutex and
4051 2003-12-01 Dick Porter <dick@ximian.com>
4054 * locales.c: Implement string compares and searching
4056 * object.h: Add extra Thread field
4058 2003-11-30 Zoltan Varga <vargaz@freemail.hu>
4060 * reflection.c (fixup_method): Add support for MonoCMethod.
4062 2003-11-28 Zoltan Varga <vargaz@freemail.hu>
4064 * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
4066 * reflection.c (assembly_name_to_aname): Allow extra characters in
4067 assembly names. Fixes #51468.
4069 2003-11-26 Zoltan Varga <vargaz@freemail.hu>
4071 * exception.c (mono_exception_from_name_domain): New helper function.
4073 * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
4074 exception object in the correct domain.
4076 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix
4077 formatting + make a copy a the input data.
4079 * loader.c (mono_get_method_from_token): Methods which contain
4080 native code do not have entries in the ImplMap.
4082 (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
4083 Thanks to Gonzalo for spotting this.
4085 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
4086 patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
4088 * assembly.h (mono_assembly_load_from): Split the second part of
4089 assembly loading into a new public function.
4091 * exception.h (mono_get_exception_bad_image_format): New function.
4093 2003-11-24 Zoltan Varga <vargaz@freemail.hu>
4095 icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
4096 Enumerate all modules inside a dynamic assembly. Fixes #51293.
4098 * icall.c: Add new icall for creating dynamic methods.
4100 * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
4102 * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
4104 * reflection.c (mono_reflection_create_dynamic_method): New icall to
4105 create a dynamic method.
4107 * reflection.c (resolve_object): New helper function.
4109 * reflection.c: Generalize ReflectionMethodBuilder and the functions
4110 which manipulate it so they can also work on dynamic methods.
4112 * reflection.c (reflection_method_builder_to_mono_method): Avoid
4113 creating the MonoReflectionMethodAux structure if it is not needed.
4115 * reflection.h verify.c: Update after changes to object layout.
4117 * reflection.c (method_builder_encode_signature): Fix compilation on
4120 2003-11-21 Lluis Sanchez Gual <lluis@ximian.com>
4122 * appdomain.h: Added support for context static fields. Added static_data
4123 field to MonoAppContext and renamed thread_static_fields to a more
4124 generic special_static_fields in MonoAppDomain, since it can now contain
4125 context static fields.
4126 * domain.c: Updated hashtable name.
4127 * object.c: Replaced field_is_thread_static() for a more generic
4128 field_is_special_static() which also checks for context static attribute.
4129 In mono_class_vtable(), added support for static context fields.
4130 * threads.c: Changed methods that manage thread static fields to more
4131 generic methods so they can be reused both for thread and context static
4133 * threads.h: Declared some new methods.
4135 2003-11-21 Zoltan Varga <vargaz@freemail.hu>
4137 * reflection.h: Update after changes to the managed types.
4139 * reflection.c (encode_custom_modifiers): New helper function.
4141 * reflection.c (method_encode_signature): Emit custom modifiers.
4143 * reflection.c (field_encode_signature): Emit custom modifiers.
4145 2003-11-18 Zoltan Varga <vargaz@freemail.hu>
4147 * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
4149 * icall.c (ves_icall_System_ValueType_Equals): New optimized
4152 * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New
4155 * object.c (mono_field_get_value_object): New function.
4157 * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
4160 2003-11-17 Zoltan Varga <vargaz@freemail.hu>
4162 * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
4163 return a preallocated out-of-memory exception instance.
4165 * object.c (out_of_memory): Use the new function.
4167 * metadata.c (mono_metadata_parse_type): Handle the case when the byref
4168 flag is before the custom modifiers. Fixes #49802.
4170 2003-11-16 Martin Baulig <martin@ximian.com>
4172 * class.c (mono_class_is_open_constructed_type): Implemented the
4173 MONO_TYPE_GENERICINST case.
4175 2003-11-16 Zoltan Varga <vargaz@freemail.hu>
4177 * assembly.c (mono_assembly_fill_assembly_name): New function to
4178 fill out the MonoAssemblyName structure.
4179 (mono_assembly_open): Use the new function.
4181 * icall.c (fill_reflection_assembly_name): New helper function.
4183 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
4186 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
4188 2003-11-15 Martin Baulig <martin@ximian.com>
4190 * class.c (mono_class_is_open_constructed_type): New public
4191 function; checks whether a type is an open constructed type,
4192 ie. whether it still contains type parameters.
4193 (mono_class_inflate_generic_type): If we're a type parameter and
4194 the inflated type is also a MONO_TYPE_(M)VAR, return the original
4197 * class.h (MonoGenericInst): Added `guint32 is_open'.
4199 * loader.c (method_from_methodspec): Check whether we're an open
4200 or closed constructed type and set `ginst->is_open'.
4202 * reflection.c (mono_reflection_bind_generic_parameters): Check
4203 whether we're an open or closed constructed type and set
4205 (mono_reflection_inflate_method_or_ctor): Don't inflate methods
4206 from open constructed types.
4208 2003-11-15 Martin Baulig <martin@ximian.com>
4210 * reflection.c (mono_reflection_bind_generic_parameters): If we're
4211 a generic instance (instead of a generic type declaration) with
4212 unbound generic parameters, bind them to our actual types.
4214 2003-11-14 Martin Baulig <martin@ximian.com>
4216 * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
4218 * reflection.c (mono_reflection_bind_generic_parameters): If we're
4219 an interface type, populate `res->interfaces' with instantiated
4220 versions of all the interfaces we inherit.
4222 2003-11-13 Aleksey Demakov <avd@openlinksw.com>
4224 * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
4225 when MONO_PATH is set but doesn't contain the install dir.
4227 2003-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4230 (ves_icall_Type_GetInterfaces): don't return an interface twice when
4231 it's also implemented in base classes. Fixes bug #50927.
4233 2003-11-13 Zoltan Varga <vargaz@freemail.hu>
4235 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
4236 if this method is called from a finalizer. Fixes #50913.
4238 2003-11-12 Miguel de Icaza <miguel@ximian.com>
4240 * threads.c: Implement VolatileRead/VolatileWrite
4242 * icall.c: Add new icalls for VolatileRead/VolatileWrite
4244 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
4246 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied
4247 patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
4250 * assembly.c (mono_assembly_open): Fix windows build. Applied patch
4251 from Peter Ross (pro@missioncriticalit.com).
4253 2003-11-12 Lluis Sanchez Gual <lluis@ximian.com>
4255 * icall.c: Added internal call for System.Environment::GetMachineConfigPath
4257 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
4259 * assembly.c (mono_assembly_load_references): Disable check because it
4260 triggers on older corlibs which lots of people have.
4262 2003-11-12 Jackson Harper <jackson@ximian.com>
4264 * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
4265 load corlib.dll if mscorlib.dll is not found.
4266 * assembly.h: Remove corlib name define.
4269 * image.c: Change corlib name to mscorlib.
4271 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
4273 * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
4275 2003-11-11 Miguel de Icaza <miguel@ximian.com>
4277 * appdomain.h: Added loader_optimization here to sync with the C#
4278 code, and add disallow_binding_redirects field.
4280 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
4282 * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
4284 * reflection.c (mono_image_build_metadata): Fix crash on modules
4287 * reflection.h (MonoMethodInfo): Track changes to the managed structure.
4289 * icall.c (ves_icall_get_method_info): Return callingConvention as
4292 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add
4293 namespaces from the EXPORTEDTYPE table as well.
4295 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
4296 from all modules inside the assembly.
4298 2003-11-11 Martin Baulig <martin@ximian.com>
4300 * reflection.c (mono_reflection_bind_generic_parameters): Make
4301 this work for interfaces.
4303 2003-11-11 Martin Baulig <martin@ximian.com>
4305 * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
4307 2003-11-11 Martin Baulig <martin@ximian.com>
4309 * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
4310 "MonoInflatedMethod" and "MonoInflatedCtor".
4312 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
4314 * reflection.c (resolution_scope_from_image): Use the assembly table
4315 from the manifest module, since other modules don't have it.
4317 * debug-helpers.c (mono_type_full_name): New helper function.
4319 * image.h (MonoAssembly): Change 'dynamic' to a boolean.
4321 * image.c (mono_image_load_file_for_image): New public function which
4322 is a replacement for the load_file_for_image in class.c.
4324 * assembly.c (mono_assembly_load_module): A wrapper for the function
4325 above which does assembly association and reference loading too.
4327 * class.c (mono_class_from_name): Call mono_assembly_load_module.
4329 2003-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4331 * appdomain.c: not all of the attributes for the full assembly name
4332 are required and the order doesn't matter. Fixes bug #50787.
4334 2003-11-10 Dick Porter <dick@ximian.com>
4336 * locales.c: Use platform-endian UTF16
4338 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
4340 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
4342 2003-11-10 Martin Baulig <martin@ximian.com>
4345 (mono_metadata_load_generic_params): Make this actually work.
4347 * reflection.c (mono_reflection_bind_generic_parameters): If our
4348 parent is a generic instance, pass all the `types' to it, no
4349 matter whether it has the same number of type parameters or not.
4351 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
4353 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
4355 * assembly.c (mono_assembly_load_references): Move the image<->assembly
4356 assignment code to this function so it gets called recursively for all
4359 * image.c (load_modules): Remove the assembly assignment since it is
4360 now done by mono_assembly_load_references.
4362 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
4363 Add 'module' argument.
4364 (mono_module_get_types): New helper function.
4365 (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
4367 2003-11-08 Martin Baulig <martin@ximian.com>
4369 * class.c (mono_class_inflate_generic_method): Interface method
4370 don't have a header.
4372 * reflection.c (mono_image_get_methodspec_token): Take an
4373 additional `MonoGenericInst *' argument instead of reading it from
4374 the header; this is necessary to support interfaces.
4375 (mono_image_create_token): Pass the `MonoGenericInst *' from the
4376 MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
4377 (inflated_method_get_object): Take an additional `MonoGenericInst *'
4380 * reflection.h (MonoReflectionInflatedMethod): Added
4381 `MonoGenericInst *ginst'.
4383 2003-11-07 Zoltan Varga <vargaz@freemail.hu>
4385 * gc.c (mono_domain_finalize): Fix compilation for no GC case.
4387 2003-11-06 Zoltan Varga <zovarga@ws-zovarga2>
4389 * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
4391 2003-11-06 Zoltan Varga <vargaz@freemail.hu>
4394 (reflection_methodbuilder_from_method_builder):
4395 (reflection_methodbuilder_from_ctor_builder): New helper functions to
4396 initialize a ReflectionMethodBuilder structure.
4397 (mono_image_get_methodbuilder_token):
4398 (mono_image_get_ctorbuilder_token): New functions to emit memberref
4399 tokens which point to types in another module inside the same assembly.
4401 * reflection.c: Use the new helper functions.
4403 * reflection.c (mono_image_basic_init): Initialize basedir and culture.
4405 * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image
4406 instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
4408 * reflection.c (resolution_scope_from_image): Emit a moduleref if
4411 * reflection.c (mono_image_build_metadata): Emit metadata only for the
4412 current module. Emit the manifest only for the main module.
4414 * reflection.c (mono_image_create_token): Add assertion when a
4415 memberref needs to be created.
4417 * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
4419 * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a
4420 larger buffer for the custom attribute blob. Fixes #50637.
4422 2003-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4424 * threadpool.c: notify listener on async processing handles after
4425 invoking the async callback. Thanks to Zoltan.
4427 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
4429 * reflection.c (create_dynamic_mono_image): Call mono_image_init to
4430 avoid code duplication.
4432 * reflection.h (MonoDynamicImage): New type which is currently unused,
4433 but will be used through the ref.emit code in place of
4434 MonoDynamicAssembly.
4436 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
4439 * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
4440 a MonoDynamicImage instead of just a MonoImage.
4442 * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
4443 icalls to ModuleBuilder but keep their semantics, so they will work
4444 with moduleb->assemblyb. This will change later.
4446 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
4448 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
4451 * reflection.c (mono_image_build_metadata): Avoid creation of a default
4452 main module, since it is now done by the managed code.
4454 2003-11-03 Martin Baulig <martin@ximian.com>
4456 * reflection.c (mono_reflection_inflate_method_or_ctor): Set
4457 `ginst->klass' here.
4458 (method_encode_methodspec): Don't use the `ginst->generic_method's
4459 klass if it's a generic instance, use `ginst->klass' in this case.
4461 2003-11-03 Martin Baulig <martin@ximian.com>
4463 * reflection.c (mono_image_get_generic_method_param_info):
4464 Removed, use mono_image_get_generic_param_info() instead.
4465 (mono_image_get_type_info): Write the GenericParam table before
4466 the Method table. This is neccessary because in the GenericParam
4467 table, type parameters of the class (ie. '!0' etc.) must come
4468 before the ones from its generic methods (ie. '!!0' etc).
4470 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
4472 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
4474 2003-11-02 Martin Baulig <martin@ximian.com>
4476 * reflection.c (create_generic_typespec): Take a
4477 `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
4478 the generic parameters from it.
4480 2003-11-02 Martin Baulig <martin@ximian.com>
4482 * reflection.c (fieldref_encode_signature): Take a `MonoType *'
4483 instead of a `MonoClassField *' since we just need the type.
4484 (create_generic_typespec): New static function. Creates a
4485 TypeSpec token for a generic type declaration.
4486 (mono_image_get_generic_field_token): New static function.
4487 (mono_image_create_token): If we're a FieldBuilder in a generic
4488 type declaration, call mono_image_get_generic_field_token() to get
4491 2003-11-02 Martin Baulig <martin@ximian.com>
4494 (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
4495 `MonoReflectionGenericInst *declaring_type' and
4496 `MonoReflectionGenericInst *reflected_type' fields.
4498 * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
4499 `MonoReflectionGenericInst *declaring_type' and a
4500 `MonoReflectionGenericInst *reflected_type' argument instead of a
4501 single `MonoReflectionGenericInst *type' one. Set
4502 `res->declaring_type' and `res->reflected_type' from them.
4503 (mono_reflection_inflate_field): Likewise.
4505 2003-11-02 Martin Baulig <martin@ximian.com>
4507 * class.c (mono_class_setup_vtable): Don't store generic methods
4510 2003-11-02 Martin Baulig <martin@ximian.com>
4512 * reflection.h (MonoReflectionGenericInst): Added
4513 `MonoReflectionType *declaring_type'.
4515 * reflection.c (mono_reflection_bind_generic_parameters): Use
4516 `if (tb->parent)' instead of `klass->parent'.
4518 2003-11-01 Zoltan Varga <vargaz@freemail.hu>
4520 * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
4521 with an empty ASSEMBLY table.
4523 * reflection.c (mono_image_build_metadata): Avoid using the same loop
4524 variable in the inner and outer loops.
4526 2003-10-31 Zoltan Varga <vargaz@freemail.hu>
4528 * metadata.h (mono_metadata_make_token): Put parentheses around macro
4531 * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
4533 * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain
4534 icalls. Instead, do everything in managed code. This is needed since
4535 it is hard to restore the original domain etc. in unmanaged code in the
4536 presence of undeniable exceptions.
4538 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef):
4539 New icalls to push and pop appdomain refs.
4541 2003-10-31 Martin Baulig <martin@ximian.com>
4543 * class.c (inflate_generic_type): Renamed to
4544 mono_class_inflate_generic_type() and made it public.
4546 * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
4549 * loader.c (mono_field_from_memberref): Also set the retklass for
4552 * fielder.c (mono_image_get_inflated_field_token): New static
4553 method; creates a metadata token for an inflated field.
4554 (mono_image_create_token, fixup_method): Added support for
4555 "MonoInflatedField".
4556 (fieldbuilder_to_mono_class_field): New static function.
4557 (mono_reflection_inflate_field): New public function.
4560 (MonoReflectionGenericInst): Added `MonoArray *fields'.
4561 (MonoReflectionInflatedField): New typedef.
4563 2003-10-30 Bernie Solomon <bernard@ugsolutions.com>
4565 * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
4566 for Solaris and other platforms without s6_addr16
4568 2003-10-30 Martin Baulig <martin@ximian.com>
4570 * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
4571 argument instead of two.
4572 (mono_class_inflate_generic_signature): Likewise.
4573 (inflate_generic_header): Likewise.
4574 (mono_class_inflate_generic_method): Likewise. In addition, if
4575 `ginst->klass' is set, it becomes the new `method->klass'.
4577 * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
4580 * reflection.c (encode_generic_method_sig): Write a 0xa as the
4582 (method_encode_methodspec): If we have generic parameters, create
4583 a MethodSpec instead of a MethodRef.
4584 (fixup_method): Added support for "MonoInflatedMethod" and
4586 (mono_image_create_token): Added support for "MonoInflatedMethod"
4587 and "MonoInflatedCtor".
4588 (inflated_method_get_object): New static function; returns a
4589 managed "System.Reflection.MonoInflatedMethod" object.
4590 (mono_reflection_bind_generic_method_parameters): Return a
4591 `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
4592 (mono_reflection_inflate_method_or_ctor): Likewise.
4593 (mono_image_get_generic_method_param_info): Initialize unused
4595 (mono_image_get_generic_param_info): Likewise.
4597 * reflection.h (MonoReflectionInflatedMethod): New public
4598 typedef. Corresponds to the managed "S.R.MonoInflatedMethod" and
4599 "S.R.MonoInflatedCtor" classes.
4601 * loader.c (method_from_memberref): If we're a TypeSpec and it
4602 resolves to a generic instance, inflate the method.
4604 2003-10-28 Dick Porter <dick@ximian.com>
4606 * object.c (mono_runtime_run_main): Convert command-line arguments
4607 into utf8, falling back to the user's locale encoding to do so.
4609 2003-10-27 Zoltan Varga <vargaz@freemail.hu>
4611 * loader.c (mono_get_method_from_token): Avoid looking up the icalls
4614 * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
4616 * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
4617 up icalls at method definition time. Partially fixes #33569.
4619 2003-10-25 Zoltan Varga <vargaz@freemail.hu>
4621 * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
4622 marshalling of arrays. Fixes #50116.
4624 * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
4626 * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
4627 points to a vtable in the dying appdomain.
4629 * appdomain.c (mono_domain_unload): Move the notification of OnUnload
4630 listeners into unmanaged code inside the lock.
4632 * object.c (mono_class_vtable): Turn off typed allocation in non-root
4633 domains and add some comments.
4635 2003-10-25 Martin Baulig <martin@ximian.com>
4637 * class.h (MonoGenericInst): Added `MonoClass *klass' field.
4639 * image.h (MonoImage): Added `GHashTable *typespec_cache'.
4641 * metadata.c (mono_metadata_parse_generic_inst): Renamed to
4642 `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
4643 currently parsing. Create the generic class and store it in
4644 `generic_inst->klass' before parsing the type arguments. This is
4645 required to support "recursive" definitions; see mcs/tests/gen-23.cs
4647 (mono_type_create_from_typespec): Use a new `image->typespec_cache'
4648 to support recursive typespec entries.
4650 * class.c (mono_class_setup_parent): If our parent is a generic
4651 instance, we may get called before it has its name set.
4652 (mono_class_from_generic): Splitted into
4653 mono_class_create_from_generic() and mono_class_initialize_generic().
4655 2003-10-25 Martin Baulig <martin@ximian.com>
4657 * icall.c (ves_icall_Type_BindGenericParameters): Return a
4658 `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
4659 ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
4660 ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
4662 * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
4663 (create_typespec): Likewise.
4664 (mono_reflection_bind_generic_parameters): Return a
4665 `MonoReflectionGenericInst *' instead of a `MonoClass *'.
4666 (mono_reflection_inflate_method_or_ctor): New public function.
4668 * reflection.h (MonoReflectionGenericInst): New typedef.
4670 2003-10-24 Zoltan Varga <vargaz@freemail.hu>
4672 * object.c (mono_class_proxy_vtable): Run the whole vtable construction
4673 inside the domain lock. Fixes #49993.
4675 * object.c (mono_class_vtable): When typed allocation is used,
4676 allocate vtables in the GC heap instead of in the mempool, since the
4677 vtables contain GC descriptors which are used by the collector even
4678 after the domain owning the mempool is unloaded.
4680 * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
4682 * domain.c (mono_domain_unload): Rename to mono_domain_free to better
4683 reflect what it does. Also invalidate mempools instead of freeing
4684 them if a define is set.
4686 * appdomain.h (MonoAppDomainState): New enumeration to hold the state
4689 * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
4690 hold the finalizable objects in this domain.
4692 * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
4695 * appdomain.c (mono_domain_set): New function to set the current
4696 appdomain, but only if it is not being unloaded.
4698 * appdomain.c threads.c threadpool.c object.c: Avoid entering an
4699 appdomain which is being unloaded.
4701 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
4702 unloading of the root appdomain.
4704 * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
4705 icall to execute a method in another appdomain. Intended as a
4706 replacement for InternalSetDomain, which can confuse the code
4707 generation in the JIT.
4709 * appdomain.c (mono_domain_is_unloading): New function to determine
4710 whenever an appdomain is unloading.
4712 * appdomain.c (mono_domain_unload): New function to correctly unload
4715 * assembly.c (mono_assembly_load_references): Check that an assembly
4716 does not references itself.
4718 * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
4719 domain manually, it asks the finalizer thread to do it, then waits for
4720 the result. Also added a timeout.
4722 * icall.c: Register the new icalls.
4724 * threads.h threads.c: Export the mono_gc_stop_world and
4725 mono_gc_start_world functions.
4727 * mempool.h mempool.c (mono_mempool_invalidate): New debugging
4728 function to fill out the mempool with 0x2a.
4730 2003-10-22 Zoltan Varga <vargaz@freemail.hu>
4732 * reflection.h (MonoReflectionMethodAux): New structure to store
4733 information which is rarely used, thus is not in the MonoMethod
4736 * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
4739 * reflection.c (mono_methodbuilder_to_mono_method): Store param names
4740 and marshalling info into the aux structure.
4742 * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
4743 from the aux structure.
4745 * loader.c (mono_method_get_param_names): Retrieve the param names from
4748 2003-10-21 Zoltan Varga <vargaz@freemail.hu>
4750 * exception.h exception.c: Add AppDomainUnloadedException && fix
4753 2003-10-21 Dick Porter <dick@ximian.com>
4756 (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
4757 patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
4759 2003-10-21 Martin Baulig <martin@ximian.com>
4761 * reflection.c (mono_reflection_bind_generic_parameters):
4762 `klass->parent' is NULL for interfaces.
4764 2003-10-21 Martin Baulig <martin@ximian.com>
4766 * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
4768 2003-10-20 Zoltan Varga <vargaz@freemail.hu>
4770 * exception.c (mono_exception_from_name_msg): New helper function for
4771 creating exceptions and initializing their message field.
4773 * exception.c: Simplify functions using the new helper.
4775 * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
4778 * object.h object.c: Remove G_GNUC_NORETURN from the signature of
4779 mono_raise_exception, since otherwise gcc doesn't generate the function
4780 epilog for raise_exception, confusing the stack unwinding in the JIT.
4783 * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
4784 PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
4787 2003-10-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4789 * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
4792 2003-10-18 Lluis Sanchez Gual <lluis@ximian.com>
4794 * icall.c: Removed GetUninitializedObject method because
4795 AllocateUninitializedClassInstance does the same.
4797 2003-10-18 Martin Baulig <martin@ximian.com>
4799 * class.c (inflate_generic_signature): Renamed to
4800 mono_class_inflate_generic_signature() and made it public.
4801 (my_mono_class_from_generic_parameter): New static function; if we
4802 don't already have the generic parameter's MonoClass, create a
4803 very simple one which is just used internally in the runtime and
4804 not passed back to managed code.
4806 * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
4808 * metadata.h (MonoMethodSignature): Moved the
4809 `MonoGenericParam *gen_params' to the MonoMethodHeader.
4810 (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
4812 * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
4813 ves_icall_MonoMethod_GetGenericArguments(); this is now an
4814 interncall on the MonoMethod class, not on MethodInfo.
4815 (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
4816 calling mono_reflection_bind_generic_method_parameters() directly.
4818 * loader.c (mono_method_get_signature): If this is a MethodSpec;
4819 return the already computed `method->signature'.
4820 (method_from_methodspec): New static function to load a method
4821 from a MethodSpec entry.
4822 (mono_get_method_from_token): Call the new method_from_methodspec()
4823 for MethodSpec tokens.
4824 (mono_get_method_from_token): If we're a generic method, load the
4827 * reflection.c (mono_image_get_memberref_token): Allow
4828 MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
4830 (fixup_method): Added support for MONO_TABLE_METHODSPEC.
4831 (mono_image_create_token): First check whether it's a generic
4832 method (so we'd need to create a MethodSpec), then do the other
4834 (mono_reflection_bind_generic_method_parameters): Return a
4835 `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
4836 called directly from the interncall.
4838 2003-10-17 Zoltan Varga <vargaz@freemail.hu>
4840 * reflection.c (load_public_key): Move loading of the public key
4843 * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
4845 * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
4848 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
4849 culture, hash_alg and public_key. Fixes #49555.
4851 2003-10-17 Martin Baulig <martin@ximian.com>
4853 * class.h (MonoGenericInst): Moved this declaration here and added
4854 `MonoMethod *generic_method'.
4857 (ves_icall_MethodInfo_GetGenericArguments): New interncall.
4858 (ves_icall_MethodInfo_BindGenericParameters): New interncall.
4860 * metadata.c (mono_metadata_type_equal): Two types of
4861 MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
4862 index; ie. don't compare the address of the `MonoGenericParam'
4864 (mono_metadata_load_generic_params): Removed the `MonoMethod
4867 * metadata.h (MonoGenericInst): Moved declaration to class.h.
4868 (MonoMethodHeader): Added `MonoGenericInst *geninst'.
4870 * reflection.c (method_encode_signature): Encode the number of
4872 (encode_generic_method_sig): New static function.
4873 (method_encode_methodspec): New static function; creates an entry
4874 in the MethodSpec table for a generic method.
4875 (mono_image_get_methodspec_token): New static function.
4876 (mono_image_create_token): Call mono_image_get_methodspec_token()
4877 for generic methods.
4878 (mono_reflection_bind_generic_method_parameters): New public
4879 function. Instantiates a generic method.
4881 2003-10-16 Martin Baulig <martin@ximian.com>
4883 * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
4884 *gen_params' here from MonoMethodHeader.
4886 * metadata.c (mono_metadata_parse_method_signature): If we have
4887 generic parameters, initialize `method->gen_params' and then set
4888 the correct `type->data.generic_param' in all the parameters.
4890 2003-10-16 Zoltan Varga <vargaz@freemail.hu>
4892 * threads.c (mono_threads_get_default_stacksize): New function to
4893 return the default stacksize.
4895 * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
4896 termination of the finalizer thread, since the previous method had
4897 race conditions. Fixes #49628.
4899 * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
4900 as for the other managed threads.
4902 2003-10-16 Martin Baulig <martin@ximian.com>
4904 * class.c (inflate_generic_signature): Copy `generic_param_count'
4907 * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
4910 * metadata.c (mono_metadata_parse_method_signature): Actually set
4911 the `method->generic_param_count' here.
4912 (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
4914 2003-10-15 Zoltan Varga <vargaz@freemail.hu>
4916 * object.h: Add a new field to TypedRef to simplify the implementation
4917 of the REFANY opcodes in the JIT.
4919 * icall.c: Make use of the new field.
4921 * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
4924 2003-10-15 Martin Baulig <martin@ximian.com>
4926 * class.c (mono_class_from_gen_param): Renamed to
4927 mono_class_from_generic_parameter() and moved most of the
4928 functionality from mono_reflection_define_generic_parameter()
4929 here; ie. we create a "real" class here.
4930 (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
4931 MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
4932 previously been called.
4934 * class.h (MonoGenericParam): Moved the declaration of this struct
4935 here from metadata.h and added `MonoMethod *method'.
4937 * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
4940 * loader.c (mono_get_method_from_token): If we have any generic
4941 parameters, call mono_metadata_load_generic_params() to read them
4942 from the MONO_TABLE_GENERICPAR.
4944 * metadata.c (mono_metadata_load_generic_params): Added
4945 `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
4947 * metadata.h (MonoMethodSignature): Replaced
4948 `MonoGenericInst *geninst' with `guint16 generic_param_count'.
4949 (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
4951 * reflection.c (mono_reflection_define_generic_parameter): Moved
4952 most of the functionality into the new
4953 mono_class_from_generic_parameter(); set the `method' field if
4954 we're a method parameter.
4956 2003-10-13 Bernie Solomon <bernard@ugsolutions.com>
4958 * marshal.c (emit_struct_conv): if native size is 0
4961 2003-10-14 Martin Baulig <martin@ximian.com>
4963 * icall.c: The generics API has changed in the spec since it was
4964 added to System.Type; these modifications make it match the spec
4966 (ves_icall_Type_GetGenericParameters): Renamed to
4967 `ves_icall_Type_GetGenericArguments'.
4968 (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
4969 (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
4970 `ves_icall_MonoType_get_HasGenericArguments'.
4971 (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
4972 `ves_icall_MonoType_get_IsGenericParameter'.
4973 (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
4974 this is no interncall anymore.
4975 (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
4976 `ves_icall_TypeBuilder_get_IsGenericParameter'.
4978 2003-10-14 Martin Baulig <martin@ximian.com>
4980 * reflection.c (mono_reflection_bind_generic_parameters): Also
4981 inflate generic methods if we're reading the class from IL.
4983 2003-10-13 Martin Baulig <martin@ximian.com>
4985 * reflection.c (mono_reflection_define_generic_parameter): This
4986 method isn't called directly from the icall anymore; take a
4987 `MonoReflectionAssemblyBuilder *' so we can use this for type and
4988 method generic parameters.
4989 (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
4990 (method_builder_encode_signature): Encode generic parameters.
4991 (mono_image_get_method_info): Write generic params to the
4992 MONO_TABLE_GENERICPARAM table.
4994 * reflection.h (MonoReflectionMethodBuilder): Added
4995 `MonoArray *generic_params'.
4997 * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
4999 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
5000 wrapper for mono_reflection_define_generic_parameter().
5001 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5003 2003-10-13 Zoltan Varga <vargaz@freemail.hu>
5005 * marshal.h: Add missing function to fix build.
5007 * marshal.c (mono_marshal_get_native_wrapper): Add support for
5008 the SetLastError pinvoke attribute.
5010 * marshal.c (mono_marshal_set_last_error): New helper function called
5011 by the generated code.
5013 * marshal.c (mono_mb_emit_branch): New helper function.
5015 * marshal.c (mono_mb_emit_exception): Added exception name parameter.
5017 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
5018 classes as parameters and return values of delegates. Fixes #29256.
5020 2003-10-12 Bernie Solomon <bernard@ugsolutions.com>
5022 * locales.c: use gint32 in non HAVE_ICU case
5024 2003-10-11 Martin Baulig <martin@ximian.com>
5026 * mono-debug.c (mono_debug_add_method): Added a workaround for
5029 2003-10-10 Zoltan Varga <vargaz@freemail.hu>
5031 * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
5032 delegates passed to native code must use the STDCALL calling
5033 convention. Fixes #35987.
5035 2003-10-10 Martin Baulig <martin@ximian.com>
5037 * class.c (inflate_generic_type): If we're inflating for a generic
5038 type instance (and not for a generic method), return
5039 MONO_TYPE_MVAR unchanged.
5041 2003-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5043 * string-icalls.c: Join ignores null strings in the source array.
5044 * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
5045 * threads.c: GetAvailableTheads is slightly more accurate.
5047 2003-10-09 Bernie Solomon <bernard@ugsolutions.com>
5049 * threads.h threads.c : add mono_threads_set_default_stacksize
5050 and pass default to CreateThread calls.
5052 2003-10-09 Dick Porter <dick@ximian.com>
5056 * locales.c: Internal calls for constructing CultureInfo and
5057 related objects from libicu (if its available.)
5059 2003-10-09 Zoltan Varga <vargaz@freemail.hu>
5061 * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
5063 2003-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5065 * threadpool.c: added an argument to async_invoke_thread that is the
5066 item to process, pass the MonoAsyncResult to the thread start function
5067 when creating a new thread. This way we don't need to acquire any lock
5068 when we're creating a new thread. Readded a semaphore for faster
5069 response times (instead of that Sleep i added).
5071 2003-10-08 Bernie Solomon <bernard@ugsolutions.com>
5073 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
5074 get daylight change dates better on Windows, fix handling
5075 of platforms without tm_gmtoff.
5077 2003-10-06 Martin Baulig <martin@ximian.com>
5079 * class.c (inflate_generic_method): Renamed to
5080 mono_class_inflate_generic_method() and made public.
5081 (mono_class_init): Don't inflate the generic methods here.
5082 (mono_class_from_generic): Added `gboolean inflate_methods'
5083 argument. Inflate the methods here.
5085 * loader.c (mono_method_get_param_names): Ignore instances of
5086 generic types for the moment.
5088 * reflection.c (fixup_method): Added support for inflated methods.
5089 (mono_image_create_token): Use mono_image_get_methodref_token()
5090 for inflated methods.
5091 (mono_custom_attrs_from_param): Ignore instances of generic types
5093 (mono_reflection_bind_generic_parameters): New public function.
5094 Moved all the functionality from
5095 ves_icall_Type_BindGenericParameters() here and added support for
5097 (mono_reflection_define_generic_parameter): Initialize
5098 `klass->methods' here.
5100 * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
5101 functionality into mono_reflection_define_generic_parameter().
5102 (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
5103 TypeBuilder, return that TypeBuilder.
5105 2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5107 * appdomain.c: removed mono_delegate_semaphore.
5110 (mono_thread_pool_add): moved hash table creation inside and the thread
5111 creation outside of the critical region.
5112 (mono_thread_pool_finish): removed obsolete code.
5113 (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
5114 continue or exit the thread depending on the queue.
5116 2003-10-07 Bernie Solomon <bernard@ugsolutions.com>
5118 * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
5119 marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
5120 handle more bool marshalling options
5122 2003-10-07 Zoltan Varga <vargaz@freemail.hu>
5124 * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
5125 arrays of structs. Also add a more descriptive error message when
5126 a structure member is marshalled as LPArray.
5128 2003-10-06 Zoltan Varga <vargaz@freemail.hu>
5130 * marshal.c (mono_marshal_get_native_wrapper): Add support for
5131 marshalling arrays of complex types. Fixes #29098. Also remove an
5132 usused and incomplete function.
5134 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
5136 * gc.c: report heap_size - free_bytes as total memory allocated
5139 2003-10-05 Zoltan Varga <vargaz@freemail.hu>
5141 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally
5142 fix timezone handling problems on Windows.
5144 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
5145 asserts when the year is outside the range handled by ms the functions.
5147 * class.c (setup_interface_offsets): If the class is an interface,
5148 fill out its interface_offsets slot.
5150 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5152 * threadpool.c: mark threadpool threads as background.
5154 2003-10-03 Bernie Solomon <bernard@ugsolutions.com>
5156 * decimal.c - define DECINLINE to nothing if not using GCC
5158 2003-10-03 Zoltan Varga <vargaz@freemail.hu>
5160 * assembly.c: More refcount fixes.
5162 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5164 * string-icalls.c: if we're not trimming, return the same string.
5165 When not splitting, don't create a new string.
5167 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5170 (mono_image_open): increment the ref_count inside the critical section.
5172 2003-10-02 Zoltan Varga <vargaz@freemail.hu>
5174 * image.c (mono_image_open): Fix reference counting bug.
5176 2003-09-30 Bernie Solomon <bernard@ugsolutions.com>
5178 * marshal.c (mono_marshal_type_size) struct alignment changed for
5179 64bit machines. (emit_ptr_to_str_conv) Fix bool conversions for
5180 64bits. Avoid leak in mono_marshal_get_native_wrapper when
5181 mono_lookup_pinvoke_call throws.
5183 2003-09-30 Zoltan Varga <vargaz@freemail.hu>
5185 * reflection.c (mono_reflection_parse_type): Fix #49114.
5187 * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
5188 temporary workaround for cygwin header problem.
5190 * object.c (mono_object_isinst): Synchronize this with the code
5191 generated by the JIT for casts.
5193 2003-09-29 Zoltan Varga <vargaz@freemail.hu>
5195 * reflection.c (encode_type): Fix #38332.
5197 2003-09-26 Zoltan Varga <vargaz@freemail.hu>
5199 * marshal.c (mono_marshal_method_from_wrapper): New function to return
5200 the original method from the wrapper method.
5202 2003-09-25 Martin Baulig <martin@ximian.com>
5204 * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
5205 interncall since it was identical to `Type.GetGenericTypeDefinition()'.
5206 (ves_icall_Type_get_IsGenericInstance): New interncall.
5208 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
5210 * object.c: fix cast warning in big endian code.
5212 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
5214 * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
5216 2003-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5218 * assembly.c: don't call check_env from mono_assembly_load. It's
5219 already done once in mono_assemblies_init and may cause headaches when
5220 multiple threads are loading assemblies.
5222 2003-09-19 Martin Baulig <martin@ximian.com>
5224 * reflection.c (mono_reflection_define_generic_parameter): Don't
5225 allocate `klass->methods', set `klass->flags' to
5226 TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
5228 2003-09-18 Martin Baulig <martin@ximian.com>
5230 * class.c (mono_class_init): Don't create `class->methods' if it's
5231 already initialized.
5233 * metadata.c (mono_metadata_load_generic_params): Make this
5236 * reflection.c (mono_reflection_define_generic_parameter): Set
5237 parent class and interfaces from the constraints.
5239 * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
5240 to keep this struct in sync with the declaration in TypeBuilder.cs.
5242 2003-09-17 Martin Baulig <martin@ximian.com>
5244 * metadata.h (MonoType): Replaced the data's `int type_param'
5245 field with `MonoGenericParam *generic_param'.
5246 (MonoGenericParam): Added `MonoClass *klass'.
5248 * class.c (mono_class_from_gen_param): Removed the
5249 `MonoImage *image' and `int type_num' arguments.
5251 * metadata.c (mono_metadata_parse_generic_param): New static
5252 method; creates a MonoGenericParam which just contains the index.
5253 (do_mono_metadata_parse_type): Call
5254 mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
5257 * reflection.c (mono_image_typedef_or_ref): Generic type
5258 parameters may be in the same assembly, but never use a typedef
5260 (mono_reflection_define_generic_parameter): We're now creating a
5261 "real" class for the type parameter; it's now safe to call
5262 mono_class_from_mono_type() on the class'es type, it'll do the
5265 2003-09-16 Martin Baulig <martin@ximian.com>
5267 * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
5268 `symfile->range_entry_size' and `symfile->class_entry_size' here;
5269 the `symfile' data structure must be fully initialized before it
5270 gets added to the table.
5272 2003-09-15 Zoltan Varga <vargaz@freemail.hu>
5274 * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
5276 * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
5277 class init trampolines.
5279 2003-09-11 Zoltan Varga <vargaz@freemail.hu>
5281 * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
5282 to the built-in profiler to turn off time and allocation profiling
5285 2003-09-10 Zoltan Varga <vargaz@freemail.hu>
5287 * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
5290 * debug-helpers.c (mono_method_full_name): Print the wrapper type
5291 in human readable form.
5293 2003-09-08 Zoltan Varga <vargaz@freemail.hu>
5295 * reflection.c icall.c: Fixed warnings.
5297 * image.c (load_class_names): Use a temporary hash table to hold the
5298 namespaces in order to avoid doing many string comparisons.
5300 * image.h: Fix typo.
5302 * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
5303 Pass NULL instead of g_direct_equal to the GHashTable constructor
5304 since the NULL case is short-circuited inside g_hash_table_lookup,
5305 leading to better performance.
5307 * metadata.c (mono_metadata_custom_attrs_from_index): New function to
5308 obtain the first custom attribute for a given index. Depends on the
5309 CustomAttribute table being sorted by the parent field.
5311 * reflection.c (mono_custom_attrs_from_index): Use the new function
5312 for better performance.
5314 2003-09-07 Martin Baulig <martin@ximian.com>
5316 * class.c (mono_class_init): If we're a generic instance, inflate
5317 all our methods instead of loading them from the image.
5318 (mono_class_from_generic): Set `class->methods = gklass->methods'.
5320 2003-09-07 Martin Baulig <martin@ximian.com>
5322 * mono-debug-debugger.c: Added support for constructors.
5324 2003-09-06 Martin Baulig <martin@ximian.com>
5326 * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
5329 * reflection.c (mono_reflection_setup_generic_class): Call
5330 ensure_runtime_vtable() to create the vtable.
5332 2003-09-05 Martin Baulig <martin@ximian.com>
5334 * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
5337 2003-09-04 Martin Baulig <martin@ximian.com>
5339 * reflection.c (mono_reflection_define_generic_parameter): Generic
5340 parameters start with zero.
5342 2003-09-04 Martin Baulig <martin@ximian.com>
5344 * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5346 * reflection.h (MonoReflectionGenericParam): New typedef.
5347 (MonoReflectionTypeBuilder): Added `generic_params' fields to get
5348 the generic parameters from the managed TypeBuilder.
5350 * reflection.c (mono_reflection_define_generic_parameter): New function.
5351 (mono_reflection_create_runtime_class): Encode generic parameters.
5352 (mono_reflection_setup_generic_class): New function; this is
5353 called after adding adding all generic params to the TypeBuilder.
5354 (encode_type): Added MONO_TYPE_VAR.
5356 2003-09-04 Zoltan Varga <vargaz@freemail.hu>
5358 * class.h class.c (mono_class_needs_cctor_run): Moved this method
5361 * assembly.h assembly.c: Moved the AOT loading code into an assembly
5364 2003-09-03 Zoltan Varga <vargaz@freemail.hu>
5366 * reflection.h reflection.c class.h class.c: Delete duplicate
5367 definition of mono_type_get_name () from reflection.c and export the
5370 * class.c: Class loading fixes from Bernie Solomon
5371 (bernard@ugsolutions.com).
5373 * reflection.c: Endianness fixes from Bernie Solomon
5374 (bernard@ugsolutions.com).
5376 2003-09-01 Zoltan Varga <vargaz@freemail.hu>
5378 * assembly.h assembly.c: Define a file format version for AOT
5381 * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
5383 * appdomain.h (MonoJitInfo): New field to determine whenever the
5384 code is domain neutral.
5386 2003-08-31 Miguel de Icaza <miguel@ximian.com>
5388 * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
5390 2003-08-30 Zoltan Varga <vargaz@freemail.hu>
5392 * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir):
5393 (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
5394 Avoid caching the result since strings must be domain specific. Fixes
5397 2003-08-29 Zoltan Varga <vargaz@freemail.hu>
5399 * marshal.c (mono_marshal_init): Make this callable multiple times
5400 since it is hard to find a correct place to call it.
5402 * object.c (mono_runtime_class_init): Execute static constructors in
5403 the correct appdomain.
5405 * image.c (build_guid_table): Handle the case when multiple images have
5408 2003-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5410 * icall.c: added a couple of icalls for System.Web.
5412 2003-08-28 Martin Baulig <martin@ximian.com>
5414 * icall.c (ves_icall_Type_BindGenericParameters): Use
5415 `klass->generic_inst' instead of `&klass->byval_arg' in the
5416 mono_type_get_object() call. The returned type must be
5417 MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
5419 2003-08-27 Zoltan Varga <vargaz@freemail.hu>
5423 * object.c (mono_class_proxy_vtable): Make it thread safe.
5425 * pedump.c: Fix warning.
5427 * object.c appdomain.h: Get rid of metadata_section.
5428 It is no longer needed and it was causing deadlocks with domain->lock.
5430 * appdomain.c (add_assemblies_to_domain): Make it thread safe.
5432 2003-08-26 Martin Baulig <martin@ximian.com>
5434 * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
5436 2003-08-26 Martin Baulig <martin@ximian.com>
5438 * pedump.c (main): Call mono_metadata_init(),
5439 mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
5440 and mono_loader_init().
5442 2003-08-26 Zoltan Varga <vargaz@freemail.hu>
5444 * loader.h: Add missing include to fix build.
5446 * image.h: mono_image_load_references is no more.
5448 * assembly.c: Reworked assembly loading to make it really thread safe.
5449 After these changes, the assembly returned by mono_assembly_open is
5450 fully initialized, i.e. all its references assemblies are loaded.
5452 * assembly.c (mono_image_load_references): Renamed to
5453 mono_assembly_load_references, and made private, since clients no
5454 longer need to call it.
5456 * class.c: Removed calls to mono_assembly_load_references, since it was
5457 a source of deadlocks.
5459 * loader.h loader.c class.h class.c: Protect data structures using a
5460 new lock, the loader lock.
5462 * class.c (mono_class_setup_vtable): Create temporary hash tables and
5463 GPtrArrays only when needed.
5465 * class.c (mono_class_layout_fields): Ignore the dummy field inserted
5466 into empty structures by mcs. Fixes pinvoke7.cs.
5468 * domain.c (mono_init): Call a new initialization function.
5470 * appdomain.c (mono_runtime_init): Call the new initializer function
5471 of the marshal module.
5473 * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
5474 inserted into empty structures by mcs. Fixes pinvoke7.cs.
5476 * marshal.h marshal.c: Added locks around the wrapper caches to make
5477 this module thread safe.
5479 * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
5480 this argument. Fixes pinvoke1.exe.
5482 2003-08-25 Lluis Sanchez <lluis@ximian.com>
5484 * object.h: Added call_type field to MonoMethodMessage and the corresponding
5485 enumeration of values. Removed fields to store remote call output values in
5486 MonoAsyncResult. Not needed any more.
5487 * object.c: Initialize call_type and async_result fields in mono_message_init.
5488 * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
5489 dispatching the message.
5490 mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
5491 async call to finish. To do it use a message with EndInvoke call type.
5493 2003-08-25 Zoltan Varga <vargaz@freemail.hu>
5495 * loader.h loader.c (mono_method_hash_marhal_info): New function which
5496 determines whenever a method has marshalling info.
5498 2003-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5500 * assembly.c: fix the build on windows.
5502 2003-08-22 Lluis Sanchez <lluis@ximian.com>
5504 * object.cs: Fixed bug #47785.
5506 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
5508 * string-icalls.c (StringReplace): If their are no occurances of
5509 the old string found return a reference to the supplied
5510 string. This saves some memory and matches MS behavoir.
5512 2003-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5514 * socket-io.c: fixed compilation for systems that define AF_INET6
5515 and don't define SOL_IP/SOL_IPV6.
5517 2003-08-21 Zoltan Varga <vargaz@freemail.hu>
5519 * object.c (mono_object_isinst): Fix casts to TransparentProxy in
5520 the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
5522 * rawbuffer.c rawbuffer.h: Make this module thread safe.
5524 * domain.c: Make this module thread safe.
5526 * domain.c (mono_init): Call new initialization function.
5528 * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
5529 reference types too. Fixes #38812.
5531 * image.c (mono_image_init): Fixed warnings.
5533 * class.c (mono_class_from_typeref): Handle assembly load failure
5536 * appdomain.c (add_assemblies_to_domain): Handle the case when
5537 the references of an assembly are not yet loaded.
5539 * metadata.c image.c assembly.c: Moved initialization of global
5540 variables to a separate function called at startup since lazy
5541 initialization of these variables is not thread safe.
5543 * image.c assembly.c: Made this module thread safe by adding locks in
5544 the appropriate places.
5546 * domain.c (mono_init): Call the new initialization functions of the
5549 2003-08-20 Lluis Sanchez Gual <lluis@ximian.com>
5551 * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
5552 make a direct call. It is proxy's work to make the call asynchronous.
5553 mono_delegate_end_invoke(): If the targe is a proxy, just collect
5555 * object.cs: mono_method_call_message_new(): read AsyncResult and
5556 state object from parameters list, if this info is requested.
5557 * object.h: Added fields to store remote call output values in
5558 MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
5560 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
5562 * object.h: add needed fields to MonoThread.
5563 * threads.c, threads.h: allow registering a function to cleanup data
5564 allocated per thread by the JIT.
5566 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
5568 * loader.h: portability fix by Bernie Solomon
5569 * <bernard@ugsolutions.com>.
5571 2003-08-16 Zoltan Varga <vargaz@freemail.hu>
5573 * reflection.h reflection.c (mono_param_get_objects): Changed this to
5574 return a MonoArray. This simplifies the code and also ensures that
5575 the cache allways contains an object reference as a value.
5577 * icall.c (ves_icall_get_parameter_info): Simplified using the new
5580 2003-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5582 * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
5583 fixes a problem with byte ordering when getting the address family for
5586 2003-08-15 Zoltan Varga <vargaz@freemail.hu>
5588 * .cvsignore: Added monosn.
5590 * reflection.h reflection.c loader.c: Added support for parameter
5591 marshalling to dynamically created types. Fixes #47295.
5593 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
5595 * rand.c: remove useless warnings.
5597 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
5599 * class.c: implemented ldtoken for methods and fieldrefs.
5601 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5603 * threadpool.c: when mono_async_invoke was called, no one took care of
5604 monitoring the queue. So if the method invoked took some time and we
5605 got new async invoke requests after 500 ms (the thread created waited
5606 that long in WaitForSingleObject), the new async invoke was not called
5607 until the previous one finished.
5609 This is fixed now. Thanks to Totte for helping with it.
5611 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5613 * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
5615 2003-08-11 Martin Baulig <martin@ximian.com>
5617 * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
5619 2003-08-06 Martin Baulig <martin@ximian.com>
5621 * mono-debug-debugger.c: Added support for static fields,
5622 properties and methods.
5624 2003-08-06 Martin Baulig <martin@ximian.com>
5626 * mono-debug-debugger.c: Don't store the MonoString's vtable to
5627 make this work for applications with multiple application domains.
5629 2003-08-04 Martin Baulig <martin@ximian.com>
5631 * mono-debug-debugger.c: Completely reworked the type support; the
5632 most important thing is that we're now just using one single
5633 `MonoType' instance per type.
5635 Sat Aug 2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
5637 * mono-endian.h, mono-endian.c, icall.c: Added icall
5638 ves_icall_System_Double_AssertEndianity to assert double word endianity
5639 on ARM (FPA). The icall uses a macro defined in mono-endian.h.
5641 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
5643 * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
5644 support, icalls and fixes.
5646 2003-07-31 Miguel de Icaza <miguel@ximian.com>
5648 * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
5649 classes that are a punctuation character in .NET is not the same a
5652 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
5654 * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
5656 2003-07-29 Miguel de Icaza <miguel@ximian.com>
5658 * icall.c: Add new MemCopy internalcall.
5659 (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
5660 Simplified code; It is not necessary to handle all the cases here,
5661 as the C# code takes care of it. Only handle the case of the name
5662 resource embedded into the assembly.
5664 Changed signature to return the data pointer and the size of the
5667 2003-07-26 Miguel de Icaza <miguel@ximian.com>
5669 * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
5670 encoded. (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
5672 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
5674 * socket-io.c: ignore EINTR error in select.
5676 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
5678 * class.h, class.c: removed unused subclasses field in MonoClass.
5680 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
5682 * icall.c: improve fix of get_base_definition(). If the parent class
5683 doesn't have the mehod, look at the parent of the parent.
5684 * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
5685 to check if a parameter is an in or out parameter
5686 (PARAM_ATTRIBUTE_IN is not set by default).
5687 mono_method_return_message_restore(): Use mono_class_value_size to
5688 get the size of a value type. mono_type_stack_size (parameterType)
5689 does not return the correct value if parameterType is byRef.
5690 mono_load_remote_field(), mono_load_remote_field_new(),
5691 mono_store_remote_field(), mono_store_remote_field_new():
5692 raise exception if the remote call returns an exception.
5694 2003-07-28 Martin Baulig <martin@ximian.com>
5696 * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
5697 method. This is a wrapper around mono_runtime_invoke() which
5698 boxes the instance object if neccessary.
5700 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
5702 * class.c, class.h, image.c, image.h, loader.c, metadata.c,
5703 metadata.h, row-indexes.h, verify.c: first cut of generics support.
5705 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
5707 * icall.c: disable mcs bug workaround.
5709 2003-07-21 Miguel de Icaza <miguel@ximian.com>
5711 * object.c (mono_runtime_class_init): Take the metadata_section
5712 mutex before obtaining the domain mutex.
5714 * appdomain.h: Added definition of metadata_section mutex here.
5716 * object.c: define metadata_mutex here.
5718 2003-07-24 Ravi Pratap <ravi@ximian.com>
5720 * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
5723 2003-07-24 Lluis Sanchez Gual <lluis@ximian.com>
5725 * reflection.c: Fix bug #46669
5727 2003-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5732 * object.h: fill in the type name for TypeLoadException.
5734 2003-07-23 Ravi Pratap <ravi@ximian.com>
5736 * class.c: Fixes from Paolo in response to bug #45415 (Subclass
5737 relationship between TypeBuilders while compiling corlib) and bug
5738 45993 (Array types returned from the runtime while compiling
5739 corlib were from the loaded corlib).
5741 2003-07-22 Martin Baulig <martin@ximian.com>
5743 * mono-debug-debugger.c: Reworked the type support a bit more;
5744 distinguish between types and classes.
5746 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
5748 * icall.c: add IsArrayImpl icall.
5750 2003-07-22 Zoltan Varga <vargaz@freemail.hu>
5752 * class.c (mono_class_layout_fields): Fix gc aware auto layout by
5753 initializing real_size only once. Also fix bug #46602.
5755 2003-07-21 Jerome Laban <jlaban@wanadoo.fr>
5757 * object.c: Renamed mono_metadata_section to metadata_section.
5759 2003-07-21 Lluis Sanchez Gual <lluis@ximian.com>
5761 * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
5762 empty array if the type is an array. Fixed.
5763 ves_icall_MonoMethod_get_base_definition: if the base method
5764 is abstract, get the MethodInfo from the list of methods of
5766 * reflection.c: ParameterInfo.PositionImpl should be zero-based
5767 and it was 1-based. Fixed in mono_param_get_objects.
5769 2003-07-20 Martin Baulig <martin@ximian.com>
5771 * mono-debug.h: Set version number to 31.
5772 (mono_debug_init): Added `MonoDomain *' argument.
5774 * mono-debug-debugger.c: Reworked the type support; explicitly
5775 tell the debugger about builtin types; pass the `klass' address to
5778 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
5780 * image.c: Allow new metadata tables to be loaded without a
5781 warning. Also update the warning message to give the new constant value.
5783 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
5785 * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
5786 metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c:
5787 array type representation changes.
5789 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
5791 * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
5792 on Environment.Exit () call.
5794 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
5796 * icall.c, reflection.h, reflection.c, verify.c: cleanups,
5797 requires a matching corlib.
5799 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
5801 * Changelog: My editor decided to add a CR to each line. Sorry about that.
5802 Committed again without the CRs.
5804 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
5806 * socket-io.c: Get system_assembly using mono_image_loaded(), instead
5807 getting it from the "this" socket instance. Did not work
5808 if the socket is a subclass of Socket.
5809 Also fixed bug #35371.
5811 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
5813 * metadata.c: fixed size for TypedByRef.
5814 * loader.c: when searching for a method, consider the vararg amrker.
5815 * unicode.c, decimal.c: constify some arrays.
5817 2003-07-15 Dick Porter <dick@ximian.com>
5819 * socket-io.c: Fixed compilation for gcc < 3.2.
5821 Fixed compilation for machines that don't have AF_INET6 (thanks to
5822 Bernie Solomon <bernard@ugsolutions.com> for that part.)
5824 Fixed compile warnings.
5826 Fixed formatting and line endings.
5828 2003-07-14 Jerome Laban <jlaban@wanadoo.fr>
5831 * socket-io.c: Added IPv6 support.
5833 2003-07-13 Zoltan Varga <vargaz@freemail.hu>
5835 * class.c (mono_class_is_assignable_from): New function to implement
5836 the is_assignable_from logic. Used by mono_object_isinst,
5837 Type::IsAssignableFrom () and the interpreter.
5839 * class.c (mono_class_is_subclass_of): Make all classes a subclass of
5840 Object, even interfaces.
5842 * object.c (mono_object_isinst): Implement in terms of
5845 * icall.c (ves_icall_type_is_assignable_from): New icall.
5847 2003-07-11 Zoltan Varga <vargaz@freemail.hu>
5849 * domain.c (foreach_domain): fix compiler warning.
5851 2003-07-11 Dietmar Maurer <dietmar@ximian.com>
5853 * image.c (load_metadata_ptrs): use g_strndup because strndup is
5854 not available on all plattforms
5856 2003-07-10 Zoltan Varga <vargaz@freemail.hu>
5858 * image.h image.c: Store the metadata version string in MonoImage.
5859 * icall.c: New icall to retrieve the image version.
5860 * reflection.c (create_dynamic_image): Fill in the image version field
5861 * reflection.c (build_compressed_metadata): Use the image version
5862 from the image structure.
5864 2003-07-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5866 * appdomain.c: modified comment.
5867 * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
5868 That will be its last iteration when mono_gc_cleanup is called from
5869 mono_runtime_cleanup and before the domain is unloaded.
5873 2003-07-04 Dietmar Maurer <dietmar@ximian.com>
5875 * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
5878 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
5880 * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
5881 rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
5882 Bernie Solomon <bernard@ugsolutions.com>.
5884 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
5886 * object.c, object.h: provide mono_object_new_fast() for faster
5887 allocation in some special cases.
5889 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
5891 * object.h, reflection.h, verify.c: fixes for some 64bit issues,
5892 mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
5894 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
5896 * threadpool.c: fix leaks.
5898 2003-07-01 Dick Porter <dick@ximian.com>
5900 * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
5901 using MonoGHashTables. Fixes threadpool bug posted to list.
5903 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
5905 * image.h, image.c: added support to load an assembly from a byte array.
5906 * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added
5907 assembly bundle support.
5909 2003-06-27 Dietmar Maurer <dietmar@ximian.com>
5911 * threadpool.c (mono_thread_pool_add): keep a reference to the
5912 AsyncResult to prevent GC
5914 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
5916 * class.c: leak fix.
5918 2003-06-25 Dick Porter <dick@ximian.com>
5920 * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
5921 for the async object, the WaitHandle object will close the handle.
5924 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
5926 * class.c: in mono_array_class_get (), lookup from the hash with the
5927 same type we insert: this works around a bug in
5928 mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
5929 lluis. The real fix will have to wait for after the release.
5931 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
5933 * icall.c: fix memory leak when getting type members.
5935 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
5937 * reflection.c: added more pubtoken special cases.
5939 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
5941 * class.c: handle field offset correctly when class size
5942 is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
5944 2003-06-20 Martin Baulig <martin@ximian.com>
5946 * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
5949 2003-06-20 Martin Baulig <martin@ximian.com>
5951 * image.h, mono-debug-debugger.h: Fixed compiler warnings.
5953 2003-06-20 Martin Baulig <martin@ximian.com>
5955 * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed. We
5956 just distinguish between variables in registers and variables at
5957 an offset relative to a register.
5959 2003-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5961 * icall.c: #ifdef out latest changes until mcs is fixed.
5963 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
5965 * icall.c: return members in metadata order.
5967 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
5969 * icall.c: avoid infinite loop in GetTimeZoneData.
5971 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
5973 * icall.c: added Marshal.Prelink/All icalls.
5975 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
5977 * object.c, object.h: fix warnings and do some overflow checking
5978 when creating arrays.
5980 2003-06-17 Dick Porter <dick@ximian.com>
5983 * file-io.c: File attributes need to be tweaked slightly when
5984 passed from the managed to the w32 world.
5986 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
5987 * profiler.h profiler-private.h profiler.c: Rework last patch
5988 based on suggestion by Paolo.
5990 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
5992 * profiler.h profiler-private.h profiler.c: Added infrastructure for
5993 instruction level coverage data collection.
5994 * profiler.h profiler.c (: Added new callback function which can be
5995 used by the profiler to limit which functions should have coverage
5997 * profiler.c (mono_profiler_load): Call g_module_build_path to
5998 generate the file name of the profiler library.
6000 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
6002 * profiler.c, profiler.h, profiler-private.h: added basic block
6003 coverage profiling API.
6005 2003-06-15 Zoltan Varga <vargaz@freemail.hu>
6007 * reflection.c (mono_reflection_create_runtime_class): Add support
6008 for events in dynamically generated code.
6010 * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
6013 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
6015 * icall.c: when getting timezone info, return reasonable values if we
6016 can't get the actual data.
6018 2003-06-14 Dick Porter <dick@ximian.com>
6020 * threads.c (start_wrapper): Remove the reference to the thread
6021 object in the TLS data, so the thread object can be finalized.
6022 This won't be reached if the thread threw an uncaught exception,
6023 so those thread handles will stay referenced :-( (This is due to
6024 missing support for scanning thread-specific data in the Boehm GC
6025 - the io-layer keeps a GC-visible hash of pointers to TLS data.)
6027 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
6029 * reflection.c: ensure streams and tables are first allocated with
6030 ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
6032 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
6034 * icall.c: fixed GetElementType for byrefs (bug# 44792).
6036 2003-06-13 Zoltan Varga <vargaz@freemail.hu>
6038 * reflection.c (mono_reflection_create_runtime_class): Add support for
6039 properties to dynamically created classes.
6040 * reflection.c: Fix a few places where non-MonoObjects were inserted
6041 into the tokens hashtable.
6043 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
6045 * object.c: some support to handle out of memory exceptions.
6047 2003-06-12 Dietmar Maurer <dietmar@ximian.com>
6049 * marshal.c (mono_marshal_get_native_wrapper): support reference
6052 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
6054 * object.h, object.c: more portability stuff from Bernie Solomon.
6055 Unexport mono_object_allocate(). Added mono_object_unbox ().
6056 Set exitcode when an unhandled exception is thrown.
6058 2003-06-11 Dietmar Maurer <dietmar@ximian.com>
6060 * marshal.c (mono_marshal_get_native_wrapper): use custom
6061 marshaler for return types.
6063 2003-06-10 Dick Porter <dick@ximian.com>
6065 * socket-io.c: Don't assume that one of struct ip_mreqn or struct
6066 ip_mreq is available
6068 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
6070 * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
6071 mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
6072 by Bernie Solomon <bernard@ugsolutions.com>.
6074 2003-06-10 Zoltan Varga <vargaz@freemail.hu>
6076 * gc.c (mono_gc_init): Avoid error message on shutdown when
6077 GC_DONT_GC=1 is used.
6079 * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal):
6080 New icall to return the GUID of a module.
6082 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
6084 * class.c: ensure instance size always includes the parent's size
6085 even whem class size is set explicitly (fixes bug#44294).
6087 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
6089 * profiler.h, profiler.c: made the simple profiler thread-safe,
6090 get more accurate timing info. Allow the loading of an
6091 externally-developed profiler module.
6093 2003-06-05 Dietmar Maurer <dietmar@ximian.com>
6095 * marshal.c (mono_marshal_get_native_wrapper): improved
6096 class/byref arguments.
6097 (mono_marshal_get_native_wrapper): better string marshaling support.
6099 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
6101 * class.c: ensure .pack and .size are handled correctly and
6102 simplified layout of static fields.
6104 2003-06-04 Dietmar Maurer <dietmar@ximian.com>
6107 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
6109 * loader.c (mono_lookup_pinvoke_call): look for modules in the
6110 current directory (fix bug 44008)
6112 2003-06-03 Dietmar Maurer <dietmar@ximian.com>
6114 * marshal.c (mono_marshal_get_native_wrapper): started support for
6116 (mono_delegate_to_ftnptr): consider marshalling specifications
6118 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
6120 * reflection.c, reflection.h: emit custom marshal info.
6122 2003-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6124 * object.c: free the GError.
6125 * icall.c: added CloseEvent_internal.
6127 (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
6130 2003-06-01 Zoltan Varga <vargaz@freemail.hu>
6132 * loader.c (mono_method_get_signature): Add support for dynamic
6135 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
6137 * reflection.c: fixed bug #43905.
6139 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
6141 * class.c, domain.c, icall.c, metadata.h, object.h: support for
6142 handling TypedReference and ArgIterator.
6143 * loader.c, loader.h: added function to get signature at call site.
6145 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
6147 * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more
6148 data readonly. Buglets and warning fixes. Some MethodSpec support.
6150 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
6152 * class.h, class.c, object.c: remove relative numbering support.
6154 2003-05-26 Miguel de Icaza <miguel@ximian.com>
6156 * marshal.c (mono_marshal_get_native_wrapper): For now, do not
6157 free the string, until we get a chance to fix Gtk#
6159 2003-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6161 * marshal.c: revert last patch.
6163 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
6165 * icall.c: updates for new mono_class_vtable() not calling
6166 the type constructor anymore.
6168 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
6170 * object.h, object.c: separate vtable creation from type
6171 initialization. Make running the .cctor thread safe.
6173 2003-05-26 Dietmar Maurer <dietmar@ximian.com>
6175 * marshal.c (mono_marshal_get_native_wrapper): free string return values.
6177 2003-05-21 Dietmar Maurer <dietmar@ximian.com>
6179 * loader.c (mono_get_method): consider calling convention
6181 2003-05-21 Zoltan Varga <vargaz@freemail.hu>
6183 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
6184 to return the invisible global type for a module.
6186 * reflection.c (mono_image_build_metadata): Emit global fields too.
6188 2003-05-20 Peter Williams <peterw@ximian.com>
6190 * loader.c (mono_lookup_internal_call): Add a few newlines.
6192 2003-05-20 Zoltan Varga <vargaz@freemail.hu>
6194 * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
6197 * appdomain.c (set_domain_search_path): Recalculate search path when
6198 AppDomainSetup.PrivateBinPath changes.
6200 * object.c (mono_class_compute_gc_descriptor): It turns out some
6201 parts of the class libs (like System.Thread) holds pointers to
6202 GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
6203 to treat native int a pointer type here.
6205 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
6207 * appdomain.h, domain.c: add hashtable for jump target resolution.
6209 2003-05-19 Zoltan Varga <vargaz@freemail.hu>
6211 * reflection.h reflection.c icall.c: Added new icalls
6212 GetManifestResourceInfoInternal, GetModulesInternal and support
6215 2003-05-16 Dick Porter <dick@ximian.com>
6219 * file-io.c: Implement System.IO.MonoIO::GetTempPath
6221 2003-05-14 Lluis Sanchez Gual <lluis@ideary.com>
6223 * object.c: mono_store_remote_field: little fix to previous patch.
6225 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
6227 * class.c: add constructors to array classes.
6228 * icall.c: special case array construction for InternalInvoke (),
6230 2003-05-14 Zoltan Varga <vargaz@freemail.hu>
6232 * class.h class.c reflection.c object.c: Added support for field
6233 defaults in dynamically generated classes.
6235 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
6237 * reflection.c: properly encode charset for ddlimport.
6239 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
6241 * threads.c: allow compiling without GC.
6243 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
6245 * appdomain.h, object.c, object.h, threads.c, threads.h: added
6246 handling of thread static data.
6248 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6250 * reflection.h, reflection.c: added mono_custom_attrs_free ().
6252 2003-05-13 Dietmar Maurer <dietmar@ximian.com>
6254 * class.c (mono_array_class_get): always set the serializable flags
6255 (mono_array_class_get): always set the SEALED attribute for array types
6257 2003-05-12 Dietmar Maurer <dietmar@ximian.com>
6259 * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
6260 attributes (fix for bug 42021).
6262 2003-05-12 Dick Porter <dick@ximian.com>
6264 * gc.c: Don't run finalizers when the finalizer thread is
6265 finishing up, because the default domain has already been
6268 2003-05-11 Miguel de Icaza <miguel@ximian.com>
6270 * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
6271 value is null, we should throw an exception. This is slightly
6272 different than the other conventions used for the constructor.
6274 2003-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6276 * socket-io.c: fixed windows build.
6278 2003-05-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6280 * socket-io.c: patch by Jerome Laban that fixes bug #42393.
6282 2003-05-10 Zoltan Varga <vargaz@freemail.hu>
6284 * object.c (mono_string_new_wrapper): Compatibility fix for MS
6287 2003-05-09 Zoltan Varga <vargaz@freemail.hu>
6289 * class.c (mono_class_layout_fields): Add experimental GC aware
6290 auto layout facility. Requires class library changes to work correctly.
6292 (mono_class_setup_vtable): Avoid overriding explicit interface
6293 method implementations. Fixes iface3.exe test.
6295 * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
6297 (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
6298 (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
6300 * metadata.h: Add new type classification macro which determines
6301 whenever the type holds an object reference.
6303 2003-05-08 Dietmar Maurer <dietmar@ximian.com>
6305 * marshal.c (mono_marshal_get_native_wrapper): cleanups
6307 2003-05-07 Zoltan Varga <vargaz@freemail.hu>
6309 * gc.c (finalizer_thread): Work around a GC bug.
6311 2003-05-07 Dietmar Maurer <dietmar@ximian.com>
6313 * marshal.c (emit_struct_conv): allow unions
6315 * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
6317 2003-05-06 Dietmar Maurer <dietmar@ximian.com>
6319 * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
6321 2003-05-06 Martin Baulig <martin@ximian.com>
6323 * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
6325 2003-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6328 (Select_internal): allow NULLs, don't create arrays if not needed.
6329 Coupled with Socket.cs changes.
6332 (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
6333 register a finalizer for it that will close the semaphore handle. This
6334 fixes the leak and make Lupus' test run with > 4080 loops.
6336 2003-05-05 Dietmar Maurer <dietmar@ximian.com>
6338 * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
6339 Jerome Laban (bug #42287)
6341 2003-05-02 Martin Baulig <martin@ximian.com>
6343 * debug-mono-symfile.h
6344 (MonoSymbolFile): Moved declaration into mono-debug.h.
6345 (MonoDebugMethodJitInfo): Likewise.
6346 (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
6348 (_mono_debug_address_from_il_offset): Take a
6349 MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
6352 (MonoDebugDomainData): New struct.
6353 (mono_debug_get_domain_data): New function.
6354 (mono_debug_add_method): Take an additional `MonoDomain *'
6356 (mono_debug_source_location_from_address): Likewise.
6357 (mono_debug_il_offset_from_address): Likewise.
6358 (mono_debug_address_from_il_offset): Likewise.
6360 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
6362 * reflection.c: one more check for null type in custom attrs.
6364 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6366 * reflection.c: avoid warning (comparison is always false due to limited
6367 range of data type).
6369 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6371 * icall.c: throw an exception in Type.GetField if the argument 'name'
6374 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
6376 * reflection.c: fixed handling of enums in named arguments to custom
6377 attributes (bug #42123).
6379 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
6381 * reflection.c: use the right array element type and handle
6382 a null for a Type argument, too.
6384 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
6386 * reflection.c: handle arrays as arguments to custom attributes.
6388 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
6390 * reflection.c: handle a string value in a custom attr
6391 ctor that takes an object.
6393 2003-04-29 Dietmar Maurer <dietmar@ximian.com>
6395 * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
6398 2003-04-28 Zoltan Varga <vargaz@freemail.hu>
6400 * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
6402 2003-04-27 Martin Baulig <martin@ximian.com>
6404 * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
6405 MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
6406 MONO_DEBUGGER_EVENT_BREAKPOINT.
6407 (mono_breakpoint_trampoline_code): Removed.
6408 (mono_debugger_event_handler): The last argument is now a
6410 (mono_debugger_insert_breakpoint_full): Removed the
6411 `use_trampoline' argument.
6412 (mono_debugger_method_has_breakpoint): Likewise.
6413 (mono_debugger_trampoline_breakpoint_callback): Renamed to
6414 mono_debugger_breakpoint_callback(); take the method and
6415 breakpoint number as arguments.
6417 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
6419 * metadata.c: fix off by one when loading parameters attributes.
6421 2003-04-24 Martin Baulig <martin@ximian.com>
6423 * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
6425 2003-04-24 Martin Baulig <martin@ximian.com>
6427 * mono-debug-debugger.c: Moved all code which interacts with the
6430 * debug-mono-symfile.c: This code now just deals with the symbol
6431 file itself, the debugger code is now in mono-debug-debugger.c.
6433 2003-04-23 Martin Baulig <martin@ximian.com>
6435 * mono-debug.c (mono_debug_source_location_from_il_offset):
6436 New method; like mono_debug_source_location_from_address(), but
6437 takes an IL offset instead of a machine address.
6439 2003-04-23 Martin Baulig <martin@ximian.com>
6441 * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
6442 `line' field; this is now computed by the debugger.
6444 2003-04-23 Martin Baulig <martin@ximian.com>
6446 * mono-debug.[ch]: New files. This is the new debugging interface.
6448 * mono-debug-debugger.[ch]: New files. Moved all code which
6449 interacts with the Mono Debugger here.
6451 2003-04-22 Dietmar Maurer <dietmar@ximian.com>
6453 * domain.c (mono_init): initialize mono_defaults.monitor_class
6455 2003-04-21 Miguel de Icaza <miguel@ximian.com>
6457 * reflection.c (method_encode_code): Add a spicy exception to help
6458 future compiler authors.
6460 2003-04-21 Martin Baulig <martin@ximian.com>
6463 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
6464 Make this work with relative pathnames; g_filename_to_uri() needs
6465 an absolute filename.
6467 2003-04-18 Zoltan Varga <vargaz@freemail.hu>
6469 * icall.c: Track name changes in Object and ValueType.
6471 2003-04-18 Dietmar Maurer <dietmar@ximian.com>
6473 * metadata.c (mono_type_stack_size): size should be a multiple of
6476 2003-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6479 (internal_domain_finalize): moved into mono_domain_finalize. No need
6480 to create another thread because the finalizers will be run in the
6483 (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
6484 (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
6485 to be run (MS does this too).
6487 2003-04-17 Zoltan Varga <vargaz@freemail.hu>
6489 * object.c (mono_class_compute_gc_descriptor): Update comment.
6491 * loader.h marshal.h marshal.c: Added synchronized method wrappers.
6493 * image.h: Add synchronized wrapper cache.
6495 * image.c (do_mono_image_open): Initialize cache.
6497 * reflection.c (create_dynamic_mono_image): Initialize cache.
6499 2003-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6501 * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
6502 ves_icall_System_Buffer_ByteLengthInternal.
6504 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
6506 * reflection.c: setup klass->nested_in earlier. Allow
6507 a dash in the assembly name.
6509 2003-04-15 Dietmar Maurer <dietmar@ximian.com>
6511 * metadata.c (mono_type_to_unmanaged): dont access
6512 type->data.klass for MONO_TYPE_OBJECT
6513 (mono_type_to_unmanaged): consider System.Delegate class
6515 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
6517 * class.c: just setup supertypes in the proper place instead of
6518 initializing the full element class for arrays.
6520 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
6522 * class.c: ensure the element class of arrays is initialized.
6523 Setup the supertype info for array classes, too.
6525 2003-04-14 Miguel de Icaza <miguel@ximian.com>
6527 * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
6529 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6531 * Makefile.am: re-added -m option when running cygpath. This way,
6532 MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
6534 * mono-config.c: same codepath for locating mono config file for WIN32
6536 * assembly.c: if mono_assembly_setrootdir is called, don't override
6539 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6541 * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
6542 MONO_ASSEMBLIES variable.
6544 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
6546 * icall.c: added Assembly::GetNamespaces() icall.
6548 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6550 * reflection.c: fix from Jaak <jaak@zd.com.pl>.
6552 2003-04-10 Lluis Sanchez Gual <lluis@ideary.com>
6554 * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
6555 * object.c: fixed bug in the construction of vtable for proxies
6557 2003-04-10 Zoltan Varga <vargaz@freemail.hu>
6559 * object.c (mono_array_new): Mark mono_array_new as an icall.
6561 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6563 * class.c: fixed test for public method when overriding interfaces.
6566 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
6568 * appdomain.h, domain.c: added mono_domain_foreach() to
6569 be able to access the currently loaded appdomains.
6570 * object.c: make string interning work across sppdomains.
6571 Mark some functions for use as icalls.
6573 2003-04-09 Zoltan Varga <vargaz@freemail.hu>
6575 * class.c reflection.c: Fix memory leaks reported by ccmalloc.
6577 * reflection.h reflection.c: Allocate long living data using
6578 GC_MALLOC_ATOMIC so the collector does not need to scan it.
6580 * reflection.c: Double the allocation size in streams instead of
6581 increasing it, to prevent unneccesary copying on large assemblies.
6583 * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
6584 creation if the assembly does not have the Run flag set.
6586 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
6588 * class.h: avoid the C++ keywords in header files (Jerome Laban
6589 spotted and fixed this).
6591 2003-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6594 (mono_unhandled_exception): fill in the arguments for the
6595 UnhandledException event. Only trigger that event for the default
6596 domain (as MS does).
6598 2003-04-04 Zoltan Varga <vargaz@freemail.hu>
6600 * object.c: Improve typed allocation stuff based on suggestions from
6601 Paolo. Also turn it on if the GC library supports it.
6603 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
6605 * object.c object.h class.h: Added experimental typed allocation
6606 facility using the interfaces in gc_gcj.h.
6608 * os/gc_wrapper.h: Added new include files.
6610 2003-04-03 Martin Baulig <martin@ximian.com>
6612 All the following changes are conditional to `WITH_INCLUDED_LIBGC'
6613 which is not yet enabled by default.
6615 * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
6617 (mono_gc_lock, mono_gc_unlock): New static functions.
6619 * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
6620 functions; stop/start the world for the garbage collector. This
6621 is using the windows API; we need to complete the SuspendThread()/
6622 ResumeThread() implementation in the io-layer to make this work on Unix.
6623 (mono_gc_push_all_stacks): New public function; tells the garbage
6624 collector about the stack pointers from all managed threads.
6626 2003-04-03 Martin Baulig <martin@ximian.com>
6628 * object.h (MonoThread): Added `gpointer stack_ptr'.
6630 * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
6632 2003-04-03 Martin Baulig <martin@ximian.com>
6634 * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
6636 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
6638 * reflection.c (typebuilder_setup_fields): Initialize field.first and
6641 2003-04-02 Miguel de Icaza <miguel@ximian.com>
6643 * loader.c (mono_lookup_internal_call): Report the corlib that is
6646 2003-03-05 Aleksey Demakov <avd@openlinksw.com>
6648 * icall.c (ves_icall_type_GetTypeCode): fixed check for
6649 System.DBNull (it's class not valuetype).
6651 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
6653 * reflection.c: set table_idx in MonoReflectionArrayMethod object even
6654 if the array method was already assigned a token (fixes bug#40646).
6656 2003-04-02 Zoltan Varga <vargaz@freemail.hu>
6658 * reflection.c (mono_reflection_get_type): Attempt type resolve even
6659 if no assembly is given.
6661 2003-04-01 Miguel de Icaza <miguel@ximian.com>
6663 * metadata.h: Added the new tables.
6665 * row-indexes.h: Added definitions for new tables.
6667 * metadata.c: Add schemas for new tables, and add support for
6668 computing the sizes of them.
6670 * class.c: Update for handling the new type cases.
6672 2003-04-01 Dietmar Maurer <dietmar@ximian.com>
6674 * metadata.h (MONO_TYPE_IS_VOID): new macro
6676 2003-03-31 Martin Baulig <martin@ximian.com>
6678 * threads.h (MonoThreadCallbacks): Added `thread_created'.
6680 * threads.c (mono_thread_new_init): Call `thread_created' in the
6681 mono_thread_callbacks.
6683 2003-03-31 Lluis Sanchez Gual <lluis@ideary.com>
6685 * loader.h: added marshalbyrefobject_class to mono_defaults
6686 * domain.c: added initialization of mono_defaults.marshalbyrefobject_class
6687 * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
6688 generation of output parameters.
6689 ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
6690 * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
6691 contextbound and the target object belongs to the context of the caller.
6692 * object.h: added context and unwrapped_server variables in MonoRealProxy.
6693 * object.c: Implemented support for interfaces and abstract classes
6694 in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
6695 proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
6697 2003-03-30 Zoltan Varga <vargaz@freemail.hu>
6699 * class.h class.c (mono_class_is_subclass_of): New function.
6701 * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
6702 routines for most common case (calls from ArrayList::ToArray).
6704 * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown
6705 routine so programs which call Environment::Exit() can be profiled.
6707 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
6708 Added MONO_ARCH_SAVE_REGS.
6710 * icall.c (ves_icall_type_is_subtype_of): Use new function.
6712 2003-03-29 Miguel de Icaza <miguel@ximian.com>
6714 * blob.h: Add a couple of new MonoType types definitions.
6716 * tabledefs.h: Add a couple of new call convs.
6718 2003-03-27 Zoltan Varga <vargaz@freemail.h>
6720 * reflection.h (MonoReflectionDynamicAssembly): track changes in
6721 the layout of the class.
6723 * reflection.c (alloc_table): double the size on overflow to avoid
6724 unnecessary copying.
6726 * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
6727 avoid filling out metadata tables and blobs. Also set mb->ilgen to
6728 null so it can be garbage collected.
6730 2003-03-27 Zoltan Varga <vargaz@freemail.hu>
6732 * reflection.c (mono_reflection_get_type): Return the resolved type
6733 only if it is in the assembly we searched.
6735 * reflection.c (ensure_runtime_vtable): Initialize method slots.
6737 * class.c (mono_class_setup_vtable): Set the slot of the overriding
6740 2003-03-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6743 (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
6744 the right one is 'file:///blah', but MS allows it.
6746 (mono_assembly_open): allow 'file://blah'
6748 Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
6750 2003-03-26 Aleksey Demakov <avd@openlinksw.com>
6752 * socket-io.c: fixes bug #40310.
6754 2003-03-25 Zoltan Varga <vargaz@freemail.hu>
6756 * reflection.c (mono_reflection_parse_type): handle deeply nested
6759 * reflection.c (mono_image_create_token): Use unique token values
6760 since they will be put into a hash table.
6762 * class.c (mono_class_setup_vtable): If a method occurs in more than
6763 one place in the vtable, and it gets overriden, then change the
6764 other occurances too.
6766 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6767 object as return type.
6769 2003-03-22 Pedro MartÃnez Juliá <yoros@wanadoo.es>
6771 * icall.c: Deleted "ToString" implementation for double and float
6772 because they are full implemented in managed code.
6774 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
6776 * reflection.c, reflection.h: implemented and exported functions
6777 to retrieve info about custom attributes.
6779 2003-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6781 * appdomain.c: moved Uri handling to assembly.c
6782 * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
6783 work when using a file Uri in *nix and windows.
6785 * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
6786 GetReferencedAssemblies.
6788 2003-03-18 Dick Porter <dick@ximian.com>
6790 * icall.c: Rename a couple of internal calls
6792 * threads.c: Set the thread state to Stopped when a thread exits.
6795 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
6797 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
6800 * object.c (mono_class_vtable): fix warning.
6802 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
6804 * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
6806 * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
6808 (method_encode_clauses): Create exception info structures in the right
6810 (mono_reflection_setup_internal_class): Initialize supertypes field.
6812 * class.c object.c: Handle interfaces which implement other interfaces
6815 * class.h class.c: Move the supertypes array initialization code into
6816 a separate function so it can be used for dynamic types too. Also call
6817 it earlier, in mono_class_init(), since it can be used before the
6818 type is initialized.
6820 2003-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6824 * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
6829 * object.c: remove warnings.
6831 2003-03-13 Martin Baulig <martin@ximian.com>
6833 * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
6834 (MonoDebugLexicalBlockEntry): New types.
6836 * debug-mono-symfile.c
6837 (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
6839 2003-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6841 * process.c: ret can be any non-zero value accroding to MS doc.
6843 2003-03-07 Miguel de Icaza <miguel@ximian.com>
6845 * class.c (mono_marshal_load_type_info): Fix buglet: Noticed when
6846 fixing a warning for a miss-used prototype, would have cause
6847 random memory corruption.
6849 2003-03-07 Martin Baulig <martin@ximian.com>
6851 * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
6852 getting really annoying ....
6854 2003-03-07 Zoltan Varga <vargaz@freemail.hu>
6856 * reflection.c (fixup_method): added support for array methods.
6858 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
6860 * socket-io.c: handle case when AF_INET6 and AF_IPX are not defined
6861 (pointed out by Michael Adams).
6863 2003-03-04 Dick Porter <dick@ximian.com>
6865 * icall.c: Temporarily reverted the Double and Single ToString()
6866 change, because it broke nunit.
6868 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
6870 * object.h, threads.h: make include files compatible with C++
6871 (patch by Jerome Laban <jlaban@wanadoo.fr>).
6873 2003-03-04 Pedro MartÃnez Juliá <yoros@wanadoo.es>
6875 * icall.c: Erased ToString helper functions for Double and Single.
6876 Now, that implementations ar all in managed code (Double and Single
6879 2003-03-03 Lluis Sanchez Gual <lluis@ideary.com>
6881 * appdomain.c: Added method for initializing the default context of
6882 a domain. Added internal call for getting the default context.
6883 * appdomain.h: Added context variable in MonoDomain struct.
6884 * domain.c: mono_domain_set also sets the default context of the domain
6885 * icall.c: Mapped internal method InternalGetDefaultContext.
6886 * object.c: mono_object_get_virtual_method returns always a remoting
6887 wrapper if the object is a transparent proxy.
6888 mono_runtime_invoke_array: when creating an object by calling the
6889 constructor, if the created object is a proxy, then the constructor should
6890 be called using the a remoting wrapper.
6892 2003-03-03 Dick Porter <dick@ximian.com>
6894 * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
6895 variable so it compiles on solaris. Problem spotted by
6896 Christopher Taylor <ct@cs.clemson.edu>
6898 2003-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6901 (get_info_from_assembly_name): don't leak value.
6904 (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
6907 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
6909 * assembly.c: export mono_image_load_references ().
6910 * class.c: handle function pointers. mono_class_from_name() now
6911 supports nested type names directly.
6913 2003-02-28 Zoltan Varga <vargaz@freemail.hu>
6915 * reflection.h reflection.c: Encode already created dynamic methods
6916 and fields correctly as a DEF instead of a REF.
6918 * reflection.c: Get rid of the force_ref argument to
6919 mono_image_typedef_or_ref since it was wrong in the first place.
6921 * string-icalls.c: add error checking to string constructors according
6924 * reflection.c: Emit types in the order their TypeBuilders were
6925 created. Previously, a new table index was assigned to each type before
6926 the tables were emitted. This was wrong because the signature blob
6927 might already refer to a type by its original table index.
6929 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
6931 * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
6934 2003-02-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6936 * Makefile.am: make assemblies dir have \ instead of / on windows.
6938 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
6940 * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
6941 iterate over the NESTEDCLASS table using a linear search since the
6942 table is not guaranteed to be sorted by the secondary key.
6944 * class.c (mono_class_create_from_typedef): fixed up call to
6945 mono_metadata_nesting_typedef.
6947 2003-02-27 Dietmar Maurer <dietmar@ximian.com>
6949 * marshal.c (mono_string_to_byvalstr): clear the memory as
6950 suggested by Jerome Laban <jlaban@wanadoo.fr>
6952 2003-02-26 Dick Porter <dick@ximian.com>
6954 * process.c: Cope with padding in .rsrc blocks
6956 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
6958 * metadata.h: reverted the filter_len change, it breaks reflection
6960 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
6962 * metadata.h: added a new field to store the filter_len
6965 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
6967 * reflection.c: handle custom attributes for types and members
6968 created with Reflection.Emit (bug#38422).
6970 2003-02-22 Zoltan Varga <vargaz@freemail.hu>
6972 * reflection.c: define RTSpecialName automatically for constructors for
6973 compatibility with MS.NET.
6975 * reflection.c (mono_reflection_create_runtime_class): initialize
6976 nested_in field of dynamically created classes.
6978 2003-02-22 Martin Baulig <martin@ximian.com>
6980 * debug-mono-symfile.h: Incremented version number.
6982 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
6984 * object.h icall.c process.c: fix warnings.
6986 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
6988 * appdomain.h appdomain.c:
6989 (mono_domain_try_type_resolve): split the
6990 name_or_tb argument into a name and a tb argument.
6991 (mono_domain_has_type_resolve): new function to check whenever the
6992 application has registered a TypeResolve event handler.
6994 * icall.c reflection.h reflection.c: move the type resolve logic into
6995 mono_reflection_get_type () so it will be invoked when
6996 Assembly::GetType () is called.
6999 (mono_reflection_get_type): renamed to get_type_internal.
7000 (mono_reflection_get_type): fixed type name generation so it works
7001 for nested types too.
7002 (mono_reflection_get_type): call has_type_resolve () to avoid the
7003 costly type name generation if there is no resolve event handler.
7005 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
7007 * class.c, image.c: load exported types from file references.
7009 2003-02-19 Lluis Sanchez Gual <lluis@ideary.com>
7011 * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
7012 used to cache the managed methods used to create proxies and make
7013 remote invocation of methods.
7014 * class.h: Added in MonoVTable a flag to indicate that a class needs
7015 to be remotely created.
7016 * object.c: Modified the method mono_class_vtable(). It now initializes
7017 the remote flag of the vtable. Modified mono_object_new_specific(),
7018 so now it checks the remote flag.
7019 * icall.c: Added a couple of internal methods, one for enabling instance
7020 creation interception for a type, and one for creating objects bypassing
7023 2003-02-18 Martin Baulig <martin@ximian.com>
7025 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
7026 New interncall to get a method's metadata token.
7028 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
7029 New interncall for the debugger.
7031 2003-02-18 Dietmar Maurer <dietmar@ximian.com>
7033 * class.c (mono_class_setup_vtable): allocate supertype array
7035 2003-02-18 Martin Baulig <martin@ximian.com>
7037 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
7039 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7042 (assembly_name_to_aname): jump over unknown properties (i've found
7043 something like: 'type, assembly, version=xxx, custom=null, public...',
7044 so now will ignore custom=null and still get the rest of the values).
7046 2003-02-17 Dick Porter <dick@ximian.com>
7048 * threads.c: Have Thread.Start() wait for a semaphore to signal
7049 that the thread has set up all its local data. This fixes bug
7050 34323, where Abort() raced the new thread's TLS data.
7052 Also removes the handle_store() call from start_wrapper, because
7053 threads are now always created suspended and there is no longer a
7054 race between the parent and child threads to store the info.
7056 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
7058 * image.c: explain the #- heap issue in a message, hopefully
7059 avoiding FAQs on mono-list.
7061 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7064 (GetEntryAssembly): if the domain has not invoked
7065 AppDomain.ExecuteAssembly yet, return the assembly of the default
7068 2003-02-16 Zoltan Varga <vargaz@freemail.hu>
7070 * class.c (mono_ldtoken): make it work in dynamic assemblies.
7072 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
7074 * metadata.c, reflection.c: simple speedup to type hash
7077 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
7079 * image.c, image.h, class.c, assembly.c: move module loading
7080 to MonoImage. When loading metadata, consider alignemnet from
7081 the start of metadata, not from the metadata address in memory.
7083 2003-02-13 Zoltan Varga <vargaz@freemail.hu>
7085 * reflection.c (mono_reflection_get_custom_attrs): Added support for
7086 AssemblyBuilder objects. Factored out custom attribute creation into
7087 a separate function.
7088 (create_custom_attr): new function to create custom attributes.
7090 2003-02-12 Miguel de Icaza <miguel@ximian.com>
7092 * Makefile.am: Got tired of typing the full pathname to pedump.
7093 Until there is another option, am installing this.
7095 2003-02-12 Dietmar Maurer <dietmar@ximian.com>
7097 * class.c (class_compute_field_layout): always set field->parent
7098 (mono_ldtoken): use mono_defaults.fieldhandle_class;
7100 2003-02-11 Dick Porter <dick@ximian.com>
7103 * monitor.c: Rewrote Monitor, making lock much faster and
7104 Pulse/Wait work as specified. Also uses much fewer handles, and only
7105 creates them as needed.
7107 * exception.c: Added SynchronizationLockException
7109 * threads.c: Deleted old Monitor implementation. The new one is
7112 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
7114 * class.c: handled TypedReference type code. Set the correct size for
7115 class data. Setup interface_offsets for interface classes, too.
7117 2003-02-09 Martin Baulig <martin@ximian.com>
7119 * debug-mono-symfile.h: Reflect latest symbol writer changes.
7121 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
7123 * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
7124 * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
7125 * object.c: fixed mono_object_get_virtual_method () for interfaces.
7126 * verify.c: check for code that runs after the end of the method.
7128 2003-02-08 Pedro MartÃnez Juliá <yoros@wanadoo.es>
7130 * icall.c: Added "System.Math::Floor", "System.Math::Round" and
7131 "System.Math::Round2".
7132 * sysmath.h: Added Floor, Round and Round2 definitions.
7133 * sysmath.c: Modified certain functions that were not 100% compliant
7134 with MS.NET (math precision) and added the implementation of Floor,
7137 2003-02-07 Martin Baulig <martin@ximian.com>
7139 * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
7141 2003-02-07 Martin Baulig <martin@ximian.com>
7143 * debug-mono-symfile.c: Reflected latest symwriter changes.
7144 (mono_debug_create_mono_symbol_file): Removed.
7145 (mono_debug_open_mono_symbol_file): Take an argument which
7146 specifies whether to create a dynamic symbol file.
7148 2003-02-07 Dietmar Maurer <dietmar@ximian.com>
7150 * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
7152 2003-02-05 Martin Baulig <martin@ximian.com>
7154 * reflection.c (mono_image_build_metadata): Make this public,
7155 protect it against being called multiple times, don't create
7156 resources and don't build the compressed metadata here.
7157 (mono_image_create_pefile): Do this here.
7160 ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
7162 2003-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7164 * socket-io.c: fixed bug #36322.
7166 2003-02-06 Piers Haken <piersh@friskit.com>
7170 * debug-mono-symfile.c:
7176 * socket-io.c: warning cleanups
7178 2003-02-06 Dietmar Maurer <dietmar@ximian.com>
7180 * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
7181 function. works like remoting invoke, but does a check for the Proxy first.
7183 2003-02-05 Miguel de Icaza <miguel@ximian.com>
7185 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
7187 2003-02-05 Dietmar Maurer <dietmar@ximian.com>
7189 * marshal.c (mono_marshal_get_native_wrapper): only allocate an
7191 (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
7192 (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
7194 * object.c (mono_store_remote_field_new): used by the new jit
7195 instead of mono_store_remote_field
7196 (mono_load_remote_field_new): used by the new jit
7197 instead of mono_load_remote_field
7199 2003-02-05 Patrik Torstensson
7201 * appdomain.c: changed unload to take the domain id instead
7204 * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
7207 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7209 * appdomain.c: don't look for assemblies in ApplicationBase if
7210 PrivateBinPathProbe is set.
7212 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7214 * object.c: make the first argument in main_args contain the absolute
7215 path to the assembly. Fixes bug #37511.
7217 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7219 * icall.c: get correct UTC offset for countries not using daylight
7220 time saving. Fixes bug #30030.
7222 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7224 * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
7225 and 1 are the family).
7227 2003-02-04 Dietmar Maurer <dietmar@ximian.com>
7229 * icall.c (ves_icall_InternalExecute): removed wrong assertion
7231 * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
7233 2003-02-04 Zoltan Varga <vargaz@freemail.hu>
7235 * reflection.c: added support for SignatureHelper tokens, which is
7236 needed by the Calli opcode.
7238 * reflection.h: track changes to SignatureHelper class.
7240 * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
7242 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7244 * appdomain.c: fixed loading assemblies from PrivateBinPath.
7246 2003-02-03 Patrik Torstensson
7247 * appdomain.[c|h], domain.c :
7248 - Added support for getting a domain via domain id
7249 - Support for setting and getting domain from System.AppDomain
7250 (used in cross appdomain channel)
7251 - Added support for get/set for a MonoAppContext on a thread
7252 (Context class in System.Runtime.Remoting.Contexts),
7253 - Removed hack in Get/SetData and ExecuteAssembly.
7255 * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
7256 the managed world to get control when a proxy is created.
7258 * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
7260 2003-02-03 Miguel de Icaza <miguel@ximian.com>
7263 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
7264 Populate the codebase field as well.
7266 2003-02-02 Martin Baulig <martin@ximian.com>
7268 * debug-mono-symfile.c
7269 (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
7270 (mono_debug_symfile_add_method): Allow interncalls.
7272 2003-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7274 * icall.c: throw parse exception if strtod fails or the string is empty.
7276 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
7278 * marshal.c: handle object type separately from defined
7281 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
7283 * marshal.c: handle NATIVE_LPSTR for strings when it's
7284 explicitly specified.
7286 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
7288 * reflection.c, reflection.h, icall.c: setup the reflection
7289 handle cache for ModuleBuilders and AssemblyBuilders.
7291 2003-01-30 Dietmar Maurer <dietmar@ximian.com>
7293 * reflection.c (reflection_methodbuilder_to_mono_method): set
7296 2003-01-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7298 * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
7300 2003-01-29 Dick Porter <dick@ximian.com>
7302 * threads.c: No need for the fake_thread kludge now that Thread
7303 doesn't run a class constructor
7305 2003-01-29 Dick Porter <dick@ximian.com>
7307 * threads.c: Use g_direct_hash instead of the rather bogus
7310 2003-01-29 Dietmar Maurer <dietmar@ximian.com>
7312 * marshal.c (mono_marshal_get_native_wrapper): add check for null
7314 (mono_marshal_get_struct_to_ptr): generate valid IL code
7315 (mono_marshal_get_ptr_to_struct): generate valid IL code
7316 (*): correctly set sig->pinvoke, we need to memdup the signature
7319 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
7321 * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
7322 to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
7324 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
7326 * profiler.c: provide more callers information.
7328 2003-01-28 Dietmar Maurer <dietmar@ximian.com>
7330 * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
7332 * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
7334 * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
7336 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
7338 * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
7339 exception instead of going into an infinite loop on dates which it
7342 * string-icalls.c (ves_icall_System_String_get_Chars): raise
7343 out-of-range exception if needed.
7345 * class.c (mono_class_setup_vtable): allow a virtual method to provide
7346 an implementation for an interface method and to override an inherited
7347 method at the same time.
7348 Imagine a scenario when a virtual method is used to override a
7349 virtual abstract method in a parent class, and this same method
7350 provides an implementation for an method inherited from an interface.
7351 In this case, the interface resolution code will set im->slot, which
7352 means that the virtual method override pass will skip this method
7353 which means a pointer to the abstract method inherited from the parent
7354 will remain in the vtable of this non-abstract class.
7356 * class.c: (mono_class_setup_vtable): continue search for a real
7357 method if only an abstract method is found.
7359 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
7361 * reflection.c: add size to encoding for ByValStr and ByValArray
7362 marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
7364 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
7366 * class.c (mono_class_setup_vtable): pass the override info as an
7369 * class.c (mono_class_setup_vtable): set the slot of overriding methods
7372 * reflection.c (ensure_runtime_vtable); add support for method
7375 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
7377 * reflection.c (resolution_scope_from_image): Hack to work to work with
7380 * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and
7381 added a 'force_ref' argument to force this function to allways return
7382 a TypeRef. This is needed by mono_image_get_memberref_token ().
7384 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
7386 * reflection.c (mono_image_get_type_info): interfaces really don't have
7389 * reflection.c (mono_image_basic_init): fill out missing fields of
7392 * reflection.c (mono_image_basic_init): Invoke assembly load hooks for
7393 dynamic assemblies. This is required so dynamic assemblies show up in
7394 AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
7395 Type::GetType() etc. This is consistent with MS behaviour.
7397 * image.c image.h reflection.c: add newly created classes to the name
7398 cache so mono_class_get () will find them.
7400 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
7402 First part of changes to get IKVM.NET running under mono.
7404 * appdomain.h, appdomain.c: added new function
7405 mono_domain_try_type_resolve() which will emit TypeResolve events.
7406 This function will call AppDomain::DoTypeResolve to do the actual work.
7408 * class.h, class.c, loader.c, object.c, reflection.h, reflection.c:
7409 moved existing code dealing with dynamic tokens to a new function
7410 called mono_reflection_lookup_dynamic_token (). This function will
7411 raise TypeResolve events when appropriate. Since reflection.c is not
7412 part of libmetadata, a new hook function called
7413 mono_lookup_dynamic_token() is added to class.c which will call this.
7415 * assembly.h assembly.c: make the invoke_load_hook function public,
7416 so it can be called for dynamic assemblies.
7418 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
7420 * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the
7423 * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a
7424 MonoGHashTable, since it contains pointers to objects which the GC
7427 * assembly.c (search_loaded): remove unused variable.
7429 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
7431 * object.c: fixed issue exposed by gcc-generated IL programs
7432 that use RVA data for pointers.
7434 2003-01-25 Martin Baulig <martin@ximian.com>
7436 * threads.c (start_wrapper): Moved the initialization of
7437 `start_func' above the mono_new_thread_init() call to which we
7438 pass it as argument.
7440 2003-01-24 Martin Baulig <martin@ximian.com>
7442 * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
7443 the MonoThread pointer.
7445 2003-01-21 Miguel de Icaza <miguel@ximian.com>
7447 * icall.c: Rename `PowImpl' to Pow.
7449 2003-01-23 Dick Porter <dick@ximian.com>
7451 * threads.c (start_wrapper): Create a Thread object if needed, so
7452 the Main() thread can do the class initialisation in a subthread
7453 that has been set up to allow managed code execution.
7455 Pass the thread ID instead of the MonoThread pointer to the thread
7456 start and attach callbacks. This change is required, because the
7457 jit thread start callback must be called _before_ the Thread
7458 object can be created.
7460 (mono_thread_init): Removed much object creation code that is no
7461 longer needed. No managed code is called from here now.
7463 * object.c (mono_runtime_exec_managed_code): Create a subthread
7464 for Main, and call back to the runtime to use it.
7465 Set the exit code when Main exits.
7467 * gc.c: Make sure domain finalisation happens in a subthread.
7468 Re-enable threaded GC, fixing bug 31333 (again).
7470 * environment.c: System.Environment internall calls (so far just
7471 ExitCode is here, the others are still in icall.c)
7473 * appdomain.c (mono_runtime_cleanup): All threads running managed
7474 code should have finished before mono_runtime_cleanup() is
7475 reached, so no need to clean up threads.
7477 2003-01-22 Martin Baulig <martin@ximian.com>
7479 * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
7480 `gpointer func' arguments.
7481 (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
7482 but added `MonoThread *thread' argument.
7483 (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
7485 * threads.c (mono_new_thread_init): Added `gpointer func' argument
7486 and pass it to the mono_thread_start_cb callback.
7487 (mono_install_thread_callbacks): New public function to install a
7488 set of callbacks which are set by the debugger.
7489 (mono_thread_init): The last argument is now a MonoThreadAttachCB.
7491 2003-01-22 Martin Baulig <martin@ximian.com>
7493 * Makefile.am: Install debug-mono-symfile.h.
7495 2003-01-21 Aleksey Demakov <avd@openlinksw.com>
7497 * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
7499 2003-01-21 Dietmar Maurer <dietmar@ximian.com>
7501 * added the following fix from Jackson Harper <jackson@latitudegeo.com>
7502 * class.c (mono_ptr_class_get): correctly set access levels of pointers
7503 (mono_array_class_get): correctly set access levels of arrays
7505 2003-01-20 Patrik Torstensson
7506 * image.h (MonoAssemblyName): changed major, minor, build, revision
7507 from signed to unsigned.
7509 2003-01-20 sean kasun <skasun@azstarnet.com>
7511 * reflection.c (load_cattr_value): Now this handles
7512 MONO_TYPE_SZARRAY. Fixes bug #35629
7514 2003-01-20 Miguel de Icaza <miguel@ximian.com>
7516 * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
7519 2003-01-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7521 * decimal.c: fixed bug #26056.
7523 2003-01-17 Martin Baulig <martin@ximian.com>
7525 * gc.c: Raise an ExecutionEngineException instead of using g_error().
7527 2003-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7530 (mono_get_exception_type_initialization): new function.
7532 * object.c: throw a TypeInitializationException when an exception is
7533 thrown invoking the class constructor.
7535 2003-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7537 * reflection.c: fixed attribute reading.
7539 2003-01-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7542 (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
7543 provided, look for the type in the calling assembly and then in
7544 mscorlib; if the assembly name is provided, only try that one.
7546 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
7548 * object.c: register the vtable before there is a chance it's
7549 queried again recursively.
7551 2003-01-13 Duncan Mak <duncan@ximian.com>
7553 * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
7556 2003-01-12 Patrik Torstensson <totte@race-x-change.com>
7558 * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
7560 2003-01-11 Martin Baulig <martin@ximian.com>
7562 * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
7563 this to 20 for the release.
7565 2003-01-10 Dietmar Maurer <dietmar@ximian.com>
7567 * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
7569 * loader.c (mono_method_get_marshal_info): bug fix
7571 * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
7572 structures with explicit layout
7574 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
7576 * profiler.c: made the output more readable (and sorted).
7577 Added caller information for the allocation profiler.
7579 2003-01-09 Sebastien Pouliot <spouliot@videotron.ca>
7581 * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
7583 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7585 * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
7588 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
7590 * object.c, profiler.h, profiler.c, profiler-private.h:
7591 Added object allocation profiler.
7593 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
7595 * reflection.h, reflection.c: handle global methods.
7596 Compress blob entries.
7598 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
7600 * marshal.c: fix compilation.
7602 2003-01-09 Dietmar Maurer <dietmar@ximian.com>
7604 * loader.c (mono_method_get_marshal_info): impl.
7606 * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
7608 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7610 * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
7611 for reference types.
7613 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
7615 * loader.c: fixed off by one error in loaded parameter names.
7617 2003-01-08 Dietmar Maurer <dietmar@ximian.com>
7619 * marshal.c (mono_marshal_get_icall_wrapper): like
7620 mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
7621 instead of a MonoMethod.
7623 2003-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7625 * decimal.c: fixed bug #36537.
7627 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
7629 * marshal.c: throw a missing method exception if a
7630 P/Invoke method is not found.
7632 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
7634 * icall.c: allow a null this for constructors.
7636 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
7638 * icall.c: raise the proper exceptions if the arguments to the
7639 internal Invoke are incorrect.
7641 2003-01-03 Dietmar Maurer <dietmar@ximian.com>
7643 * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
7645 2003-01-03 Martin Baulig <martin@ximian.com>
7647 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
7649 2002-12-31 Martin Baulig <martin@ximian.com>
7651 * debug-mono-symfile.c: Completely rewrote the type section.
7652 Instead of using individual malloc()ed fields, we use one big
7653 continuous memory area and offsets into this area.
7654 See the comments in the source code for details.
7656 2002-12-30 Martin Baulig <martin@ximian.com>
7658 * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
7660 2002-12-30 Martin Baulig <martin@ximian.com>
7662 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
7663 line number table in this data blob instead of using an external
7666 2002-12-28 Martin Baulig <martin@ximian.com>
7668 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
7670 2002-12-22 Rachel Hestilow <hestilow@ximian.com>
7672 * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
7673 as a boxed return type.
7675 2002-12-21 Miguel de Icaza <miguel@ximian.com>
7678 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
7679 g_build_filename to properly get separators on the filename created.
7681 * object.h: Small change, introduce MonoMarshalByRefObject to
7682 track the layout of that structure in the C# universe as we make
7685 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
7687 * object.c: removed assert to allow static fields on interfaces.
7688 * loader.c: a TypeSpec may be used for any type, not just arrays.
7690 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
7692 * class.c, class.h: added mono_class_array_element_size ().
7693 Ignore static methods in interfaces.
7695 2002-12-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7697 * threads.c: fixed the build under cygwin.
7699 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
7701 * reflection.c: handle nullref constants. Allocate keys for
7702 reflection handles with the GC.
7704 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
7706 * threads.c, threads.h: added mono_thread_get_abort_signal()
7707 to get a suitable signal for thread abort.
7709 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
7711 * metadata.c: fix handling of ExportedType table.
7713 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7715 * icall.c: added WriteWindowsDebugString internal call.
7717 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7719 * reflection.h: added fields to match C# implementation.
7721 2002-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7723 * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
7725 2002-12-12 Juli Mallett <jmallett@FreeBSD.org>
7727 * gc.h, gc-internal.h: Rename header for GC internal calls to
7728 gc-internal.h from gc.h as to not clash with Boehm GC having its
7729 header installed as <gc.h> in outside include paths.
7730 * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
7731 * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
7733 2002-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7735 * icall.c: assign minor, build and revision in FillName.
7737 2002-12-11 Zoltan Varga <vargaz@freemail.hu>
7739 * image.h reflection.h reflection.c class.h class.c loader.c object.c:
7740 Added support for running code generated by Reflection.Emit.
7742 2002-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7744 * appdomain.c: check for NULL argument in LoadFrom.
7746 2002-12-10 Dick Porter <dick@ximian.com>
7748 * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
7750 2002-12-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7752 * appdomain.c: fix buglet when building exe file name. Handle full
7753 assembly name (needed after latest changes to AssemblyName).
7755 (mono_image_close): free some hashtables.
7757 2002-12-05 Dietmar Maurer <dietmar@ximian.com>
7759 * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN
7760 instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation
7761 on some systems (redhat 7.3)
7763 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
7765 * threads.c: delete the critical section of a sync block,
7766 spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
7768 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
7770 * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
7772 2002-12-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7774 * appdomain.[ch]: handle the assembly preload event to try loading the
7775 assemblies using the paths we have in the current domain.
7777 * assembly.[ch]: created an assembly preload hook that is called to try
7778 loading the assembly by other means that the ones provided here.
7780 * domain.c: initialize the domain search path.
7782 From now on, assemblies (TODO: except corlib and System) are loaded
7783 according to these rules when using mono_assembly_load ():
7785 1. It tries to load the assembly from the ApplicationBase
7786 of the current domain appending .dll and .exe (TODO: have to
7787 try loading from name/name.dll and name/name.exe).
7789 2. It tries the search path specified in PrivateBinPath for the
7790 current domain (if any).
7792 3. Previous behavior.
7794 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
7796 * icall.c: implemented GetInterfaceMap() related icall.
7797 * domain.c, loader.h: load MethodInfo in mono_defaults.
7799 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
7801 * gc.c: disable the finalizer thread for now, untill all the issues
7802 with it are resolved.
7804 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
7806 * string-icalls.c: handle embedded nulls in string ctor when the
7807 length is specified.
7809 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
7811 * class.c: look for explicit interface implementation in parent
7814 2002-12-03 Dietmar Maurer <dietmar@ximian.com>
7816 * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3)
7818 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
7820 * gc.c: protect handles with a critical section.
7822 2002-12-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7825 (ves_icall_type_from_name): it now has throwOnError and ignoreCase
7826 parameters. If no assembly specified, try getting the type from all
7827 the assemblies in the current domain, else, load the assembly and get
7830 2002-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7832 * marshal.c: applied patch from Aleksey Demakov that fixes
7833 ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
7835 2002-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7837 * icall.c: fixed get_location.
7839 2002-11-28 Dietmar Maurer <dietmar@ximian.com>
7841 * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
7842 declarations to make it work with older gcc.
7844 * loader.c (mono_get_method): set signature->pinvoke for native calls
7846 2002-11-20 Dick Porter <dick@ximian.com>
7848 * threads.c (mono_thread_init): Set the main thread's handle
7850 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
7852 * gc.c: allow compilation without GC support. Changed to match the
7855 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
7857 * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
7859 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
7861 * reflection.c: set a public key token on the core assemblies.
7863 2002-11-18 Dick Porter <dick@ximian.com>
7865 * threads.c: Split out some thread initialisation so that other
7866 files can set the start callback function.
7868 * gc.c: Run finalisers in a separate thread, to avoid stack
7869 overflow. Fixes bug 31333.
7871 * appdomain.c: Set up GC finalisation thread.
7875 * domain.c: Use gc.h macros for GC_malloc
7877 2002-11-15 Dick Porter <dick@ximian.com>
7881 * appdomain.c: Removed mono_runtime_init_with_attach(),
7882 mono_thread_create_arg(), and mono_thread_init_with_attach(), by
7883 merging the extra parameter with the existing function. Removed
7884 unneeded code in mono_thread_attach().
7886 2002-11-14 Dietmar Maurer <dietmar@ximian.com>
7888 * image.c (mono_image_loaded_by_guid): a method to get loaded
7890 (load_metadata_ptrs): we store the guid as string.
7892 2002-11-11 Dietmar Maurer <dietmar@ximian.com>
7894 * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
7896 * metadata.c (mono_guid_to_string): imported method form Zoltan
7897 Varga (slightly modified)
7899 * assembly.c (mono_assembly_open): load precompiled code
7901 * loader.h (MonoMethod): we store the method token for use in the
7904 2002-11-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7906 * appdomain.c: insert the loaded assemblies in the domain->assemblies in
7907 the hook function called when an assembly is loaded.
7909 * domain.c: Modified file.
7910 (mono_domain_assembly_load): removed hash table insertion of assemblies.
7914 2002-11-07 Miguel de Icaza <miguel@ximian.com>
7916 * reflection.c: Map PEFileKind to the value expected by the WinNT
7919 2002-11-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7921 * rand.c: use /dev/urandom. If it fails to open, use the previous one.
7922 Read until the buffer is filled completely.
7924 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7926 * icall.c: implemented MonoType.InternalGetEvent ().
7928 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7930 * appdomain.c: implemented InitAppDomainSetup. Delayed
7931 AppDomain.SetupInformation until mono_runtime_exec_main, where we get
7934 * assembly.c: base_dir is now an absolute path ending with
7937 * icall.c: modified get_location according to the above changes.
7939 * object.c: init AppDomain.SetupInformation for the default domain after
7940 we have the entry assembly.
7942 * domain.c: when unloading a domain, setup = NULL.
7944 2002-11-04 Dietmar Maurer <dietmar@ximian.com>
7946 * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
7948 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
7950 * object.h, object.c: introduced mono_object_get_virtual_method ()
7951 to lookup the method invoked on an object when a callvirt is done on
7953 * icall.c: make MethodInfo::Invoke() always do a virtual call.
7955 2002-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7957 * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
7958 current domain when loaded an assembly and failed to load it.
7960 * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
7962 2002-10-31 Dick Porter <dick@ximian.com>
7966 * file-io.c: Return the error status in a parameter, as the
7967 GetLastError() value has long since been blown away if we try and
7968 look it up in a subsequent internal call invocation. Delete the
7969 GetLastError() internal call, because it's useless.
7971 2002-10-31 Dietmar Maurer <dietmar@ximian.com>
7973 * class.[ch]: added cast_class to fix bug 29517
7975 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
7977 * marshal.c: create valid IL code in the filter clause:
7978 the new JIT is less forgiving:-)
7980 2002-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7982 * icall.c: removed get_property internal call.
7984 2002-10-25 Zoltan Varga <vargaz@freemail.hu>
7986 * appdomain.h domain.c: Added an ID to appdomains.
7988 * threads.c threads.h icall.c: Implement icall
7989 Thread:GetDomainID(), and remove unused icall
7990 CurrentThreadDomain_internal.
7992 2002-10-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7994 * icall.c: Don't recurse through the base types in GetConstructor.
7997 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
7999 * mempool.h, mempool.c: added mono_mempool_empty() and
8000 mono_mempool_stats().
8002 2002-10-23 Dick Porter <dick@ximian.com>
8006 * icall.c: Added MonoIO.GetFileType internal call
8008 2002-10-17 Dick Porter <dick@ximian.com>
8010 * appdomain.c (mono_runtime_cleanup): Don't signal the async
8011 delegate semaphore before waiting for all threads to finish,
8012 because new threads can also call async delegates. Fixes bug
8015 * threadpool.c (async_invoke_thread): Only wait for 500ms instead
8016 of 3 seconds, in case another async job is queued. (This part is
8017 needed because the bug fix reintroduced the 3s exit lag.) This
8018 makes the mono_runtime_shutdown flag superfluous.
8020 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
8022 * reflection.c: include ehader size in method section headers.
8023 Really check for suplicated modules entries.
8025 2002-10-17 Martin Baulig <martin@gnome.org>
8027 * debug-mono-symfile.c: Added back support for locals.
8029 2002-10-14 Martin Baulig <martin@gnome.org>
8031 * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
8034 2002-10-14 Martin Baulig <martin@gnome.org>
8036 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
8037 mono_class_get() instead of looking in the class cache.
8039 2002-10-13 Martin Baulig <martin@gnome.org>
8041 * debug-mono-symfile.c: Set version number to 28, include the
8042 signature in method names.
8044 2002-10-13 Martin Baulig <martin@gnome.org>
8046 * debug-mono-symfile.h: Set version number to 27.
8048 2002-10-11 Martin Baulig <martin@gnome.org>
8050 * gc.c: Don't register/unregister NULL pointers as disappearing links.
8052 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
8054 * metadata.c, metadata.h: added helper function to allocate signatures.
8056 2002-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8058 * icall.c: added internal call to get the location of machine.config.
8060 2002-10-08 Martin Baulig <martin@gnome.org>
8062 * debug-mono-symfile.c: Ignore classes with a pending init for the
8065 2002-10-03 Dick Porter <dick@ximian.com>
8067 * threads.c: Freebsd pthread_t is a pointer
8069 2002-10-03 Dick Porter <dick@ximian.com>
8071 * socket-io.c: Implemented GetHostName_internal
8073 2002-10-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8076 (mono_config_parse_file): don't leak the text.
8078 2002-10-02 Martin Baulig <martin@gnome.org>
8080 * debug-mono-symfile.c: Added support for methods.
8082 2002-10-01 Martin Baulig <martin@gnome.org>
8084 * debug-mono-symfile.c: Don't emit methods and line numbers for
8085 the dynamic symbol file, just write the type table. We can easily
8086 have an external helper program which creates a symbol file for an
8089 2002-10-01 Dick Porter <dick@ximian.com>
8091 * threads.c (ves_icall_System_Threading_Thread_Start_internal):
8092 Only add the handle to the cleanup array when we're about to
8093 launch the thread. Bug 31425 deadlocked when the test was run on
8096 2002-10-01 Martin Baulig <martin@gnome.org>
8098 * debug-mono-symfile.c: Added support for properties.
8100 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
8102 * reflection.c: unaligned store fix from Mark Crichton
8103 <crichton@gimp.org>.
8105 2002-09-27 Martin Baulig <martin@gnome.org>
8107 * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
8110 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
8112 * assembly.h, assembly.c: use a sane API to hook into the assembly
8113 loading process instead of a useless special-purpouse hack
8114 (ngen needs a hook, too, for example).
8116 2002-09-27 Dick Porter <dick@ximian.com>
8118 * threads.c (mono_thread_init): Call GetCurrentProcess() so
8119 io-layer can set up some process handle info. Not needed on w32,
8120 but doesn't hurt either.
8122 * process.c: Pass the program name in the second parameter to
8123 CreateProcess, so the path is searched. Include the working
8124 directory. Implemented process name, process enumeration, and some
8125 process detail internal calls.
8127 * icall.c: Added internal calls for process lookup, and some
8130 2002-09-26 Martin Baulig <martin@gnome.org>
8132 * assembly.c (mono_install_open_assembly_hook): New global
8133 function to install a function to be invoked each time a new
8135 (mono_assembly_open): Run this callback function if set.
8137 * debug-mono-symfile.c: Put back line numbers for the dynamic
8138 symbol file and also record the .il file as source file. This
8139 allows us to install the temporary symbol file as `file.dbg' just
8140 like a compiler-generated one.
8142 2002-09-26 Nick Zigarovich <nick@chemlab.org>
8144 * Corrected typo in gc.c (BOHEM vs BOEHM).
8146 2002-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8148 * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
8149 GetProperties. Also avoid calling g_slist_length in GetProperties and
8152 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
8154 * reflection.c: avoid unaligned stores (bug spotted by
8155 Mark Crichton <crichton@gimp.org>).
8157 2002-09-25 Martin Baulig <martin@gnome.org>
8159 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
8160 instead of guint64 for addresses and added prologue/epilogue info.
8162 2002-09-25 Martin Baulig <martin@gnome.org>
8164 * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
8165 store line number info. For the dynamic symbol file, we only need
8166 to provide the JIT generated dynamic line number info for the dynamic
8169 2002-09-25 Martin Baulig <martin@gnome.org>
8171 * debug-mono-symfile.h: Incremented version number.
8173 2002-09-24 Martin Baulig <martin@gnome.org>
8175 * class.c (mono_debugger_class_init_func): New global function
8177 (mono_class_init): If mono_debugger_class_init_func is non-NULL,
8180 * debug-mono-symfile.c (mono_debug_symfile_add_type): New
8181 function. This is called via the mono_debugger_class_init_func
8182 hook to add all types to the dynamic type table.
8183 (ves_icall_MonoDebugger_GetType): New interncall to get a class
8184 from its metadata token.
8186 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
8187 New interncall for the debugger.
8189 2002-09-24 Nick Drochak <ndrochak@gol.com>
8191 * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
8192 before using it in case it is null.
8194 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
8196 * metadata.c: allow custom modifiers in local var signatures
8197 (bug spotted by Zoltan Varga).
8199 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
8201 * class.c: deal with the <Module> class that may have a NULL vtable.
8204 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
8206 * image.c, image.h: more strong name helpers.
8207 * monosn.c: more work: convert pem keys to cryptoapi format.
8209 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
8211 * string-icalls.c: speedup IndexOf.
8213 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
8215 * icall.c: updates from Zoltan.2.Varga@nokia.com.
8217 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
8219 * icall.c: cleanup: use mono_object_domain ().
8221 2002-09-23 Martin Baulig <martin@gnome.org>
8223 * debug-mono-symfile.c: Improved type support.
8225 2002-09-22 Martin Baulig <martin@gnome.org>
8227 * debug-mono-symfile.c: Added support for reference types and strings.
8229 2002-09-22 Martin Baulig <martin@gnome.org>
8231 * debug-mono-symfile.c: Started to work on the type table.
8233 2002-09-21 Martin Baulig <martin@gnome.org>
8235 * debug-mono-symfile.c: Largely reworked the symbol table format.
8236 The symbol table is now incrementally updated each time a new
8237 method is added. We're now also using our own magic and version
8238 so that you don't need to recompile all your classes if the
8239 dynamic table changes.
8240 (mono_debug_update_mono_symbol_file): Removed.
8241 (mono_debug_symfile_add_method): New function to add a method.
8243 2002-09-21 Martin Baulig <martin@gnome.org>
8246 ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
8249 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
8250 New interncall to get a method from its metadata token.
8252 2002-09-21 Martin Baulig <martin@gnome.org>
8254 * debug-mono-symfile.c: Create type table.
8256 2002-09-20 Martin Baulig <martin@gnome.org>
8258 * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
8260 2002-09-20 Martin Baulig <martin@gnome.org>
8262 * debug-mono-symfile.c: Provide information about params and locals.
8264 2002-09-20 Martin Baulig <martin@gnome.org>
8266 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
8269 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
8270 interncall to get a method from its metadata token.
8272 2002-09-20 Martin Baulig <martin@gnome.org>
8274 * debug-mono-symfile.c: Added a few checks for method->header
8275 being non-NULL. This should never happen, but for the moment
8276 let's use a g_warning() rather than a g_assert().
8278 2002-09-19 Mark Crichton <crichton@gimp.org>
8280 * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
8281 even if support for it isn't present. Added an #ifdef to fix this.
8283 * socket-io.c: Added checks back for Solaris support.
8285 2002-09-19 Martin Baulig <martin@gnome.org>
8287 * debug-mono-symfile.c (read_string, write_string): Reflect latest
8288 changes in the symbol file format.
8290 2002-09-18 Martin Baulig <martin@gnome.org>
8292 * debug-mono-symfile.c: Set version number to 21.
8294 2002-09-18 Dick Porter <dick@ximian.com>
8296 * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
8297 on netbsd. Fixes bug 30051.
8299 2002-09-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8302 (set_version_from_string): little fix.
8304 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
8306 * monosn.c, Makefile.am: added strong name utility.
8307 * reflection.h, reflection.c: implemented delayed signing,
8308 locale, version and hash id assembly attributes.
8310 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
8312 * loader.c, metadata.c: load param attributes in signatures.
8314 2002-09-16 Martin Baulig <martin@gnome.org>
8316 * debug-mono-symfile.c: Added string table with all method names.
8318 2002-09-14 Martin Baulig <martin@gnome.org>
8320 * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
8323 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
8325 * reflection.c: record the public key token of referenced assemblies.
8327 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
8329 * image.c, image.h: added functions to get the strong name and the
8330 public key of an assembly.
8331 * pedump.c: use them.
8333 2002-09-12 Dietmar Maurer <dietmar@ximian.com>
8335 * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
8337 2002-09-12 Miguel de Icaza <miguel@ximian.com>
8339 * marshal.c (mono_marshal_get_managed_wrapper): Added
8342 2002-09-11 Martin Baulig <martin@gnome.org>
8344 * gc.c: Call GC_unregister_disappearing_link() on all links when
8345 finalizing them, this is necessary to aviod a crash in boehm's
8348 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
8350 * gc.c: handle GetTarget for finalized objects spotted and fixed by
8353 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
8355 * icall.c: implemented MonoType::Module.
8356 * reflection.c, reflection.h: mono_module_get_object () from
8357 Tomi Pakarinen <tomi.pakarinen@welho.com>.
8359 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
8361 * icall.c: ignore overridden methods in GetMethods ().
8362 Fix for FieldInfo::SetValue().
8363 * object.c: handle float/double in runtime invoke.
8365 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
8367 * object.c: allow a constructor to be called again on an object.
8369 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
8371 * class.h, class.c: move field layout code to it's own function and
8372 export it. Get an interface id earlier. Move fields in MonoClass
8373 so they are more cache friendly and align the bitfields.
8374 * loader.c: temporary handle get_param_names() for a runtime method.
8375 * reflection.c, reflection.h: more code to handle runtime creation of
8378 2002-09-09 Martin Baulig <martin@gnome.org>
8380 * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
8381 signature with the pinvoke field being set for the actual call.
8383 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
8385 * icall.c: removed some unused icalls. Start of map of glib charsets
8386 to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
8388 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
8390 * debug-helpers.c: break infinite loop (found and fixed by
8391 Holger Arnold <harnold@gmx.de>).
8393 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
8395 * icall.c: target may be null in create_delegate.
8397 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
8399 * marshal.c: handle a boolean return type.
8401 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
8403 * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
8405 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
8407 * gc.c: fix weakreferences.
8409 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
8411 * icall.c: added icall to get default codepage.
8413 2002-09-03 Dick Porter <dick@ximian.com>
8416 * threads.c: Use MonoThread instead of MonoObject where
8419 Store running thread objects in a hash table, so that we have all
8420 the info to hand when waiting for them to finish
8421 (means we don't need OpenThread() any more, so mingw builds should
8422 be fully functional again.)
8425 * object.h: Added thread ID to MonoThread
8427 2002-09-03 Martin Baulig <martin@gnome.org>
8429 * icall.c (System.Reflection.Assembly::get_location): New interncall.
8431 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8433 * icall.c: fixed leak in get_temp_path. Thanks lupus.
8435 2002-09-03 Martin Baulig <martin@gnome.org>
8437 * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
8438 argument to store the end address of the disassembled instruction.
8440 * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
8441 here from debug-symfile.h.
8442 (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
8443 JIT into this struct.
8444 (MonoSymbolFile): Added `char *image_file' field.
8445 (MonoDebugGetMethodFunc): Removed.
8446 (mono_debug_update_mono_symbol_file): Removed the hash table argument.
8447 (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
8448 (mono_debug_find_method): New method.
8450 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
8451 create a full symbol file.
8452 (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
8453 and static symbol files.
8454 (mono_debug_find_method): The symbol file keeps an internal method hash,
8455 call this to get a MonoDebugMethodInfo from a MonoMethod.
8457 * debug-symfile.[ch]: Removed.
8459 2002-08-29 Miguel de Icaza <miguel@ximian.com>
8461 * image.c (do_mono_image_open): Remove linker version check.
8463 2002-08-29 Dietmar Maurer <dietmar@ximian.com>
8465 * marshal.c (mono_marshal_get_managed_wrapper): don't cache
8466 wrappers for instance methods.
8468 2002-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8470 * icall.c: added ves_icall_System_IO_Path_get_temp_path.
8472 2002-08-28 Dick Porter <dick@ximian.com>
8474 * Makefile.am: Export HOST_CC for w32 builds
8476 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
8478 * file-io.c process.c: MonoString are null terminated, no
8479 need for mono_string_to_utf16() anymore.
8481 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
8483 * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
8485 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
8487 * icall.c, reflection.h: speedup System.MonoType.
8489 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
8491 * reflection.c: allow null as the value of a string argument in
8492 custom attributes constructors.
8494 2002-08-27 Martin Baulig <martin@gnome.org>
8496 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
8497 `trampoline_address' field.
8499 2002-08-27 Dietmar Maurer <dietmar@ximian.com>
8501 * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
8502 check (fixes bug #29486)
8504 2002-08-27 Martin Baulig <martin@gnome.org>
8506 * debug-mono-symfile.c: Changed the file format in a way that allows us
8507 open it read-only and to use a specially malloced area for all the
8508 dynamic data. We can now also generate a symbol file on-the-fly if we're
8509 debugging IL code and there is no MCS generated symbol file for it.
8511 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
8513 * object.c: added a define for a good string and array
8514 creation speedup (not enabled by default because we need to deal with
8517 2002-08-26 Martin Baulig <martin@gnome.org>
8519 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
8520 function to create a dynamic symbol file. This is used by the
8521 debugger to create a symbol file for IL code on-the-fly.
8523 2002-08-26 Martin Baulig <martin@gnome.org>
8525 * loader.c (mono_lookup_pinvoke_call): Include the error message
8526 from g_module_error() in the error message.
8528 2002-08-24 Martin Baulig <martin@gnome.org>
8530 * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
8531 function to update the symbol file. The symbol file is mmap()ed
8532 writable, but private. This allows us to install the symbol file
8533 together with the assembly.
8535 2002-08-24 Martin Baulig <martin@gnome.org>
8537 * debug-mono-symfile.[ch]: New files. Similar to debug-symfile.[ch]
8538 but they can read the new symbol file format which mcs is now creating.
8540 * debug-symfile.c (mono_debug_find_source_location): Moved to
8541 debug-mono-symfile.c; this is now operating on the new symbol file.
8543 2002-08-23 Martin Baulig <martin@gnome.org>
8545 * debug-helpers.c (mono_method_desc_from_method): New function to get
8546 a MonoMethodDesc from a MonoMethod.
8548 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
8550 * object.c: fixes assertion failure caused by multiple ExecuteAssembly
8551 calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
8553 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
8555 * string-icalls.[ch]: make helper methods static.
8557 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8559 * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
8560 types to it and to SetValueInternal.
8562 * object.c: Moved handle_enum label to its proper place. This was the
8565 This time i compiled mcs and gtk-sharp and they both work.
8567 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8569 * icall.c: reverted partially my previous patch until
8570 object.c:set_value handles enums correcly.
8572 2002-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8575 (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
8576 (ves_icall_System_Environment_get_MachineName): removed warning when
8577 compiling under cygwin.
8579 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
8581 * object.c: fixed field_get_value() for reference types.
8583 2002-08-22 Dick Porter <dick@ximian.com>
8585 * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
8586 Don't free a buffer while it's still needed. Patch from Jonathan
8587 Liger <Jonathan.liger@wanadoo.fr>
8589 2002-08-21 Miguel de Icaza <miguel@ximian.com>
8591 * icall.c (ves_icall_System_Environment_get_Platform): Add new
8594 2002-08-21 Dietmar Maurer <dietmar@ximian.com>
8596 * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
8597 (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
8599 * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
8600 we call unmanaged code which throws exceptions.
8602 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
8604 * appdomain.h: added per-domain entry_assembly.
8605 * appdomain.c: ensure mono_runtime_exec_main () gets non-null
8607 * icall.c: Assembly::GetEntryAssembly icall.
8608 * object.c: set domain->entry_assembly in mono_runtime_exec_main().
8609 Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
8611 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
8613 * appdomain.h, gc.c: added mono_domain_finalize ().
8615 2002-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8618 (mono_print_unhandled_exception): changed g_warning by g_printerr
8619 because g_log has a 1024 characters limit (yeah, i got a big stack
8620 trace). Don't print exception name, that should be in ToString
8623 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8625 * icall.c: added ves_icall_FieldInfo_SetValueInternal.
8626 * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
8628 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8631 (mono_print_unhandled_exception): after previous commit, i realized
8632 that MS calls ToString on the exception. I changed this function to
8633 do that. This way we get stack_trace for free.
8635 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8638 (mono_print_unhandled_exception): invoke Message property instead of
8639 getting 'message' field from Exception. Don't allocate memory for
8640 'trace' and 'message' if not needed.
8642 2002-08-18 Dick Porter <dick@ximian.com>
8644 * unicode.c: Fix asserts to match Encoder.cs checks
8646 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
8648 * marshal.c: fix unaligned store issue and a few wrong
8649 opcode argument types.
8651 2002-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8653 * icall.c: added GetUninitializedObjectInternal internal call.
8655 2002-08-16 Dietmar Maurer <dietmar@ximian.com>
8657 * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
8658 to the right domain.
8660 2002-08-14 Dietmar Maurer <dietmar@ximian.com>
8662 * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
8664 * class.c (class_compute_field_layout): set blittable to false for Strings
8666 * appdomain.c (mono_domain_transfer_object): added support for ISerializable
8668 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
8670 * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
8671 first chunk of code to create types at runtime. Code to
8672 handle ReflectedType/DeclaringType. Make reflection handles
8675 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
8677 * class.c: set correct name in arrays.
8679 2002-08-13 Dietmar Maurer <dietmar@ximian.com>
8681 * appdomain.c (mono_domain_transfer_object): make it work with
8682 valuetypes. bug fixes.
8684 2002-08-12 Dick Porter <dick@ximian.com>
8686 * object.h: Rename some parameters to avoid c++ keywords (Patch
8687 from Joseph Wenninger <kde@jowenn.at>)
8689 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
8691 * icall.c: added icall to implement Assembly.GetFile*.
8693 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
8695 * reflection.h, reflection.c: code to embed managed resources.
8697 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
8699 * class.c: move all the type size stuff into
8700 class_compute_field_layout().
8702 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
8704 * class.c: ensure enums have always the correct instance size.
8705 * unicode.c: remove wrong assert.
8707 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
8709 * assembly.c: fix mem corruption issue.
8710 * image.h, image.c: added mono_image_get_resource () to access
8712 * icall.c: implemented Assembly.EntryPoint property and some
8713 Managed Resources related internalcalls.
8716 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
8718 * image.c, image.h: impemented mono_image_get_entry_point ().
8719 * appdomain.c: use mono_image_get_entry_point.
8721 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
8723 * reflection.c: support the object type argument when loading
8726 2002-08-05 Dietmar Maurer <dietmar@ximian.com>
8728 * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
8729 String as return type.
8731 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
8733 * reflection.c: fix encoding of named args for custom attrs to match
8734 the ms implementation. Read them back when instantiating custom
8737 2002-08-02 Radek Doulik <rodo@ximian.com>
8739 * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
8740 by Dietmar as quick fix
8741 (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
8742 16 as stack size, used on more places as quick fix before Dietmar
8743 will fix it properly
8745 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
8747 * object.h, object.c: added accessors for fields and properties.
8749 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
8751 * class.c, class.h: made mono_class_get_field_from_name ()
8752 loop on parent types.
8753 Added mono_class_get_property_from_name ().
8755 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
8757 * class.c, class.h: move the code to setup the type vtable in its own
8758 function so that it can be reused also for types created at runtime.
8759 Eliminate the "class" identifier from the header file.
8760 * reflection.c: setup the vtable for enums so that we can create
8761 objects for use in SetConstant ().
8763 2002-08-02 Dietmar Maurer <dietmar@ximian.com>
8765 * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
8766 instead of the delegate itself as this pointer (bug #28383)
8768 2002-08-01 Dietmar Maurer <dietmar@ximian.com>
8770 * marshal.c (mono_marshal_get_managed_wrapper): added return type
8773 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
8775 * loader.c: don't set the pinvoke bit on icalls.
8777 2002-07-31 Dietmar Maurer <dietmar@ximian.com>
8779 * debug-helpers.c (mono_method_full_name): only print a number to
8780 indicate wrapper type (so that the output is more readable in traces).
8782 2002-07-30 Dietmar Maurer <dietmar@ximian.com>
8784 * class.c (mono_class_init): include method override patch from Paolo
8786 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
8788 * icall.c: fixed GetTypeCode().
8790 2002-07-29 Dietmar Maurer <dietmar@ximian.com>
8792 * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
8793 use real delegate invoke function to make it work with multicast
8794 delegates (fix bug# 28291).
8796 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
8798 * object.c: load constant strings.
8800 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
8802 * reflection.c: no magic numbers.
8803 * tabledefs.h: security action enum.
8805 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
8807 * assembly.c: fix possible memory corruption.
8809 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
8811 * reflection.h, reflection.c: added support for linking resources.
8812 * verify.c: check we have an updated corlib.
8814 2002-07-25 Dietmar Maurer <dietmar@ximian.com>
8816 * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
8818 (mono_marshal_string_array): null terminate unmanaged string arrays.
8819 (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
8821 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
8823 * icall.c: Type.GetType () can now return also types from the
8826 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
8828 * loader.h, loader.c: stack walking support.
8829 * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
8832 2002-07-24 Dietmar Maurer <dietmar@ximian.com>
8834 * marshal.c: added optimisations for blittable types
8836 * class.c (mono_array_class_get): do not set blittable attribute on arrays
8837 (mono_class_setup_mono_type): set blittable attribute for single
8840 * marshal.c (mono_string_utf8_to_builder): impl.
8841 (mono_string_builder_to_utf8): impl.
8842 (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
8844 2002-07-23 Dietmar Maurer <dietmar@ximian.com>
8846 * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
8847 (mono_marshal_get_managed_wrapper): impl. byref types
8849 2002-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8852 (search_method): don't display debug message.
8854 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
8856 * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
8858 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
8860 * appdomain.c: set the missing filename when throwing exception.
8862 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
8864 * metadata.c (mono_type_size): code cleanup
8865 (mono_type_stack_size): removed some test code
8867 2002-07-21 Miguel de Icaza <miguel@ximian.com>
8869 * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
8870 mono_get_exception_file_not_found now.
8872 * exception.c (mono_exception_from_name_two_strings): New version
8873 that will call a constructor with two string arguments.
8874 (mono_get_exception_file_not_found): New helper routine, used to
8875 report file-not-found errors.
8877 2002-07-20 Dick Porter <dick@ximian.com>
8880 * process.c: Pass file handles to CreateProcess
8884 * file-io.c: Implemented CreatePipe
8886 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
8888 * metadata.c (mono_get_param_info): set alignment for value types
8890 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
8892 * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
8893 Constify mono_domain_assembly_open().
8894 * loader.c: handle null namespace in icalls.
8896 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
8898 * marshal.c (emit_ptr_to_str_conv): marshal object as structs
8899 (emit_str_to_ptr_conv): marshal object as structs
8901 * metadata.c (mono_type_to_unmanaged): marshal object as structs
8903 * marshal.c (mono_marshal_get_runtime_invoke): support value types
8905 2002-07-18 Dietmar Maurer <dietmar@ximian.com>
8907 * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
8908 (mono_marshal_get_native_wrapper): we an now return value types
8910 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
8912 * verify.c: more checks implemented.
8914 2002-07-17 Dietmar Maurer <dietmar@ximian.com>
8916 * marshal.c (mono_delegate_to_ftnptr): invoke the right method
8918 (mono_marshal_get_native_wrapper): allow byref arguments
8919 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
8920 impl. PtrToStringXXX methods
8921 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
8922 (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
8923 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
8924 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
8925 (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
8927 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
8929 * reflection.c: fix buglet in parsing an assembly name.
8931 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
8933 * marshal.c (emit_ptr_to_str_conv): first impl.
8935 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
8937 * object.c, class.h: cache the vtable in the class as suggested by
8938 vargaz@freemail.hu (Zoltan Varga).
8940 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
8942 * class.h, loader.c: added mono_field_from_token().
8943 * verify.c: first cut of type checking code.
8945 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
8947 * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
8949 2002-07-15 Dietmar Maurer <dietmar@ximian.com>
8951 * marshal.c (mono_marshal_get_native_wrapper): handle enum types
8953 (mono_marshal_get_remoting_invoke): impl.
8954 (mono_delegate_begin_invoke): impl.
8955 (mono_mb_emit_save_args): impl.
8956 (mono_delegate_end_invoke): impl.
8957 (mono_marshal_get_delegate_begin_invoke):
8958 (mono_marshal_get_delegate_end_invoke):
8959 (mono_marshal_get_delegate_invoke): generate a special name for
8960 those methods (including the signature) and associate them whith
8963 2002-07-13 Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
8966 (mono_reflection_type_from_name): now it has a MonoImage parameter
8967 which is used as the default image to search the type in. If the image
8968 is NULL or getting the type from it fails, it defaults to corlib.
8970 * icall.c: changed 1 call to mono_reflection_type_from_name to match
8973 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
8975 * reflection.c: update the parameter table index.
8977 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
8979 * domain.c: don't include the mark byte in the string hash.
8981 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
8983 * icall.cs: icall for Type.GetTypeCode ().
8984 * verify: a couple of fixes and disabled local initialization checks.
8986 2002-07-12 Dietmar Maurer <dietmar@ximian.com>
8988 * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
8990 * debug-helpers.c (mono_method_full_name): print the type of the
8993 * metadata.c (mono_signature_hash): a hash function for signatures
8994 (mono_signature_hash): better hash algorithm
8996 * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
8998 * debug-helpers.c (mono_method_full_name): this can now generate
8999 method names with signatures
9001 * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
9002 method dont have this pointers.
9004 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
9006 * reflection.c: fixup typebuilder tokens.
9007 * image.c: fix buglet.
9008 * marshal.h: remove whitespace.
9009 * metadata.h, metadata.c: reinstate code that was removed.
9010 * verify.c: handle catch directives and fix another couple of bugs.
9012 2002-07-11 Dietmar Maurer <dietmar@ximian.com>
9014 * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
9015 (mono_marshal_get_native_wrapper): make it comp. with the old code
9016 (mono_marshal_get_native_wrapper): support boolean
9017 (mono_marshal_get_managed_wrapper): support more types
9019 2002-06-25 Dietmar Maurer <dietmar@ximian.com>
9021 * class.c (class_compute_field_layout): compute class->blittable attribute.
9023 2002-07-09 Dick Porter <dick@ximian.com>
9025 * threads.c: Make the thread cleaning up cope with threads that
9028 2002-07-08 Radek Doulik <rodo@ximian.com>
9030 * reflection.c (method_encode_code): use non-translated values to
9031 compute finally_start, this fixes exception handling on ppc, yay!
9033 * decimal.h (struct signscale): fix endianess
9035 2002-07-07 Radek Doulik <rodo@ximian.com>
9037 * reflection.c: swap box_val and not val
9039 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
9041 * reflection.c, reflection.h: handle full assembly info in type name.
9042 Handle Type arguments when loading custom attributes.
9043 * icall.c: updated to use new mono_reflection_type_from_name () method.
9045 2002-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9048 (method_from_memberref): also print assembly name when method not found.
9050 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9053 (ves_icall_TypeGetProperties): fixed bug #27473.
9055 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9057 * reflection.c: display image name and token when cannot find the
9058 .ctor for an attribute.
9060 2002-07-05 Martin Baulig <martin@gnome.org>
9062 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
9064 2002-07-04 Dick Porter <dick@ximian.com>
9066 * threads.c (mono_thread_cleanup): Nasty kludge to get this to
9067 compile on mingw. This will cause mingw builds to not wait for
9068 subthreads to terminate after the main thread does. I've lodged a
9069 bug with the mingw developers for them to wrap OpenThread().
9071 2002-07-03 Dick Porter <dick@ximian.com>
9073 * threads.c: Store thread IDs instead of handles, because
9074 GetCurrentThread() returns a pseudohandle and therefore stores
9075 useless values. mono_thread_cleanup() continues checking the
9076 array of threads until it is empty, to cope with subthreads
9077 spawning new threads after the main thread has finished.
9081 * profiler-private.h: Pass the thread ID to thread profiler
9082 functions, instead of a handle
9084 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
9086 * verify.c: fixes to make it more usable.
9087 * pedump.c: added --verify code to verify IL code in an assembly.
9089 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9091 * reflection.c: turn errors into warnings to allow compiling corlib.
9093 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
9095 * reflection.c: add special cases to compile corlib.
9097 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9099 * reflection.c: handle properties with only a set method.
9101 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
9103 * opcodes.h: add enum with opcodes in opval order.
9105 2002-07-01 Dick Porter <dick@ximian.com>
9108 * object.c (mono_runtime_run_main): Removed unneeded argument
9110 2002-06-28 Martin Baulig <martin@gnome.org>
9112 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
9114 2002-06-27 Dick Porter <dick@ximian.com>
9116 * threads.c: Store the handle in both the parent thread and in the
9117 subthread, to minimise the time between starting a new thread and
9120 2002-06-26 Dick Porter <dick@ximian.com>
9122 * appdomain.c (mono_runtime_cleanup): Close the socket library
9123 after all the threads have finished, not before
9125 2002-06-26 Martin Baulig <martin@gnome.org>
9127 * debug-symfile.c (mono_debug_find_source_location): Added
9128 `guint32 *line_number' argument. If it's not NULL, store the line number
9129 there and return the file name without the line number.
9131 2002-06-25 Dick Porter <dick@ximian.com>
9135 * process.c: Process forking and other support functions
9137 2002-06-25 Dick Porter <dick@ximian.com>
9139 * image.c (do_mono_image_open): Set ref_count to 1, so that bad
9140 things dont happen when the image is closed.
9141 (mono_image_lookup_resource): Walk the resource section looking
9142 for a particular entry
9144 * cil-coff.h: PE resource section decoding
9146 2002-06-25 Dick Porter <dick@ximian.com>
9150 (mono_assembly_foreach): Accessor functions to walk the list of
9152 (mono_assembly_set_main):
9153 (mono_assembly_get_main): Process methods need to know which
9154 assembly is the "main" one
9156 * object.c (mono_runtime_run_main): Record the main assembly
9158 * debug-helpers.c: Fix typo
9160 2002-06-24 Dietmar Maurer <dietmar@ximian.com>
9162 * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
9163 (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
9165 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
9167 * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
9169 2002-06-21 Miguel de Icaza <miguel@ximian.com>
9171 * image.c (do_mono_image_open): Initialize reference count,
9172 otherwise we leak the MonoImage.
9174 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9176 * reflection.c: small tweak to handle self-hosting.
9178 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9180 * reflection.c: fix type name parse code.
9182 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
9184 * reflection.c: break out of the loop.
9185 * image.c: special case corlib.
9187 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9189 * reflection.c: add all the custom attrs at the end to ensure the
9190 ctors have been properly initialized when the attributes are defined
9191 in the current assembly.
9193 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9195 * reflection.c: handle correctly multiple-nested types.
9197 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9199 * row-indexes.h: fix typos.
9200 * reflection.c: adjust for typos and fix method_def_or_ref
9201 encoding in MethodImpl table.
9203 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
9205 * reflection.c: fix entry point patching (thanks Serge!).
9207 2002-06-18 Dietmar Maurer <dietmar@ximian.com>
9209 * verify.c: add check for System.Exception
9211 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
9213 * image.c, class.c: minifix for code just c&p'ed.
9214 * reflection.c: warning fix.
9215 * object.h, loader.h, domain.c: load also StringBuilder.
9217 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9219 * marshal.h, marshal.c: some support code to handle complex marshaling.
9221 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9223 * class.h, class.c, reflection.c: handle ignorecase in GetType ().
9224 Better signatures with vtable error dump.
9226 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
9228 * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
9230 2002-06-17 Dietmar Maurer <dietmar@ximian.com>
9232 * icall.c (ves_icall_Type_GetField): impl.
9234 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9236 * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
9237 to retrieve a marshal description blob for a field or param.
9239 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9241 * reflection.h, reflection.c: change order of nested type emission
9242 to avoid table corruption. The NestedTypes table is sorted.
9243 * icall.c: change order of GetConstructor results to workaround mcs bug.
9245 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
9247 * reflection.h, reflection.c: handle field and param marshal
9250 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
9252 * icall.c, marshal.c marshal.h: more Marshal class implementation.
9254 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9256 * reflection.c: fix call convention.
9258 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9260 * reflection.h, reflection.c: mono_image_get_memberref_token()
9261 takes a type instead of a class, now. Added
9262 mono_image_get_array_token() to create tokens for the special
9263 multi-dim array methods.
9265 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9267 * assembly.c: handle modules (no assembly table). Split
9268 loading references in its own function.
9269 * class.c: handle moduleref resolution scope.
9270 * image.c, image.h: cache module name in image.
9272 2002-06-07 Martin Baulig <martin@gnome.org>
9274 * reflection.c (mono_image_get_type_info): Only add a class layout entry
9275 if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
9277 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
9279 * icall.c: more signature fixes that used uint instead of int.
9281 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9283 * reflection.c: fixed signature of field refs.
9285 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9287 * class.c, reflection.c: handle typerefs of nested types
9288 (both on read and when writing files).
9290 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
9292 * icall.c: fix method signatures that tried to workaround the previous
9295 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
9297 * debug-helpers.c: fix typo.
9299 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
9301 * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
9302 rewrote the PE/COFF writing code (our programs are understood by the
9305 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9307 * gc.c, gc.h, icall.c: weakreference support.
9309 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9311 * Makefile.am, mono-config.c: use $(sysconfdir).
9313 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
9315 * icall.c: changed default precision of Double.ToString() to 15.
9316 Fixed memory leak. Unified with Single.ToString.
9318 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
9320 * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
9322 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9324 * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
9325 gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
9326 warnings and compilation fixes from Dennis Haney (davh@davh.dk)
9329 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
9331 * debug-symfile.c, sysmath.c: yet more compilation fixes.
9333 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9335 * reflection.c, socket-io.c: more compilation fixes.
9337 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
9339 * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
9340 domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
9341 unicode.c: warning and compiler compatibility fixes.
9343 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9345 * class.h, metadata.c: fixed warnings/compilation errors.
9347 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
9349 * Makefile.am, mono-config.c, mono-config.h: configuration file
9351 * loader.c, loader.h: make Dll mapping configurable at runtime in the
9352 config file. Export methods to insert and lookup mappings.
9354 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9356 * reflection.c: handle types and boxed objects in custom attr
9359 2002-05-30 Martin Baulig <martin@gnome.org>
9362 (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
9364 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
9366 * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
9367 to lookup the implmap row for a P/Invoke method.
9368 * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
9369 P/Invoke method from the runtime on an as needed basis.
9371 2002-05-28 Dietmar Maurer <dietmar@ximian.com>
9373 * metadata.c (mono_metadata_parse_signature): impl.
9375 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9377 * class.c: handle .pack directive.
9379 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9381 * object.c: initialize static fields with RVA data.
9383 2002-05-25 Martin Baulig <martin@gnome.org>
9386 (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
9388 2002-05-24 Martin Baulig <martin@gnome.org>
9391 (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
9392 (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
9393 `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
9395 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
9397 * object.c: special case string ctros in invoke.
9398 * gc.c: silly whitespace changes.
9400 2002-05-23 Dietmar Maurer <dietmar@ximian.com>
9402 * threadpool.[ch]: impl. a threadpool that can
9403 be used by mint and mono.
9405 2002-05-22 Martin Baulig <martin@gnome.org>
9407 * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
9408 The first argument is now a `MonoReflectionModuleBuilder *', the return
9409 value is a `MonoReflectionModuleBuilder *'. Use the AssemblyBuilder's
9410 `methods' field to get the method builder. The `token' argument is the
9413 * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
9414 invalid characters instead of g_assert_not_reached()ing. This seems
9415 to be the behaviour of mscorlib.
9417 2002-05-22 Dietmar Maurer <dietmar@ximian.com>
9419 * object.c (mono_runtime_invoke_array): applied patch from Rachel
9420 Hestilow to fix bug #25104
9422 2002-05-21 Martin Baulig <martin@gnome.org>
9424 * debug-symfile.c (mono_debug_find_source_location): New function.
9425 Looks up an IL offset in the line number table and returns the source
9426 location as a string.
9428 2002-05-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9431 (mono_double_ToStringImpl): changed %f by %g until we have something
9434 2002-05-21 Nick Drochak <ndrochak@gol.com>
9436 * icall.c : Use different name for Math.Pow's icall. Needed to check
9437 parameters first in C#.
9439 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
9441 * icall.c, reflection.h: added icall to get info about an event.
9443 2002-05-20 Radek Doulik <rodo@ximian.com>
9445 * object.c (mono_value_box): don't use memcpy for boxing on BIG
9447 (mono_value_box): don't use memcpy for small sizes on
9448 architectures with unaligned access
9450 2002-05-20 Martin Baulig <martin@gnome.org>
9452 * reflection.c (mono_reflection_setup_internal_class): Don't crash
9453 if `tb->parent == NULL'.
9454 (mono_reflection_create_internal_class): New function. This is
9455 called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
9458 * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
9461 2002-05-19 Martin Baulig <martin@gnome.org>
9463 * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
9464 argument to get the length, don't default to the array length.
9466 2002-05-18 Miguel de Icaza <miguel@ximian.com>
9468 * assembly.c (mono_assembly_setrootdir): New function used to
9469 override the MONO_ASSEMBLIES directory.
9471 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9473 * icall.c: ValueType_GetHashCode() initialize local var.
9475 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
9477 * reflection.c: sort custom attributes table.
9479 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9481 * reflection.c: support named args in custom attributes (write support).
9483 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
9485 * reflection.c: fix finally position calculation.
9487 2002-05-15 Radek Doulik <rodo@ximian.com>
9489 * reflection.c: fixed endianess at many places
9491 * icall.c (ves_icall_InitializeArray): comment out debug msg
9493 2002-05-15 Dietmar Maurer <dietmar@ximian.com>
9495 * object.c (mono_unhandled_exception): new function to handle
9496 unhandled exceptions.
9497 (mono_unhandled_exception): call the UnhandledException event.
9498 (mono_runtime_delegate_invoke): impl.
9500 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
9502 * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
9503 returns the RVA, not the direct pointer to the data. Handle the case
9504 when the class size is fixed.
9506 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9508 * reflection.c: fix some endianess issues.
9510 2002-05-14 Dietmar Maurer <dietmar@ximian.com>
9512 * object.c (mono_runtime_invoke): is now able to catch exceptions.
9514 * threads.c (mono_thread_init): added a callback which is invoked
9517 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
9519 * icall.c: make GetHashCode return non-negative values.
9521 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
9523 * object.c, icall.c, gc.c: revert to address-based hashcode.
9525 2002-05-13 Miguel de Icaza <miguel@ximian.com>
9527 * icall.c (mono_double_ParseImpl): Added ParseImpl method.
9529 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
9531 * icall.c, class.c: special case <Module>.
9533 2002-05-13 Dan Lewis <dihlewis@yahoo.co.uk>
9535 * icall.c: fix bug in GetNow().
9537 2002-05-11 Dietmar Maurer <dietmar@ximian.com>
9539 * object.c (mono_runtime_class_init): make sure that we call all
9540 static class constructors.
9542 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9544 * reflection.c: sort methodsemantics table.
9546 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9548 * reflection.h, reflection.c: honour init locals setting.
9550 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
9552 * icall.c: copied Double ToStringImpl for Single ToStringImpl
9554 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9556 * reflection.c: support ContructorBuilders in attribute blob creation.
9558 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9560 * reflection.c: some changes to build a binary that can be run
9561 directly in windows.
9563 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
9565 * loader.c: print a big message when an icall can't be found.
9567 2002-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9569 * string-icalls.c: fix bug 24248.
9571 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
9573 * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
9574 icall.c, reflection.h: separate assembly loading by pathname and by
9575 assembly name. Use the MONO_PATH env var to search for assemblies.
9577 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
9579 * assembly.c, image.h: add some support for assemblies
9580 with multiple modules.
9581 * class.c, class.h: export mono_class_from_typeref().
9582 * loader.c: remove duplicated code and use mono_class_from_typeref(),
9585 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
9587 * unicode.c: Char.IsNumber doesn't include hex digits as the ms
9588 documentation says (the ECMA one is correct).
9590 2002-05-02 Dick Porter <dick@ximian.com>
9592 * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
9593 Don't name the synchronisation mutex.
9595 2002-04-30 Jeffrey Stedfast <fejj@ximian.com>
9598 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
9599 Make the prototypes match.
9600 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
9604 (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
9605 systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
9606 all systems have tm.tm_zone, so use strftime() with %Z to print
9607 the timezone abreviation into a temp string.
9609 * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
9610 rather than mono_array_addr() on a MonoString on Big Endian
9613 2002-04-30 Dietmar Maurer <dietmar@ximian.com>
9615 * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
9618 2002-04-30 Dick Porter <dick@ximian.com>
9620 * socket-io.c: Cope with SOCKET being an integer rather than a
9623 * threads.c: Added Thread_free_internal, to deal with thread
9624 handle cleanup. Moved calls to handle_store() and handle_remove()
9625 to start_wrapper(), so each can only be called once. Allocate
9626 synchronisation blocks with GC_malloc(), and use GC finalisation
9627 to close the handles.
9629 * icall.c: added System.Threading.Thread::Thread_free_internal
9631 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9633 * icall.c: support Environment.Exit, CommandLineArgs().
9635 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
9637 * object.c, object.h: added mono_runtime_run_main () and
9638 mono_runtime_get_main_args () for use in System.Environment.
9640 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
9642 * gc.c: fix thinko, enable actual finalization since the jit is now
9645 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
9647 * gc.c, object.c: take into account that an object may be offset wrt the address
9648 returned by GC_malloc().
9650 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9652 * image.c: handle files without entries in the assembly table (modules).
9654 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
9656 * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow
9657 mcs selfhosting again (build breaker) and did move the check to class instead. parent is
9658 allowed to be null when it's System.Object class setup.
9660 2002-04-27 Martin Baulig <martin@gnome.org>
9662 * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
9663 if `tb->parent == NULL' rather than crashing.
9665 2002-04-28 Nick Drochak <ndrochak@gol.com>
9667 * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error. Was
9668 calling acos() where asin() should have been called.
9670 2002-04-26 Martin Baulig <martin@gnome.org>
9672 * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
9673 instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
9674 there's a subdirectory called `System', but we don't want to read that
9675 subdirectory as an assembly.
9677 2002-04-25 Martin Baulig <martin@gnome.org>
9679 * debug-symfile.c: Reflect latest MonoString changes.
9681 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9683 * rand.c, rand.h: instance method icalls need to have an explicit
9684 this pointer as first argument in the C implementation.
9686 2002-04-25 Nick Drochak <ndrochak@gol.com>
9688 * icall.c: Fix typo in map for GetNonZeroBytes
9690 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
9692 * string-icalls.c : String does now passes unit tests without any
9693 errors, the following changes has been made:
9695 Implemented replace methods.
9696 Renaming of methods to (try) follow the standard.
9697 Fixed compare ordinal
9698 Made all memory allocated directly to function instead of via icall function.
9699 Small performance fix in is_in_array function
9701 (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
9703 c (mono_string_Internal_ctor_charp_int_int):
9704 (mono_string_Internal_ctor_sbytep_int_int): Removed check for
9705 sindex < 0, throw ArgumentOutOfRangeException instead of
9706 ArgumentNullException.
9708 Added new check for length == 0, however
9709 I need to make it return String.Empty from the C code.
9711 (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
9712 that calculate the length for us here.
9714 (mono_string_Internal_ctor_sbytep_int_int): Replaced
9715 mono_string_new_utf16 with mono_string_new, since value is utf8.
9717 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9719 * object.c: register the object for finalization if needed.
9720 Allocate one more char in the string for the terminating 0 char.
9722 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9724 * class.c, class.h, image.c: check if a type implemenst a destructor.
9725 Use the proper key for array class lookups.
9726 * icall.c: register the icalls in the System.GC class.
9727 * gc.c, gc.h: GC-related functions and icalls.
9729 2002-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9733 * unicode.c: free some strings gotten from mono_string_to_utf8 and
9734 changed a couple of free () by g_free ().
9736 * decimal.c: one-liner in the comments for decimal2string ().
9738 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
9740 * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
9742 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
9744 * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
9745 * object.c (mono_runtime_invoke_array) : handle null in params
9747 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
9749 * string-icalls.c: fixed bug in split (one off bug)
9751 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
9753 * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
9754 * icalls.c: added String::Equals as internal method
9756 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
9758 * threads.c: fixed bug in the double interlocked functions
9760 2002-04-22 Patrik Torstensson <patrik.torstensson@labs2.com>
9762 * threads.c: implemented all of the new interlocked icalls.
9763 * string-icalls.c: fix a bug in insert.
9764 * icalls.c: added the icalls for interlocked, removed old string functions.
9766 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9768 * loader.c: fix off-by-one error when reading argument names.
9770 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9772 * profiler.c: win32 counter implementation (untested).
9773 * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
9774 (the latter needs testing and more complete impl. from win32 folks).
9776 2002-04-21 Dan Lewis <dihlewis@yahoo.co.uk>
9778 * object.c: mono_array_new_full workaround mono_array_class_get
9781 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
9783 * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
9784 * object.h (mono_string_chars): Changed casting type.
9786 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
9788 * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
9789 method signatures to use gunichar2 instead of gint16.
9791 2002-04-20 Dan Lewis <dihlewis@yahoo.co.uk>
9793 * object.h, object.c: domain-specific versions of mono_object_new and
9796 2002-04-20 Dietmar Maurer <dietmar@ximian.com>
9798 * object.c: changed String layout
9800 * string-icalls.c (mono_string_Internal_ctor_chara): added
9801 internal string constructors.
9803 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
9805 * threads.c: pass 'this' to the thread start routine.
9807 2002-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9809 * string-icalls.c: fix IndexOf and LastIndexOf. Now
9810 InternalCompareStr don't call twice mono_string_cmp_char for the last
9811 character. Improved performance in mono_string_cmp_char.
9813 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9815 * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
9816 code into its own library: libmonoruntime.
9818 2002-04-19 Dan Lewis <dihlewis@yahoo.co.uk>
9820 * object.h, object.c: changed array format so that szarrays do not
9821 require a bounds structure.
9822 * icall.c, appdomain.c: support for new szarray format.
9824 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
9826 * metadata.c: compare also the retuns type when comparing signatures:
9827 we didn't do this as an optimization since really overloaded methods
9828 must differ also in the arguments, but this doesn't work with
9829 low-level IL code (or when using explicit conversion operators: see
9830 bug#23498 for an example).
9832 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
9834 * loader.c: SZARRAY types can be saved as TYPESPEC, too.
9836 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9838 * icall.c: make MonoType::GetElementType its own icall.
9840 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
9842 * icall.c: remove MonoMethod_get_Name().
9843 * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
9846 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
9848 * string-icalls.c: optimized a few methods.
9850 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
9852 * icall.c: added all new string internal calls
9853 * string-icalls.c: added, new string internal call implementation.
9854 * object.c: added mono_string_new_size for allocating a string a size
9856 2002-04-17 Dietmar Maurer <dietmar@ximian.com>
9858 * object.c (mono_object_isinst): use the same code as in the
9859 optimized x86 version.
9861 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
9863 * profiler.c: TSC-based timer code (faster and more accurate).
9864 Not hooked up in configure, yet (set USE_X86TSC to 1).
9866 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
9868 * profiler.c, profiler.h: track time spent compiling methods.
9869 * threads.c: track thread creation/destruction.
9871 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
9873 * profiler.c, profiler.h, profiler-private.h: profiling interface
9874 and sample implementation. Moved here so that it can be used also by
9877 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
9879 * reflection.c, reflection.h: keep types and other handles separate in
9880 the hash tables for referred tokens. Add guid for modules.
9882 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
9884 * assembly.c: fix bugs found with valgrind.
9885 * metadata.h, metadata.c: added mono_metadata_guid_heap().
9887 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
9889 * threads: added icall support for getting current domain for
9892 2002-04-13 Martin Baulig <martin@gnome.org>
9894 * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
9895 (MonoDebugVarInfo): Added `index' field for register based addresses.
9896 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
9897 (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
9898 `MonoDebugVarInfo *params' and `guint32 this_offset' with
9899 `MonoDebugVarInfo *this_var'.
9901 * debug-symfile.c (relocate_variable): New static function to write
9902 a location description for a local variable or method parameter.
9904 2002-04-12 Martin Baulig <martin@gnome.org>
9906 * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
9907 stack offset and begin/end scope address of a local variable.
9908 (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
9909 'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
9910 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
9912 * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
9913 Added new relocation types for start/end scope of a local variable.
9915 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9917 * object.h: add mono_object_domain() macro.
9918 * reflection.c: handle typespecs.
9919 * icall.c: MonoMethod::get_Name() implementation.
9921 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9923 * icall.c: String::GetHashCode() icall implementation.
9925 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9927 * icall.c: String::IndexOfAny icall.
9928 * object.c, object.h: make array->max_length more useful.
9929 Intrduced mono_object_class() and mono_string_length() macros.
9931 2002-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9933 * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
9934 instead of g_unichar_isdigit.
9936 2002-04-11 Nick Drochak <ndrochak@gol.com>
9938 * icall.c: Implement a simple Double.ToString().
9940 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9942 * appdomain.h: only io-layer.h is supposed to be included.
9943 * icall.c: explicitly import environ. Fix warning.
9945 2002-04-10 Nick Drochak <ndrochak@gol.com>
9947 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
9948 return true even if it's not Daylight Savings time.
9949 Only return false for the case where the function isn't
9950 implemented for a plaform (read Windows).
9952 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9954 * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
9957 2002-04-09 Dietmar Maurer <dietmar@ximian.com>
9959 * mempool.c (mono_mempool_alloc): only use g_malloc when
9960 absolutely necessary.
9962 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
9964 * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
9966 * class.c (mono_class_vtable): use domain mempool to allocate vtable
9967 (mono_class_proxy_vtable): use domain mempool
9969 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
9971 * appdomain.h, appdomain.c: split initialization that requires the
9972 execution engine support into mono_runtime_init().
9974 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
9976 * class.c (mono_class_init): don't include vtable inside MonoClass
9977 to save some memory, gather some statistics.
9978 (mono_class_vtable): use g_malloc instead of GC_malloc when possible
9980 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
9982 * icall.c: internalcall implementation for ValueType.Equals().
9984 2002-04-06 Dietmar Maurer <dietmar@ximian.com>
9986 * object.c (mono_message_init): moved
9987 (mono_runtime_exec_main): new arch. independent impl.
9988 (mono_runtime_invoke_array): new method - like
9989 mono_runtime_invoke, but you can pass an array of objects.
9990 (mono_remoting_invoke): new arch. independent impl.
9991 (mono_message_invoke): new arch. independent impl.
9992 (mono_runtime_class_init): new arch. independent impl.
9993 (mono_runtime_object_init): new arch. independent impl.
9995 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9997 * metadata.c, object.c, reflection.c: documented the exported
10000 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
10002 * icall.c: simpler code to pass the assembly builder data to corlib.
10003 Implement GetNestedTypes() internalcall.
10005 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10007 * class.c: warn if a type can't be loaded.
10009 2002-04-04 Dietmar Maurer <dietmar@ximian.com>
10011 * image.h: typedef MonoImageOpenStatus
10012 * types.h: removed unused file
10014 2002-04-04 Dan Lewis <dihlewis@yahoo.co.uk>
10016 * icall.c: Enum_ToObject accepts enum value arguments.
10018 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10020 * class.c: move initialization of properties, events and nested
10021 classes, so that they happen for interfaces, too.
10023 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10025 * icall.c: cleanup some ugly casts in Array_SetValue*.
10027 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10029 * icall.c: the values array fro enums is of the correct type, now.
10030 Implement (correctly) getFullName instead of assQualifiedName for
10032 * reflection.h, reflection.c: added mono_type_get_name ().
10034 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10036 * assembly.c, image.h: for each MonoImage, record from wich assembly
10038 * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
10039 Make Type.Assembly work.
10041 2002-04-03 Dietmar Maurer <dietmar@ximian.com>
10043 * debug-symfile.h: use char* instead of gpointer to avoid
10046 * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
10048 * icall.c (ves_icall_InternalExecute): impl. FielSetter
10049 (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
10051 2002-03-30 Dietmar Maurer <dietmar@ximian.com>
10053 * icall.c (mono_message_init): impl. (code cleanup)
10054 (ves_icall_InternalExecute): impl. FieldGetter
10056 * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
10057 defined we call all (non-static)methods through the vtable.
10059 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
10061 * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
10062 finalizer even though the memory is still referenced (and the chunk of
10063 memory is not freed).
10065 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
10067 * assembly.c: fix brokeness.
10069 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
10071 * class.c: kill some warnings. Check explicit interface method
10072 implementation also without considering the namespace.
10073 Load also literal strings in static class data.
10075 2002-03-29 Miguel de Icaza <miguel@ximian.com>
10077 * assembly.c (default_assembly_name_resolver): Kill memory leak.
10078 (default_assembly_name_resolver): Make the resolver take the
10079 "base" directory where the assembly was originally defined, so we
10080 can load DLLs that are in the same directory as the assembly that
10081 is being referenced.
10083 2002-03-28 Dick Porter <dick@ximian.com>
10089 * unicode.c: Warning cleanups
10091 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
10093 * object.h, reflection.h: use the correct type instead of MonoObject.
10095 2002-03-28 Martin Baulig <martin@gnome.org>
10097 * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
10098 (mono_debug_update_symbol_file): Initialize classes if necessary.
10100 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
10102 * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
10103 rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
10105 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
10107 * assembly.h: fix function prototype.
10108 * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
10109 * mono-endian.h: use const cast.
10111 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
10113 * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
10115 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
10117 * loader.c: don't assert when a typeref can't be loaded, give
10118 a chance to the runtime to trow an exception instead.
10119 * loader.h: fix warning.
10121 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
10123 * class.c (mono_class_proxy_vtable): added proxy support
10125 2002-03-27 Dan Lewis <dihlewis@yahoo.co.uk>
10127 * icall.c: removed last of PAL calls, added System.Environment
10128 * file-io.h, file-io.c: MonoIO implementation
10129 * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
10131 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
10133 * appdomain.c: do not use the byte marker in ldstr table lookup.
10134 * debug-helpers.c: allow two ':' to separate class and method name.
10135 * object.c: allocate arrays bounds with the GC, too.
10136 * verify: add a few more checks.
10138 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
10140 * reflection.c: output also literal strings. Allocate parameter data
10141 with GC_malloc() (thanks, Martin, for catching this!).
10143 2002-03-26 Martin Baulig <martin@gnome.org>
10145 * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
10146 include the `this' offset in the `param_offsets'.
10148 2002-03-25 Martin Baulig <martin@gnome.org>
10150 * debug-symfile.c (mono_debug_update_symbol_file): Use a new
10151 mono_debug_get_class() function to get the classes. Added new
10152 relocation types for arrays and strings.
10153 (mono_debug_get_class): New static function to search in all
10154 referenced assemblies for a metadata token.
10156 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
10158 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
10160 * reflection.h, reflection.c: use a gc-safe hash for hash tables that
10161 hold gc-allocated objects. Make the string heap a stream like the
10162 others. Removed duplicated code when writing stream info.
10163 Added asserts to catch possible buffer overflows. Set the sorted map
10164 for tables that need sorting. Added some documentation.
10166 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
10168 * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table
10169 for interned strings and vtables.
10171 2002-03-24 Martin Baulig <martin@gnome.org>
10173 * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
10174 it in the array since it was created with g_slist_prepend().
10176 2002-03-24 Martin Baulig <martin@gnome.org>
10178 * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
10179 to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
10180 (mono_debug_method_from_token): Renamed to
10181 ves_icall_Debugger_MonoSymbolWriter_method_from_token().
10182 (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
10184 * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
10187 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
10189 2002-03-24 Martin Baulig <martin@gnome.org>
10191 * debug-symfile.c (mono_debug_local_type_from_signature): New func.
10192 (mono_debug_method_from_token): New func.
10194 * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
10195 New interncall, calls mono_debug_local_type_from_signature().
10196 (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
10197 calls mono_debug_method_from_token().
10199 2002-03-23 Martin Baulig <martin@gnome.org>
10201 * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
10202 specifies the number of bytes to be converted, not the array size.
10203 Return the number of chars, not the number of bytes.
10204 (ves_icall_iconv_get_chars): The `byteCount' argument
10205 specifies the number of bytes to be converted, not the array size.
10207 2002-03-23 Martin Baulig <martin@gnome.org>
10209 * reflection.h (MonoReflectionSigHelper): New type.
10211 * reflection.c (mono_reflection_sighelper_get_signature_local),
10212 (mono_reflection_sighelper_get_signature_local): New functions.
10214 * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
10215 (System.Reflection.Emit.SignatureHelper::get_signature_field): New
10218 2002-03-23 Martin Baulig <martin@gnome.org>
10220 * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
10221 is_writeable is set.
10222 (mono_raw_buffer_update): New function to write the modified map
10225 * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
10227 * debug-symfile.c (mono_debug_update_symbol_file): Call
10228 mono_raw_buffer_update() when done writing.
10230 2002-03-23 Martin Baulig <martin@gnome.org>
10232 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
10234 * debug-symfile.c: Added support for arguments and local variables.
10236 2002-03-23 Dick Porter <dick@ximian.com>
10238 * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
10239 protected by ifdefs, hence breaking the w32 build.
10241 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
10243 * object.c: implement is_interned() the right way.
10245 2002-03-21 Martin Baulig <martin@gnome.org>
10247 * debug-symfile.[ch]: New files to handle debugging information
10248 files. There's also support to dynamically update these symbol
10249 files to include machine dependent information.
10251 2002-03-20 Dietmar Maurer <dietmar@ximian.com>
10253 * threads.c (mono_thread_create): new function to create thread
10256 2002-03-20 Martin Baulig <martin@gnome.org>
10258 * icall.c (ves_icall_InternalInvoke): Create a new object if the
10259 method is a constructor.
10260 (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
10261 points to ves_icall_InternalInvoke().
10263 2002-03-20 Dan Lewis <dihlewis@yahoo.co.uk>
10265 * file-io.c: Flush shouldn't throw exceptions.
10267 2002-03-19 Dan Lewis <dihlewis@yahoo.co.uk>
10269 * file-io.c: FileStream flush support; FileSetLength now
10270 restores file pointer.
10272 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
10274 * class.c: set image for pointer classes.
10276 2002/03/19 Nick Drochak <ndrochak@gol.com>
10278 * sysmath.c: Forgot one.
10280 2002-03-18 Miguel de Icaza <miguel@ximian.com>
10282 * sysmath.c: Avoid redefining existing names.
10284 2002-03-18 Dan Lewis <dihlewis@yahoo.co.uk>
10286 * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
10287 handled by runtime as icall rather than dllimport from libm.so
10288 * file-io.c, file-io.h: fixed handle argument type.
10290 2002-03-18 Dick Porter <dick@ximian.com>
10292 * reflection.c (mono_image_get_type_info): rename interface to
10293 iface, because of "#define interface struct" on windows.
10295 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
10297 * class.c, class.h: rename and export mono_ptr_class_get().
10298 * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
10299 * reflection.c, reflection.h, icall.c: better/saner type name
10300 parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
10303 2002-03-14 Dietmar Maurer <dietmar@ximian.com>
10305 * class.c (mono_class_init): removed hardcoded GHC_SLOT
10307 * icall.c (ves_icall_InternalInvoke): impl.
10309 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
10311 * reflection.c: output the interface map table, too.
10313 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
10315 * class.c (class_compute_field_layout): separate computation of
10316 static field layout
10318 2002-03-12 Dan Lewis <dihlewis@yahoo.co.uk>
10320 * icall.c: added System.Buffer support.
10321 * file-io.c: moved file icalls from PAL to FileStream.
10323 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
10325 * icall.c (ves_icall_System_Object_GetHashCode): impl.
10327 2002-03-11 Dietmar Maurer <dietmar@ximian.com>
10329 * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
10331 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
10333 * verify.c, verify.h: moved here the corlib/runtime consistency checks.
10335 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
10337 * debug-helpers.{c,h}: moved here from monograph some useful functions
10338 to locate a method by name/signature in a class or image. Included
10339 also a small and flexible IL disassembler.
10341 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
10343 * reflection.c: fixup tokens in methods with small header size, too.
10345 2002-03-08 Dietmar Maurer <dietmar@ximian.com>
10347 * object.c (mono_string_to_utf8): remove assert(!error), instead
10350 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
10352 * icall.c: update to the new mono_Array_class_get interface.
10354 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
10356 * appdomain.c, object.c: Boehm-GC enable.
10357 * icall.c: make get_data_chunk() support split data requests.
10358 Ensure a class is initialized in more cases. Return only the first
10359 property found in GetProperties() or the compiler gets confused.
10360 Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
10361 * reflection.h, reflection.c: add fixup mechanism for field and method
10362 tokens. Initialize assembly->typeref in a single place. Output
10363 properties after events. Support custom attributes for events, too.
10364 Typo fix for paramter custom attrs.
10366 2002-03-07 Martin Baulig <martin@gnome.org>
10368 * icall.c (ves_icall_System_Array_FastCopy): Small fix.
10370 2002-03-07 Dietmar Maurer <dietmar@ximian.com>
10372 * class.c (mono_array_class_get): fix. for multi. dim. arrays
10374 2002-03-06 Martin Baulig <martin@gnome.org>
10376 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
10377 non-zero lower bounds. See testcases #F10-#F13.
10379 2002-03-05 Martin Baulig <martin@gnome.org>
10381 * exception.c (mono_get_exception_argument_out_of_range): New exception.
10383 * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
10384 ves_icall_System_Array_GetValue(), only calculate the absolute array position
10386 (ves_icall_System_Array_SetValue): Likewise.
10387 (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
10388 as argument and does the actual work. This function is used when copying a
10389 multi-dimensional array.
10390 (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
10391 now do all the widening conversions of value types.
10392 (ves_icall_System_Array_CreateInstanceImpl): Implemented.
10394 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
10396 * class.c: remove some magic numbers and use the smbolic names,
10397 instead. Added init_events() to load event info at class init time.
10398 * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
10399 and mono_metadata_methods_from_event().
10400 * reflection.h, reflection.c: added support for writing out the evnets
10401 related information.
10403 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
10405 * reflection.h, icall.c: use a different method (GetInterfaces)
10406 to gather interface info and add isbyref, isprimitive and
10407 ispointer to the ves_icall_get_type_info() return value.
10409 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
10411 * class.h: stared adding support for events.
10412 * icall.c: split find_members implementation. Added debug icall to get
10413 the address of an object.
10414 * reflection.c: handle TypeBuilders in mono_type_get_object().
10416 2002-03-01 Martin Baulig <martin@gnome.org>
10418 * icall.c (ves_icall_System_Array_GetLength): This must throw an
10419 ArgumentOutOfRangeException(), not an ArgumentException().
10420 (ves_icall_System_Array_GetLowerBound): Likewise.
10421 (ves_icall_System_Array_GetValue): Improved argument checking.
10422 (ves_icall_System_Array_SetValue): Improved argument checking.
10424 2002-03-01 Martin Baulig <martin@gnome.org>
10426 * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
10427 called with invalid arguments rather than just dying with g_assert().
10428 (ves_icall_System_Array_SetValue): Likewise.
10429 (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
10430 raise a NotImplementedException instead.
10431 (ves_icall_System_Array_GetLength): Added argument checking.
10432 (ves_icall_System_Array_GetLowerBound): Added argument checking.
10434 2002-03-01 Dietmar Maurer <dietmar@ximian.com>
10436 * object.h (mono_assert): new macros mono_assert and
10437 mono_assert_not_reached
10439 2002-02-28 Martin Baulig <martin@gnome.org>
10441 * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
10442 and "System::String::IsInterned" to "System::String::_IsInterned".
10444 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
10446 * icall.c: remove hacks for typebuilder. Added icall to create a
10447 modified type from a tybebuilder.
10448 * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
10449 in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
10450 to create a backing MonoClass for a TypeBuilder.
10452 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
10454 * class.c, class.h: more refactoring of class init.
10455 Export mono_class_setup_mono_type() and mono_class_setup_parent().
10457 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
10459 * marshal.c, marshal.h: start of marshaling interface.
10461 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
10463 * icall.c: fix order in assembly qualified name icall.
10465 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
10467 * class.c: do not free str, since we store it in the hash table.
10468 * reflection.h: add label field to MonoILExceptionInfo.
10469 * reflection.c: handle references to more than one assembly. Handle
10470 case when there isn't a module created in the assembly.
10472 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
10474 * class.c: Fix typo. Start refactoring of class init code.
10476 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
10478 * appdomain.c: exit with 1 on error.
10479 * class.c: we already have the name in MonoClassField.
10480 * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
10481 MonoStreamHeader instead of an offset of image->raw_metadata.
10483 2002-02-26 Miguel de Icaza <miguel@ximian.com>
10485 * appdomain.c (mono_init): Be even more descriptive about the error.
10487 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
10489 * appdomain.c: give the user an informative message when corlib can't
10492 2002-02-26 Martin Baulig <martin@gnome.org>
10494 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
10495 New icall to get the time zone data.
10497 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
10499 * reflection.c: set virtual and raw size of section correctly.
10500 * threads.c: transfer domain information to newly created threads.
10502 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
10504 * class.c: when instancing a class in a domain, load the default
10505 vaules for static fields from the constant table. Fix System.Enum to
10507 * icall.c: implement Object::GetType() internalcall. Implemented
10508 MonoField::GetValue() internalcall. Avoid SEGV in search_method().
10509 Fixed checking of binding flags in find_members().
10510 * metadata.c, metadata.h: introduce mono_metadata_type_hash().
10511 * reflection.c: handle enumerations when writing to the constant
10512 table. Use a different object cache for types.
10515 2002-02-22 Dietmar Maurer <dietmar@ximian.com>
10517 * object.c (mono_object_isinst): fix for arrays
10519 * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
10521 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
10523 * object.c: don't use mprotect () and fix intern pool hash table
10524 lookup for big endian systems.
10526 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
10528 * icall.c: change type_is_subtype_of () signature.
10530 2002-02-21 Mark Crichton <crichton@gimp.org>
10532 * rand.c, rand.h: Added random number generator for
10533 System.Security.Cryptography classes.
10535 * exception.c, exception.h: Added mono_get_exception_not_implemeted.
10537 * icall.c: Added System.Security.Cryptography calls.
10539 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
10541 * class.c, icall.c, metadata.c: better support for pointer types.
10542 Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
10543 * reflection.c: Add support for getting custom attrs for properties
10544 and simplify some code.
10546 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
10548 * icall.c: change getToken () and add custom attribute GetBlob()helper
10550 * reflection.h: add custom attrs array to the reflection builder structures.
10551 * reflection.c: encode and emit custom attributes for all the relevant
10552 reflection objects. Cache fieldref and methodref tokens. Change
10553 mono_image_create_token() interface to take a MonoDynamicAssembly.
10554 More complete custom attributes decoder. Load custom attributes for
10555 Assembly, Field, Method and Constructor objects, too. Make the
10556 returned array an Attribute[] one, not object[]. Added
10557 mono_reflection_get_custom_attrs_blob() to encode the arguments of a
10558 custom attribute constructor.
10560 2002-02-20 Dick Porter <dick@ximian.com>
10564 * socket-io.c: Windows portability fixes (sometimes just ifdeffing
10565 problem code out for now).
10567 2002-02-19 Radek Doulik <rodo@ximian.com>
10569 * object.c (mono_ldstr): use hash table to avoid multiple swapping
10571 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
10573 * icall.c: register the GetCustomAttributes method.
10574 * object.c, object.h: add mono_string_new_len ().
10575 * reflection.h, reflection.c: added mono_runtime_invoke(),
10576 mono_install_runtime_invoke(). Added
10577 mono_reflection_get_custom_attrs () to load custom attributes and
10578 create the attribute objects.
10580 2002-02-19 Dick Porter <dick@ximian.com>
10581 * threads-dummy-types.c:
10582 * threads-dummy-types.h:
10585 * threads-pthread-types.c:
10586 * threads-pthread-types.h:
10587 * threads-pthread.c:
10588 * threads-pthread.h: Deleted obsolete files
10590 2002-02-19 Dietmar Maurer <dietmar@ximian.com>
10592 * class.c (mono_class_vtable): runtime init the class when we
10593 allocate static class data.
10595 * icall.c (ves_icall_System_Array_SetValue): check for null values.
10597 * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
10598 and String - but we will need generic marshalling support in the
10600 (mono_init): set the domain name in a ms compatible way
10602 * object.c (mono_string_new_utf16): bug fix: use char[] instead of
10605 2002-02-18 Dietmar Maurer <dietmar@ximian.com>
10607 * object.c (mono_array_clone): use alloca() instead of g_malloc
10610 * appdomain.c (mono_domain_unload): impl.
10612 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
10614 * appdomain.c, object.c: fix intern pool implementation.
10615 * class.c: fix alignment code.
10617 2002-02-16 Radek Doulik <rodo@ximian.com>
10619 * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
10620 and s2 > s1, just copy lower bytes to be compatible with little
10621 endian (i.e. 64bit value & 0xffffffff --> 32bit value)
10622 (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
10624 * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
10625 force big_endian to be 1 for big endian machines
10626 (ves_icall_iconv_new_decoder): ditto
10628 2002-02-16 Jeffrey Stedfast <fejj@ximian.com>
10630 * socket-io.c (convert_sockopt_level_and_name): If the system
10631 doesn't define SOL_IP or SOL_TCP, get them by hand using
10632 getprotobyname() and caching the values (because this could be a
10634 (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
10635 Use the appropriate struct when the system does support it. Ie,
10636 not all systems have struct ip_mreqn so use struct ip_mreq when
10639 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
10641 * reflection.c: handle finally clauses.
10643 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
10645 * socket-io.c: use g_snprintf() instead of snprintf.
10647 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
10649 * reflection.c (mono_param_get_objects): Cast second argument to
10650 mono_method_get_param_names to a const char** to silence the
10653 * appdomain.c (mono_domain_assembly_open): Put parens around the
10654 truth statement in the for-loop.
10656 * unicode.c (iconv_convert): Got rid of a compiler warning about
10657 int i being unused when the system has a new iconv.
10658 (iconv_get_length): Same.
10660 * image.c (load_class_names): Cast the second argument to
10661 g_hash_table_insert() to char* to hush compiler warnings about the
10663 (mono_image_open): Same here.
10665 * socket-io.c: Don't conditionally include sys/filio.h or
10666 sys/sockio.h here anymore since we now get them from
10667 io-layer/io-layer.h
10668 (inet_pton): If the system doesn't support inet_aton, implement
10669 using inet_addr and also #define INADDR_NONE if it isn't defined
10672 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
10674 * metadata.c, metadata.h: added function to get packing and size info
10676 * reflection.h, reflection.c: handle field RVA data. Save info about
10677 the table layout if needed. Assign typedef indexes to all the types
10678 before dumping the info about them to avoid forward reference problems.
10680 2002-02-14 Dietmar Maurer <dietmar@ximian.com>
10682 * socket-io.c (convert_sockopt_level_and_name): ifdef
10683 SO_ACCEPTCONN because it is not defined on my system (old debian)
10685 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
10687 * opcode.c: use stddef.h to get NULL.
10689 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
10691 * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
10692 for FIONBIO, FIONREAD and SIOCATMARK.
10693 (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
10694 define INADDR_NONE and besides, inet_addr() is deprecated and
10695 should not be used. Use inet_pton() instead - it also has the
10696 added bonus that it can easily handle IPv6 addresses as well.
10697 (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
10699 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
10701 * decimal.c: remove _MSC_VER conditional.
10703 2002-02-13 Dick Porter <dick@ximian.com>
10706 * icall.c: Internal calls for Blocking, Select, Shutdown,
10707 GetSocketOption and SetSocketOption
10709 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
10711 * assembly.cs: better resolver: use it instead of some kludgy
10714 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
10716 * reflection.c: the best way to speed-up the compiler is to avoid
10719 2002-02-13 Dietmar Maurer <dietmar@ximian.com>
10721 * class.c (mono_class_vtable): changed the object layout
10722 (obj->vtable->class).
10723 (mono_class_create_from_typespec): consider MONO_TYPE_PTR
10725 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
10727 * assembly.c: look for assemblies in the assembly dir, too.
10729 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
10731 * class.c: fix thinko in mono_class_from_type().
10733 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
10735 * exception.h, exception.c: added TypeLoadException.
10736 * object.h, object.c: added mono_array_clone ().
10737 * icall.c: handle throwOnError in AssemblyGetType().
10738 Added Array.Clone().
10739 * opcode.h, opcode.c: use a single value for the opcode val.
10740 Compile fix for non-gcc compilers.
10742 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
10744 * opcodes.c, opcodes.h: export interesting info about opcodes.
10746 2002-02-05 Dietmar Maurer <dietmar@ximian.com>
10748 * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
10751 * class.c (class_compute_field_layout): set element_class for enums
10752 (mono_class_create_from_typedef): set element_class for normal classes
10754 * icall.c (ves_icall_System_Enum_get_value): impl.
10756 * class.c (mono_class_create_from_typedef): do not set valuetype
10757 flag for System.ValueType and System.Enum
10759 2002-02-04 Dietmar Maurer <dietmar@ximian.com>
10761 * unicode.c (iconv_convert): fix big endian problem.
10763 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
10765 * class.c: add asserts if we are ever going to scribble over memory.
10766 * socket-io.c: not all systems have AF_IRDA defined.
10768 2002-01-31 Dietmar Maurer <dietmar@ximian.com>
10770 * class.c (class_compute_field_layout): do not consider static
10771 fields to compute alignment
10773 2002-01-25 Dietmar Maurer <dietmar@ximian.com>
10775 * appdomain.c (mono_appdomain_get): impl.
10776 (ves_icall_System_AppDomain_ExecuteAssembly): impl.
10778 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
10780 * icall.c: ignore "file://" prefix when loading an assembly.
10782 2002-01-23 Dick Porter <dick@ximian.com>
10786 * Makefile.am: Added socket support
10788 2002-01-23 Miguel de Icaza <miguel@ximian.com>
10790 * icall.c (ves_icall_appdomain_get_default_assemblies): put this
10791 code back. This should return the assemblies that are loaded by
10792 the runtime on behalf of an application domain.
10794 The current implementation is still broken, it just returns every
10795 assembly loaded, but until we get real applications domain this
10798 2002-01-23 Dietmar Maurer <dietmar@ximian.com>
10800 * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
10803 2002-01-23 Miguel de Icaza <miguel@ximian.com>
10805 * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
10806 the mono_class_from_name lookup.
10807 (ves_icall_get_parameter_info): ditto.
10808 (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
10810 (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
10812 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
10814 * class.c: load also nested classes on class init.
10815 System.ValueType instance methods gets passed boxed
10816 values, unless methods in derived classed that get a pointer to the
10818 * icall.c: use better name parsing code in GetType().
10819 * image.c, image.h: add mono_image_loaded ().
10820 * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
10821 * reflection.c, reflection.h: added mono_reflection_parse_type().
10823 2002-01-22 Veronica De Santis <veron78@interfree.it>
10825 * icall.c : Added mapping of internal calls for Manual and Auto reset events
10826 * threads.c : Added the implementation of internal calls for events
10827 * threads.h : Added prototypes of internal calls for events
10829 2002-01-21 Radek Doulik <rodo@ximian.com>
10831 * icall.c (ves_icall_InitializeArray): swap bytes on big endians
10833 2002-01-21 Dietmar Maurer <dietmar@ximian.com>
10835 * class.c (mono_class_init): set min_align to 1 (instead of 0)
10836 (mono_class_value_size): use min_align
10838 2002-01-20 Dick Porter <dick@ximian.com>
10841 * threads.c: Replaced all instances of WapiHandle * with HANDLE,
10842 so it compiles on w32.
10844 2002-01-17 Dietmar Maurer <dietmar@ximian.com>
10846 * metadata.c (mono_type_stack_size): impl.
10848 * class.c (mono_class_get_field): impl. memberref token
10850 2002-01-16 Veronica De Santis <veron78@@interfree.it>
10852 * icall.h : Added the internal calls mapping for CreateMutex_internal
10853 and ReleaseMutex_internal.
10854 * threads.h : Added the prototype of mutexes internal calls.
10855 * threads.c : Added the implementations of mutexes internal calls.
10857 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
10859 * metaparse.h: removed unused file.
10860 * reflection.c, reflection.h: added stream_data_align () function
10861 to align data in streams and keep stream aligned. Add support for
10862 exception support in method headers.
10864 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
10866 * unicode.c: make iconv_convert () return the number of bytess written
10867 in the output buffer.
10869 2002-01-15 Dick Porter <dick@ximian.com>
10870 * threads.c: Make the runtime's idea of infinite timeouts coincide
10871 with the class library's
10873 Fix a particularly egregious bug in mono_thread_cleanup(). That
10874 code was so utterly bogus it must have been written on a Monday.
10876 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
10878 * reflection.h: add subtypes field to TypeBuilder.
10879 * reflection.c: encode constants for literal fields.
10880 Handle subtypes. Fix user string token (and add a zero byte)
10883 2002-01-14 Dietmar Maurer <dietmar@ximian.com>
10885 * class.c (mono_class_init): bug fix: assign slot numbers for
10888 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
10890 * reflection.c: don't try to output a code RVA for abstract methods.
10891 Small fixes for method header format. Output parameter info to the
10892 ParamDef table. Save method overriding info to MethodImpl table.
10893 Fix property support. Allow typedef.extends to be a type in the
10895 * verify.c: fix off-by-one error.
10897 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
10899 * class.c: fix mono_class_from_mono_type () for szarray types.
10900 Remove unused cache check in mono_class_from_type_spec().
10901 * icall.c: *type_from_name () functions handle simple arrays and byref.
10902 * reflection.c: handle byref and szarray types. Handle methods without
10903 body (gets P/Invoke compilation working). Handle types and fields in
10905 * reflection.h: add rank to MonoTypeInfo.
10907 2002-01-10 Dick Porter <dick@ximian.com>
10909 * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
10912 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
10914 * icall.c: initialize class in type_from_handle ().
10915 Loop also in parent classes for get_method ().
10916 * reflection.c: properly encode class and valuetype types.
10917 Start on encoding TypeBuilder types. Handle fieldrefs.
10918 Use correct length when registering a user string.
10919 Handle ConstructorBuilder and MonoMethod in get_token ().
10920 Make mono_type_get_object () aware of cached types.
10921 * object.c: back out change to mono_string_new ().
10923 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
10924 * object.c: mono_string_new should return a NULL when the string
10925 passed in is NULL -- not try to deference it.
10927 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
10929 * icall.c: hack to make IsSubType work for TypeBuilders.
10930 * reflection.c: emit constructors before methods.
10931 Retrieve param names in mono_param_get_objects().
10933 2002/01/05 Nick Drochak <ndrochak@gol.com>
10935 * Makefile.am: fix list of headers and sources so automake 1.5
10936 doesn't complain. Removed \# at end of list.
10938 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
10940 * reflection.c: get token for a method ref. Set return type of
10941 constructor to void.
10942 * loader.c: debug message.
10943 * class.c: typo fix.
10945 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
10947 * icall.c: fix array init with rank > 1. FindMembers
10948 loops in parent class as well.
10949 * image.c: do not insert nested types in name cache.
10950 * reflection.c: warning fix.
10951 * reflection.h: add override method (for interface impl).
10953 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
10955 * metadata.c: fix customattr decoding.
10957 2001-12-21 Miguel de Icaza <miguel@ximian.com>
10959 * rawbuffer.cs: Added native Win32 implementation, avoids using
10960 mmap on Cygwin. This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
10962 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
10964 * class.c: make the low-level routines handle the cache.
10966 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
10968 * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
10970 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
10972 * class.c: fix mono_array_element_size() for objects.
10973 * class.h, class.c: add properties to MonoClass and load them
10975 * icall.c: check with isinst() when assigning a value to an array
10976 instead of requiring the classes to match exactly.
10977 Implemented icall for System.Type::GetType().
10978 Implemented icalls to get ParameterInfo, ProprtyInfo and info about
10979 enums. Handle bindingflags when looking for methods and fields.
10980 * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
10981 and mono_metadata_methods_from_property().
10982 * reflection.h, reflection.c: added structures for propreties,
10983 parameters and enums. Implemented mono_property_get_object() and
10984 mono_param_get_objects().
10986 2001-12-18 Dick Porter <dick@ximian.com>
10988 * file-io.c: Use mono_string_to_utf16() instead of
10989 mono_string_chars()
10991 * object.c: Added mono_string_to_utf16(), which copies the non
10992 NULL-terminated MonoString into a new double-null-terminated
10995 2001-12-17 Dietmar Maurer <dietmar@ximian.com>
10997 * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
10999 2001-12-16 Dietmar Maurer <dietmar@ximian.com>
11001 * file-io.c: raise exceptions if handle is invalid.
11003 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
11005 * assembly.c: yet another check for mscorlib.
11006 * class.c, class.h: load nesting info for classes.
11007 * icall.c: many new functions to support the Reflection classes.
11008 * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
11009 * reflection.h, reflection.c: mono_image_create_token(),
11010 mono_assembly_get_object(), mono_type_get_object(),
11011 mono_method_get_object(), mono_field_get_object(): methods to return
11012 objects that parallel the C representation of assemblies, types,
11015 2001-12-11 Dick Porter <dick@ximian.com>
11018 * file-io.c: Internal calls for file IO.
11020 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
11022 * tabledefs.h: missing FileAttributes.
11023 * verify.h, verify.c: use is_valid_string () to simplify and check for
11024 valid strings more correctly. Fix warnings and speeling.
11025 Check more tables: Filed, File, ModuleRef, StandAloneSig.
11026 Check code: branches, maxstack, method calls.
11028 2001-12-04 Dietmar Maurer <dietmar@ximian.com>
11030 * object.c (mono_object_allocate): removed static, so that the jit
11031 can allocate value types.
11033 * icall.c (ves_icall_System_DateTime_GetNow): impl.
11035 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
11037 * class.c: init enum types right away and register the
11038 token->MonoClass map in mono_class_create_from_typedef ().
11039 * verify.h, verify.c: first cut of the verifier.
11040 * pedump.c: add --verify switch to verify metadata tables.
11041 * tabledefs.h: add some missing enums.
11043 2001-11-30 Dietmar Maurer <dietmar@ximian.com>
11045 * class.c (mono_install_runtime_class_init): impl.
11046 (mono_class_init): renamed mono_class_metadata_init to
11047 mono_class_init, also removed the metadata_inited flag
11049 * object.c (mono_object_isinst): use faster algorithm
11051 2001-11-30 Radek Doulik <rodo@ximian.com>
11053 * mono-endian.h: reverted last change
11054 added function prototypes
11056 * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
11057 add mono-endian.c back
11059 * mono-endian.c: returned back, as Paolo pointed out, it's needed
11060 for unaligned access, I've mistaked it with endianess. I am
11062 (mono_read16): fix reverted endianess
11063 (mono_read64): ditto
11064 (mono_read32): ditto
11066 2001-11-30 Dick Porter <dick@ximian.com>
11068 * exception.c: Implement mono_exception_from_name()
11070 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
11072 * metadata.h, metadata.c: remove params_size and locals_size and their
11073 calculation from the metadata code: they are only usefult to the
11076 2001-11-29 Radek Doulik <rodo@ximian.com>
11078 * object.c (mono_ldstr): swap bytes here, it's probably not the
11079 best place, but works for me now, I'll redo it once I know mono
11080 better, also note that I add PROT_WRITE and don't reset back, also
11081 note that it's only affects big endians, so x86 should be OK
11083 * mono-endian.h (read16): use just glib macros for both endians
11085 * mono-endian.c: removed as glib macros are used in in
11086 mono-endian.h so we don't need to care about endianess for read
11087 macros as glib does that for us already
11089 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
11091 * class.h, class.h: take minimum alignment into consideration so
11092 that the fields of a class remain aligned also when in an array.
11094 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
11096 * loader.h, loader.c: add mono_method_get_param_names().
11097 * class.c: 0-init class fields.
11099 2001-11-26 Dick Porter <dick@ximian.com>
11103 * threads.c: New file that handles System.Threading on all platforms
11106 * object.h: Remove the synchronisation struct from MonoObject,
11107 replace it with a pointer that gets initialised on demand
11109 * Makefile.am: Replace all the system-specific threading code with
11110 a single file that uses the new wrapper library
11112 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
11114 * class.c, class.h: add mono_install_trampoline() so that the runtime
11115 can register a function to create a trampoline: removes the ugly
11116 requirement that a runtime needed to export arch_create_jit_trampoline.
11117 * object.h, object.c: added mono_install_handler() so that the runtime
11118 can install an handler for exceptions generated in C code (with
11119 mono_raise_exception()). Added C struct for System.Delegate.
11120 * pedump.c: removed arch_create_jit_trampoline.
11121 * reflection.c: some cleanups to allow registering user strings and
11122 later getting a token for methodrefs and fieldrefs before the assembly
11124 * row-indexes.h: updates and fixes from the new ECMA specs.
11126 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
11128 * class.h, class.c: add enum_basetype field to MonoClass.
11129 * metadata.h, metadata.c: add mono_metadata_get_constant_index()
11130 to get index in the constant table reated to a field, param or
11132 * reflection.h, reflection.c: handle constructors. Set public-key and
11133 version number of the built assembly to 0.
11134 * row-indexes.h: update from new ECMA spec.
11136 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
11138 * class.h, class.c: add a max_interface_id to MonoClass.
11139 * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
11140 since it's used to do that. Added mono_type_type_from_obj().
11141 Make GetType() return NULL instead of segfaulting if the type was not
11142 found. Handle simple arrays in assQualifiedName.
11143 * object.h: add a struct to represent an Exception.
11144 * reflection.c: output call convention in method signature.
11145 Add code to support P/Invoke methods and fixed offsets for fields.
11147 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
11149 * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
11151 * icall.c: use mono_array_addr instead of array->vector: fixes the
11152 reflection image writing.
11153 * reflection.c: init call convention byte to 0 in method signature.
11154 Encode the property signature. Don't output property-related methods
11155 twice. Really process the properties for a type (don't cast a field to
11156 a property, my mom always told me that).
11157 Fix 64 bit issues in pointer alignment in a different and more
11160 2001-11-10 Sean MacIsaac <macisaac@ximian.com>
11162 * loader.h: Removed type class from MonoDefaults, added monotype
11164 * loader.c: Loaded MonoType, removed loading of Type
11166 * icall.c (my_mono_new_object): Now returns a System.MonoType,
11167 and fills in System.Type._impl with a RuntimeTypeHandle rather
11168 than the actual MonoClass *
11170 (ves_icall_type_from_handle): change from type_class to
11173 (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
11176 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
11179 (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
11181 (ves_icall_System_Reflection_Assembly_GetType): implemented
11183 (ves_icall_System_MonoType_assQualifiedName): implemented
11185 (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
11187 2001-11-09 Miguel de Icaza <miguel@ximian.com>
11189 * assembly.c (mono_assembly_open): Implement a cache for the
11192 (mono_assembly_close): only destroy the assembly when the last
11195 2001-11-09 Dick Porter <dick@ximian.com>
11197 * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
11199 2001-11-09 Dietmar Maurer <dietmar@ximian.com>
11201 * class.c (mono_class_metadata_init): bug fix: compute the right slot
11203 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
11205 * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
11206 from Martin Weindel.
11207 * object.h: add mono_string_chars ().
11209 2001-11-07 Miguel de Icaza <miguel@ximian.com>
11211 * reflection.c (build_compressed_metadata): Eliminates warnings
11212 and uses 64-bit clean code.
11214 * metadata.c (mono_type_hash): Change signature to eliminate warnings.
11215 (mono_type_equal): Change signature to eliminate warnings.
11217 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
11219 * icall.c, loader.c: remove the internalcall array constructors.
11220 Changes to match the new MonoArray structure.
11221 * object.h, object.c: an array object doesn't allocate an extra
11222 vector. Add mono_array_new_full () to create jagged arrays easily.
11224 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
11226 * metadata.h, metadata.c: add mono_metadata_field_info () to
11227 retreive all the info about a field from vairous tables.
11228 * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
11229 * class.h, class.c: augment MonoClassField with more info.
11230 Implemented mono_ldtoken for fields. Implemented ExplicitLayout
11231 policy and load a field's RVA if needed.
11233 2001-11-05 Dietmar Maurer <dietmar@ximian.com>
11235 * class.c (mono_class_metadata_init): create a trampoline for all
11236 virtual functions instead of actually compiling them.
11238 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
11240 * class.h, class.c: include name in MonoClassField.
11241 * class.c: fix fundamental type of System.Object and System.String.
11242 Set the right fundamental type for SZARRAY, too. Handle TypeSpec
11244 * icall.c: remove internalcalls for the Reflection stuff that is now
11246 * loader.c: mono_field_from_memberref () implementation.
11247 * mono-endian.c: thinko (s/struct/union/g).
11248 * object.c, object.h: make the mono_string_* prototypes actually use
11249 MonoString instead of MonoObject.
11250 * reflection.c, reflection.h: updates for changes in the reflection
11251 code in corlib: we use C structures that map to the actual C# classes.
11252 Handle SZARRAYs when encoding types. Handle locals in methods. Use a
11253 fat method header if needed and use the info from the ILGenerator for
11254 methods. Handle fields in types. Misc fixes.
11256 2001-10-17 Dietmar Maurer <dietmar@ximian.com>
11258 * class.c (mono_class_metadata_init): bug fix: always allocate
11259 space for static class data
11261 2001-10-25 Dietmar Maurer <dietmar@ximian.com>
11263 * class.c (mono_compute_relative_numbering): use relative
11264 numbering to support fast runtime type checks.
11266 2001-10-17 Sean MacIsaac <macisaac@ximian.com>
11268 * class.c (mono_class_create_from_typeref): added debugging output
11269 to print class name when MonoDummy is returned instead of real class
11271 2001-10-15 Dietmar Maurer <dietmar@ximian.com>
11273 * class.c (mono_class_metadata_init): interface offset table now
11274 contains pointers into the vtable - this is more efficient for the jit
11276 2001-10-12 Dietmar Maurer <dietmar@ximian.com>
11278 * class.c (mono_class_metadata_init): use a temporary vtable (the
11279 old algorithm only worked for the interpreter, but not for the jit)
11281 2001-10-11 Dietmar Maurer <dietmar@ximian.com>
11283 * loader.c (method_from_memberref): use mono_class_get to get the
11284 class of an array instead of using System.Array directly.
11285 (mono_get_method): also add MEMBERREF methods to the method cache
11286 which usefull for arrays.
11288 2001-10-10 Dietmar Maurer <dietmar@ximian.com>
11290 * pedump.c (arch_compile_method): added to compute vtable entry
11292 * metadata.c (mono_metadata_interfaces_from_typedef): also return the
11293 number of interfaces.
11295 * class.h: merged MonoArrayClass into MonoClass
11297 * class.c (mono_class_create_from_typedef): compute the vtable size and
11298 allocate space to include the vtable inside MonoClass
11299 (mono_class_metadata_init): initialize the vtable
11301 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
11303 * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
11304 Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
11305 * image.c: endian fixes by Laurent Rioux.
11306 * object.h, object.c: rename MonoStringObject to MonoString and
11307 MonoArrayObject to MonoArray. Change some function names to conform to
11308 the style mono_<object>_<action>. mono_string_new_utf16 () takes a
11309 guint16* as first argument, so don't use char*.
11310 Provide macros to do the interesting things on arrays in a portable way.
11311 * threads-pthread.c: updates for the API changes and #include <sched.h>
11312 (required for sched_yield()).
11313 * icall.c: updates for the API changes above.
11314 * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
11315 platforms that need them.
11317 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
11319 * class.c: set the correct type for all the fundamental
11320 type when loading the class.
11322 2001-10-05 Dick Porter <dick@ximian.com>
11324 * threads-pthread.c (pthread_mutex_timedlock): Simple
11325 compatibility version for C libraries that lack this call.
11327 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
11329 * class.c: MonoTypes stored in MonoClass are stored as
11330 fundamental MonoTypes when the class represents a
11331 fundamental type (System.Int32, ...).
11332 The TypeHandle return by ldtoken is a MonoType*.
11333 * icall.c: ves_icall_get_data_chunk () write out all the
11334 PE/COFF stuff. Implement ves_icall_define_method (),
11335 ves_icall_set_method_body (), ves_icall_type_from_handle ().
11336 * image.c: properly skip unknown streams.
11337 * loader.h, loader.c: add type_class to mono_defaults.
11338 * metadata.c, metadata.h: export compute_size () as
11339 mono_metadata_compute_size () with a better interface.
11340 Typo and C&P fixes.
11341 * pedump.c: don't try to print the entry point RVA if there is no entry point.
11342 * reflection.c, reflection.h: many cleanups, fixes, output method
11343 signatures and headers, typedef and typeref info, compress the metadata
11344 tables, output all the heap streams, cli header etc.
11345 * row-indexes.h: typo fixes.
11347 2001-10-04 Dick Porter <dick@ximian.com>
11349 * object.h: Add a synchronisation mutex struct to MonoObject
11351 * object.c (mono_new_object): Initialise the object
11352 synchronisation mutexes
11354 * icall.c: System.Threading.Monitor internal calls
11356 * threads-pthread.h:
11357 * threads-pthread.c: System.Threading.Monitor internal calls
11359 * threads-types.h: New file, includes the system-specific thread
11362 * threads-pthread-types.h:
11363 * threads-pthread-types.c: New files, handle pthread-specific
11364 synchronisation types
11366 * threads-dummy-types.h:
11367 * threads-dummy-types.c: New files of dummy support for
11368 thread-specific types
11372 * pedump.c: include mono-endian.h not endian.h
11374 * Makefile.am: More threads files.
11375 Name mono-endian.h not endian.h
11377 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
11379 * Makefile.am, reflection.h, reflection.c: move here the reflection related
11380 stuff and implement a few more bits.
11381 * icall.c: a field needs to be dereferenced twice. Do not use the same
11382 name for two variables in the same scope.
11383 * image.c, image.h: cleanups.
11385 2001-10-02 Dietmar Maurer <dietmar@ximian.com>
11387 * class.c (mono_class_metadata_init): bug fix: compute the right size
11389 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
11391 * icall.c: implemented some of the Reflection internalcalls.
11392 * image.c, image.h: start writing out the PE/COFF image.
11393 * metadata.h, metadata.c: implement mono_metadata_encode_value ()
11394 that does the reverse than decode_blob_size ().
11395 * object.c: use mono_metadata_encode_value (). Move here
11396 temporary implementation of mono_string_to_utf8 ().
11397 * rawbuffer.c: make malloc_map static.
11399 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
11401 * metadata.c: fix type comparison for arrays.
11402 * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
11403 Added a couple of new classes to monodefaults.
11404 * icall.c: added a couple of Reflection-related internalcalls.
11405 * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
11406 Added a byval_arg MonoType to MonoClass.
11408 2001-09-28 Dick Porter <dick@ximian.com>
11411 * threads-pthread.h:
11412 * threads-pthread.c: Implemented internal calls for
11413 LocalDataStoreSlot operations. Applied mutexes around all shared
11414 data. Reworked the thread creation and Start() operations to
11415 avoid a race condition.
11418 * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
11420 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
11422 * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
11424 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
11426 * class.c, loader.c: warn and return NULL instead of erroring out.
11427 * icall.c: added System.AppDomain::getCurDomain().
11428 * loader.c: we don't need to lookup the typedef again for p/invoke calls.
11430 2001-09-25 Dick Porter <dick@ximian.com>
11432 * threads-pthread.h:
11433 * threads-pthread.c: Implemented timed thread joining and added
11434 System.Threading.Thread::Join_internal internal call
11436 * icall.c: Added System.Threading.Thread::Join_internal internal call
11439 * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
11441 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
11443 * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
11444 mono_string_intern () to implement the semantics of the ldstr opcode
11445 and the interning of System.Strings.
11446 * icall.c: provide hooks to make String::IsIntern and String::Intern
11449 2001-09-23 Dick Porter <dick@ximian.com>
11452 * threads-dummy.h: New files of dummy threading routines
11454 * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
11455 support code based on system specifics
11457 Rename PTHREAD_LIBS to THREAD_LIBS
11459 2001-09-23 Dick Porter <dick@ximian.com>
11461 * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
11462 Schedule (called when asked to Sleep for 0 ms) and CurrentThread
11464 (mono_thread_init): Set up a Thread object instance to return when
11465 the main thread calls Thread.CurrentThread
11466 (mono_thread_cleanup): Wait for all subthreads to exit
11468 * icall.c: New internal calls for System.Threading.Thread::Sleep
11469 (including Schedule) and CurrentThread
11471 * threads.h: New file, to insulate thread-specific stuff from the
11474 2001-09-21 Dick Porter <dick@ximian.com>
11476 * threads-pthread.h:
11477 * threads-pthread.c: New file, for handling pthreads-style
11478 threading support. Start() now starts a new thread and executes
11479 the ThreadStart delegate instance.
11481 * icall.c: Added the internalcall for
11482 System.Threading.Thread::Start_internal
11484 * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
11486 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
11488 * loader.c: work around the different signatures for delegates
11489 constructors csc generates in compiled code vs the ones compiled in mscorlib.
11491 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
11493 * class.h, class.c: add mono_class_get_field_from_name ().
11494 * *: Fix C comments and other ANSI C issues.
11496 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
11498 * endian.h, assembly.c: fix some endianness issues.
11500 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
11502 * loader.h, load.c: add delegate_class to mono_defaults.
11503 Handle runtime provided methods in mono_get_method ().
11505 2001-08-29 Dietmar Maurer <dietmar@ximian.com>
11507 * loader.c (mono_get_method): use pinvoke for internal call
11509 * icall.c: use pinvoke for internal call
11511 * loader.c (method_from_memberref): set the method name
11513 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
11515 * metadata.c: help the compiler generate better code for
11516 mono_class_from_mono_type ().
11518 2001-08-28 Dietmar Maurer <dietmar@ximian.com>
11520 * class.c (mono_class_metadata_init): delayed computing of the
11521 class size to mono_class_metadata_init ()
11523 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
11525 * class.c, class.h: add an interfaces member to MonoClass.
11526 * image.c, image.h: add assembly_name field to MonoImage
11527 from the assembly table.
11528 * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
11530 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
11532 * class.c: Handle Array in mono_class_from_mono_type ().
11533 * metadata.c, pedump.c: some endian fixes.
11535 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
11537 * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
11538 * metadata.c: fix small problem introduced with the latest commit.
11540 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
11542 * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
11543 We don't need a MonoMetadata pointer anymore to compare signatures in
11544 mono_metadata_signature_equal (), update callers.
11545 Reduced memory usage an number of allocations for MonoMethodHeader and
11546 MonoMethodSignature.
11548 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
11550 * metadata.c: added compare for szarray.
11552 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
11554 * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
11555 and add a couple more types to it and mono_defaults. Give an hint on
11556 classes that need implementing in our corlib and are referenced
11559 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
11561 * class.h, class.c: keep track if a class is also an Enum.
11562 * loader.c: Implement a couple more types for use in libffi
11563 marshalling. Gives better diagnostics when failing to dlopen
11564 a library. Set method->klass for P/Invoke methods, too.
11566 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
11568 * class.c, class.h: add a MonoType this_arg to MonoClass that
11569 represents a pointer to an object of the class' type that
11570 can be used by the interpreter and later the type cache.
11571 Add best guess alignment info for valuetype objects.
11573 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
11575 * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
11576 into MonoType: one less level of indirection and allocation and
11577 simplifies quite a bit of code. Added cache for MonoTypes that are
11578 used frequently, so that we don't need to allocate them all the time.
11580 2001-08-24 Dietmar Maurer <dietmar@ximian.com>
11582 * class.c (mono_class_create_from_typedef): System.Enum is also a
11583 value type, although it does not derive from System.ValueType
11584 (maybe a bug in the ms compiler?)
11586 * metadata.c (mono_type_size): return the right size for value types
11588 * loader.c (mono_get_method): only initialize method header if not abstract
11590 * class.c (mono_class_from_mono_type): use mono_default values.
11592 2001-08-23 Dietmar Maurer <dietmar@ximian.com>
11594 * *: use MonoClass pointers instead of <type_tokens>
11596 * class.h: new flag: metadata_inited.
11598 * class.c (mono_class_metadata_init): impl.
11599 (mono_class_instance_size): impl.
11600 (mono_class_data_size): impl.
11602 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
11604 * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
11605 MonoClass now has the name and name_space fields.
11606 MonoMethod has a pointer to its MonoClass, instead of MonoImage.
11607 mono_get_method () takes and optional MonoClass as argument.
11608 Removed mono_typedef_from_name() and added mono_class_token_from_name()
11609 instead that takes advantage of a map from class names to typedef
11610 tokens in MonoImage.
11612 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
11614 * metadata.c: zero is not a valid alignment boundary.
11615 Merge MONO_TYPE_VOID in default decoding code.
11617 2001-08-21 Dietmar Maurer <dietmar@ximian.com>
11619 * image.h: merged MonoMetadata into MonoImage
11621 * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
11622 identify the type of elements.
11624 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
11626 * blob.h: fix MONO_TYPE_TYPEDBYREF value.
11627 * cil-coff.h: split MonoMSDOSHeader and add size info.
11628 * image.c: add some consistency checks.
11629 * metadata.c: fix row size computation: one programmer
11630 error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
11631 add explanation for the locator routine.
11632 Fix decoding of size in method header.
11634 2001-08-20 Miguel de Icaza <miguel@ximian.com>
11636 * assembly.c (g_concat_dir_and_file): Use _S for string concat.
11637 (g_concat_dir_and_file): Bring g_concat_dir_and_file
11638 function from gnome-libs. This uses the right path separator
11639 based on the OS, and also works around a bug in some systems where
11640 a double slash is not allowed.
11641 (default_assembly_name_resolver): Use g_concat_dir_and_file
11642 (mono_assembly_open): ditto.
11644 2001-08-20 Dietmar Maurer <dietmar@ximian.com>
11646 * metadata.c (mono_metadata_signature_equal): impl.
11648 * *: void is now a realy MonoType (instead of using NULL)
11650 * metadata.c (do_mono_metadata_parse_type): use
11651 mono_metadata_parse_type to parse void value.
11653 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
11655 * metadata.c, metadata.h: in the signature and method header store
11656 only the space required for holding the loca vars and incoming arguments.
11658 2001-08-15 Dietmar Maurer <dietmar@ximian.com>
11660 * metadata.c (do_mono_metadata_parse_type): treat void like any
11661 other type (instead of assigning NULL);
11663 2001-08-14 Dietmar Maurer <dietmar@ximian.com>
11665 * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
11667 2001-08-09 Dietmar Maurer <dietmar@ximian.com>
11669 * image.c (do_mono_image_open): added a cache for arrays.
11671 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
11673 * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
11674 decode a single column from a row in a metadata table and changes
11675 to take advantage of it in the typedef locator (gives a nice speed up).
11676 Store offset info for function params.
11678 2001-08-02 Dietmar Maurer <dietmar@ximian.com>
11680 * image.h (MONO_IMAGE_IS_CORLIB): removed
11682 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
11684 * assembly.c: how could mono_assembly_close () had ever worked?
11685 * metadata.c, metadata.h: provide offset info for local vars.
11686 Implement mono_type_size () to take care of alignment as well
11687 as size (it was mono_field_type_size in cli/class.c before).
11689 2001-08-01 Dietmar Maurer <dietmar@ximian.com>
11691 * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
11693 * assembly.h (CORLIB_NAME): set to corlib.dll
11695 * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
11697 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
11699 * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
11700 cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
11701 tokentype.h: massive namespace cleanup.
11703 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
11705 * metadata.h, metadata.c: decode exception clauses when parsing method header.
11707 2001-07-27 Dietmar Maurer <dietmar@ximian.com>
11709 * metadata.c (mono_metadata_free_type): added check for type !=
11710 NULL (void) before calling mono_metadata_free_type()
11712 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
11714 * metadata.h, row_indexes.h: added header with enumerations to use
11715 to index in the columns from tables in metadata and to decode coded
11716 tokens: we should start using this instead of embedding magic numbers
11719 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
11721 * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
11722 Move metadata_t info from cli_image_info_t to MonoImage, where
11723 it's easily accessible. Changed all the uses accordingly.
11724 Added the method and class caches to MonoImage.
11725 * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
11726 and mono_metadata_decode_value () signature to be more consistent
11727 with the other parse functions (and simplify code). Taken advantage
11728 of zero-length array allocation with GCC. Removed reduntant (and
11729 wrong) MonoFieldType struct and use MonoParam instead. Changed
11730 mono_metadata_parse_field_type () to use common code for parsing.
11731 Added mono_metadata_typedef_from_field () and
11732 mono_metadata_typedef_from_method () to lookup a typedef index from a
11733 field or method token.
11734 Pack the MonoRetType structure more tightly (fits in 8 bytes now).
11736 2001-07-23 Miguel de Icaza <miguel@ximian.com>
11738 * metadata.c (mono_metadata_parse_field_type): Implement.
11739 (do_mono_metadata_parse_type): Split engine from
11740 mono_metadata_parse_type, so that we can create smaller structures
11741 for things that just have one pointer to the MonoType (look at
11744 2001-07-20 Miguel de Icaza <miguel@ximian.com>
11746 * metadata.c (mono_metadata_parse_mh): Correct the implementation,
11747 as Jan Gray found out, it is incorrect.
11749 2001-07-18 Miguel de Icaza <miguel@ximian.com>
11751 * assembly.c: Implement asssembly loading. This loads an image
11752 and loads all the referenced assemblies. Come to think of it, we
11753 could always do lazy loading of the assemblies.
11755 * image.c (mono_image_open): Keep loaded images in a hashtable.
11757 * image.h (MonoImage): Add reference count.
11759 2001-07-17 Miguel de Icaza <miguel@ximian.com>
11761 * assembly.c (mono_assembly_open): Keep track of the file name in
11762 case the assembly has no ASSEMBLY table.
11764 * metadata.h: Fixed Paolo's quick hack. Put the documnentation
11767 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
11769 * metadata.c, metadata.h: decode local vars in method header
11770 parse function. Change callers accordingly.
11772 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
11774 * metadata.h, cil-coff.h: protect against multiple inclusion.
11775 Added some new structures to hold information decoded from metadata:
11776 MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
11777 and relevant decoding/free functions.
11778 * metadata.c: implement decoding functions. Add warning for out of bounds
11779 index in mono_metadata_locate(). Implement mono_get_method () to retreive
11780 all the info about a method signature and invocation. Remove check on
11781 uninitialized local var in parse_mh() and fix memory leak.
11783 2001-07-12 Miguel de Icaza <miguel@ximian.com>
11785 * metadata.h: More macros.
11787 * tokentype.h: New file.
11789 Fri Jul 6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
11791 * assembly.c: added a consistency check and initialize
11792 some structures with g_new0().
11793 * metadata.c: fixed a couple more bugs in table size computation
11794 and add other checks for out-of bound access to metadata.
11796 Thu Jul 5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
11798 * metatada.c: fix bugs computing table sizes. Spew a
11799 warning when index in string heap is out of bounds.
11801 2001-07-04 Miguel de Icaza <miguel@ximian.com>
11803 * metadata.h: Add a couple of macros to manipulate tokens.
11805 Tue Jul 3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
11807 * assembly.c: g_free(ii->cli_sections) (and avoid double free of
11808 cli_section_tables).
11810 2001-07-01 Miguel de Icaza <miguel@ximian.com>
11812 * metadata.c (mono_metadata_user_string): New function, provides
11813 access to the UserString heap.
11815 2001-06-27 Miguel de Icaza <miguel@ximian.com>
11817 * metadata.c: Add inline documentation.
11819 2001-06-26 Miguel de Icaza <miguel@ximian.com>
11821 * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
11824 2001-06-22 Miguel de Icaza <miguel@ximian.com>
11826 * typeattr.h: New file, TypeAttribute flags.
11828 2001-06-21 Miguel de Icaza <miguel@ximian.com>
11830 * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
11831 mono_assembly_ensure_section): Section loading code.
11832 (load_section_tables): Load the sections.
11834 * mono/metadata/metadata.c (mono_metadata_locate_token,
11835 mono_metadata_locate): Functions to locate the information
11836 definition given a token or a table and an index.
11837 (mono_metadata_compute_table_bases): New.
11838 (compute_size): New function to compute the sizes of the various
11841 * mono/metadata/metadata.h: Finish listing the different index
11844 * mono/metadata/pedump.c: Improve to dump new information.
11846 2001-06-19 Miguel de Icaza <miguel@ximian.com>
11848 * mono/metadata/metadata.c: Entered all the tables matching
11851 * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2