1 2009-05-05 Rodrigo Kumpera <rkumpera@novell.com>
3 * metadata-verify.c: Verify the propertymap table.
5 2009-05-04 Rodrigo Kumpera <rkumpera@novell.com>
7 * metadata-verify.c: Verify the event table.
9 * metadata-verify.c (search_sorted_table): Fix offset
12 2009-05-02 Zoltan Varga <vargaz@gmail.com>
14 * domain-internals.h (struct _MonoJitInfo): Add a 'from_llvm' flag.
16 2009-05-01 Mark Probst <mark.probst@gmail.com>
18 * gc.c (mono_gc_run_finalize): Don't set the domain too late,
19 because mono_delegate_free_ftnptr() needs it.
21 2009-04-30 Rodrigo Kumpera <rkumpera@novell.com>
23 * metadata-verify.c: Verify the eventmap table.
25 2009-04-30 Rodrigo Kumpera <rkumpera@novell.com>
27 * metadata-verify.c: Verify the standalonesig table.
29 2009-04-30 Rodrigo Kumpera <rkumpera@novell.com>
31 * metadata-verify.c: Verify the field layout table.
33 2009-04-30 Rodrigo Kumpera <rkumpera@novell.com>
35 * class.c (mono_type_get_name_recurse): Don't crash
36 for ownerless generic params.
38 * debug-helpers.c (mono_type_get_desc): Correct the format
39 for ownerless generic params.
41 2009-04-30 Rodrigo Kumpera <rkumpera@novell.com>
43 * metadata-verify.c: Verify the class layout table.
45 2009-04-30 Rodrigo Kumpera <rkumpera@novell.com>
47 * metadata-verify.c: Verify the decl security table.
49 2009-04-30 Mark Probst <mark.probst@gmail.com>
51 * domain.c (mono_domain_set_internal_with_options): Don't do
52 anything if the old domain is the same as the old one. Fixes
55 2009-04-30 Mark Probst <mark.probst@gmail.com>
57 * appdomain.c: Deregister the reflection_info roots when unloading
60 * sgen-gc.c, domain.c, gc-internal.h: mono_gc_clear_domain() nulls
61 memory allocated by a domain and frees its disappearing links.
63 * boehm-gc.c, null-gc.c: Empty implementation of
64 mono_gc_clear_domain().
66 2009-04-30 Mark Probst <mark.probst@gmail.com>
68 * appdomain.c (clear_cached_vtable): Free the static fields memory
71 2009-04-30 Mark Probst <mark.probst@gmail.com>
73 * gc.c: Set the correct domain when invoking finalizers.
75 * appdomain.c: Set the correct domain when creating threads.
77 2009-04-30 Mark Probst <mark.probst@gmail.com>
79 * sgen-gc.c: Fix skip size for vectors.
81 2009-05-03 Martin Baulig <martin@ximian.com>
83 * mono-debug-debugger.c
84 (mono_debugger_check_breakpoints): Check class init handlers even
85 if we don't have any method load handers.
87 2009-04-30 Zoltan Varga <vargaz@gmail.com>
89 * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid
90 returning refonly assemblies if refonly is FALSE. Fixes #499013.
92 2009-04-29 Rodrigo Kumpera <rkumpera@novell.com>
94 * metadata-verify.c: Verify the field marshal table.
96 2009-04-29 Rodrigo Kumpera <rkumpera@novell.com>
98 * metadata-verify.c: Verify the custom attribute table.
100 2009-04-28 Rodrigo Kumpera <rkumpera@novell.com>
102 * metadata-verify.c: Verify the constant table.
104 2009-04-28 Rodrigo Kumpera <rkumpera@novell.com>
106 * metadata-verify.c: Verify the memberef table.
108 2009-04-28 Rodrigo Kumpera <rkumpera@novell.com>
110 * metadata-verify.c (get_coded_index_token): Remove
113 2009-04-28 Rodrigo Kumpera <rkumpera@novell.com>
115 * metadata-verify.c: Verify the interfaceimpl table.
117 2009-04-28 Rodrigo Kumpera <rkumpera@novell.com>
119 * verify.c: Improve error message.
121 * debug-helpers.c (mono_type_get_desc): Harden the code that
122 deals with VAR and MVAR.
124 2009-04-28 Zoltan Varga <vargaz@gmail.com>
126 * image.c (mono_image_fixup_vtable): Avoid casting an lvalue. Fixes
129 2009-04-23 Tom Hindle <tom_hindle@sil.org>
131 * cominterop.c (ves_icall_System_Runtime_InteropServices_Marshal_ReleaseComObjectInternal):
132 changed to match .Net behaviour of not aborting on additional calls to ReleaseComObject.
134 2009-04-28 Sebastien Pouliot <sebastien@ximian.com>
136 * security-core-clr.c: Avoid redundant checks for platform code,
137 e.g. check for method and for class (very common) and check
138 for class and outer class (less common)...
140 2009-04-27 Zoltan Varga <vargaz@gmail.com>
142 * reflection.c: Avoid returning random cattrs for synthetic methods.
145 2009-04-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
147 * assembly.c: assemblies in the GAC should never be shadow-copied.
149 2009-04-26 Mark Probst <mark.probst@gmail.com>
151 * domain.c, domain-internals.h: Disable
152 track_resurrection_{objects,handles}_hash in MonoDomain if using
155 2009-04-24 Rodrigo Kumpera <rkumpera@novell.com>
157 * metadata-verify.c: Verify the param table.
159 2009-04-24 Rodrigo Kumpera <rkumpera@novell.com>
161 * metadata-verify.c (verify_typedef_table): Range check FieldList and
164 * metadata-verify.c (verify_method_table): Proper check the ParamList
167 2009-04-24 Rodrigo Kumpera <rkumpera@novell.com>
169 * metadata-verify.c (verify_method_table): Check for runtime
170 implemented functions such as delegate .ctors. Remove spurious
173 2009-04-24 Rodrigo Kumpera <rkumpera@novell.com>
175 * pedump.c: Proper initialize the runtime forcing the 2.0 profile.
177 2009-04-24 Raja R Harinath <harinath@hurrynot.org>
179 Don't allocate MonoGenericInfo for ownerless generic params.
180 * class-internals.h (MonoGenericParam::info): Move field to ...
181 (MonoGenericParamFull): ... this. New struct.
182 (MonoGenericContainer::type_params): Change type to
183 MonoGenericParamFull.
184 (MonoGenericParam, MonoGenericContainer): Update accessors.
185 * metadata.c (mono_metadata_parse_generic_param): Don't initialize
186 'info' field for ownerless generic param.
187 (mono_metadata_load_generic_params): Update to changes.
188 * reflection.c (mono_reflection_create_generic_class): Likewise.
189 (reflection_methodbuilder_to_mono_method): Likewise.
190 (mono_reflection_initialize_generic_parameter): Likewise.
192 2009-04-24 Raja R Harinath <harinath@hurrynot.org>
194 Don't use MonoGenericParamInfo for ownerless generic params.
195 * class.c (get_anon_gparam_class, set_anon_gparam_class): New. Don't
196 use ParamInfo class at all.
197 (mono_class_from_generic_parameter): Use them.
198 (make_generic_param_class): Fix a couple of instances where 'pinfo
199 == NULL' wasn't handle.
201 2009-04-24 Raja R Harinath <harinath@hurrynot.org>
203 * class.c (make_generic_param_class): Carve out of ...
204 (mono_class_from_generic_parameter): ... here.
206 2009-04-24 Raja R Harinath <harinath@hurrynot.org>
208 Simplify mono_class_from_generic_parameter
209 * class-internals.h (MonoGenericParamInfo::token): New field.
210 * metadata.c (mono_metadata_load_generic_params): Initialize it
212 * class.c (mono_class_from_generic_parameter): Use it instead of
213 searching through metadata.
215 2009-04-23 Rodrigo Kumpera <rkumpera@novell.com>
217 * metadata-verify.c: Add verification of the method table.
219 2009-04-23 Rodrigo Kumpera <rkumpera@novell.com>
221 * icall.c (ves_icall_Type_GetMethodsByName): Fix memleak for the
222 Delegate::Invoke optimization.
224 2009-04-23 Rodrigo Kumpera <rkumpera@novell.com>
226 * appdomain.c (mono_domain_create_appdomain_internal): Free the
227 string returned by get_shadow_assembly_location_base.
229 * appdomain.c (get_shadow_assembly_location_base): Add a comment
230 about caller's ownership.
232 2009-04-23 Rodrigo Kumpera <rkumpera@novell.com>
234 * reflection.c: Add mono_reflection_cleanup_domain to cleanup
235 reflection memory on domain unload.
237 * domain.c (mono_domain_free): Don't free refobject_hash, let the
238 reflection cleanup code do it.
240 * domain-internals.h: Add mono_reflection_cleanup_domain.
242 This fixes a memory leak for managed mirrors of reflection objects
245 2009-04-22 Rodrigo Kumpera <rkumpera@novell.com>
247 * metadata-verify.c: Implement more verification of the field table.
249 2009-04-22 Rodrigo Kumpera <rkumpera@novell.com>
251 * pedump.c (main): Init mono with mscorlib so it defaults to 2.0 and
252 doesn't try to parse the input assembly, which can be broken.
254 2009-04-23 Mark Probst <mark.probst@gmail.com>
256 * boehm-gc.c, gc-internal.h, gc.c, monitor.c, null-gc.c,
257 sgen-gc.c: Implement track resurrection in weak GC handles in SGen
258 by using the lowest bit in the link to store whether the link is
259 tracked. Move the track_resurrection hashes into boehm-gc.c.
261 2009-04-22 Miguel de Icaza <miguel@novell.com>
263 * Makefile.am: Split the console support in platform specific code
264 and put together a framework for making this easy in the future so
265 that we can start splitting code instead of having a mess of PLATFORM_WIN32
267 2009-04-21 Rodrigo Kumpera <rkumpera@novell.com>
269 * pedump.c: Fix a warning.
271 2009-04-21 Rodrigo Kumpera <rkumpera@novell.com>
273 * verify.c (mono_delegate_type_equal): Compare valuetypes using
274 mono_class_from_mono_type to avoid bad interactions with the dual representation
275 of the generic type definition.
277 2009-04-21 Rodrigo Kumpera <rkumpera@novell.com>
279 * verify.c (do_invoke_method): Use mono_class_from_mono_type to
280 get the MonoClass for the call context type as it might be a generic
285 2009-04-21 Mark Probst <mark.probst@gmail.com>
287 * object-internals.h: The Thread object has no execution_context
290 * threads.c, threadpool.c, threads-types.h: Accessor functions for
291 the execution context.
293 * appdomain.c: Bump corlib version.
295 2009-04-20 Rodrigo Kumpera <rkumpera@novell.com>
297 * verify.c (do_newobj): Improve error message.
299 2009-04-20 Rodrigo Kumpera <rkumpera@novell.com>
301 * verify.c (verify_clause_relationship): Only mask as an error if the exception clause
302 is nested in the filter block.
304 * verify.c (verify_clause_relationship): The disjoint check must verify if the exception
305 block is not fully nested.
309 2009-04-20 Rodrigo Kumpera <rkumpera@novell.com>
311 * verify.c (verify_type_compatibility_full): Compare MonoClass and
312 not MonoType to check for equality of valuetypes as the generic type
313 definition allows for two different encodings: the generic type definition
314 class or a generic instance over the GTD arguments.
318 2009-04-20 Rodrigo Kumpera <rkumpera@novell.com>
320 * verify.c (dump_stack_value): Fix compilation with extra debug turned on.
322 * verify.c (do_initobj): Improve error message.
324 2009-04-20 Rodrigo Kumpera <rkumpera@novell.com>
326 * metadata-verify.c: Enable pe verification as the issue with #496453
327 is that the authenticode data directory have a different unspecified
328 format. Ignore it for now.
330 * pedump.c: Run the metadata verifier together with the IL verifier.
334 2009-04-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
336 * metadata-verify.c: Temporarily disable pe verification due to #496453.
338 2009-04-17 Rodrigo Kumpera <rkumpera@novell.com>
340 * class.c (can_access_type): Check visibility against
341 the element type for pointers and arrays.
345 2009-04-17 Rodrigo Kumpera <rkumpera@novell.com>
347 * metadata-verify.c: Fix cli and table verification to use information
348 from the MonoImage. A lot of duplicated code got killed.
350 2009-04-17 Rodrigo Kumpera <rkumpera@novell.com>
353 This patch starts to integrate the metadata verifier with the runtime code.
355 This patch causes major regression in functionality for the metadata verifier
356 as cli and table verification are disabled since they require to be ported to
357 use MonoImage information.
359 * image.c (do_mono_image_load): Split the code in this function
360 into mono_image_load_pe_data and mono_image_load_cli_data.
361 Add care_about_pecoff parameter to not load pecoff data.
362 Call into the metadata verifier for pecoff and cli verification.
364 * image.c (mono_image_open_raw): New function that doesn't perform
365 any parsing of the image contents.
367 The reason for the 3 new functions is to give pedump better control
368 into the interaction with the verifier.
370 * metadata-internals.h: Add new functions from image.c as part of the
373 * metadata-verify.c: Split mono_image_verify into mono_verifier_verify_pe_data,
374 mono_verifier_verify_cli_data and mono_verifier_verify_table_data. Prepare
375 to make those functions work together with the runtime.
377 * verify.c: Add mono_verifier_is_enabled_for_image function that returns
378 true if the image needs to be verified.
380 * verify-internals.h: Export new functions from metadata-verify.c and verify.c.
382 * pedump.c: Use new metadata verifier API.
384 2009-04-19 Zoltan Varga <vargaz@gmail.com>
386 * object.c (mono_install_vtable_trampoline): Make this receive a
387 trampoline creation function instead of trampoline, allowing the JIT
388 to use a different trampoline for each vtable.
390 2009-04-18 Mark Probst <mark.probst@gmail.com>
392 * object.c (mono_raise_exception): Don't reset the thread abort
393 exception state here.
395 2009-04-18 Mark Probst <mark.probst@gmail.com>
397 * icall-def.h: New icall for getting the thread abort exception
400 * object.c, thread.c, object-internals.h: A thread's abort
401 exception state is now a GC handle. To get the object it stands
402 for, we must move it into the current app domain, if it's
403 different than the one where it originated from.
405 * appdomain.c: Bump corlib version.
407 * domain.c, domain-internals.h: New function for setting the
408 domain and migrate the thread abort exception or not.
410 2009-04-16 Rodrigo Kumpera <rkumpera@novell.com>
412 * metadata-verify.c: Add initial verification of the
415 2009-04-16 Rodrigo Kumpera <rkumpera@novell.com>
417 * metadata-verify.c: Add a macro to conditionally enable
418 dumping of verification information. Add make_coded_token
419 and search_sorted_table to enable search sorted tables
420 by a given coded token.
422 2009-04-16 Rodrigo Kumpera <rkumpera@novell.com>
424 * metadata-verify.c: Add array mapping from table index
425 to description offset. Add get_col_offset and get_col_size
428 2009-04-16 Rodrigo Kumpera <rkumpera@novell.com>
430 * metadata-verify.c: Add remaining table descriptions offsets.
431 Add remaining coded index descriptions.
433 2009-04-16 Rodrigo Kumpera <rkumpera@novell.com>
435 * metadata-verify.c: Fixed constant table description.
436 Fixed calculation of HasCustomAttribute coded index size.
437 Fixed calculation of size for many table indexes.
439 2009-04-16 Rodrigo Kumpera <rkumpera@novell.com>
441 * pedump.c (dump_metadata): Dump table offset instead
442 of useless pointer in memory.
444 2009-04-16 Rodrigo Kumpera <rkumpera@novell.com>
446 * metadata-verify.c (verify_typedef_table): Add tests for MethodList.
448 2009-04-15 Rodrigo Kumpera <rkumpera@novell.com>
450 * metadata-verify.c (verify_typedef_table): Add tests for FieldList and
451 a missing of for interface types.
453 2009-04-15 Rodrigo Kumpera <rkumpera@novell.com>
455 * metadata-verify.c (verify_pe_optional_header): Add comment of why
456 the code is commented.
458 * metadata-verify.c (verify_resources_table): Remove spurious printf
459 and don't fail if there are unmanaged resources. Gmcs generates a useless
460 one for all assemblies - I bet it's some MS compatibility junk.
462 2009-04-15 Rodrigo Kumpera <rkumpera@novell.com>
464 * metadata-verify.c (verify_typedef_table): Verify the extends field.
466 * metadata-verify.c (mono_image_verify): Add a is_corlib.
468 * verify-internals.h: Same.
470 * pedump.c: Fix for mono_image_verify new signature.
472 2009-04-15 Rodrigo Kumpera <rkumpera@novell.com>
474 * metadata-verify.c (verify_typedef_table): Verify for some invalid
477 2009-04-15 Rodrigo Kumpera <rkumpera@novell.com>
479 * metadata-verify.c (verify_module_table): Ignore the generation field.
481 2009-04-15 Martin Baulig <martin@ximian.com>
483 * debug-mono-symfile.c
484 (mono_debug_symfile_lookup_location): Don't print a warning for
485 unknown extended opcodes if they're within 0x40 and 0x7f.
487 2009-04-15 Zoltan Varga <vargaz@gmail.com>
489 * marshal.c (mono_marshal_get_runtime_invoke_sig): Don't share runtime
490 invoke signatures returning an enum. Fixes #494847.
492 2009-04-14 Rodrigo Kumpera <rkumpera@novell.com>
494 * metadata-verify.c: Initial code to verify the typedef table.
496 2009-04-14 Rodrigo Kumpera <rkumpera@novell.com>
498 * verify.c (mono_method_verify): Don't fail if an unconditional branch
499 with non empty stack happens before the beginning of a try block.
503 2009-04-14 Rodrigo Kumpera <rkumpera@novell.com>
505 * metadata-verify.c: Verify typename and typenamespace fields of
508 2009-04-13 Rodrigo Kumpera <rkumpera@novell.com>
510 * metadata-verify.c: Initial code to verify the typeref table.
512 2009-04-13 Rodrigo Kumpera <rkumpera@novell.com>
514 * verify.c (verify_delegate_compatibility): Fix error message.
516 2009-04-14 Sebastien Pouliot <sebastien@ximian.com>
518 * security-core-clr.c: Fix typo
520 2009-04-14 Zoltan Varga <vargaz@gmail.com>
522 * marshal.c (delegate_hash_table_add): Make delegate_target_locations
523 a MonoGHashTable to keep its values alive.
524 (emit_marshal_boolean): Fix a warning.
526 2009-04-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
528 * socket-io.c: don't return IPv4/IPv6 addresses if the machine does
529 not have any interface configured for IPv4/IPv6.
531 2009-04-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
533 * assembly.c: fix typo in error message.
535 2009-04-14 Zoltan Varga <vargaz@gmail.com>
537 * marshal.c (mono_delegate_to_ftnptr): Use mono_gc_alloc_fixed () for
538 allocating the location holding the this argument to prevent
539 'too many root sets' errors.
541 * object.c (mono_class_create_runtime_vtable): Set field->offset to -1
542 to mark fields as special static.
543 (mono_field_static_get_value): Handle special static fields.
544 (mono_field_static_set_value): Ditto.
546 * class-internals.h (struct _MonoClassField): Document this.
548 2009-04-13 Bill Holmes <billholmes54@gmail.com>
550 * cominterop.c (mono_cominterop_emit_marshal_com_interface): Assigning
551 the argument a value of null for the MARSHAL_ACTION_MANAGED_CONV_OUT
552 case. This will handle when managed code returns null to native code.
554 Code is contributed under MIT/X11 license.
556 2009-04-13 Bill Holmes <billholmes54@gmail.com>
558 * object.c (build_imt_slots): Changing a free to a g_free to match
559 the g_malloc0 in add_imt_builder_entry that allocated this memory.
561 Code is contributed under MIT/X11 license.
563 2009-04-13 Bill Holmes <billholmes54@gmail.com>
565 * marshal.c (emit_marshal_boolean): Adding code to ensure that
566 the correct TRUE value is passed through the marshaling layer.
568 Code is contributed under MIT/X11 license.
570 2009-04-13 Zoltan Varga <vargaz@gmail.com>
572 * marshal.c (mono_marshal_emit_managed_wrapper): Handle closed delegates
573 correctly. Fixes #492330.
575 * marshal.c: Fix the embedding of object pointers into JITted code in
576 the native-to-managed wrappers by allocating some GC tracked memory, and
577 embedding the address of that.
579 2009-04-11 Zoltan Varga <vargaz@gmail.com>
581 * object.c (mono_class_create_runtime_vtable): Avoid putting MonoMethod
582 pointers into the vtable.
584 2009-04-09 Rodrigo Kumpera <rkumpera@novell.com>
586 * verify.c (mono_delegate_type_equal): Proper check MONO_TYPE_CLASS.
588 * verify.c (verify_ldftn_delegate): Improve error message.
590 2009-04-09 Raja R Harinath <harinath@hurrynot.org>
592 * reflection.c (my_mono_class_from_mono_type): Remove.
594 2009-04-09 Raja R Harinath <harinath@hurrynot.org>
596 Prepare to reduce memory usage of owner-less generic parameters (1/n)
597 * class-internals.h (MonoGenericParam): Carve out pklass, name, flags
598 and constraints fields into ...
599 (MonoGenericParamInfo): ... this.
600 (mono_generic_param_info, mono_generic_container_get_param_info):
602 * class.c, debug-helpers.c, icall.c: Update to changes.
603 * metadata.c, reflection.c, verify.c: Likewise.
605 2009-04-09 Zoltan Varga <vargaz@gmail.com>
607 * debug-helpers.c (dis_one): Fix decoding of strings in dynamic images.
609 * marshal.c (get_runtime_invoke_type): Share enums with their base types.
611 * marshal.c (get_runtime_invoke_type): Share pointers with ints and
612 booleans with sbytes.
614 2009-04-08 Rodrigo Kumpera <rkumpera@novell.com>
616 * class.c (can_access_instantiation): Verify accesibility of element types
617 for arrays and pointers.
619 * class.c (can_access_type): Return true if the target class is VAR or MVAR.
621 * class.c (mono_method_can_access_method_full): Fix typos in the documentation.
625 2009-04-08 Rodrigo Kumpera <rkumpera@novell.com>
627 * verify.c (do_invoke_method): Improve error messages.
629 2009-04-08 Bill Holmes <billholmes54@gmail.com>
631 * verify.c: Fixing the MSVC build.
633 Code is contributed under MIT/X11 license.
635 2009-04-08 Sebastien Pouliot <sebastien@ximian.com>
637 * security-core-clr.c: Simplify get_reflection_caller not to call
638 mono_method_get_last_managed (another stack walk) and adjust the
639 callers to handle a (should not happen) NULL return value.
641 2009-04-08 Raja R Harinath <harinath@hurrynot.org>
643 Add accessors to some MonoGenericParam fields
644 * class-internals.h (mono_generic_param_owner): New accessor.
645 (mono_generic_param_num): Likewise.
646 (mono_type_get_generic_param_owner): New helper.
647 (mono_type_get_generic_param_num): New helper.
648 * class.c, icall.c, metadata.c, reflection.c, verify.c: Use them.
650 2009-04-08 Raja R Harinath <harinath@hurrynot.org>
652 * class-internals.h (mono_generic_container_get_param): New wrapper.
653 * class.c, icall.c, metadata.c, verify.c: Use it.
655 2009-04-08 Raja R Harinath <harinath@hurrynot.org>
658 * verify.c (mono_type_is_valid_type_in_context): Rewrite to use
659 the standard case/loop. In particular, don't complain about
660 references to generic type definitions.
662 2009-04-07 Zoltan Varga <vargaz@gmail.com>
664 * debug-helpers.c (dis_one): Decode string arguments.
666 2009-04-07 Rodrigo Kumpera <rkumpera@novell.com>
668 * pedump.c (dump_verify_info): Dump type name correctly.
670 2009-04-07 Rodrigo Kumpera <rkumpera@novell.com>
672 * verify.c (mono_method_verify): Don't init code slots for exception boundaries if they
673 are larger than code size.
675 This can happen in valid code if the try/catch block is not followed by any instruction
676 and do a backward branch on the leave instruction.
680 2009-04-06 Sebastien Pouliot <sebastien@ximian.com>
682 * security-core-clr.c: Fix typo while comparing second method names
683 in can_avoid_corlib_reflection_delegate_optimization
685 2009-04-06 Rodrigo Kumpera <rkumpera@novell.com>
687 * verify.c (do_throw): Don't allow an unboxed generic param ar argument.
691 2009-04-06 Rodrigo Kumpera <rkumpera@novell.com>
693 * metadata.c (do_mono_metadata_parse_type): Fail if we are decoding
694 a MVAR using a class context.
698 2009-04-06 Zoltan Varga <vargaz@gmail.com>
700 * object.c (mono_class_compute_gc_descriptor): Make this non-static.
702 * domain-internals.h (struct _MonoJitInfo): Add a 'gc_info' field.
704 * gc-internal.h (MonoGCCallbacks): New stucture containing the callback
705 functions supplied by the JIT for the SGEN GC.
707 * sgen-gc.c: Call the callbacks supplied by the JIT to do stack marking.
709 2009-04-06 Massimiliano Mantione <massi@ximian.com>
711 monitor.c (mono_monitor_try_enter_internal):
712 Added calls to profile monitor contentions.
713 Also duplicated a small piece of code (the "get the monitor" logic)
714 from the fast path to the slow path, and changed the relevant goto
715 statements, so that monitor acquisition events can be emitted from the
716 slow path (this is by Paolo Molaro).
718 2009-04-06 Massimiliano Mantione <massi@ximian.com>
720 * profiler.c, profiler.h, profiler-private.h:
721 Added support for profiling monitor contentions.
723 2009-04-03 Rodrigo Kumpera <rkumpera@novell.com>
725 * metadata-verify.c: Verify the modules table.
727 2009-04-02 Rodrigo Kumpera <rkumpera@novell.com>
729 * verify.c (mono_generic_param_is_constraint_compatible): Inflate the candidate
730 using the context of the method been verifier and not of the method been called.
732 * verify.c: Add verifier_inflate_type and mono_type_is_valid_type_in_context to
733 safely inflate generic types.
735 2009-04-02 Sebastien Pouliot <sebastien@ximian.com>
737 * security-core-clr.c: Change the strategy for checking the
738 "reflection using delegates optimization" to avoid unneeded
739 attributes in multiple class libraries.
741 2009-04-02 Mark Probst <mark.probst@gmail.com>
743 * sgen-gc.c: Remove object element in the disappearing link struct
744 by storing the object pointer in the link.
746 2009-03-31 Rodrigo Kumpera <rkumpera@novell.com>
748 * pedump.c (dump_verify_info): Don't crash if signature decoding fails.
750 2009-03-31 Rodrigo Kumpera <rkumpera@novell.com>
752 * verify.c (verifier_load_field): Fail if the field parent could not be loaded.
754 * verify.c (mono_method_verify): Do proper bounds checking of exception
757 2009-03-31 Rodrigo Kumpera <rkumpera@novell.com>
759 * loader.c (mono_field_from_token): Don't crash if the field parent could
762 2009-03-31 Mark Probst <mark.probst@gmail.com>
764 * sgen-gc.c: Execute critical finalizers after ordinary
767 * class-internals.h, domain.c: Add CriticalFinalizerObject to
770 2009-03-31 Jb Evain <jbevain@novell.com>
772 * verify.c (do_ldstr): don't check if a string is in the user strings
773 heap if the current image is dynamic.
775 2009-03-31 Mark Probst <mark.probst@gmail.com>
777 * sgen-gc.c: Wait until the last finalizer has executed when
778 returning from WaitForPendingFinalizers.
780 2009-03-31 Martin Baulig <martin@ximian.com>
782 * mono-debug-debugger.h (MonoDebuggerEvent): Add
783 `MONO_DEBUGGER_EVENT_CREATE_APPDOMAIN' and
784 `MONO_DEBUGGER_EVENT_UNLOAD_APPDOMAIN'.
785 (mono_debugger_event_create_appdomain): New function.
786 (mono_debugger_event_unload_appdomain): New function.
788 * appdomain.c (mono_domain_create_appdomain_internal): Call
789 mono_debugger_event_create_appdomain().
791 2009-03-31 Martin Baulig <martin@ximian.com>
793 * mono-debug-debugger.c
794 (mono_debugger_register_class_init_callback): Also register the
795 class init callback if the class is already initialized to make
796 things work with shadow copied assemblies.
798 2009-03-31 Sebastien Pouliot <sebastien@ximian.com>
800 * security-core-clr.c
801 (mono_security_core_clr_ensure_reflection_access_field): Let
802 critical code access the field (just like we do for methods). Use
803 check_field_access helper.
804 (mono_security_core_clr_ensure_reflection_access_method): Use
805 check_field_access helper.
807 2009-03-31 Mark Probst <mark.probst@gmail.com>
809 * sgen-gc.c: Remove data (callback) element from FinalizeEntry and
810 call the run-finalize function directly.
812 * gc.c, gc-internal.h: Make run_finalize() non-static.
814 2009-03-31 Mark Probst <mark.probst@gmail.com>
816 * sgen-gc.c: Use a separate struct for disappearing links.
818 2009-03-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
820 * socket-io.c: don't fail if the SocketOptionsFlag has Partial or
821 * MaxIOVectorLength enabled, just ignore them.
824 2009-03-30 Rodrigo Kumpera <rkumpera@novell.com>
826 * metadata-verify.c: Fix eglib build.
828 2009-03-30 Zoltan Varga <vargaz@gmail.com>
830 * threads-types.h: Fix the win32 build.
832 2009-03-28 Sebastien Pouliot <sebastien@ximian.com>
834 * class.c: move coreclr inheritance/override checks to
836 * security-core.clr.c|h: add code from class.c with additional
837 documentation. Fix override check when the method is not critical.
839 2009-03-28 Zoltan Varga <vargaz@gmail.com>
841 * debug-helpers.c (mono_method_desc_match): Make '*' match anything.
842 (match_class): Ditto.
844 2009-03-27 Rodrigo Kumpera <rkumpera@novell.com>
846 * metadata-verify.c: Rename bounds_check_offset to bounds_check_datadir.
848 * metadata-verify.c: Implement table layout row size calculation. Verify
849 the total size of the tables.
851 2009-03-27 Rodrigo Kumpera <rkumpera@novell.com>
853 * metadata-verify.c: Verify heap sizes and size to decode row counts.
855 2009-03-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
858 * console-io.[ch]: added new mono_console_init() to make sure that
859 file descriptors 0, 1 and 2 are opened.
862 2009-03-27 Sebastien Pouliot <sebastien@ximian.com>
864 * appdomain.h: Export a new callback type and a new function to
865 set this callback. This allow a mono host to provide it's own
866 definition for "platform code".
867 * metadata-internals.h: Add a core_clr_platform_code flag on
868 _MonoImage to (cache and) know if it is representing platform
870 * image.c (do_mono_image_open): Set core_clr_platform_code flag
871 on platform code images.
872 * security-core-clr.c|h
873 (mono_security_set_core_clr_platform_callback): Allow the host
874 to provide it's own platform check definition.
875 (mono_security_core_clr_determine_platform_image): Detect if an
876 image is platform code (using the specified callback).
877 (mono_security_core_clr_is_platform_image): Return cached value
880 2009-03-27 Zoltan Varga <vargaz@gmail.com>
882 * threads.c (mono_create_thread): New helper function to wrap CreateThread
883 which has different parameter types for the 'tid' argument in windows and
886 * appdomain.c attach.c threads.c: Use the new helper.
888 2009-03-26 Rodrigo Kumpera <rkumpera@novell.com>
890 * metadata-verify.c: Verify valid table bits.
892 2009-03-26 Rodrigo Kumpera <rkumpera@novell.com>
894 * metadata-verify.c (verify_metadata_header): Store size in the size field.
896 * metadata-verify.c: Add initial table schema verification.
898 2009-03-26 Zoltan Varga <vargaz@gmail.com>
900 * icall.c (ves_icall_get_parameter_info): Add a 'member' argument, used to
901 obtain the refclass argument needed by mono_param_get_objects (). Fixes
904 * reflection.c (mono_param_get_objects_internal): Add a 'refclass' argument.
906 * appdomain.c (MONO_CORLIB_VERSION): Bump this.
908 2009-03-26 Sebastien Pouliot <sebastien@ximian.com>
910 * security-core-clr.c: Add/update documentation
912 2009-03-26 Zoltan Varga <vargaz@gmail.com>
914 * marshal.c (emit_marshal_object): Generate code to throw an exception
915 instead of throwing it. Fixes #488670.
917 2009-03-25 Sebastien Pouliot <sebastien@ximian.com>
919 * appdomain.c: Bump MONO_CORLIB_VERSION to 73.
920 * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Add
921 an extra 'throwOnBindFailure' parameter to the icall. Remove FIXME
922 and add a call to mono_security_core_clr_ensure_delegate_creation
923 to do the extra checks required by CoreCLR.
924 * security-core-clr.c|h: Add function to check delegate creation,
925 both in the binding and accessibility, under CoreCLR.
927 2009-03-25 Sebastien Pouliot <sebastien@ximian.com>
929 * reflection.c (mono_reflection_create_dynamic_method): when
930 coreclr is enabled make sure that every resolved object are
931 checked (e.g. field and method access).
932 * security-core-clr.c|h: Add function to check objects resolved
933 when a dynamic method is created.
935 2009-03-24 Rodrigo Kumpera <rkumpera@novell.com>
937 * metadata-verify.c: Cache directory rva translations.
939 * metadata-verify.c: Add cli-header and streams verification.
941 2009-03-24 Rodrigo Kumpera <rkumpera@novell.com>
943 * image.c (load_metadata_ptrs): We decode MonoImage::md_version_minor at
944 the wrong offset (8 instead of 6).
946 2009-03-23 Zoltan Varga <vargaz@gmail.com>
948 * marshal.c (mono_delegate_to_ftnptr): For delegates wrapping pinvoke
949 methods, return the native function address itself. Fixes
952 2009-03-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
954 * console-io.c: some of the values for control characters might not be
957 2009-03-21 Sebastien Pouliot <sebastien@ximian.com>
959 * exception.c|h: Add helpers to create [Field|Method]AccessException
960 * icall.c: Add required coreclr check calls for field reflection.
961 Move the existing (method) check logic into security-core-clr.c
962 * security-core-clr.c: Add functions to check if the access of a
963 field or method is allowed when reflecting under coreclr. This is
964 mostly done using a stack walk to find the "real" caller: i.e. the
965 code that is calling the reflection
967 2009-03-20 Zoltan Varga <vargaz@gmail.com>
969 * gc-internal.h: Change location of gc_wrapper.h
971 2009-03-20 Sebastien Pouliot <sebastien@ximian.com>
973 * class.c: Simplification to coreclr checks for overrides that
974 makes it easier to set breakpoints.
976 2009-03-20 Sebastien Pouliot <sebastien@ximian.com>
978 * security-core-clr.c|h: (mono_security_core_clr_class_level,
979 mono_security_core_clr_method_level): Avoid potential
980 MonoCustomAttrInfo allocation for transparent assemblies (e.g.
981 user/application code) and make it easier to set breakpoints
983 2009-03-19 Rodrigo Kumpera <rkumpera@novell.com>
985 * metadata-verify.c: Reject cli header tables that mono don't handle.
987 2009-03-19 Rodrigo Kumpera <rkumpera@novell.com>
989 * pedump.c: Fix CLI header dumping.
991 2009-03-19 Rodrigo Kumpera <rkumpera@novell.com>
993 * metadata-verify.c: More CLI header verification.
995 2009-03-19 Zoltan Varga <vargaz@gmail.com>
997 * locales.c (get_current_locale_name): Use g_malloc instead of malloc.
999 2009-03-18 Rodrigo Kumpera <rkumpera@novell.com>
1001 * metadata-verify.c: Initial verification of the CLI header.
1003 2009-03-18 Rodrigo Kumpera <rkumpera@novell.com>
1005 * metadata-verify.c (verify_resources_table): Fix verification of zero
1006 sized resource section and id entries count.
1008 2009-03-18 Zoltan Varga <vargaz@gmail.com>
1010 * icall.c: Handle user types in many Type icalls. Fixes #486303.
1012 2009-03-17 Jb Evain <jbevain@novell.com>
1014 * profiler.c: call mono_gc_base_init from mono_profiler_load.
1016 2009-03-17 Zoltan Varga <vargaz@gmail.com>
1018 * sgen-gc.c (mono_gc_make_descr_for_object): Fix 64 bit support.
1019 (mono_gc_make_descr_for_array): Ditto.
1021 2009-03-17 Sebastien Pouliot <sebastien@ximian.com>
1023 * verify.c (mono_verifier_is_class_full_trust): Add support for
1024 CoreCLR security mode where trusted assemblies are defined as
1027 2009-03-16 Rodrigo Kumpera <rkumpera@novell.com>
1029 * metadata-verify.c: Add minimal PECOFF resource verification.
1031 2009-03-16 Rodrigo Kumpera <rkumpera@novell.com>
1033 * metadata-verify.c: Be less restrictive with some coff fields.
1035 2009-03-16 Rodrigo Kumpera <rkumpera@novell.com>
1037 * verify.c (init_stack_with_value_at_exception_boundary): Init generic
1038 params as boxed values on stack. Fixes #485706.
1040 2009-03-16 Gonzalo Paniagua Javier <gonzalo@novell.com>
1042 * console-io.c: the termios values may vary in different flavors of unix.
1044 2009-03-16 Gonzalo Paniagua Javier <gonzalo@novell.com>
1046 * console-io.[ch]: return the entire set of control characters when
1047 initializing the terminal.
1048 * appdomain.c: bump corlib version.
1050 Mon Mar 16 11:11:26 CET 2009 Paolo Molaro <lupus@ximian.com>
1052 * mono-perfcounters.c: added support for in-process custom
1053 performance counters.
1055 2009-03-13 Rodrigo Kumpera <rkumpera@novell.com>
1057 * metadata-verify.c: Small cleanup and add comment for IAT directory entry.
1059 2009-03-13 Rodrigo Kumpera <rkumpera@novell.com>
1061 * metadata-verify.c: Verify the data pointed by the import table.
1063 2009-03-13 Rodrigo Kumpera <rkumpera@novell.com>
1065 * metadata-verify.c (load_data_directories): Store data
1068 * metadata-verify.c: Verify the import table.
1070 2009-03-12 Rodrigo Kumpera <rkumpera@novell.com>
1072 * metadata-verify.c: Verify data directories.
1074 2009-03-12 Rodrigo Kumpera <rkumpera@novell.com>
1076 * metadata-verify.c: Check section header flags.
1078 2009-03-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
1080 * appdomain.c: if the assembly name is a shadow-copied file, return
1081 TRUE from mono_is_shadow_copy_enabled but don't actually do anything
1082 in mono_make_shadow_copy.
1083 * icall.c: if the assembly name is a shadow-copied file, replace it
1084 with the original assembly path.
1086 Bug #484244 fixed. NUnit tests for corlib can be run without
1089 2009-03-12 Zoltan Varga <vargaz@gmail.com>
1091 * sgen-gc.c (add_to_global_remset): Fix the handling of root global remset
1092 entries when the table is reallocated.
1094 * icall.c: Allocate the memory used by the mono_ptr_array macros using
1095 mono_gc_alloc_fixed () since it contains GC refs.
1097 2009-03-10 Zoltan Varga <vargaz@gmail.com>
1099 * reflection.c (ensure_complete_type): New helper function to call
1100 type resolve handlers for unfinished dynamic types.
1101 (resolve_object): Call it for MonoClassFields. Fixes #483852.
1103 2009-03-09 Zoltan Varga <vargaz@gmail.com>
1105 * reflection.c (mono_custom_attrs_has_attr): Handle interfaces. Fixes
1108 2009-03-08 Rodrigo Kumpera <rkumpera@novell.com>
1110 * appdomain.c (get_shadow_assembly_location): Fix memleak.
1112 2009-03-08 Zoltan Varga <vargaz@gmail.com>
1114 * domain-internals.h (struct _MonoDomain): Add new hash tables mapping
1115 between GCHandles of type WeakTrackResurrection and the objects they
1118 * gc.c: Partly implement the sematics of GCHandles of type
1119 WeakTrackResurrection: these handles should only be cleared after the
1120 finalizer of the object they are pointing to has ran.
1122 2009-03-06 Mark Probst <mark.probst@gmail.com>
1124 * icall.c: Partially revert r126631 because using the jump
1125 trampolines for generic shared methods makes it superfluous.
1127 2009-03-06 Zoltan Varga <vargaz@gmail.com>
1129 * threads.c (handle_store): Create the 'threads' hash table with the proper
1130 MONO_HASH_VALUE_GC type.
1132 2009-03-05 Zoltan Varga <vargaz@gmail.com>
1134 * domain-internals.h (struct _MonoDomain): Move 'typeof_void' before
1137 * domain.c (mono_domain_create): Register the fields between FIRST_GC_TRACKED
1138 and LAST_GC_TRACKED as a GC root.
1140 * gc-internal.h: Fix the comment of mono_gc_alloc_fixed.
1142 * object.c (mono_class_create_runtime_vtable): Create a GC descriptor for
1143 the static data even if it consists of 1 reference.
1145 * boehm-gc.c (mono_gc_alloc_fixed): Allocate using GC_MALLOC_EXPLICITLY_TYPED
1146 if there is a GC descriptor.
1148 * reflection.c (ALLOC_REFENTRY): Allocate ReflectedEntry-es using malloc
1149 instead of through the GC since they contain no object references.
1151 2009-03-05 Mark Probst <mark.probst@gmail.com>
1153 * generic-sharing.c (instantiate_other_info): Always return a jump
1154 trampoline for method code.
1156 2009-03-05 Marek Habersack <mhabersack@novell.com>
1158 * culture-info-tables.h: generated to include the en-tt culture.
1160 2009-03-04 Rodrigo Kumpera <rkumpera@novell.com>
1162 * domain-internals.h (MonoDomain): Add two fields to cache invoke wrappers to
1163 capture the thread context.
1165 * object.c (mono_async_result_new): Cache the invoke wrappers to
1166 ExecutionContext::Capture.
1168 2009-03-04 Rodrigo Kumpera <rkumpera@novell.com>
1170 * marshal.h: Add a prototype for what mono_compile_method returns
1171 for invoke wrappers.
1173 * gc.c: Use the new prototype declaration.
1175 2009-03-04 Geoff Norton <gnorton@novell.com>
1177 * boehm-gc.c: Add some MONO_LOG tracing for the GC
1179 * mono-gc.h: Expose mono_gc_invoke_finalizers in the embedding api.
1181 2009-03-04 Martin Baulig <martin@ximian.com>
1184 (mono_debugger_runtime_invoke): Removed.
1186 * mono-debug-debugger.c
1187 (mono_runtime_invoke): Moved into ../mini/debug-mini.c.
1189 2009-03-02 Martin Baulig <martin@ximian.com>
1192 (mono_debugger_unhandled_exception): Removed.
1193 (mono_debugger_handle_exception): Removed.
1194 (mono_debugger_throw_exception): Removed.
1197 (mono_debug_debugger_version): Bump to 5.
1199 * mono-debug-debugger.c: Moved the exception handling code to
1200 ../mini/debug-mini.c
1202 2009-03-03 Zoltan Varga <vargaz@gmail.com>
1204 * domain-internals.h (struct _MonoDomain): Add a separate lock for the
1205 finalize_objects_hash.
1207 * gc.c: Use the separate lock to access the finalize_objects_hash field.
1209 * domain-internals.h (struct _MonoDomain): Add finalize_runtime_invoke
1212 * metadata-internals.h (struct _MonoImage): Add runtime_invoke_vcall_cache
1215 * image.c (mono_image_close): Free it.
1217 * marshal.c (mono_marshal_get_runtime_invoke): Add a 'virtual' argument
1218 allowing a creation of a wrapper which invokes its method using a CALLVIRT
1219 on the this argument.
1221 * gc.c (run_finalize): Optimize the calling of the finalizers.
1223 2009-03-03 Martin Baulig <martin@ximian.com>
1225 * mono-debug.h (MONO_DEBUGGER_MAJOR_VERSION): Bump to 81 because
1226 of the `MonoGenericInst' changes.
1228 2009-03-03 Rodrigo Kumpera <rkumpera@novell.com>
1230 * icall.c (ves_icall_MonoType_GetGenericArguments): Use
1231 mono_array_class_get_cached to reduce locking contention. Extract
1234 * icall.c (ves_icall_Type_GetFields_internal): Avoid allocating
1235 intermediary managed arrays. Use caching version of mono_array_new
1236 to allocate the result array.
1238 * icall.c (ves_icall_Type_GetEvents_internal): Same.
1240 * icall.c (ves_icall_Type_GetNestedTypes): Same.
1242 * locales.c (create_names_array_idx): Use mono_array_new_cached
1243 to reduce locking contention.
1245 2009-03-03 Zoltan Varga <vargaz@gmail.com>
1247 * object.c (mono_method_add_generic_virtual_invocation): Put back the
1248 thunk builder code for the non-interface case.
1250 2009-03-02 Zoltan Varga <vargaz@gmail.com>
1252 * object.c (get_generic_virtual_entries): New helper function to collect
1253 the virtual generic method instances which need to be added to an IMT
1255 (mono_method_add_generic_virtual_invocation): Add a 'vtable' argument.
1256 Instead of creating a new IMT thunk, reset the vtable slot to the
1257 trampoline, the thunk will be created the next time the trampoline is called.
1258 (build_imt_slots): Add support for virtual generic methods in interfaces by
1259 adding to the IMT thunk all the methods registered using
1260 mono_method_add_generic_virtual_invocation ().
1262 * object-internals.h (_MonoImtBuilderEntry): Add a 'has_target_code' field.
1263 (struct _MonoIMTCheckItem): Ditto.
1265 * object.c (mono_method_add_generic_virtual_invocation): Take a
1266 MonoMethod argument instead of a MonoGenericInst. Fix the construction of
1267 the IMT thunk to include all items.
1269 * object.c (mono_class_create_runtime_vtable): Add a missing
1270 mono_loader_unlock ().
1272 2009-03-02 Rodrigo Kumpera <rkumpera@novell.com>
1274 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1276 * object-internals.h (MonoReflectionEvent): Add cached_add_event.
1278 2009-03-02 Rodrigo Kumpera <rkumpera@novell.com>
1280 * object-internals.h: Rename _MonoReflectionEvent to
1281 MonoReflectionMonoEvent so it reflects the right managed type.
1282 Add a MonoReflectionEvent that correctly represents System.EventInfo.
1285 * reflection.c: Adjust code to use the new MonoReflectionMonoEvent
1288 2009-03-02 Rodrigo Kumpera <rkumpera@novell.com>
1290 * icall.c (ves_icall_Type_GetMethodsByName): Avoid allocating
1291 intermediary managed arrays. Use caching version of mono_array_new
1292 to allocate the result array.
1294 2009-03-01 Rodrigo Kumpera <rkumpera@novell.com>
1296 * reflection.c: Use cached version of mono_array_new alongside
1297 the mono_reflection_get_custom_attrs_by_type call path.
1299 2009-03-01 Rodrigo Kumpera <rkumpera@novell.com>
1301 * icall.c (ves_icall_Type_GetInterfaces): Avoid allocating
1302 intermediary managed arrays. Use caching version of mono_array_new
1303 to allocate the result array.
1305 * icall.c (ves_icall_Type_GetConstructors_internal): Same.
1307 2009-03-01 Rodrigo Kumpera <rkumpera@novell.com>
1309 * icall.c: Add small implementation of a growable stack bound array.
1311 * icall.c (ves_icall_System_Enum_get_hashcode): Fix warning.
1313 * icall.c (ves_icall_Type_GetPropertiesByName): Avoid allocating
1314 intermediary managed arrays. Use caching version of mono_array_new
1315 to allocate the result array.
1317 2009-02-27 Rodrigo Kumpera <rkumpera@novell.com>
1319 * icall.c: New icall ves_icall_System_Enum_compare_value_to that
1320 helps Enum::CompareTo to be implemented without reboxing all enums
1321 to their underlying type.
1322 2009-02-27 Zoltan Varga <vargaz@gmail.com>
1324 * domain.c (SET_APPDOMAIN): Avoid calling TlsSetValue () on some platforms,
1325 since it acquires a global lock leading to scalability problems.
1327 * profiler.c: Make the stat profiler work with multiple appdomains, this
1328 currently only works when no appdomains are unloaded.
1330 2009-02-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
1332 * appdomain.c: make the check to avoid copying when the assembly is
1333 already shadow copied actually work.
1335 2009-02-26 Zoltan Varga <vargaz@gmail.com>
1337 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1339 * object-internals.h (struct _MonoReflectionGenericClass): Sync with
1340 changes to the managed side.
1342 2009-02-25 Zoltan Varga <vargaz@gmail.com>
1344 * metadata-internals.h (struct _MonoImage): Add a new cache for szarray
1345 classes + a separate lock for it, as it is used frequently at runtime, not
1346 just during metadata loading/JIT compilation.
1348 * class.c (mono_bounded_array_class_get): Use the separate cache + lock
1351 * object-internals.h (mono_class_from_name_cached): New macro to cache
1352 the results of the lookup locally without having to declare a static
1353 variable to hold it.
1354 (mono_class_get_field_from_name_cached): Ditto.
1355 (mono_array_class_get_cached): Ditto.
1357 * threadpool.c threads.c locales.c icall.c reflection.c socket-io.c: Use
1360 * object.c (mono_get_delegate_invoke): Call setup_methods () to avoid the
1361 slower search in metadata.
1363 * pedump.c: Fix a warning.
1365 2009-02-23 Zoltan Varga <vargaz@gmail.com>
1367 * reflection.c (encode_locals): Add checks for user types.
1368 (method_encode_clauses): Ditto.
1369 (method_encode_code): Ditto.
1370 (mono_image_create_token): Ditto.
1372 * object-internals.h: Change the type of more fields from MonoReflectionType*
1375 2009-02-22 Zoltan Varga <vargaz@gmail.com>
1377 * threads.c (mono_thread_suspend_all_other_threads): Handle the case when
1378 the a thread does not suspend within 100ms.
1380 * monitor.c (mono_monitor_try_enter_internal): Handle SuspendRequested
1381 in addition to StopRequested as well.
1383 * mono-debug.c: Call _mono_debug_get_image () while holding the debug lock.
1385 * debug-mono-symfile.c (mono_debug_symfile_lookup_method): Actually
1386 search the method_hash before inserting a new entry, to avoid crashes when
1387 the same method is inserted multiple times, causing the old
1388 MonoDebugMethodInfo structure to be freed by the value dtor function.
1390 2009-02-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
1392 * socket-io.c: support SO_MAXCONN, SO_USELOOPBACK and
1393 SO_EXLUSIVEADDRUSE where available.
1395 2009-02-21 Zoltan Varga <vargaz@gmail.com>
1397 * marshal.c (mono_marshal_get_runtime_invoke): Fix _another_ bug sharing
1398 runtime invoke wrappers, this time it is string ctor wrappers, which
1399 pass a dummy string as 'this' instead of their obj argument. Fixes
1402 2009-02-21 Jb Evain <jbevain@novell.com>
1404 * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
1405 only get create_culture once.
1407 2009-02-20 Zoltan Varga <vargaz@gmail.com>
1409 * reflection.c (mono_reflection_setup_internal_class): Move the user type
1410 check before the locking.
1412 * reflection.c (mono_reflection_setup_internal_class): Check for user types.
1413 (mono_reflection_create_runtime_class): Ditto.
1414 (mono_reflection_sighelper_get_signature_local): Ditto.
1415 (mono_reflection_sighelper_get_signature_field): Ditto.
1417 * object-internals.h (CHECK_MONOTYPE): New macro to check that a Type object
1418 is a System.MonoType object or similar.
1419 (monotype_cast): New helper function to cast a MonoObject to a
1420 MonoReflectionType object.
1422 * object-internals.h: Change MonoReflectionType* members in structures to
1423 MonoObject* members to force the usage of the monotype_cast () function.
1425 * reflection.c icall.c: Use monotype_cast () for accessing Type members of
1426 structures/arrays. This causes us to assert instead of crashing when
1427 instances of user defined subclasses of System.Type are encountered.
1429 2009-02-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
1433 * icall.c: add new GetUnmanagedResourcePtr that returns a pointer to a
1434 win32 resource loaded from a PE file.
1436 * image.c: fix mono_image_lookup_resource.
1438 2009-02-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
1442 * threads.c: added internal call for WaitHandle.SignalAndWait.
1444 2009-02-19 Bill Holmes <billholmes54@gmail.com>
1446 * cominterop.c : Adding cominterop_type_from_handle and
1447 registering it as an icall. Replacing all references
1448 to type_from_handle.
1450 Code is contributed under MIT/X11 license.
1452 2009-02-19 Rodrigo Kumpera <rkumpera@novell.com>
1454 * Makefile.am: Add lock-tracer.h and lock-trace.c.
1456 * appdomain.c: Call the tracer init function.
1458 * domain-internals.h: Enable the tracer for the domain locks.
1460 * image.c: Enable the tracer for image locks.
1462 * loader.c: Enable the trace for the loader lock.
1465 * lock-tracer.c: Initial implementation of the lock trace utility.
1466 The tracer requires a compile time define to be enabled and a env var
1467 to be enabled at runtime.
1469 2009-02-19 Rodrigo Kumpera <rkumpera@novell.com>
1471 * domain.c (mono_domain_code_foreach): Improve documentation.
1473 2009-02-19 Rodrigo Kumpera <rkumpera@novell.com>
1476 * generic-sharing.c:
1478 * reflection.c: Adjust locking order to the new semantics where the loader lock
1481 2009-02-18 Rodrigo Kumpera <rkumpera@novell.com>
1483 * domain.c: Add mono_domain_code_* functions that perform locking
1484 around the domain codeman.
1486 * domain-internals.h: Export those functions.
1488 * object.c: Use new functions instead of acquiring the domain lock.
1490 2009-02-19 Zoltan Varga <vargaz@gmail.com>
1492 * marshal.c (mono_ftnptr_to_delegate): Convert a NULL ftnptr to a null
1493 delegate. Fixes #477396.
1495 2009-02-18 Zoltan Varga <vargaz@gmail.com>
1497 * reflection.c (create_custom_attr): Get rid of alloca.
1499 2009-02-18 Bill Holmes <billholmes54@gmail.com>
1501 * cominterop.c (cominterop_get_managed_wrapper_adjusted) :
1502 Adding exception handling for all CCW calls.
1504 Code is contributed under MIT/X11 license.
1506 2009-02-18 Zoltan Varga <vargaz@gmail.com>
1508 * reflection.c (mono_reflection_init): Remove the unused reflection mutex.
1510 * marshal.c (emit_marshal_boolean): Add null checks to the new
1511 native->managed marshalling code. Fixes #476247.
1513 2009-02-17 Zoltan Varga <vargaz@gmail.com>
1515 * class.c (mono_class_get_vtable_entry): Move the addition of
1516 static rgctx invoke wrappers for vtable methods here, this simplifies
1517 a lot of code and causes fewer rgctx wrappers to be created.
1519 * marshal.c (mono_marshal_get_static_rgctx_invoke): Change the
1520 name of the statistics to begin with an uppercase.
1522 2009-02-17 Rodrigo Kumpera <rkumpera@novell.com>
1524 * reflection.c: Revert previous change as it breaks the build.
1526 2009-02-17 Rodrigo Kumpera <rkumpera@novell.com>
1528 * verify.c: Properly handle SZARRAY element type.
1532 2009-02-17 Rodrigo Kumpera <rkumpera@novell.com>
1534 * reflection.c (mono_image_create_method_token): Correctly encode
1535 MethodDef MemberRefParent token.
1539 2009-02-17 Zoltan Varga <vargaz@gmail.com>
1541 * image.c (mono_image_close): Delete the critical section before
1542 freeing the memory holding it.
1544 2009-02-16 Rodrigo Kumpera <rkumpera@novell.com>
1546 * verify.c (mono_method_verify): rethrow opcode doesn not fall through.
1549 2009-02-16 Rodrigo Kumpera <rkumpera@novell.com>
1551 * pedump.c (main): Call mono_marshal_init so pedump
1554 2009-02-16 Rodrigo Kumpera <rkumpera@novell.com>
1556 * loader.c (method_from_memberref): Properly fix #474271 and
1557 don't break the runtime bad.
1559 2009-02-16 Zoltan Varga <vargaz@gmail.com>
1561 * domain.c (mono_domain_alloc): Add locking so the caller doesn't have to.
1562 (mono_domain_alloc0): Ditto.
1564 2009-02-16 Rodrigo Kumpera <rkumpera@novell.com>
1566 * loader.c (method_from_memberref): Don't abort if the array
1567 method is not found. A regular loader failure is more informative
1572 2009-02-16 Rodrigo Kumpera <rkumpera@novell.com>
1574 *loader.c: Guard MonoImage::method_cache/methodref_cache
1575 using the image lock instead of the loader lock.
1577 * metadata.h: Add comments about which fields are protected by
1580 2009-02-16 Zoltan Varga <vargaz@gmail.com>
1582 * appdomain.c (mono_set_private_bin_path_from_config): Fix a warning.
1584 * generic-sharing.c (mono_method_construct_object_context): Remove the
1585 wrapper_type == NONE assert, it is not needed.
1587 2009-02-15 Zoltan Varga <vargaz@gmail.com>
1589 * reflection.c (clear_cached_object): New helper function.
1590 (mono_method_clear_object): New function to clear the cached reflection
1591 objects for a dynamic method.
1593 * object.c (mono_runtime_free_method): Call mono_method_clear_object ().
1594 Partly fixes # 463323.
1596 2009-02-14 Rodrigo Kumpera <rkumpera@novell.com>
1600 * reflection.c: Remove all explicit uses of MonoImage::property_hash.
1602 2009-02-14 Rodrigo Kumpera <rkumpera@novell.com>
1604 * image.c: Add mono_image_property_(lookup,insert,remove) functions that
1605 take the image lock instead of the loader lock.
1607 * metadata-internals.h: Export new functions.
1609 2009-02-12 Miguel de Icaza <miguel@novell.com>
1611 * domain.c (app_config_parse): Remove another use of stat that is
1612 not necessary as g_file_get_contents already does the presence
1615 2009-02-13 Zoltan Varga <vargaz@gmail.com>
1617 * cominterop.c icall-def.h: Fix the DISABLE_COM build.
1619 * marshal.c: Move the bstr handling code to cominterop.c.
1621 * marshal.c: Remove some COM interop code missed previously.
1623 2009-02-12 Miguel de Icaza <miguel@novell.com>
1625 More Paolo patches from the Wii port:
1627 * security.c: Remove ves_icall_System_Environment_get_UserName
1630 * icall.c: And put ves_icall_System_Environment_get_UserName
1633 * appdomain.c (mono_set_private_bin_path_from_config): Remove
1634 redundant call to stat that was only used to test for the file
1635 existence. Patch from Paolo.
1637 * gc.c (run_finalize): If COM is disabled, do not link in
1638 mono_marshal_free_ccw.
1640 * generic-sharing.c: Use alloca.h here as well.
1642 2009-02-13 Rodrigo Kumpera <rkumpera@novell.com>
1644 * reflection.c (mono_reflection_lookup_dynamic_token): Do the locking properly.
1646 2009-02-13 Zoltan Varga <vargaz@gmail.com>
1648 * cominterop.c cominterop.h: New files.
1650 * marshal.c: Move the COM interop related code to cominterop.c. Make a few
1651 function/typedefs which are needed by cominterop.c global.
1653 2009-02-12 Mark Probst <mark.probst@gmail.com>
1655 * generic-sharing.c: Don't take the loader lock to guard image
1658 2009-02-12 Rodrigo Kumpera <rkumpera@novell.com>
1660 * reflection.c (mono_reflection_lookup_dynamic_token): This function might be
1661 called without the loader lock which is required to guard MonoImage:tokens.
1663 2009-02-12 Rodrigo Kumpera <rkumpera@novell.com>
1669 * reflection.c: Don't take the loader lock to alloc memory from the image mempool.
1671 2009-02-12 Rodrigo Kumpera <rkumpera@novell.com>
1673 * metadata.c: Remove mono_image_alloc_lock and mono_image_alloc0_lock.
1674 Rework the code to use regular mono_image_alloc/0.
1676 * loader.c: Rework the code to use regular mono_image_alloc/0.
1678 * metadata-internals.h: Remove mono_image_alloc_lock and mono_image_alloc0_lock.
1680 2009-02-12 Bill Holmes <billholmes54@gmail.com>
1682 * object-internals.h : Fixing a typo in the
1683 MonoReflectionComVisibleAttribute struct.
1685 * marshal.c (cominterop_com_visible): Check the implemented
1686 interfaces for ComImport.
1688 * marshal.c (cominterop_get_native_wrapper_adjusted): For COM calls
1689 assume that bools should be treated as VARIANTBOOLs.
1691 * marshal.c (emit_marshal_boolean): Adding cases for
1692 MARSHAL_ACTION_MANAGED_CONV_IN and MARSHAL_ACTION_MANAGED_CONV_OUT.
1694 * marshal.c (mono_marshal_emit_managed_wrapper): Adding calls to
1695 emit_marshal MARSHAL_ACTION_MANAGED_CONV_IN and OUT for bools.
1697 * marshal.c (cominterop_get_ccw): For COM calls assume that bools
1698 should be treated as VARIANTBOOLs.
1700 Code is contributed under MIT/X11 license.
1702 2009-02-12 Rodrigo Kumpera <rkumpera@novell.com>
1704 * image.c (mono_image_alloc, mono_image_alloc0, mono_image_strdup): Guard mempool
1705 allocation with the image lock.
1707 2009-02-12 Rodrigo Kumpera <rkumpera@novell.com>
1709 This patch is the last of a series to remove explicit reference of MonoImage::mempool
1710 and use mono_image_alloc set of functions instead. This time we finish with reflection.c
1712 * object.c: Add mono_string_to_utf8_image.
1714 * object-internals.h: Export mono_string_to_utf8_image.
1716 * reflection.c: Rework all explicit references to the the image mempool to go thought
1717 the mono_image_alloc set of functions.
1719 2009-02-12 Rodrigo Kumpera <rkumpera@novell.com>
1721 This patch is the third of a series to remove explicit reference of MonoImage::mempool
1722 and use mono_image_alloc set of functions instead. This time we finish with marshal.c
1723 and generics-sharing.c.
1725 * generics-sharing.c (set_other_info_templates): Take a MonoImage instead of a MonoMemPool
1726 as first argument. Note that this function remains broken as it doesn't perform locking around the
1729 * generics-sharing.c (rgctx_template_set_other_slot): Pass the image and not the mempool.
1731 * image.c: Add g_slist_append_image.
1733 * metadata.c (mono_metadata_field_info_with_mempool): Remove the mempool argument and use
1734 the supplied image for allocation. Move code into mono_metadata_field_info_full.
1736 * metadata.c (mono_metadata_parse_marshal_spec_full): Take a MonoImage instead of a MonoMemPool.
1737 Fix all related code to do the same.
1739 * marshal.c (mono_marshal_load_type_info): Pass the image instead of the mempool.
1741 * metadata-internals.h: Fix the signatures.
1743 2009-02-12 Rodrigo Kumpera <rkumpera@novell.com>
1745 This patch is the second of a series to remove explicit reference of MonoImage::mempool
1746 and use mono_image_alloc set of functions instead. This time we rework mono_metadata_type_dup
1747 and similar to work using MonoImage.
1749 * class.c (mono_mempool_dup): Rename to mono_image_memdup and take a MonoImage instead of a
1752 * class.c (mono_dup_array_type): Take a MonoImage instead of a MonoMemPool as first argument.
1754 * class.c (mono_metadata_signature_deep_dup): Same.
1756 * class.c (inflate_generic_type): Same.
1758 * class.c (mono_class_inflate_generic_type_with_mempool): Same.
1760 * metadata.c (mono_metadata_signature_dup_full): Same.
1762 * metadata.c: Add mono_metadata_signature_dup_mempool and extract common functionality from
1763 mono_metadata_signature_dup_full.
1765 * metadata.c (mono_metadata_type_dup): Same.
1767 * marshal.c: Pass the image to calls to mono_metadata_type_dup.
1769 * reflection.c: Same.
1771 * generic-sharing.c: Pass the image to calls to mono_class_inflate_generic_type_with_mempool.
1773 * metadata-internals.h: Fix the signatures.
1775 * class-internals.h: Same.
1777 2009-02-11 Rodrigo Kumpera <rkumpera@novell.com>
1779 This patch is the first of a series to remove explicit reference of MonoImage::mempool
1780 and use mono_image_alloc set of functions instead.
1782 * class.c (mono_class_inflate_generic_type_with_mempool_no_copy):
1783 Rename to mono_class_inflate_generic_type_no_copy and take a MonoImage instead
1786 * class.c (mono_class_setup_fields): Adapt to mono_class_inflate_generic_type_no_copy.
1788 * class.c (g_list_prepend_mempool): Removed.
1790 * class.c (mono_class_get_nested_types): Use g_list_prepend_image instead of g_list_prepend_mempool.
1792 * image.c: Add g_list_prepend_image.
1794 * metadata-internals.h (struct MonoImage): Fix comment. Export g_list_prepend_image as internal.
1796 * reflection.c (mono_reflection_create_runtime_class): Use g_list_prepend_image instead of g_list_prepend_mempool.
1799 2009-02-11 Rodrigo Kumpera <rkumpera@novell.com>
1801 * metadata-internals.h (struct MonoImage): Add lock field. Export mono_image_lock and
1804 * image.c (mono_image_init): Init the lock field.
1806 * image.c (mono_image_init): Cleanup the lock field.
1808 * image.c: Add mono_image_(un)lock functions.
1810 2009-02-11 Mark Probst <mark.probst@gmail.com>
1812 * class.c, class-internals.h: mono_method_get_context_general()
1813 combines the functionality of mono_method_get_context() and
1814 mini_method_get_context().
1816 * generic-sharing.c, domain-internals.h:
1817 mono_method_construct_object_context() and
1818 mono_domain_lookup_shared_generic() moved from mini.
1820 * icall.c (ves_icall_InternalInvoke): Handle the case where the
1821 method doesn't have the correct instantiation because it's shared
1822 generic code. Fixes #473999.
1824 2009-02-11 Zoltan Varga <vargaz@gmail.com>
1826 * loader.c (mono_method_get_wrapper_data): Handle inflated methods as well.
1828 * loader.c (mono_loader_lock): Add a comment pointing to the locking document.
1830 2009-02-11 Rodrigo Kumpera <rkumpera@novell.com>
1832 * metadata.c: Make mono_image_alloc_lock and mono_image_alloc0_lock non static.
1834 * metadata-internals.h: Export mono_image_alloc_lock and mono_image_alloc0_lock.
1836 * loader.c (mono_get_method_full): Drop the loader lock while constructing the method
1837 and recheck the cache for dups after it.
1839 * loader.c (mono_get_method_from_token): Use _lock version of mono_image_alloc0.
1841 Fixes one of the deadlocks found in #473150.
1843 2009-02-11 Bill Holmes <billholmes54@gmail.com>
1845 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal):
1846 For Win32, add additional break conditions for accept.
1848 Code is contributed under MIT/X11 license.
1850 2009-02-10 Zoltan Varga <vargaz@gmail.com>
1852 * marshal.c (mono_marshal_get_native_func_wrapper): Use get_cache to
1853 lazily initialize the native wrapper cache.
1854 (mono_marshal_get_native_wrapper): Put aot-ed native wrappers into a separate
1855 cache, since they are different from the normal wrappers.
1857 * image.c (mono_image_init): Initialize native_wrapper_cache lazily as well.
1859 * metadata-internals.h (struct _MonoImage): Add a new wrapper for
1860 AOT compiled native wrappers.
1862 2009-02-09 Geoff Norton <gnorton@novell.com>
1865 * security-core-clr.c: Allow enabling core-clr from the embedding
1868 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
1870 * socket-io.c: when requesting all the local ips, if there are no
1871 interfaces up and running, MS returns 127.0.0.1.
1873 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
1875 * mono-perfcounters-def.h: processor time is an inverse time.
1878 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
1880 * socket-io.c: an empty host name returns the list of local IPs.
1881 Fixes bug #386637 part 1/2.
1883 2009-02-07 Zoltan Varga <vargaz@gmail.com>
1885 * verify.c (mono_class_interface_implements_interface): Call
1886 mono_class_setup_interfaces ().
1887 (merge_stacks): Ditto.
1889 2009-02-06 Zoltan Varga <vargaz@gmail.com>
1891 * class.c (mono_class_setup_interfaces): New function to lazily initalize
1893 (mono_generic_class_get_class): Don't initalize klass->interfaces.
1894 (mono_generic_class_get_class): Ditto.
1896 2009-02-06 U-QUACK\miguel <miguel@quack>
1898 * icall-defs.h: Include also the Encrypt/Decrypt string methods as
1899 they live in security.c
1901 * debug-mono-symfile.c (mono_debug_open_mono_symbols): Integrated
1902 another bit from Paolo's code.
1904 2009-02-06 Zoltan Varga <vargaz@gmail.com>
1906 * object.c (build_imt_slots): Add a small optimization to avoid inflating
1907 methods which will be discarded by add_imt_builder_entry ().
1909 * marshal.c (get_runtime_invoke_type): Avoid sharing enum types since they
1912 * loader.c: Add a statistics for the size of the memberref signature cache.
1914 * loader.c (find_cached_memberref_sig): New helper function.
1915 (cache_memberref_sig): Ditto.
1917 * loader.c: Cache the result of parsing memberref signatures, since otherwise
1918 they will be parsed again for every generic instantiation, leading to unbounded
1921 2009-02-05 Zoltan Varga <vargaz@gmail.com>
1923 * loader.c (mono_get_method_from_token): Avoid creating class for the generic
1924 parameters of generic methods.
1926 * class.c (mono_class_inflate_generic_method_full): Set is_mb_open again
1927 after the original method is copied to the inflated method.
1928 (mono_class_get_vtable_entry): Handle rgctx invoke wrappers more efficiently.
1930 * class-internals.h (struct _MonoMethodInflated): Move the is_mb_open
1931 field to MonoMethod since it only consumes 1 bit there, and 4/8 bytes here.
1933 * class.c metadata.c: Update after the changes above.
1935 2009-02-05 Rodrigo Kumpera <rkumpera@novell.com>
1937 * metadata-verify.c: Simplified error handling and added
1938 section table validation.
1940 2009-02-05 Zoltan Varga <vargaz@gmail.com>
1942 * class-internals.h (MonoClassExt): New structure containing rarely used
1943 fields of MonoClass.
1944 (struct _MonoClass): Move rarely used fields to MonoClassExt, accessed
1945 through a new 'ext' field.
1947 * class.c (mono_class_alloc_ext): New helper function to allocate
1950 * class.c metadata.c reflection.c: Update after MonoClass structure changes.
1952 2009-02-05 Mark Probst <mark.probst@gmail.com>
1954 * object.c (mono_object_get_virtual_method): Properly inflate
1955 generic methods. Fixes #472692.
1957 2009-02-05 Rodrigo Kumpera <rkumpera@novell.com>
1959 * class.c (mono_class_create_from_typedef): The CLR supports SystemF
1960 recursive types such as List<T>:Cons<T,List<T>> so when doing the lookup
1961 for the parent type, the created type must be ready to be used on a generic
1963 We fill this_arg/byval_arg if the parent is a generic instance to make sure
1964 we won't have duplicated entries in generic_inst_cache.
1968 2009-02-05 Miguel De Icaza <miguel@novell.com>
1970 * threadpool.c (socket_io_add_poll): Remove the BSD6 define and
1971 replace with plain BSD per the comments on the bug MONO77637.
1973 2009-02-05 Zoltan Varga <vargaz@gmail.com>
1975 * class.c (mono_class_get_generic_class): New accessor function.
1976 (mono_class_get_generic_container): Ditto.
1978 * class-internals.h (struct _MonoClass): Add 'is_generic' and 'is_inflated'
1979 fields, similar to the ones in MonoMethod.
1981 * class.c (mono_generic_class_get_class): Set klass->is_inflated.
1982 (mono_class_create_from_typedef): Set klass->is_generic if needed.
1984 * reflection.c (mono_reflection_create_generic_class): Set klass->is_generic.
1986 * class-internals.h (struct _MonoClass): Remove enum_basetype, it contains
1987 the same information as element_class->byval_arg.
1989 * class.c reflection.c: Remove references to class->byval_arg.
1991 * class.c marshal.c: Use mono_class_enum_basetype () instead of accessing
1992 klass->enum_basetype directly.
1994 * verify.c metadata.c object.c icall.c reflection.c: Use
1995 mono_class_enum_basetype () instead of accessing klass->enum_basetype
1998 2009-02-04 Miguel de Icaza <miguel@novell.com>
2000 * icall-def.h: Remove internal calls for sockets when
2001 DISABLE_SOCKET is defined, file system writing features when the
2002 OS only support reading and not writing data and Policy support if
2003 the Policy is disabled.
2005 * image.c (do_mono_image_open): Apply Paolo's patches for using
2006 mono_file_map_ APIs here.
2008 * assembly.c: Add support for platforms to avoid prefix
2011 2009-02-04 Zoltan Varga <vargaz@gmail.com>
2013 * generic-sharing.c (mono_method_fill_runtime_generic_context): Fix a
2016 * class.c (mono_class_inflate_generic_class): New helper function.
2018 * class.c: Use mono_class_inflate_generic_class in a few places. Add
2019 statistics for inflated methods/classes.
2021 * loader.c (inflate_generic_header): Use mono_class_inflate_generic_class.
2023 * icall.c (ves_icall_Type_GetMethodsByName): Optimize the case when
2024 the call is made from Delegate.CreateDelegate () for the invoke method of
2027 * loader.c: Add a statistics for the memory occupied by inflated signatures.
2029 * metadata.c (mono_metadata_signature_size): New helper function.
2031 * class.c (mono_class_get_method_from_name_flags): Add an optimization for
2034 * metadata.c (inflated_method_in_image): Avoid calling
2035 mono_method_signature () if the method does not already have a signature.
2037 2009-02-03 Rodrigo Kumpera <rkumpera@novell.com>
2039 * verify.c (is_compatible_boxed_valuetype): When checking if the boxed
2040 valuetype is compatible with target type, check by inheritance as a
2041 VT is not really compatible with System.ValueType, for example.
2043 * verify.c (do_invoke_method): Improve error message.
2045 * verify.c (do_box_value): If boxing a nullable, use the type argument
2048 * verify.c (do_newobj): Improve error message.
2052 2009-02-03 Miguel de Icaza <miguel@novell.com>
2054 * appdomain.c: Add support for DISABLE_SOCKETS and DISABLE_SHADOW_COPY
2056 2009-02-03 Mark Probst <mark.probst@gmail.com>
2058 * generic-sharing.c: Don't hold domain lock when calling
2059 instantiate_other_info(). Fixes #471958.
2061 * domain-internals.h, loader.c: Describe locking policy of domain
2062 lock vs loader lock.
2064 2009-02-03 Rodrigo Kumpera <rkumpera@novell.com>
2066 * verify.c (mono_delegate_signature_equal): Make it possible to check
2067 first-arg-bound delegates to static method.
2069 * verify.c (verify_delegate_compatibility): Correctly verify delegates to
2070 static methods with the first arg bound.
2074 2009-02-03 Rodrigo Kumpera <rkumpera@novell.com>
2076 * verify.c: Added stack_slot_full_name to provide decent and more meanfull
2079 * verify.c (is_compatible_boxed_valuetype): Be less restrictive when not
2080 under strict mode. Any type, when boxed can be seen as a reference type.
2084 2009-02-03 Rodrigo Kumpera <rkumpera@novell.com>
2086 * object.h: The lower bound of an array is a signed integer value.
2087 Introduce mono_array_lower_bound_t typedef. It should be used instead of
2088 gint32 as under MONO_BIG_ARRAYS it will be a gint64.
2090 * icall.c: Cast MonoArrayBounds::length to a signed value so correctly
2091 calculate the upper bound.
2095 2009-02-02 Miguel de Icaza <miguel@novell.com>
2097 From Paolo's work, refactored, cleared up:
2099 * threadpool.c, icall.c: ifdef code that requires a working socket
2102 * metadata.c (mono_metadata_field_info): Do not attempt to return
2103 a value from a function declared as void.
2105 * console-io.c: Use MONO_NULL_TTYDRIVER to remove the tty driver
2106 from the console stack.
2108 * assembly.c: use strrchr instead of rindex.
2110 * class.c, object.c, marshal.c, icall.c, reflection.c: include
2111 alloca.h on systems that have it.
2113 * environment.c: Avoid code that uses stuff from
2116 * appdomain.c: Include sys/time.h.
2118 * console-io.c: include sys/ioctl.h if it is available.
2120 2009-02-03 Zoltan Varga <vargaz@gmail.com>
2122 * method-builder.h (_MonoMethodBuilder): Add a 'skip_visibility' flag.
2124 * method-builder.c (mono_mb_create_method): Set method->skip_visibility from
2127 * marshal.c: Set mb->skip_visibility instead of setting it on the method
2128 after it was created and cached, as the later is not thread safe.
2130 2009-02-02 Zoltan Varga <vargaz@gmail.com>
2132 * mono-debug.c (mono_debug_print_stack_frame): Avoid crashes when this is
2133 called while the debugging module is not initialized. Fixes #471669.
2135 2009-02-02 Rodrigo Kumpera <rkumpera@novell.com>
2137 * icall.c (type_from_name): Ignore reflection frames to find out the real caller.
2141 2009-02-02 Mark Probst <mark.probst@gmail.com>
2143 * generic-sharing.c (lookup_or_register_other_info): Make sure the
2144 loader lock is not taken while the templates lock is held. Fixes
2147 2009-02-02 Mark Probst <mark.probst@gmail.com>
2149 * metadata.c (type_in_image): Added a check to fix a monodis
2152 2009-02-02 Zoltan Varga <vargaz@gmail.com>
2154 * marshal.c (mono_marshal_get_runtime_invoke): Add support for byref
2157 * object.c (mono_runtime_invoke_array): Ditto.
2159 * marshal.c (mono_marshal_free_dynamic_wrappers): New function for
2160 freeing wrappers of dynamic methods.
2162 * loader.c (mono_free_method): Call it. Fixes #463323.
2164 * marshal.c (mono_marshal_get_runtime_invoke): Disable sharing for
2165 methods taking vtype/byref arguments, to fix yet another bug caused by
2166 the sharing of runtime invoke wrappers. Partly fixes #471259.
2168 2009-02-01 Zoltan Varga <vargaz@gmail.com>
2170 * debug-mono-symfile.c (check_line): Return NULL instead of returning
2171 <first file in file table>:1 when the IL offset does not have an associated
2174 2009-01-31 Zoltan Varga <vargaz@gmail.com>
2176 * mono-debug.c (mono_debug_lookup_locals): New function to return local
2177 variable info for a method.
2179 * debug-mono-symfile.c (mono_debug_symfile_lookup_locals): Ditto.
2181 2009-01-30 Jb Evain <jbevain@novell.com>
2183 * pedump.c: reuse code from monodis to make sure pedump honors
2184 MONO_PATH, which is needed to verify net_2_1 assemblies.
2186 2009-01-29 Zoltan Varga <vargaz@gmail.com>
2188 * mono-debug.c (mono_debug_print_stack_frame): Print the IL offset even when
2189 there is no line number info.
2191 2009-01-29 Raja R Harinath <harinath@hurrynot.org>
2193 Avoid some MonoType allocations
2194 * reflection.c (mono_reflection_initialize_generic_parameter):
2195 Reuse MonoType from param->pklass rather than allocating one.
2196 (mono_dynamic_image_free): Update to changes.
2198 2009-01-28 Raja R Harinath <harinath@hurrynot.org>
2200 Rearrange some code to improve consistency
2201 * reflection.c (mono_reflection_setup_generic_class): Move body ...
2202 (mono_reflection_initialize_generic_parameter): ... here.
2204 2009-01-28 Zoltan Varga <vargaz@gmail.com>
2206 * generic-sharing.c (has_constraints): Enable gshared for methods/classes
2207 with type constraints as an experiment.
2209 * boehm-gc.c (on_gc_notification): Update mono_stats.
2211 2009-01-28 Raja R Harinath <harinath@hurrynot.org>
2213 Avoid some allocations
2214 * class-internals.h (_MonoGenericInst::type_argv): Convert from
2215 pointer to tail array to avoid extra allocation.
2216 * metadata.c (free_generic_inst): Update to changes.
2217 (mono_metadata_get_generic_inst): Likewise. Use alloca instead of
2220 2009-01-27 Zoltan Varga <vargaz@gmail.com>
2222 * icall.c (ves_icall_System_Type_EqualsInternal): For user-defined types,
2223 return TRUE if the two type objects are the same.
2225 2009-01-26 Zoltan Varga <vargaz@gmail.com>
2227 * marshal.c (mono_marshal_load_type_info): Fill out info->min_align.
2228 (mono_class_native_size): Use klass->marshal_info->min_align instead of
2229 klass->min_align, since klass->min_align contains the managed alignment,
2230 while the native alignment can be different, like for longs on x86.
2233 * class-internals.h (MonoMarshalType): Add a min_align field.
2235 2009-01-26 Rodrigo Kumpera <rkumpera@novell.com>
2237 * assembly.c (mono_assembly_try_decode_skip_verification): Add a hack to check
2240 2009-01-26 Zoltan Varga <vargaz@gmail.com>
2242 * domain-internals.h (struct _MonoJitInfo): Add a 'from_aot' field plus
2243 some comments about the usage of the used_regs field.
2245 * marshal.c (emit_marshal_ptr): Allow pointers to blittable structures.
2248 2009-01-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
2250 * appdomain.c: return NULL instead of throwing FileNotFoundException
2251 when LoadAssembly() fails.
2253 2009-01-23 Mark Probst <mark.probst@gmail.com>
2255 * metadata.c (mono_metadata_generic_param_equal): Only compare the
2256 image if the owner is NULL. Fixes the AOT failures.
2258 2009-01-23 Zoltan Varga <vargaz@gmail.com>
2260 * metadata.c (mono_metadata_load_generic_params): Initialize the
2261 MonoGenericParam structure using memset so the image field is initialized
2264 2009-01-21 Rodrigo Kumpera <rkumpera@novell.com>
2266 * appdomain.c (mono_domain_unload): Change the InterlockedIncrement to
2269 2009-01-21 Zoltan Varga <vargaz@gmail.com>
2271 * class.c (mono_class_setup_vtable_general): In the generic instance
2272 optimization, set method->slot for abstract virtual methods. Fixes part of
2275 2009-01-21 Rodrigo Kumpera <rkumpera@novell.com>
2277 * domain-internals.h: Add new appdomain state MONO_APPDOMAIN_UNLOADING_START
2278 which signals that the unloading has started but all appdomain services must
2281 * appdomain.c (mono_domain_unload): The initial state for unloading now
2282 is unloading_start and we switch to unloading after the managed call to
2283 AppDomain::DomainUnload has finished.
2285 The new unloading state has to be created because managed code in the
2286 DomainUnload event can depend on things like the threadpool still working.
2287 The domain must remain fully functional while the event executes.
2289 This shown as an issue due to Process::WaitForExit, which waits for
2290 async reads of stdout and stderr to complete. Since those are processed
2291 in the threadpool the code deadlocks because the DomainUnload callback
2292 waits for the async read finished event, which should have been set by a
2293 threadpool job but has been discarded due to the domain been in unload
2296 2009-01-21 Mark Probst <mark.probst@gmail.com>
2298 * metadata.c (mono_metadata_generic_param_equal): Owner as well as
2301 2009-01-21 Mark Probst <mark.probst@gmail.com>
2303 * reflection.c (resolve_object): For fields, inflate the class and
2304 then get the field in the inflated class.
2306 2009-01-20 Mark Probst <mark.probst@gmail.com>
2308 * object-internals.h (struct _MonoException): Added a comment
2309 explaining the new use of trace_ips.
2311 2009-01-20 Mark Probst <mark.probst@gmail.com>
2313 * generic-sharing.c (inflate_other_data): Inflate array methods
2316 * loader.c, class-internals.h: Rename search_in_array_class() to
2317 mono_method_search_in_array_class() and make it non-static.
2319 2009-01-19 Zoltan Varga <vargaz@gmail.com>
2321 * metadata.c (inflated_signature_in_image): Call signature_in_image as well.
2322 Hopefully fixes #458168.
2324 2009-01-19 Christian Hergert <christian.hergert@gmail.com>
2326 * object.c (mono_raise_exception): Remove call to InterlockedIncrement
2327 as it is performed elsewhere.
2329 Code is contributed under MIT/X11 license
2331 2009-01-19 Christian Hergert <christian.hergert@gmail.com>
2333 * mono-perfcounters-def.h: Add counters for asp.net requests total and
2335 * object.c (mono_raise_exception): Increment the exceptions total
2336 counter when an exception is thrown.
2337 * class-internals.h: Add a location for storing the total number of
2338 asp.net requests served.
2339 * mono-perfcounters.c: Implement update support for asp.net counters
2340 from the class libraries. Implement read support for asp.net counters
2341 and exceptions total counter.
2343 2009-01-19 Zoltan Varga <vargaz@gmail.com>
2345 * loader.c (search_in_array_class): Call mono_class_setup_methods () before
2346 accessing klass->methods. Fixes #467385.
2348 2009-01-18 Zoltan Varga <vargaz@gmail.com>
2350 * marshal.c (emit_marshal_custom): Avoid calling MarshalNativeToManaged
2351 for byval arguments without an [Out] attribute. Fixes #467212.
2353 * attach.c: Applied patch from Koushik Dutta (koush@koushikdutta.com).
2354 Fix compilation under android.
2356 * sgen-gc.c: Instead of scanning gray objects after all roots have been
2357 processed, scan them directly after they are copied, to achieve better locality
2360 * socket-io.c: Applied patch from Koushik Dutta
2361 (koush@koushikdutta.com). Disable IPV6 when running under android.
2363 2009-01-18 Zoltan Varga <vargaz@gmail.com>
2365 * icall.c (ves_icall_InternalExecute): Add write barriers.
2367 * marshal.c (mono_marshal_get_write_barrier): Remove, this is now done in
2370 * sgen-gc.c: Implement write barriers in IL code.
2372 2009-01-17 Geoff Norton <gnorton@novell.com>
2374 * image.c: Avoid trying to walk the reference table of dynamic assemblies.
2376 2009-01-17 Geoff Norton <gnorton@novell.com>
2378 * image.c: When unloading the image->references table, there can be gaps
2379 in it. Ensure that we iterate every entry to avoid leaking assembly references
2380 when unloading an appdomain.
2382 2009-01-16 Zoltan Varga <vargaz@gmail.com>
2384 * sgen-gc.c: Add support for allocating a nursery at an aligned address, to
2385 speed up ptr-in-nursery checks.
2387 * threads.c (mono_threads_abort_appdomain_threads): Abort threads outside the
2388 threads_lock () to prevent deadlocks.
2390 * sgen-gc.c gc-internal.h: Add a new root type root-with-wbarrier, which
2391 does not need to be scanned during minor collections, since writes to it
2392 must use write barriers.
2394 2009-01-15 Rodrigo Kumpera <rkumpera@novell.com>
2396 * metadata-verify.c: Add pe nt header verification.
2398 2009-01-15 Zoltan Varga <vargaz@gmail.com>
2400 * gc.c: Fix a few warnings when using SGEN.
2402 2009-01-14 Rodrigo Kumpera <rkumpera@novell.com>
2404 * metadata-verify.c: Add pe optional header verification.
2406 2009-01-15 Zoltan Varga <vargaz@gmail.com>
2408 * sgen-gc.c: Add support for user defined marker functions, used by
2409 MonoGHashTable to avoid registering a GC root for every hash node.
2411 2009-01-14 Zoltan Varga <vargaz@gmail.com>
2413 * sgen-gc.c: Fix warnings. Optimize copy_object () a bit. Split pinned/
2414 non-pinned roots into separate hashes to avoid having to traverse them
2415 in functions which are only interested in one kind.
2417 2009-01-13 Rodrigo Kumpera <rkumpera@novell.com>
2419 * metadata-verify.c: Add pe header machine field verification.
2421 2009-01-13 Rodrigo Kumpera <rkumpera@novell.com>
2423 * metadata-verify.c: Add pe header size verification.
2425 2009-01-14 Zoltan Varga <vargaz@gmail.com>
2427 * reflection.c (ALLOC_REFENTRY): Don't allocate the ReflectionEntry structures
2428 using the GC, they don't contain references.
2430 * domain.c (mono_domain_create): Create ldstr_table using MONO_HASH_KEY_VALUE_GC.
2432 2009-01-13 Geoff Norton <gnorton@novell.com>
2434 * appdomain.c|h: Expose mono_domain_unload to the embedding api so that
2435 AppDomains created on the native side can be cleaned up on the native side.
2437 2009-01-13 Geoff Norton <gnorton@novell.com>
2439 * appdomain.c: Ensure that we call mono_context_init for the embedding api
2440 as well as the managed api.
2442 2009-01-13 Geoff Norton <gnorton@novell.com>
2444 * appdomain.h|c: New API for creating a MonoDomain in the embedding api
2445 with a MonoAppDomain initialized against it.
2447 2009-01-13 Zoltan Varga <vargaz@gmail.com>
2449 * reflection.c (MOVING_GC_REGISTER): Fix a warning.
2451 * reflection.c (mono_image_get_generic_param_info): Use MOVING_GC_REGISTER.
2453 * marshal.c: Avoid setting the exception clauses after a method has been entered
2454 into the wrapper caches. Fixes #465700.
2456 * method-builder.c (mono_mb_set_clauses): New function to set the clauses of the
2458 (mono_mb_create_method): Set the clauses from the method builder.
2460 2009-01-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
2462 * threadpool.c: include sys/socket.h. Fixes compilation on FreeBSD.
2463 Patch from Makoto Kishimoto.
2465 2009-01-13 Zoltan Varga <vargaz@gmail.com>
2467 * sgen-gc.c (mono_gc_make_descr_from_bitmap): Handle large bitmaps by
2468 encoding them as ROOT_DESC_COMPLEX.
2469 (precisely_scan_objects_from): Implement support for ROOT_DESC_COMPLEX.
2471 2009-01-12 Zoltan Varga <vargaz@gmail.com>
2473 * sgen-gc.c (scan_from_remsets): Clear the global remset of pointers which
2474 no longer point to the nursery.
2476 * sgen-gc.c: Add a few comments/FIXMEs.
2478 * sgen-gc.c: Implement scanning of the alloc_pinned objects.
2480 * marshal.c (mono_marshal_get_synchronized_wrapper): Make the
2481 initialization of the various _method variables thread safe. Fixes
2484 2009-01-12 Mark Probst <mark.probst@gmail.com>
2486 * domain.c, domain-internals.h: Remove the shared_generics_hash
2487 and its lookup functions.
2489 2009-01-12 Bill Holmes <billholmes54@gmail.com>
2491 * socket-io.c: Fixing the MSVC build.
2493 Code is contributed under MIT/X11 license.
2495 2009-01-12 Rodrigo Kumpera <rkumpera@novell.com>
2497 * metadata-verify.c: Add pe header watermark verification.
2499 2009-01-09 Rodrigo Kumpera <rkumpera@novell.com>
2501 * metadata-verify.c: Add lfanew verification.
2503 2009-01-12 Jb Evain <jbevain@novell.com>
2505 * tabldefs.h: rename METHOD_ATTRIBUTE_CHECK_ACCESS_ON_OVERRIDE to
2506 METHOD_ATTRIBUTE_STRICT to match the ECMA terminology.
2508 2009-01-10 Zoltan Varga <vargaz@gmail.com>
2510 * socket-io.c: Fix the build.
2512 * environment.c: Fix an #ifdef.
2514 2009-01-09 Zoltan Varga <vargaz@gmail.com>
2516 * threadpool.c (async_invoke_thread): Handle the wait function returning
2517 WAIT_IO_COMPLETION as well.
2518 (async_invoke_io_thread): Ditto.
2520 2009-01-09 Bill Holmes <billholmes54@gmail.com>
2522 * threads.c: Fixing the Windows build.
2524 Code is contributed under MIT/X11 license.
2526 2009-01-09 Zoltan Varga <vargaz@gmail.com>
2528 * threads.c (signal_thread_state_change): Call wapi_interrupt_thread () to
2530 (mono_thread_execute_interruption): Call wapi_clear_interruption () to enable
2531 the thread to wait again.
2533 2009-01-09 Rodrigo Kumpera <rkumpera@novell.com>
2535 * metadata-verify.c: Initial skeleton of the metadata verifier.
2537 * pedump.c: Add support for the metadata verifier.
2539 * verify-internal.h: Export the whole assembly metadata verifier function.
2541 2009-01-09 Rodrigo Kumpera <rkumpera@novell.com>
2543 * gc.c (mono_gc_init): Fix the comments about deadlock on windows.
2545 2009-01-09 Zoltan Varga <vargaz@gmail.com>
2547 * Makefile.am: Upgrade dtrace-prelink.sh location.
2549 2009-01-08 Rodrigo Kumpera <rkumpera@novell.com>
2551 * gc.c (mono_gc_init): Wait for finalizer thread to init on windows as
2552 well. Otherwise the shutdown deadlock that happens on unix will can happen
2554 If the main thread code finishes too fast it's possible that the finalizer
2555 thread won't have executed yet, won't record itself as the finalizer thread
2556 and the shutdown sequence will wait on it forever.
2558 2009-01-08 Rodrigo Kumpera <rkumpera@novell.com>
2560 * threads.c (mono_thread_current): Make THREAD_DEBUG work on windows
2563 2009-01-08 Miguel de Icaza <miguel@novell.com>
2565 * appdomain.c: Initialize the mono_strtod_mutex here, thanks to
2566 Robert Jordan for pointing this out.
2568 2009-01-08 Christian Prochnow <cproch@seculogix.de>
2571 * icall-def.h: added internal calls ves_icall_System_IO_DriveInfo_GetDiskFreeSpace,
2572 ves_icall_System_IO_DriveInfo_GetDriveType.
2574 2009-01-07 Miguel de Icaza <miguel@novell.com>
2576 * icall.c: Wrap calls to mono_strtod in CriticalSection
2577 invocations when using eglib, to work around #464316.
2579 2009-01-07 Rodrigo Kumpera <rkumpera@novell.com>
2581 * file-io.c (ves_icall_System_IO_MonoIO_GetCurrentDirectory): Double check the
2582 return value of GetCurrentDirectory to never access unitialized memory.
2584 2009-01-07 Rodrigo Kumpera <rkumpera@novell.com>
2586 * file-io.c (ves_icall_System_IO_MonoIO_GetCurrentDirectory): Properly check the
2587 return value of GetCurrentDirectory and expand the buffer if needed.
2591 2009-10-07 Tom Hindle <tom_hindle@sil.org>
2593 * marshal.c (GetIUnknownForObjectInternal, GetIUnknownForObjectInternal) :
2594 Adding a call to mono_init_com_types.
2596 Code is contributed under MIT/X11 license.
2598 2009-01-07 Geoff Norton <gnorton@novell.com>
2600 * socket-io.c: ioctlsocket(FIONREAD) returns the size of the UDP header as well on
2601 darwin. Use getsockopt SO_NREAD instead to get the right values for TCP and UDP.
2602 ai_canonname can be null in some cases on darwin, where the runtime assumes it will
2603 be the value of the ip buffer.
2605 2009-01-06 Rodrigo Kumpera <rkumpera@novell.com>
2607 * verify.c (mono_class_interface_implements_interface): Verify parents as we can't rely on
2608 interfaces_packed here.
2610 Fixes part of #463294.
2612 2009-01-06 Rodrigo Kumpera <rkumpera@novell.com>
2614 * verify.c (is_array_type_compatible): Ignore bounds and sizes when checking array compatibility.
2616 Fixes part of #463294.
2618 2009-01-06 Rodrigo Kumpera <rkumpera@novell.com>
2620 * verify.c (stack_slot_is_complex_type_not_reference_type): Check if the type
2621 is a boxed complex as well.
2623 Fixes part of #463294.
2625 2009-01-06 Rodrigo Kumpera <rkumpera@novell.com>
2627 * reflection.c (mono_image_get_methodref_token): Add an extra create_typespec parameter to
2628 control if a methodspec should be created for the generic method definition from external assemblies.
2629 Caching of methodspec is done using the handleref hash table.
2633 2009-01-05 Rodrigo Kumpera <rkumpera@novell.com>
2635 * loader.c (find_method): When searching the interfaces of a class
2636 check the transitive closure of implemented interfaces.
2640 2009-01-03 Rodrigo Kumpera <rkumpera@novell.com>
2642 * class.c (get_implicit_generic_array_interfaces): Improve debugging code.
2644 2009-01-03 Rodrigo Kumpera <rkumpera@novell.com>
2646 * class.c (get_implicit_generic_array_interfaces): Extract valuetype
2647 interfaces calculation to fill_valuetype_array_derived_types.
2649 * class.c (get_implicit_generic_array_interfaces): Valuetypes need IList /
2650 ICollection / IEnumerator interfaces for their extra twin type - sbyte for byte
2653 * class.c (get_implicit_generic_array_interfaces): InternalEnumerator gets
2654 interfaces for valuetypes if needed.
2656 * class.c (fill_valuetype_array_derived_types): Enums should have interfaces
2657 for their basetype as well. Types are array expanded if rank is > 0.
2661 2008-12-30 Bill Holmes <billholmes54@gmail.com>
2663 * socket-io.h : Changing the signature of
2664 ves_icall_System_Net_Sockets_Socket_Accept_internal to pass
2667 * icall-def.h : Changing the signature of
2668 System.Net.Sockets.Socket.Accept_internal to pass the blocking state.
2670 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal) :
2671 For Windows only. Avoid blocking when calling accept by
2672 querying for a connection via select. The loop also queries
2673 the thread state every 1000 micro seconds for the thread
2674 stop state. This will avoid the process hanging on shutdown
2675 when using a TcpChannel that is never connected to.
2677 Code is contributed under MIT/X11 license.
2679 2008-12-30 Marek Safar <marek.safar@gmail.com>
2681 * tabledefs.h: Add METHOD_ATTRIBUTE_CHECK_ACCESS_ON_OVERRIDE.
2683 2008-12-26 Rodrigo Kumpera <rkumpera@novell.com>
2685 * class.c (get_implicit_generic_array_interfaces): Extract common
2686 code to a helper function making it a lot easier on the eyes.
2688 2008-12-26 Rodrigo Kumpera <rkumpera@novell.com>
2690 * class.c (get_implicit_generic_array_interfaces): If the internal
2691 enumerator is an interface inflate System.Object instead of itself.
2695 2008-12-24 Rodrigo Kumpera <rkumpera@novell.com>
2697 * object.c (mono_runtime_invoke_array): Don't assert with
2698 byref nullable types.
2700 * marshal.c (mono_marshal_get_runtime_invoke): To handle
2701 byref nullables we unbox the object and store it on the
2703 We can't use the boxed object since it is the T of Nullable<T>
2704 and the boxed representation of a nullable it's underlying type
2706 We could cheat and create a boxed nullable and use the same
2707 machinery of other byref VTs but this feels like a hack and
2708 using the stack has the bonus of reducing heap pressure.
2712 2008-12-23 Rodrigo Kumpera <rkumpera@novell.com>
2714 * marshal.c (mono_marshal_emit_managed_wrapper): Handle char
2719 2008-12-19 Bill Holmes <billholmes54@gmail.com>
2721 * icall-def.h : Adding an internal call definition for
2722 System.Environment.internalBroadcastSettingChange.
2724 * icall.c : Adding a Windows only implementation to broadcast a
2725 WM_SETTINGCHANGE when an environment variable has changed.
2727 Code is contributed under MIT/X11 license.
2729 2008-12-19 Mark Probst <mark.probst@gmail.com>
2731 * class.c, class-internals.h: Made
2732 mono_class_has_parent_and_ignore_generics() non-static.
2734 Thu Dec 18 16:35:22 CET 2008 Paolo Molaro <lupus@ximian.com>
2736 * image.c: deal with the mmap failing when loading an image.
2738 2008-12-17 Geoff Norton <gnorton@novell.com>
2740 * threadpool.c: Ensure that the io_queue_lock is initialized
2741 in all circumstances, as we always attempt to cleanup against it.
2743 2008-12-17 Miguel de Icaza <miguel@novell.com>
2745 * icall.c (ves_icall_System_Environment_get_Platform): For
2746 compatibility reasons for existing client code we will keep
2747 returning 4 for a while.
2749 For how long will depend on the documentation being updated, and
2750 for us to give client code a chance to be updated.
2752 This reverts the original decison on #433108 since we did not
2753 catch roughly 33 instances of the broken code in our own source
2754 code base, we did not catch failures on the buildbots, and QA did
2755 not bring this as a problem.
2757 Only today I found some customer's code breaking due to our own
2758 class libraries not being fully updated and tracked it down to
2759 this change. I am reverting it because if we could not even get
2760 our story straight in our own code base, how can we hope that our
2761 end user code be fixed?
2763 As of this morning, our Wiki page that documents how to detect
2764 Unix had not been fixed.
2766 2008-12-16 Zoltan Varga <vargaz@gmail.com>
2768 * metadata.c (inflated_method_in_image): Add a workaround for #458168.
2770 * class.c (mono_class_get_fields): Handle loading errors.
2772 2008-12-12 Mark Mason <mmason@upwardaccess.com>
2774 * metadata.c (mono_type_stack_size_internal): If SIZEOF_REGISTER > SIZEOF_VOID_P then use SIZEOF_REGISTER as the size and alignment of the stack slots.
2776 2008-12-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
2778 * mono-perfcounters.c: avoid warning.
2780 2008-12-12 Rodrigo Kumpera <rkumpera@novell.com>
2782 * reflection.c (ensure_runtime_vtable): Work on generic instances and
2783 make sure all interfaces have MonoClass::interface_id set.
2785 * reflection.c (ensure_generic_class_runtime_vtable): Ensure the
2786 method table is property set.
2788 2008-12-12 Rodrigo Kumpera <rkumpera@novell.com>
2790 * class.c: New function mono_class_setup_interface_id that setup
2791 MonoClass::interface_id if needed.
2793 * class-internals.h: Export new function.
2795 2008-12-12 Rodrigo Kumpera <rkumpera@novell.com>
2797 * class.c: Add code to sanity check the vtable after setup_vtable_general
2800 2008-12-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
2802 * icall.c: make Assembly.GetExecutingAssembly work properly when
2803 reflection is used to invoke the method.
2806 2008-12-11 Mark Probst <mark.probst@gmail.com>
2808 * metadata/generic-sharing.c: Look for constraints in all type
2809 arguments, not just the first one.
2811 2008-12-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
2813 * appdomain.c: return the correct CodeBase for an Assembly instance
2814 that was loaded from the shadow-copy directories.
2817 2008-12-10 Zoltan Varga <vargaz@gmail.com>
2819 * sgen-gc.c (build_nursery_fragments): Clear nursery_next/nursery_frag_real_end.
2821 * sgen-gc.c (check_object): New debugging helper function.
2823 * object.c: Fix calls to mono_value_copy_array ().
2825 2008-12-10 Rodrigo Kumpera <rkumpera@novell.com>
2827 * class.c (mono_class_setup_fields): If working on an inflated class
2828 first check if the generic definition did init with success.
2832 2008-12-10 Rodrigo Kumpera <rkumpera@novell.com>
2834 pedump.c (main): Fix a warning.
2836 2008-12-10 Bill Holmes <billholmes54@gmail.com>
2838 * object-internals.h : Adding a definition for
2839 MonoReflectionComVisibleAttribute.
2841 * marshal.c (cominterop_com_visible) : Method added to check the
2842 ComVisible attribute of a class.
2844 * marshal.c (cominterop_raise_hr_exception, cominterop_get_interface) :
2845 cominterop_raise_hr_exception added to consolidate common code
2846 to raise hr exceptions.
2848 * marshal.c (cominterop_can_support_dispatch) : Method added to determine
2849 if a managed class should support IDispatch.
2852 (cominterop_get_idispatch_for_objec, cominterop_ccw_queryinterfacet) :
2853 Added additional checks for managed object when getting
2854 an IDispatch interface.
2856 Code is contributed under MIT/X11 license.
2858 2008-12-10 Rodrigo Kumpera <rkumpera@novell.com>
2860 pedump.c (main): Handle mono_get_method () returning NULL.
2862 2008-12-09 Zoltan Varga <vargaz@gmail.com>
2864 * marshal.h: Fix a warning.
2866 2008-12-09 Bill Holmes <billholmes54@gmail.com>
2868 * marshal.c : Adding cominterop_release_all_rcws to release all
2869 runtime callable wrappers held by the runtime.
2871 * marshal.h : Adding declaration for cominterop_release_all_rcws.
2873 Code is contributed under MIT/X11 license.
2875 2008-12-09 Zoltan Varga <vargaz@gmail.com>
2877 * metadata.c (mono_image_alloc_lock): New helper function.
2878 (mono_image_alloc0_lock): Ditto.
2880 * metadata.c: Use the alloc_lock () helper functions for allocating
2881 memory from the image mempool.
2883 2008-12-08 Rodrigo Kumpera <rkumpera@novell.com>
2885 * class.c (mono_class_from_generic_parameter): Document it's
2886 locking behavior. Fix double checked locking here, we stored in
2887 param->pklass a partially initialized MonoClass and no membar was used.
2889 2008-12-05 Marek Habersack <mhabersack@novell.com>
2891 * sysmath.c (ves_icall_System_Math_Round2): if round (3) and rint
2892 (3) functions are present in the C library use them to do the
2893 job. If they are absent, make sure that the sum of int_part and
2894 dec_part is rounded before returning. This is necessary due to the
2895 division of dec_part by the power of 10 before the final addition
2896 is performed - if the result is not rounded in some cases it will
2897 yield invalid results.
2899 2008-12-04 Zoltan Varga <vargaz@gmail.com>
2901 * marshal.c (mono_marshal_emit_native_wrapper): Add AOT support for pinvoke
2902 wrappers by emitting the function address using a CEE_MONO_ICALL_ADDR
2903 instruction instead of a pointer constant.
2905 2008-12-03 Zoltan Varga <vargaz@gmail.com>
2907 * loader.c (mono_method_get_header): Do most of the work outside the
2908 loader lock, to avoid assembly load hook deadlocks.
2910 * metadata.c (mono_metadata_parse_mh_full): Use finer-grained locking.
2911 (mono_metadata_parse_type_full): Ditto.
2913 2008-12-02 Rodrigo Kumpera <rkumpera@novell.com>
2915 * mempool.c (mono_backtrace): Take the number of allocated bytes as argument.
2916 Make the stack depth fixed. Ensure proper argument passing to the backtrace
2917 funtions. Finally, use a lock to produce well ordered output.
2919 The lock looks silly, as all calls to the corlib mempool should be guarded
2920 with the loader lock, but for some reason this fact doesn't help.
2922 * mempool.c (mono_mempool_alloc0): Add support for TRACE_ALLOCATIONS.
2924 2008-12-02 Mark Probst <mark.probst@gmail.com>
2926 * socket-io.c: 64 bit big-endian fixes.
2928 2008-12-01 Rodrigo Kumpera <rkumpera@novell.com>
2930 * verify.c (is_compatible_boxed_valuetype): Rewrite function to work properly with
2931 targets that require strict compatibility between the types.
2933 * verify.c (verify_stack_type_compatibility_full): Boxed values are not compatible
2934 to unboxed types. All cases that this is true are checked by is_compatible_boxed_valuetype.
2935 Kill the strict argument and create a new one valuetype_must_be_boxed.
2937 * verify.c (verify_delegate_compatibility): Use verify_stack_type_compatibility_full to
2938 state that all valuetypes must be boxed.
2942 2008-11-29 Kornél Pál <kornelpal@gmail.com>
2944 * coree.c (MonoFixupExe): Use sizeof(IMAGE_BASE_RELOCATION) instead of
2945 IMAGE_SIZEOF_BASE_RELOCATION as newer Vista SDKs no longer define the latter.
2947 Contributed under MIT/X11 license.
2949 2008-11-28 Rodrigo Kumpera <rkumpera@novell.com>
2951 * class.c (mono_class_setup_fields): Don't copy MonoType::attrs as
2952 the inflate_generic_type machinery should handle it.
2954 This avoids a crash when the field's flags is zero and it's type is
2956 What happens is that mono_metadata_parse_type_full will see that opt_attrs
2957 is zero and will return one of the cached built-in primitive types. Since
2958 those types live in read-only memory, the code that copies it crashes.
2960 2008-11-28 Mark Probst <mark.probst@gmail.com>
2962 * object.c: Don't put function descriptors into generalized IMT
2965 2008-11-28 Mark Probst <mark.probst@gmail.com>
2967 * class.c: Enable generic code sharing on PPC64.
2969 2008-11-27 Mark Probst <mark.probst@gmail.com>
2971 * mempool.c, mempool-internals.h: Added g_slist_append_mempool()
2974 * generic-sharing.c: Allocate the method template slists from the
2975 image mempool so it doesn't leak.
2977 2008-11-27 Rodrigo Kumpera <rkumpera@novell.com>
2979 * class.c (generic_array_methods): Release the linked list.
2981 2008-11-27 Mark Probst <mark.probst@gmail.com>
2983 * marshal.c (mono_string_builder_to_utf8): Fixed a wrong
2984 invocation to g_utf16_to_utf8().
2986 2008-11-26 Mark Probst <mark.probst@gmail.com>
2988 * icall.c (mono_ArgIterator_IntGetNextArg): Handle sub-word sized
2989 arguments on big endian archs.
2991 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
2993 * reflection.c: (_mono_reflection_parse_type) skip leading spaces in
2994 the type name (test added in corlib).
2996 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
2998 * pedump.c: initialize perf. counters. Fixes a segv.
3000 2008-11-25 Martin Baulig <martin@ximian.com>
3002 * mono-debug-debugger.c
3003 (mono_debugger_runtime_invoke): Return the exception object if an
3004 exception was thrown. Visual Studio displays the exception object
3005 in the locals window.
3007 2008-11-24 Mark Probst <mark.probst@gmail.com>
3009 * mini-trampolines.c (mono_delegate_trampoline): Don't return a
3012 2008-11-24 Mark Probst <mark.probst@gmail.com>
3014 * marshal.c (mono_type_native_stack_size): MONO_TYPE_I and
3015 MONO_TYPE_U are sizeof (gpointer), too.
3017 2008-11-24 Mark Probst <mark.probst@gmail.com>
3019 * marshal.c (mono_type_native_stack_size): Fixed size and
3020 alignment for reference types.
3022 2008-11-23 Mark Probst <mark.probst@gmail.com>
3024 * class.c (mono_class_generic_sharing_enabled): Disable generic
3025 code sharing for PPC64.
3027 2008-11-21 Rodrigo Kumpera <rkumpera@novell.com>
3029 * icall.c (mono_method_get_equivalent_method): Make sure
3030 method->klass->methods is inited before looping over it.
3032 2008-11-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
3034 * object.c: when calling ExecuteAssembly in a newly created domain,
3035 the configuration file and application base are already set up.
3036 Bug #446353 take 2 fixed.
3038 2008-11-20 Zoltan Varga <vargaz@gmail.com>
3040 * marshal.c: Add support for MONO_TYPE_GENERICINST to some functions.
3041 Fixes #444715. Fix a warning.
3043 2008-11-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
3045 * appdomain.c: write the full path of the assembly to the .ini file
3046 created when "shadow-copying"
3049 2008-11-18 Zoltan Varga <vargaz@gmail.com>
3051 * debug-helpers.c (mono_method_full_name): Stringify wrapper types even
3052 if signature==FALSE.
3054 2008-11-17 Bill Holmes <billholmes54@gmail.com>
3056 * marshal.h : Fix the cygwin build.
3057 marshal.c:12442: undefined reference to `_IID_IMarshal'
3059 Code is contributed under MIT/X11 license.
3061 2008-11-17 Bill Holmes <billholmes54@gmail.com>
3063 * marshal.h : cominterop_ccw_getfreethreadedmarshaler added to return the
3064 free threaded marshaler when QueryInterface is called on a COM callable
3065 wrapper requesting the IMarshal interface.
3067 Code is contributed under MIT/X11 license.
3069 2008-11-14 Zoltan Varga <vargaz@gmail.com>
3071 * domain-internals.h (MonoDomain): Update MONO_DOMAIN_LAST_GC_TRACKED.
3073 * reflection.c (mono_type_get_object): Special case the very common
3076 * domain-internals.h (struct _MonoDomain): Add 'typeof_void' field to
3079 2008-11-13 Bill Holmes <billholmes54@gmail.com>
3081 * process.h : Adding method declaration for
3082 ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
3084 * process.c : Adding implementation for
3085 ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
3087 * icall-def.h : Registering ICALL Processs.WaitForInputIdle_internal
3088 to ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
3090 Code is contributed under MIT/X11 license.
3092 2008-11-10 Rodrigo Kumpera <rkumpera@novell.com>
3094 * appdomain.c (unload_thread_main): Clean up threadpool by
3095 calling mono_thread_pool_remove_domain_jobs.
3097 * domain-internals.h (struct _MonoDomain): Add new fields to
3098 help coordinate the cleanup of the threadpool.
3100 * threadpool.c (mono_thread_pool_remove_domain_jobs): New fuction
3101 that cleans up the threadpool of all jobs associated with an appdomain.
3102 It does that by cleaning up the queues and making sure all active
3103 threads are accounted.
3105 * threadpool.c (async_invoke_io_thread): Ignore job if its domain is
3106 unloaded or in the process of. Take this is such way that there is
3107 no race condition between another thread starting the unload and the
3108 current thread acknowledging it.
3110 * threadpool.c (async_invoke_thread): Same.
3112 * threadpool.c (start_io_thread_or_queue): Increment threadpool_jobs before
3113 firing the new thread.
3115 * threadpool.c (start_tpthread): Same.
3117 * theadpool.c (append_job): Increment threadpool_jobs before queueing.
3119 * threadpool.h: Add mono_thread_pool_remove_domain_jobs.
3121 2008-11-06 Jonathan Chambers <joncham@gmail.com>
3123 * file-io.c (ves_icall_System_IO_MonoIO_DuplicateHandle):
3124 Add support for DuplicateHandle.
3126 * file-io.h (ves_icall_System_IO_MonoIO_DuplicateHandle):
3127 Add support for DuplicateHandle.
3129 * icall-def.h (ves_icall_System_IO_MonoIO_DuplicateHandle):
3130 Add support for DuplicateHandle.
3132 Code is contributed under MIT/X11 license.
3134 2008-11-06 Mark Probst <mark.probst@gmail.com>
3136 * class-internals.h: Make min_align into a whole byte.
3138 * class.c: Set min_align for SIMD types to 16.
3140 2008-11-05 Geoff Norton <gnorton@novell.com>
3142 * attach.c: Default the attacher to enabled for all cases including
3145 Wed Nov 5 16:33:41 CET 2008 Paolo Molaro <lupus@ximian.com>
3147 * monitor.c, class-internals.h, wrapper-types.h: revert incorrect
3150 2008-11-04 Mark Probst <mark.probst@gmail.com>
3152 * monitor.c, monitor.h: New function for querying offsets of
3153 members of MonoThreadsSync.
3155 2008-11-04 Zoltan Varga <vargaz@gmail.com>
3157 * marshal.c (mono_marshal_get_runtime_invoke): Use runtime_invoke_direct_cache
3158 to speed up this function and to avoid the boundless memory growth caused by
3159 the signature_dup () calls.
3161 2008-11-02 Zoltan Varga <vargaz@gmail.com>
3163 * monitor.c (mono_monitor_get_fast_enter_method): Add a proper type for the
3166 * class-internals.h (struct _MonoMethod): Increase the size of 'wrapper_type'
3169 * wrapper-types.h: Add MONO_WRAPPER_MONITOR_FAST_ENTER/EXIT.
3171 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
3174 * domain-internals.h: made mono_set_private_bin_path_from_config()
3176 * object.c: call the above function after setting the configuration
3177 file path for the root domain.
3180 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
3182 * assembly.c: when the assembly is loaded from an absolute path, end
3183 basedir with a directory separator.
3186 2008-10-30 Mark Probst <mark.probst@gmail.com>
3188 * monitor.c (mono_monitor_get_fast_enter_method): If
3189 CompareExchange is not available, don't create the fastpath
3190 instead of asserting. (The method is missing in the 1.1 profile.)
3192 2008-10-30 Mark Probst <mark.probst@gmail.com>
3194 * marshal.c, marshal.h: Rename signature_no_pinvoke() and make it non-static.
3196 * monitor.c, monitor.h: Code for generating Monitor.Enter and
3197 Monitor.Exit IL fastpaths.
3199 2008-10-28 Rodrigo Kumpera <rkumpera@novell.com>
3201 * class.c (mono_class_create_from_typedef): Added Vector2ul.
3203 2008-10-28 Rodrigo Kumpera <rkumpera@novell.com>
3205 * class.c (mono_class_create_from_typedef): Added Vector2l.
3207 2008-10-27 Rodrigo Kumpera <rkumpera@novell.com>
3209 * class.c (mono_class_create_from_typedef): Added Vector2d.
3211 2008-10-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
3213 * appdomain.c: translate \ into / for cache_path.
3214 * domain-internals.h: new mono_is_shadow_copy_enabled().
3215 * icall.c: (fill_reflection_assembly_name) do the same path
3216 manipulations that get_code_base does.
3217 (get_code_base) use mono_is_shadow_copy_enabled.
3219 2008-10-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
3221 * appdomain.c: shadow-copied assemblies go to CachePath +
3222 ApplicationName when both are set. DynamicBase has nothing to do with
3226 2008-10-26 Zoltan Varga <vargaz@gmail.com>
3228 * reflection.c (encode_locals): Use a cache to avoid duplicate entries in the
3229 STANDALONESIG table.
3231 * metadata-internals.h (struct _MonoDynamicImage): Add cache for
3232 standalone signatures.
3234 * marshal.c (mono_marshal_get_runtime_invoke): Rewrite the signature
3235 comparison code: instead of comparing the signatures using a custom
3236 equals function, transform them to a common signature and compare that. This
3237 works better with AOT.
3239 2008-10-25 Zoltan Varga <vargaz@gmail.com>
3241 * Reapply r116521 with (!mono_debug_using_mono_debugger ()) checks.
3243 * class.c (mono_class_init): Remove unneccesary mono_class_setup_properties ()
3244 call for generic instances.
3245 (mono_class_setup_properties): Call setup_properties () before accessing
3248 * class.c (mono_class_get_virtual_methods): New helper function to iterate
3249 over the virtual methods of a class using metadata if possible, avoiding the
3250 creation of MonoMethod's for non-virtual methods.
3252 * class.c (mono_class_setup_vtable_general): Rewrite this to use
3253 get_virtual_methods () to iterate over the virtual methods of classes.
3255 2008-10-25 Martin Baulig <martin@ximian.com>
3257 * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_DEAD): New #define.
3259 2008-10-24 Rodrigo Kumpera <rkumpera@novell.com>
3261 * class.c (mono_class_create_from_typedef): Added Vector4i.
3263 2008-10-24 Mark Probst <mark.probst@gmail.com>
3265 * marshal.c (mono_marshal_get_synchronized_wrapper): Emit
3266 ldtoken+GetTypeFromHandle instead of i4+icall so that the JIT
3267 special-casing applies to eliminate the call completely.
3269 2008-10-24 Rodrigo Kumpera <rkumpera@novell.com>
3271 * class.c (mono_class_create_from_typedef): Added Vector8s.
3273 2008-10-23 Rodrigo Kumpera <rkumpera@novell.com>
3275 * class.c (mono_class_create_from_typedef): Added Vector16sb.
3277 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
3279 * icall.c: get rid of annoying warning.
3281 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
3283 * threadpool.c: in 1.x, if you change the background status of the
3284 threadpool thread, it's not reset.
3285 Remove unnecessary calls to SetState.
3287 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
3289 * threadpool.c: asynchronously create a set of idle threads upon first
3290 use of the threadpool. SetMinThreads will now start the appropriate
3291 number of idle threads if they are not already running. The default is
3292 1 threadpool thread per CPU. Increased the maximum number of threads
3295 2008-10-22 Martin Baulig <martin@ximian.com>
3297 Revert r116521 from Zoltan, it breaks the debugger:
3299 * class.c (mono_class_get_virtual_methods): New helper function to iterate
3300 over the virtual methods of a class using metadata if possible, avoiding the
3301 creation of MonoMethod's for non-virtual methods.
3303 * class.c (mono_class_setup_vtable_general): Rewrite this to use
3304 get_virtual_methods () to iterate over the virtual methods of classes.
3306 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
3308 * threads.c: when creating a threadpool thread, set its state to
3310 * threadpool.c: reset the background state of a threadpool thread
3311 after finishing each work item
3314 2008-10-22 Zoltan Varga <vargaz@gmail.com>
3316 * class.c (mono_class_get_vtable_entry): Add an optimization for szarrays.
3318 * class.c (mono_class_setup_vtable_general): Add an optimized version for
3319 generic instances which works by inflating the methods in the container
3322 * class.c (mono_class_inflate_generic_type_with_mempool_no_copy): New
3323 variant which doesn't make a copy if no inflation was done.
3324 (mono_class_setup_fields): Use it.
3326 * metadata.c (mono_metadata_get_shared_type): New helper function to
3327 return a shared instance of a given MonoType.
3329 * class.c (mono_class_inflate_generic_type_with_mempool): Avoid making
3330 a copy of most non-generic types.
3332 Wed Oct 22 18:00:46 CEST 2008 Paolo Molaro <lupus@ximian.com>
3334 * threadpool.c: remove one more GetSystemInfo () call.
3336 Wed Oct 22 17:45:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
3338 * mono-perfcounters.c, icall-def.h, environment.c, environment.h:
3339 use the code in mono-proclib.h to get processor information.
3341 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
3343 * appdomain.c: fixed the logic that determines whether assemblies in a
3344 directory are "shadow-copied" or not. Bug #433483 fixed.
3346 2008-10-22 Zoltan Varga <vargaz@gmail.com>
3348 * process.c (ves_icall_System_Diagnostics_Process_GetProcessData): Fix a
3351 2008-10-21 Zoltan Varga <vargaz@gmail.com>
3353 * marshal.c (runtime_invoke_signature_equal): Don't shared wrappers
3356 * class.c debug-helpers.c object.c class-internals.h marshal.c icall.c
3357 reflection.c: Use mono_field_get_name () for accessing a field's name.
3359 * class-internals.h (MONO_CLASS_HAS_STATIC_METADATA): Move this here from
3362 * class.c (mono_field_get_rva): Fix crash if this is called on a dynamic
3365 * loader.c (find_method_in_class): Reenable the metadata optimization by
3366 not using it for generic instances.
3368 * class-internals.h (MonoFieldDefaultValue): Extract the rarely used
3369 data/def_type fields from MonoClassField into a separate structure.
3370 (struct MonoClassField): Remove data/def_type fields.
3371 (struct _MonoClass): Add a 'field_def_values' array to store the default
3372 values/RVA for fields.
3374 * class.c reflection.c: Update after the changes.
3376 * object.c (mono_class_create_runtime_vtable): Use mono_field_get_data ()
3377 for accessing field->data.
3379 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_InitializeArray): Ditto.
3381 * loader.c (find_method_in_class): Revert the last change for now as
3382 it breaks Mono.C5 unit tests.
3384 * class-internals.h (struct _MonoDynamicGenericClass): Add fields
3385 'field_generic_types' and 'field_objects' which contain the information
3386 previously stored in MonoInflatedField.
3387 (MonoInflatedField): Delete.
3388 (struct _MonoClassField): Delete 'generic_info' field.
3390 * reflection.c: Store the information which was previously in
3391 field->generic_info in MonoDynamicGenericClass instead.
3393 * metadata.c (free_generic_class): Update after MonoDynamicGenericClass/
3394 MonoClassField changes.
3396 Tue Oct 21 17:07:55 CEST 2008 Paolo Molaro <lupus@ximian.com>
3398 * marshal.c, method-builder.c: get rid of wrapper_hash and instead
3399 store the value inside the data array of the MonoMethodWrapper.
3400 This saves memory, is faster and fixes the lifetime issues (methods
3401 were never removed from the hash previously). May also fix bug#436996.
3403 2008-10-21 Zoltan Varga <vargaz@gmail.com>
3405 * reflection.c (mono_image_get_fieldref_token): For fields of non-dynamic
3406 generic instances, compute the type from the generic definition instead of
3407 looking in field->generic_info.
3409 * class.c (mono_class_setup_fields): Don't create a MonoInflatedField
3410 for inflated fields, the only user was get_fieldref_token () which no
3413 * class.c (mono_class_init): Revert the last change as it seems to cause
3416 * class-internals.h (struct _MonoClassField): Reorder fields to save 4
3417 bytes on 64 bit platforms.
3419 * object.c (mono_class_create_runtime_vtable): Fix a warning.
3421 * object.c (mono_class_create_runtime_vtable): Don't initalize
3422 field->data/field->def_type here, it is done lazily by
3423 mono_class_get_field_default_value ().
3425 * icall.c (ves_icall_get_enum_info): Call
3426 mono_class_get_field_default_value () instead of directly accessing
3427 field->data and field->def_type.
3429 * object.c (get_default_field_value): Ditto.
3431 * class.c (mono_field_get_data): Ditto.
3433 * class.c (mono_class_init): Remove unneccesary mono_class_setup_methods ()
3434 call for generic instances.
3436 * loader.c (find_method_in_class): If klass != from_class, then inflate
3437 the method with the context of from_class, since the caller assumes this.
3439 2008-10-20 Zoltan Varga <vargaz@gmail.com>
3441 * class.c (mono_method_get_vtable_index): Use mono_method_get_vtable_slot ()
3442 for accessing method->slot.
3444 2008-10-20 Cedric Vivier <cedricv@neonux.com>
3446 * icall-def.h, icall.c: Add icall for Debugger.IsAttached.
3448 2008-10-19 Zoltan Varga <vargaz@gmail.com>
3450 * class.c (mono_method_get_vtable_index): Use
3451 mono_method_get_vtable_slot () for accessing method->slot.
3453 * object.c (build_imt_slots): Use mono_class_get_method_by_index () for
3454 accessing klass->methods.
3456 * class.c (mono_method_get_vtable_slot): New helper function.
3457 (mono_class_get_vtable_entry): Ditto.
3458 (mono_class_setup_vtable_general): Use mono_method_get_vtable_slot () for
3459 accessing method->slot.
3461 * generic-sharing.c (mono_class_get_method_generic): Pass the declaring
3462 method to get_inflated_method ().
3464 * class.c (mono_class_get_inflated_method): New helper method to obtain
3465 a method of an inflated class without calling setup_methods ().
3466 (mono_class_get_cctor): Use get_inflated_method.
3468 * generic-sharing.c (mono_class_get_method_generic): Ditto.
3470 * marshal.c image.c: Lazily create all the marshal caches.
3472 * image.c (mono_image_init): Move initialization of runtime_invoke
3473 caches to marshal.c.
3475 * marshal.c (get_cache): New helper function to lazily initialize a
3477 (mono_marshal_get_runtime_invoke): Share more runtime invoke wrappers.
3479 * debug-helpers.c (mono_method_full_name): Include generic arguments.
3481 Fri Oct 17 10:51:32 CEST 2008 Paolo Molaro <lupus@ximian.com>
3483 * loader.c: fixed check for interface type.
3485 Thu Oct 16 20:59:11 CEST 2008 Paolo Molaro <lupus@ximian.com>
3487 * appdomain.c: check for NULL setup before it's referenced.
3490 Thu Oct 16 16:12:23 CEST 2008 Paolo Molaro <lupus@ximian.com>
3492 * class.c: remove the unused old vtable setup code.
3494 Thu Oct 16 12:53:29 CEST 2008 Paolo Molaro <lupus@ximian.com>
3496 * class.c: don't depend on interface order in
3497 setup_interface_offsets (bug #435777).
3498 * reflection.c: sort the InterfaceImpl table (patch from
3499 Jb Evain <jbevain@novell.com>).
3501 2008-10-13 Zoltan Varga <vargaz@gmail.com>
3503 * assembly.c (mono_assembly_open_full): Avoid loading images while holding
3504 the low level assemblies lock.
3506 Mon Oct 13 16:35:26 CEST 2008 Paolo Molaro <lupus@ximian.com>
3508 * domain-internals.h, domain.c, icall.c, image.c, marshal.c,
3509 object.c, reflection.c, socket-io.c, threads.c: introduced
3510 mono_framework_version () to return the major framewrok version,
3511 changed the code that was using more complex patterns to use it.
3512 Return the correct value for PlatformID for OSX.
3514 Mon Oct 13 14:38:01 CEST 2008 Paolo Molaro <lupus@ximian.com>
3516 * icall-def.h, process.h, process.c: added an icall to get info about
3517 processes using mono-proclib.
3519 Mon Oct 13 11:14:44 CEST 2008 Paolo Molaro <lupus@ximian.com>
3521 * mono-perfcounters.c: use the mono-proclib functions to
3522 access process information.
3524 Mon Oct 13 11:00:49 CEST 2008 Paolo Molaro <lupus@ximian.com>
3526 * domain.c, assembly.c, debug-mono-symfile.c, debug-mono-symfile.h,
3527 monosn.c, Makefile.am, pedump.c, image.c, metadata-internals.h,
3528 reflection.c: remove rawbuffer usage: mmap support is more sanely
3529 provided by utils/mono-mmap.
3531 Sat Oct 11 19:46:19 CEST 2008 Paolo Molaro <lupus@ximian.com>
3533 * gc.c: use posix semaphores when possible so that
3534 mono_gc_finalize_notify() is signal safe.
3536 2008-10-11 Zoltan Varga <vargaz@gmail.com>
3538 * reflection.c: Implement DISABLE_REFLECTION_EMIT, remove some
3539 #ifdef DISABLE_REFLECTION_SAVE stuff, only the exported functions need to
3540 be #ifdef-ed out, the linker will remove the rest.
3542 * marshal.c: Implement DISABLE_COM.
3544 * reflection.c: Implement DISABLE_REFLECTION_EMIT_SAVE.
3546 2008-10-11 Miguel de Icaza <miguel@novell.com>
3548 * locales.c (string_invariant_compare_char): Optimization: do not
3549 call g_unichar_type unless we actually need the information.
3551 2008-10-10 Mark Probst <mark.probst@gmail.com>
3553 * object.c, class-internals.h: Also create remoting trampolines
3554 for generic methods. Pass the domain to the remoting trampoline
3555 creation function, too.
3557 2008-10-10 Zoltan Varga <vargaz@gmail.com>
3559 * class.c (mono_class_init): Fix+re-enable the finalize optimization.
3561 2008-10-10 Rodrigo Kumpera <rkumpera@novell.com>
3563 * class.c (mono_class_create_from_typedef): Vector4u was renamed to
3566 2008-10-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
3569 * locales.c: remove the use of g_strdown. Fixes bug #322313.
3571 Fri Oct 10 17:01:42 CEST 2008 Paolo Molaro <lupus@ximian.com>
3573 * assembly.c: in mono_assembly_load_friends() take the assemblies lock
3574 for the least possible amount of time (extending the fix in r113458).
3576 2008-10-10 Rodrigo Kumpera <rkumpera@novell.com>
3578 * class.c (mono_class_create_from_typedef): Retrofit to new type names.
3580 2008-10-09 Rodrigo Kumpera <rkumpera@novell.com>
3582 * class.c (mono_class_create_from_typedef): Added Vector8u and Vector16u
3583 as possible simd intrinsic types.
3584 Optimized the test to check for the common prefix first.
3586 Thu Oct 9 17:38:24 CEST 2008 Paolo Molaro <lupus@ximian.com>
3588 * class.c: back out part of a broken optimization committed on
3589 May 23th (bug #433908).
3591 2008-10-09 Mark Probst <mark.probst@gmail.com>
3593 * profiler.c (simple_shutdown): Don't call mono_thread_attach() on
3594 Win32. Should fix #432388 for most cases until we have the new
3597 2008-10-08 Zoltan Varga <vargaz@gmail.com>
3599 * metadata.c (mono_metadata_generic_context_hash): Call generic_inst_hash
3600 instead of using inst->id so the hash is stable for AOT.
3602 2008-10-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
3605 * icall.c: create a .ini file for shadow-copied assemblies that
3606 contains the location of the original assembly. Use this to return the
3607 proper CodeBase for shadow-copied assemblies. Fixes bug #323606.
3608 Also fix the number of '/' for windows when returning the CodeBase.
3611 2008-10-07 Bill Holmes <billholmes54@gmail.com>
3613 * marshal.c (cominterop_get_ccw) : Fixing a copy paste error from r115126.
3615 Code is contributed under MIT/X11 license.
3617 2008-10-07 Bill Holmes <billholmes54@gmail.com>
3619 * marshal.c (cominterop_get_native_wrapper) : Adding a call to mono_class_setup_vtable
3620 if if the class vtable needs initialized.
3622 Code is contributed under MIT/X11 license.
3624 2008-10-07 Bill Holmes <billholmes54@gmail.com>
3626 * marshal.c (cominterop_get_native_wrapper_adjusted, cominterop_get_ccw) :
3627 Adding default MonoMarshalSpecs for COM methods. OBJECT->STRUCT,
3628 STRING->BSTR, and CLASS->INTERFACE.
3630 Code is contributed under MIT/X11 license.
3632 2008-10-07 Marek Habersack <mhabersack@novell.com>
3634 * sysmath.h: changed the declaration of the
3635 ves_icall_System_Math_Round2 icall by adding an extra
3636 away_from_zero parameter.
3638 * sysmath.c (ves_icall_System_Math_Round2): added support for
3639 away from zero rounding. The icall now takes an extra boolean
3640 parameter to signal that away from zero operation is requested.
3642 2008-10-06 Zoltan Varga <vargaz@gmail.com>
3644 * marshal.c (mono_marshal_get_delegate_begin_invoke): Put the wrapper in
3645 the delegate klass so it can work with full-aot.
3646 (mono_marshal_get_delegate_end_invoke): Ditto.
3647 (mono_marshal_get_delegate_invoke): Ditto.
3649 Mon Oct 6 16:10:02 CEST 2008 Paolo Molaro <lupus@ximian.com>
3651 * gc.c, attach.h, attach.c: remove a bad pattern:
3652 add_finalizer_callback () is not implemented correctly, it can't
3653 without adding more overhead to the finalizer loop and it's not
3654 even needed, since we know exactly what we need to call, so there is
3655 no need to do so through an expensive function pointer.
3657 2008-10-04 Zoltan Varga <vargaz@gmail.com>
3659 * gc.c: Define a dummy version of mono_gc_add_finalizer_thread_callback ()
3661 * attach.c (mono_attach_init): Remove the #ifdef.
3663 2008-10-04 Andreas Färber <andreas.faerber@web.de>
3665 * attach.c (mono_attach_init): Don't use
3666 mono_gc_add_finalizer_thread_callback when compiling without GC.
3669 Code is contributed under MIT/X11 license.
3671 2008-10-03 Zoltan Varga <vargaz@gmail.com>
3673 * class.c (mono_class_create_from_typedef): Remove the
3674 #ifndef DISABLE_SIMD stuff.
3676 2008-10-03 Rodrigo Kumpera <rkumpera@novell.com>
3678 * class-internals.h (MonoClass): Added simd_type bit field.
3680 * class.c (mono_class_create_from_typedef): Check if type is a simd
3683 2008-10-03 Mark Probst <mark.probst@gmail.com>
3685 * object.c (mono_method_add_generic_virtual_invocation): Only add
3686 instantiations to the thunk whose count is at least as large as
3689 2008-10-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
3691 * icall.c: changed the Type of the exception thrown when trying to
3692 invoke a constructor on an abstract class. Part of the fix for bug
3695 2008-10-02 Mark Probst <mark.probst@gmail.com>
3697 * class.c, class-internals.h (mono_method_get_vtable_index): New
3698 function which returns the index into the vtable and properly
3699 handles inflated virtual generic methods.
3701 2008-10-01 Mark Probst <mark.probst@gmail.com>
3703 * object.c, domain.c, object-internals.h, domain-internals.h:
3704 Generalize IMT thunk machinery to also handle thunks for virtual
3705 generic method invokes. When a virtual generic method is invoked
3706 more than a number of times we insert it into the thunk so that it
3707 can be called without lookup in unmanaged code.
3709 * generic-sharing.c, class-internals.h: Fetching a
3710 MonoGenericInst* for a method from an (M)RGCTX.
3712 2008-10-01 Zoltan Varga <vargaz@gmail.com>
3714 * marshal.c (emit_marshal_string): Applied a variant of a patch by
3715 tom hindle <tom_hindle@sil.org>. Fix byref native-to-managed string
3716 marshalling. Fixes #431304.
3718 2008-10-01 Bill Holmes <billholmes54@gmail.com>
3720 * marshal.c (emit_marshal_variant) : Change the attribute checks to
3721 handle when ref is specified without In or Out.
3723 Code is contributed under MIT/X11 license.
3725 2008-09-30 Mark Probst <mark.probst@gmail.com>
3727 * loader.c (mono_get_method_constrained): Don't expand method with
3728 the class's context, because it's already a method of that class.
3730 2008-09-30 Atsushi Enomoto <atsushi@ximian.com>
3732 * attach.c : should be correct build fix.
3734 2008-09-29 Zoltan Varga <vargaz@gmail.com>
3736 * attach.c: Fix the previous change.
3738 2008-09-29 Atsushi Enomoto <atsushi@ximian.com>
3740 * attach.c : quick w32 build fix.
3742 2008-09-27 Miguel de Icaza <miguel@novell.com>
3744 * Turn off MONO_GENERIC_SHARING=all and go back to corlib as it
3745 crashes MonoDevelop: #430455.
3747 2008-09-27 Zoltan Varga <vargaz@gmail.com>
3749 * domain-internals.h (struct _MonoDomain): Move most fields used only by
3750 the JIT do MonoJitDomainInfo in ../mini/mini.h.
3752 * domain.c: Remove initialization/cleanup of the removed fields.
3754 2008-09-27 Mark Probst <mark.probst@gmail.com>
3756 * class.c (mono_class_generic_sharing_enabled): Enable generic
3757 code sharing for PPC.
3759 2008-09-26 Bill Holmes <billholmes54@gmail.com>
3761 * attach.c : Fixing the Windows builds.
3763 Code is contributed under MIT/X11 license.
3765 2008-09-25 Zoltan Varga <vargaz@gmail.com>
3767 * class.c (mono_class_generic_sharing_enabled): Experimentally change
3768 the default generic sharing mode to 'all'.
3770 2008-09-25 Mark Probst <mark.probst@gmail.com>
3772 * generic-sharing.c, class-internals.h: New function for checking
3773 whether a method needs a static RGCTX invoke wrapper. A few
3774 funtions moved from mini/generic-sharing.c.
3776 * icall.c: New function used.
3778 2008-09-25 Mark Probst <mark.probst@gmail.com>
3780 * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
3781 Static RGCTX invoke wrapping applies to value type methods, too.
3783 * class.c (mono_class_setup_vtable_general): In generic-shared
3784 value types, wrap methods with a static RGCTX invoke wrapper.
3786 2008-09-25 Zoltan Varga <vargaz@gmail.com>
3788 * attach.c (ipc_connect): Use AF_UNIX instead of AF_FILE to fix the
3791 2008-09-24 Zoltan Varga <vargaz@gmail.com>
3793 * gc.c (mono_gc_add_finalizer_thread_callback): New function to
3794 register a callback which is called when the finalizer thread is woken
3796 (finalizer_thread): Call the callback if it exists.
3798 * attach.h attach.c: New files, implementing the attach mechanism.
3800 * appdomain.c: Init/cleanup the attach mechanism on startup/shutdown.
3802 * object.c (mono_object_get_virtual_method): Fix an assertion introduced
3803 by the previous change.
3805 Tue Sep 23 15:24:03 CEST 2008 Paolo Molaro <lupus@ximian.com>
3807 * class.c, domain-internals.h, domain.c, generic-sharing.c, image.c,
3808 loader.c, marshal.c, metadata-internals.h, metadata.c,
3809 method-builder.c, object.c, reflection.c: introduced specific functions
3810 to allocate from the domain and image mempools and cleaned up most of
3811 the code to use them (still missing a few in reflection.c).
3812 Keep the loader bytes counter updated.
3814 Mon Sep 22 17:33:12 CEST 2008 Paolo Molaro <lupus@ximian.com>
3816 * domain.c, monitor.c, boehm-gc.c, gc.c: update some of the GC and
3817 loader-related counters.
3819 Mon Sep 22 17:29:54 CEST 2008 Paolo Molaro <lupus@ximian.com>
3821 * mono-perfcounters-def.h, mono-perfcounters.c, class-internals.h:
3822 added more MS-compatible counters.
3824 2008-09-22 Zoltan Varga <vargaz@gmail.com>
3826 * class.c (mono_class_setup_fields): Call setup_fields before accessing
3827 class->blittable. Fixes #428217.
3829 2008-09-21 Zoltan Varga <vargaz@gmail.com>
3831 * reflection.c (mono_image_get_field_on_inst_token): Call
3832 field_encode_signature () since that handles custom modifiers too.
3835 2008-09-20 Zoltan Varga <vargaz@gmail.com>
3837 * reflection.c (add_custom_modifiers): New helper function to merge custom
3838 modifiers stored in objects to a MonoType.
3839 (fieldref_encode_signature): Encode custom modifiers.
3840 (mono_image_get_generic_field_token): Call add_custom_modifiers ().
3841 (fieldbuilder_to_mono_class_field): Ditto. Fixes #424663.
3843 2008-09-19 Kornél Pál <kornelpal@gmail.com>
3845 * coree.c (_CorValidateImage): Some 64-bit IL only images have entry point
3846 calling _CorDllMain imported from mscoree.dll. Set entry point RVA to 0 for
3847 64-bit IL only images because imports are not resolved for IL only images.
3848 Special thanks to Bill Holmes for finding this bug and testing the patch.
3849 Also fail for 64-bit images marked as CLI_FLAGS_32BITREQUIRED.
3851 Contributed under MIT/X11 license.
3853 2008-09-19 Miguel de Icaza <miguel@novell.com>
3855 * mono-config.c (dllmap_start): Add support for the bits keyword
3856 on dllentry and dllmap to easily detect 32 vs 64 bit systems.
3858 2008-09-19 Mark Probst <mark.probst@gmail.com>
3860 * reflection.c (inflate_mono_method): When the class the method is
3861 to be inflated for is itself not inflated, just return the method.
3863 Fri Sep 19 11:51:36 CEST 2008 Paolo Molaro <lupus@ximian.com>
3865 * mono-perfcounters.c: use more user friendly process instance names.
3867 2008-09-18 Bill Holmes <billholmes54@gmail.com>
3869 * marshal.c (emit_marshal_variant) : Change the attribute checks to
3870 handle "[in] ref" and "[in][out] ref" cases.
3872 * marshal.c (cominterop_get_ccw) : The wrong signature was being passed
3873 to mono_mb_create_method. This was causing problems calling native to
3874 managed passing Variants by value.
3876 Code is contributed under MIT/X11 license.
3878 2008-09-18 Zoltan Varga <vargaz@gmail.com>
3880 * class.c (can_access_internals): Call mono_assembly_load_friends ()
3881 before accessing the friend_assembly_names field.
3883 * assembly.c (mono_assembly_load_friends): Make this callable multiple
3885 (mono_assembly_load_from_full): Avoid calling load_friends (), it is
3886 called lazily when it is needed.
3888 * metadata-internals.h (struct _MonoAssembly): Add
3889 'friend_assembly_names_inited' flag.
3891 Thu Sep 18 18:18:47 CEST 2008 Paolo Molaro <lupus@ximian.com>
3893 * mono-perfcounters-def.h: fix the types of a few counters.
3894 * mono-perfcounters.c: implemented the instance names getter
3897 2008-09-18 Atsushi Enomoot <atsushi@ximian.com>
3899 * culture-info-table.h : regenerated.
3901 2008-09-17 Robert Jordan <robertj@gmx.net>
3903 * marshal.c (mono_marshal_get_ldflda_wrapper): Add support for
3904 context bound objects. Fixes #415577.
3906 Code is contributed under MIT/X11 license.
3908 Tue Sep 16 21:03:58 CEST 2008 Paolo Molaro <lupus@ximian.com>
3910 * icall-def.h, threads-types.h, threads.c: fixed SpinWait()
3911 implementation (bug #423582).
3913 2008-09-16 Zoltan Varga <vargaz@gmail.com>
3915 * object.c (mono_object_get_virtual_method): Handle the case method->slot
3916 is not set. Fixes #426309.
3918 2008-09-16 Jb Evain <jbevain@novell.com>
3920 * class.c (mono_class_from_name): fix the exported type look up
3921 when the type is defined in a referenced assembly.
3923 2008-09-16 Jb Evain <jbevain@novell.com>
3925 * reflection.c (mono_image_fill_export_table_from_type_forwarders):
3926 increment the next index counter on each iteration to make that work
3927 for more than one type forwarder. Unmanaged part to fix #422929.
3929 2008-09-15 Mark Probst <mark.probst@gmail.com>
3931 * object-internals.h: enum ComInterfaceType in
3932 MonoInterfaceTypeAttribute is guint32, not guint16.
3934 2008-09-12 Mark Probst <mark.probst@gmail.com>
3936 * cil-coff.h, image.c, reflection.c: Endianness fixes in image
3939 2008-09-11 Mark Probst <mark.probst@gmail.com>
3941 * icall.c: Boolean arguments to a runtime invoke are MonoBoolean,
3944 2008-09-11 Mark Probst <mark.probst@gmail.com>
3946 * debug-mono-symfile.c (mono_debug_symfile_lookup_location):
3947 Endianness fixes for MonoSymbolFileOffsetTable.
3949 2008-09-10 Bill Holmes <billholmes54@gmail.com>
3951 * process.c (complete_path) : Removing quotes from the
3952 input path. The glib file routines do not handle file paths
3953 that have quotes around them.
3955 Code is contributed under MIT/X11 license.
3957 2008-09-10 Bill Holmes <billholmes54@gmail.com>
3959 * socket-io.h : Adding a comment to provide locations where
3960 changes to MonoSocketAsyncResult need to be synced.
3962 Code is contributed under MIT/X11 license.
3964 2008-09-10 Zoltan Varga <vargaz@gmail.com>
3966 * marshal.c (emit_marshal_custom): Call NativeToManaged for non-out
3967 parameters as well. Fixes #425001.
3969 2008-09-08 Miguel de Icaza <miguel@novell.com>
3971 * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Fix
3974 2008-09-07 Miguel de Icaza <miguel@novell.com>
3976 * console-io.c: Add support for tracking the window size if it
3979 The setup is very simple: the TtySetup function will now return a
3980 pointer to a location in memory that tracks the current console
3981 size. The managed code checks its current value every time its
3982 queried against the last value set, and updates accordingly.
3984 With this setup we can work with multiple consoles, and we do not
3985 require to poke into managed code from a signal handler.
3987 Additionally, the environment for COLUMNS and LINES is now handled
3990 (ves_icall_System_ConsoleDriver_GetTtySize): This is now gone.
3992 2008-09-07 Mark Probst <mark.probst@gmail.com>
3994 * marshal.c (mono_type_native_stack_size): Treat
3995 MONO_TYPE_TYPEDBYREF like MONO_TYPE_VALUETYPE.
3997 2008-09-04 Jb Evain <jbevain@novell.com>
3999 * class.c (mono_class_is_assignable_from): fix assignability of nullables
4002 2008-09-03 Rodrigo Kumpera <rkumpera@novell.com>
4004 * verify.c (verify_type_compatibility_full): Revert change
4005 to allow converting a native int to unmanaged pointer be verifiable
4006 under non-strict mode.
4007 It turns out that "(IntPtr)null" is indeed unverifiable, go figure.
4009 * verify.c: Added some TODOs.
4011 2008-09-02 Bill Holmes <billholmes54@gmail.com>
4013 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi,
4014 ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni) :
4015 Changed to use GlobalAlloc for the memory returned on Windows platforms.
4017 Code is contributed under MIT/X11 license.
4019 2008-09-02 Jb Evain <jbevain@novell.com>
4021 * object.c (mono_ldstr_metdata_sig): renamed to mono_ldstr_metadata_sig.
4023 2008-09-02 Rodrigo Kumpera <rkumpera@novell.com>
4025 reflection.c (typebuilder_setup_fields): Handle classes with
4028 2008-09-01 Rodrigo Kumpera <rkumpera@novell.com>
4030 class.c (mono_class_setup_events): Add memory barrier due to
4031 double checked locking.
4033 class.c (mono_class_setup_properties): Same.
4035 2008-08-31 Zoltan Varga <vargaz@gmail.com>
4037 * class.c (mono_class_is_assignable_from): Fix the build.
4039 * class.c (mono_class_is_assignable_from): Call mono_class_setup_vtable ()
4040 before accessing klass->interface_bitmap. Fixes #421744.
4042 2008-08-28 Zoltan Varga <vargaz@gmail.com>
4044 * appdomain.c (mono_runtime_set_no_exec): New internal function setting
4045 the runtime into no-exec mode, useful when running the AOT compiler.
4047 * appdomain.c gc.c object.c: Avoid executing managed code when running
4050 * rawbuffer.c (mono_raw_buffer_load_mmap): Disable this on the iphone.
4052 * reflection.c (_mono_reflection_get_type_from_info): Handle the
4053 special case when the mono_assembly_loaded () returns NULL because the
4054 search hook is not installed.
4056 2008-08-25 Zoltan Varga <vargaz@gmail.com>
4058 * marshal.c: Applied patch from tom hindle (tom_hindle@sil.org) to fix
4059 crashes in bstr marshalling on linux.
4061 2008-08-24 Zoltan Varga <vargaz@gmail.com>
4063 * debug-helpers.c (mono_type_get_desc): Fix printing of generic instances
4064 with more than one parameter.
4066 2008-08-24 Miguel de Icaza <miguel@novell.com>
4068 * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Disable
4069 start/stop flow control as well when turning off ICANON (allows
4070 C-s and C-q to be read by Console.ReadKey).
4072 2008-08-24 Zoltan Varga <vargaz@gmail.com>
4074 * class.c (mono_class_init): Move the initialization of nested classes
4075 into mono_class_get_nested_types (). Fixes #418433.
4077 * class-internals.h (struct _MonoClass): Add a new 'nested_classes_inited'
4080 * class.c reflection.c icall.c: Use mono_class_get_nested_types () for
4081 iterating tough the nested classes of a class.
4083 2008-08-23 Zoltan Varga <vargaz@gmail.com>
4085 * class.c (mono_class_generic_sharing_enabled): Enable generic sharing
4088 2008-08-22 Miguel de Icaza <miguel@novell.com>
4090 * console-io.c (sigcont_handler): Support signal chaining for
4093 (console_set_signal_handlers): Use best practices with sigaction,
4094 clear the structure before using it.
4096 2008-08-22 Robert Jordan <robertj@gmx.net>
4098 * console-io.c (ves_icall_System_ConsoleDriver_TtySetup):
4099 Fix the Windows build.
4101 2008-08-22 Zoltan Varga <vargaz@gmail.com>
4103 * class.c (mono_class_generic_sharing_enabled): Make the default
4104 sharing mode 'corlib'.
4106 2008-08-21 Zoltan Varga <vargaz@gmail.com>
4108 * console-io.c (console_set_signal_handlers): Fix a warning.
4110 * marshal.c (mono_marshal_get_synchronized_wrapper): Call the wrapper
4111 method normally, the JIT will take care of avoiding recursion.
4113 2008-08-20 Bill Holmes <billholmes54@gmail.com>
4115 * console-io.c : Fixing builds for platforms that do not have <termios.h>.
4117 Code is contributed under MIT/X11 license.
4119 2008-08-20 Miguel de Icaza <miguel@novell.com>
4121 * console-io.c (sigcont_handler): We need to restore the entire
4122 termios state, not only the original settings, as things like echo
4123 can be controlled after this (Booish exposes this issue with its
4124 own ReadLine implementation).
4126 Additionally, we need to set the terminal back into keypad_xmit
4129 (ves_icall_System_ConsoleDriver_TtySetup): Take the keypad xmit
4130 string as a paramter as well. Otherwise we get different
4133 2008-08-20 Zoltan Varga <vargaz@gmail.com>
4135 * marshal.c (emit_marshal_object): Avoid managed-to-native marshalling of
4136 delegates with byref out parameter passing. Fixes #351520.
4138 * debug-helpers.c (mono_context_get_desc): New helper function to stringify
4140 (mono_type_get_desc): Add the type arguments for GENERICINST.
4141 (mono_method_full_name): Stringify the class name using mono_type_full_name
4142 so it picks up generic arguments.
4144 2008-08-19 Gert Driesen <drieseng@users.sourceforge.net>
4146 * console-io.c: Removed debug output.
4148 2008-08-19 Rodrigo Kumpera <rkumpera@novell.com>
4150 reflection.c (mono_reflection_create_runtime_class): Alloc
4151 the nested classes linked list using the dynamic image mempool.
4152 Fixes leak in corlib compilation.
4154 2008-08-19 Miguel de Icaza <miguel@novell.com>
4156 * console-io.c: Fix incredibly annoying behavior on the console
4157 after resuming execution after control-z. This affected every
4158 console application.
4160 2008-08-18 Rodrigo Kumpera <rkumpera@novell.com>
4162 * mempool-internals.h: Header for mono private mempool functions. The first
4163 two function are for allocating glib linked lists using pools.
4165 * mempool.c: Added g_list_prepend_mempool and g_slist_prepend_mempool.
4167 * Makefile.am: Added mempool-internals.h.
4169 2008-08-16 Zoltan Varga <vargaz@gmail.com>
4171 * domain.c (mono_domain_create): Call the JIT domain hook if installed.
4172 (mono_domain_free): Ditto.
4174 * domain-internals.h (struct _MonoDomain): Add 'runtime_info' field, this could
4175 be used by the JIT to store its domain-specific information, instead of putting
4176 it directly into MonoDomain.
4178 * domain.c (mono_install_create_domain_hook): New helper function to install
4179 a hook which initializes domain->runtime_info.
4181 * domain.c (mono_install_free_domain_hook): Ditto.
4183 2008-08-15 Zoltan Varga <vargaz@gmail.com>
4185 * marshal.c (mono_delegate_end_invoke): Raise an exception instead of
4186 asserting if the ares parameter is null.
4188 * mono-perfcounters.c: Fix warnings.
4190 * marshal.c (mono_marshal_get_delegate_begin_invoke): Don't set save_lmf, it
4191 is not needed, don't check for interruptions either.
4192 (mono_marshal_get_delegate_end_invoke): Ditto.
4194 2008-08-15 Marek Habersack <mhabersack@novell.com>
4196 * mono-perfcounters.c (predef_readonly_counter): added support for
4197 reading the ASP.NET Requests Queued counter from another process.
4199 2008-08-12 Zoltan Varga <vargaz@gmail.com>
4201 * metadata-internals.h: Move the 'aot_module' field from MonoAssembly to
4202 MonoImage to simplify the AOT code.
4204 2008-08-10 Zoltan Varga <vargaz@gmail.com>
4206 * marshal.c (emit_marshal_object): Implement native-to-managed StringBuilder
4207 marshalling. Fixes #416078.
4209 2008-08-08 Zoltan Varga <vargaz@gmail.com>
4211 * marshal.c (mono_marshal_get_native_wrapper): Add an 'aot' argument, when
4212 it is set, looking up the icall address is deferred to the JIT, since
4213 in embedded scenarios, the icall might not be registered in the runtime
4214 doing the AOT compilation. Backported from the 2.0 branch.
4216 2008-08-08 Zoltan Varga <vargaz@gmail.com>
4218 * marshal.c (mono_remoting_wrapper): Handle nullable types correctly.
4221 2008-08-05 Marek Habersack <mhabersack@novell.com>
4223 * Makefile.am: added support for cross-compilation.
4225 2008-08-04 Zoltan Varga <vargaz@gmail.com>
4227 * socket-io.c (get_socket_assembly): Make 'moonlight' variable static.
4229 Fri Aug 1 18:47:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
4231 * mono-perfcounters.c: jitted methods and jitted bytes counters.
4233 Fri Aug 1 16:07:09 CEST 2008 Paolo Molaro <lupus@ximian.com>
4235 * class-internals.h, icall-def.h, mono-perfcounters-def.h,
4236 mono-perfcounters.c: performance counters implementation.
4238 2008-07-31 Zoltan Varga <vargaz@gmail.com>
4240 * metadata-internals.h (struct _MonoAssembly): Change the type of 'aot_module'
4241 to gpointer, letting the AOT code decide what to store in it.
4243 2008-07-31 Bill Holmes <billholmes54@gmail.com>
4245 * marshal.c (cominterop_get_native_wrapper) : Adding a call to
4246 mono_class_setup_methods if the methods are not initialized.
4248 Code is contributed under MIT/X11 license.
4250 2008-07-30 Rodrigo Kumpera <rkumpera@novell.com>
4252 * verify.c: Remove some debug code I commited by accident.
4254 * verify.c (mono_method_is_valid_in_context): Change the return value
4255 to make possible to distinguish between invalid and unverifiable.
4257 * verify.c (verifier_load_method): Don't return NULL for unverifiable
4260 2008-07-30 Rodrigo Kumpera <rkumpera@novell.com>
4262 * verify.c (mono_generic_param_is_constraint_compatible): Inflate type
4263 constraints. Fixes regression in gtest-253.
4265 2008-07-30 Rodrigo Kumpera <rkumpera@novell.com>
4267 * verify.c (mono_verifier_verify_class): Don't allow generic types
4268 with explicit layout.
4270 * verify.c (mono_method_verify): Check locals and argument types.
4272 2008-07-29 Zoltan Varga <vargaz@gmail.com>
4274 * monitor.c (mono_monitor_try_enter_internal): Allow nterruption of the
4275 wait if the thread is in StopRequested state.
4277 * class.c (mono_class_from_name): Refactor the module searching code into
4278 a separate function so it can be reused in the AOT case too.
4280 2008-07-28 Rodrigo Kumpera <rkumpera@novell.com>
4282 * verify.c (mono_type_is_valid_in_context): Improve the error message.
4283 Check both the type and it's generic type definition for loader errors.
4285 * verify.c (mono_method_is_valid_in_context): Don't generate another
4286 error when a type errors occur, this leads to the wrong exception been
4289 2008-07-28 Dick Porter <dick@ximian.com>
4293 (ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate):
4294 New internal calls to duplicate and close a process handle.
4296 2008-07-27 Andreas Färber <andreas.faerber@web.de>
4298 * object.c (CHECK_ADD_OVERFLOW_UN): Add missing bracket. Fixes #412499.
4300 2008-07-27 Zoltan Varga <vargaz@gmail.com>
4302 * appdomain.c (unload_thread_main): Attach the unload thread to the runtime.
4304 2008-07-27 Robert Jordan <robertj@gmx.net>
4306 * class.c (mono_class_init): Don't compute class.has_finalize for
4307 valuetypes. Fixes #412477.
4309 2008-07-25 Rodrigo Kumpera <rkumpera@novell.com>
4311 * verify.c: Implement constraint equivalence checking.
4312 This is required when a generic parameter is used as
4313 argument to a constrained one.
4317 2008-07-24 Zoltan Varga <vargaz@gmail.com>
4319 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4321 * domain-internals.h (struct _MonoDomain): Add 'method_code_hash' field.
4323 * object-internals.h (struct _MonoDelegate): Add 'method_code' field,
4324 synch with managed object layout.
4326 2008-07-24 Rodrigo Kumpera <rkumpera@novell.com>
4328 * verify.c (do_branch_op): Handle valuetypes and generic
4331 * verify.c (do_cmp_op): Same.
4335 2008-07-24 Mark Probst <mark.probst@gmail.com>
4337 * generic-sharing.c: Fix memory leaks.
4339 * class.c, class-internals.h: Make
4340 mono_class_inflate_generic_type_with_mempool() non-static.
4342 2008-07-24 Rodrigo Kumpera <rkumpera@novell.com>
4344 * pedump.c (dump_verify_info): Dump full class name.
4346 2008-07-24 Mark Probst <mark.probst@gmail.com>
4348 * generic-sharing.c: Removed some old code that didn't do anything.
4350 2008-07-24 Massimiliano Mantione <massi@ximian.com>
4351 * profiler.c: Added runtime_initialized_event,
4352 mono_profiler_install_runtime_initialized and
4353 mono_profiler_runtime_initialized. This new hook tells the profiler
4354 when the runtime is sufficiently initialized to be able to call
4355 mono_thread_attach on the root appdomain.
4356 * profiler.h, profiler-private.h: Likewise.
4358 2008-07-23 Rodrigo Kumpera <rkumpera@novell.com>
4360 * verify.c (do_cast): Do boxing for generic arguments as well.
4362 * class.c (is_nesting_type): Drop generic instantiations before
4363 checking for nesting.
4365 * class.c (can_access_instantiation): Allow access to generic
4368 2008-07-23 Rodrigo Kumpera <rkumpera@novell.com>
4370 * verify.c (verify_class_for_overlapping_reference_fields):
4371 On some cases, the field size might be zero, guard against that.
4372 Fix the explicit layout check to work as expected.
4374 2008-07-23 Zoltan Varga <vargaz@gmail.com>
4376 * threads.c (ves_icall_System_Threading_Thread_Abort): Avoid calling
4377 mono_thread_resume () during shutdown, since the thread we want to abort
4380 2008-07-22 Zoltan Varga <vargaz@gmail.com>
4382 * mono-debug-debugger.c (mono_debugger_check_breakpoints): Fix a
4385 * debug-mono-symfile.c: Fix a warning.
4387 * mono-perfcounters.c (get_cpu_times): Fix a warning.
4389 * object.c (mono_class_vtable): Check if exception_type is set, and return
4390 NULL as defined by the function comments.
4392 2008-07-22 Mark Probst <mark.probst@gmail.com>
4394 * mempool.c: Use malloc for every single mempool allocation if the
4395 configure option is set. This makes it easier to track mempool
4396 allocations with tools like Valgrind.
4398 2008-07-22 Jb Evain <jbevain@novell.com>
4400 * reflection.c (create_dynamic_mono_image): emit the same
4401 metadata version that SL2 does when creating a SL2 image.
4403 2008-07-21 Rodrigo Kumpera <rkumpera@novell.com>
4406 * icall.c: New icall System.Enum:get_hashcode. This function
4407 avoids the overhead of boxing the enum to the underlying type.
4409 2008-07-21 Mark Probst <mark.probst@gmail.com>
4411 * reflection.c (mono_method_get_object): Don't let static RGCTX
4412 invoke wrappers get into MonoReflectionMethods.
4414 2008-07-17 Rodrigo Kumpera <rkumpera@novell.com>
4416 * object-internals.h:
4417 * object.c: New mono_runtime_class_init_full function
4418 that makes throwing the exception optinal.
4420 * class-internals.h: New exception type MONO_EXCEPTION_OBJECT_SUPPLIED
4421 for the case where the exception object is supplied.
4423 2008-07-16 Kornél Pál <kornelpal@gmail.com>
4425 * coree.h: Define __ImageBase as _image_base__ on cygwin that fixes build with
4428 Contributed under MIT/X11 license.
4430 2008-07-16 Rodrigo Kumpera <rkumpera@novell.com>
4432 * string-icalls.c (ves_icall_System_String_InternalSplit):
4433 Optimize array allocation by caching the MonoClass of the
4436 * icall.c (ves_icall_Type_GetMethodsByName): Same.
4438 * reflection.c (mono_param_get_objects): Same.
4440 2008-07-16 Rodrigo Kumpera <rkumpera@novell.com>
4443 * icall.c: New ves_icall_MonoGenericClass_InflateType icall.
4444 It inflates the given type using the class context.
4446 2008-07-15 Rodrigo Kumpera <rkumpera@novell.com>
4448 * object.c (mono_class_try_get_vtable): New function. Tries to fetch
4449 the vtable if it already exists.
4451 * object-internals.h: Add mono_class_try_get_vtable as part of the
4454 * reflection.c (mono_type_get_object): Use the MonoObject from the
4455 vtable when possible. Reduces locking contention on reflection heavy
4458 2008-07-15 Zoltan Varga <vargaz@gmail.com>
4460 * decimal.c (my_g_bit_nth_msf): Implement this directly without calling
4461 g_bit_nth_msf () since that macro is not implemented in eglib.
4463 2008-07-13 Zoltan Varga <vargaz@gmail.com>
4465 * class.c (mono_class_generic_sharing_enabled): Always disable generic sharing
4466 on platforms which do not support it.
4468 2008-07-12 Zoltan Varga <vargaz@gmail.com>
4470 * marshal.c (mono_signature_to_name): Encode sig->hasthis as well.
4472 2008-07-11 Martin Baulig <martin@ximian.com>
4474 * mono-debug-debugger.h
4475 (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_INTERRUPTION_REQUEST'.
4477 * mono-debug-debugger.c
4478 (_mono_debugger_interruption_request): New global volatile variable.
4479 (mono_debugger_check_interruption): New public function.
4482 (mono_thread_current_check_pending_interrupt): Call
4483 mono_debugger_check_interruption().
4484 (mono_thread_interruption_checkpoint_request): Likewise.
4486 2008-07-11 Rodrigo Kumpera <rkumpera@novell.com>
4488 * verify.c: Add more type checks for loaded types. Verify the result
4489 handle from ldtoken.
4491 2008-07-11 Rodrigo Kumpera <rkumpera@novell.com>
4493 * loader.c (field_from_memberref): Don't crash if the field
4496 2008-07-11 Rodrigo Kumpera <rkumpera@novell.com>
4498 * verify.c: Verify if type and method instantiations
4499 don't have invalid VAR or MVAR arguments.
4501 2008-07-11 Rodrigo Kumpera <rkumpera@novell.com>
4503 * verify.c: Fix double free of function pointer list.
4505 2008-07-11 Rodrigo Kumpera <rkumpera@novell.com>
4507 * object.c (mono_string_to_utf8): Comment the new code as it
4510 2008-07-08 Rodrigo Kumpera <rkumpera@novell.com>
4512 * object.c (mono_string_to_utf8): Avoid allocating a temp array.
4514 2008-07-07 Bill Holmes <billholmes54@gmail.com>
4516 * threads.c : Thread.Interrupt changes to ensure that ThreadInterruptedException
4517 is not throw too many times.
4519 Code is contributed under MIT/X11 license.
4521 2008-07-07 Zoltan Varga <vargaz@gmail.com>
4523 * mono-debug.c (mono_debug_find_method): Allow this to be called even when
4524 debugging is turned off.
4526 2008-07-06 Zoltan Varga <vargaz@gmail.com>
4528 * generic-sharing.c (mono_method_lookup_rgctx): Fix a warning.
4530 2008-07-04 Mark Probst <mark.probst@gmail.com>
4532 * class-internals.h, class.c: Added new generic sharing option:
4533 Share only stuff in System.Collections.Generic, which is now the
4536 2008-07-04 Mark Probst <mark.probst@gmail.com>
4538 * generic-sharing.c, class-internals.h: New function for getting a
4539 generic method in a generic class given the corresponding method
4540 for a different instantiation of the class. Partly refactored
4541 from mini-trampolines.c.
4543 * class.c: Make sure generic methods have a class_inst if they are
4544 part of a generic class.
4546 * metadata.c (mono_type_stack_size_internal): Handle type
4549 2008-07-04 Mark Probst <mark.probst@gmail.com>
4551 * domain-internals.h: New field (has_this) in MonoGenericJitInfo.
4552 Signifies whether information on the this/vtable/mrgctx variable
4555 2008-07-04 Mark Probst <mark.probst@gmail.com>
4557 * object.c, object-internals.h, icall.c: New function
4558 mono_delegate_ctor_with_method(), which does the same as
4559 mono_delegate_ctor(), but takes an explicit method argument
4560 instead of taking the method from the jit info.
4562 * marshal.c: When creating a delegate with an inflated method take
4563 the "this" argument as the target class for the castclass.
4565 2008-07-03 Mark Probst <mark.probst@gmail.com>
4567 * domain.c (mono_jit_info_table_find): Fixed a bug that caused
4568 mono_jit_info_table_find() to perform very badly in some cases.
4570 2008-07-02 Zoltan Varga <vargaz@gmail.com>
4572 * icall.c (type_from_typename): Handle 'string'.
4574 * marshal.c (mono_marshal_get_runtime_invoke): Don't insert runtime invoke
4575 wrappers into the wrapper_hash, since the key is not a MonoMethod.
4577 2008-07-01 Zoltan Varga <vargaz@gmail.com>
4579 * icall.c (mono_get_jit_icall_info): New function to return the jit icall hash table.
4581 * *-gc.c (mono_gc_get_managed_allocator_types): New function to return the
4582 number of available managed allocator types.
4584 * marshal.c (mono_marshal_init): Register Thread:ResetAbort as an icall ().
4585 (mono_marshal_get_runtime_invoke): Call ResetAbort as an icall.
4587 2008-06-30 Zoltan Varga <vargaz@gmail.com>
4589 * domain-internals.h (struct _MonoDomain): Add 'jit_code_hash_lock' field,
4590 which is a low level lock protecting just the 'jit_code_hash' hash table.
4592 * domain.c: Initialize+cleanup jit_code_hash_lock.
4594 2008-06-30 Kornél Pál <kornelpal@gmail.com>
4596 * coree.c (mono_load_coree): Set coree_module_handle global variable only
4597 after initialization.
4599 * coree.h: Make MonoFixupExe internal.
4601 Contributed under MIT/X11 license.
4603 2008-06-30 Kornél Pál <kornelpal@gmail.com>
4605 * coree.c (_CorValidateImage): Retain IMAGE_DIRECTORY_ENTRY_SECURITY
4606 because that is platform independent. Check NumberOfRvaAndSizes in PE32
4608 (MonoLoadImage): New wrapper function around LoadLibrary to ensure that the
4609 image being loaded is a CLI image and _CorValidateImage gets called.
4611 * coree.h: Add MonoLoadImage.
4613 * image.c (mono_image_open_full): Load CLI images using MonoLoadImage
4614 instead of LoadLibrary.
4616 Contributed under MIT/X11 license.
4618 2008-06-29 Rodrigo Kumpera <rkumpera@novell.com>
4620 * icall.c (ves_icall_System_ValueType_Equals): Avoid allocating objects
4621 for any primitive type.
4623 2008-06-29 Zoltan Varga <vargaz@gmail.com>
4625 * object.c (mono_array_new_specific): Optimize this and the other allocation
4628 * object.c (mono_class_create_runtime_vtable): Use typed allocation in other
4629 domains too if mono_dont_free_domains is set.
4631 * domain-internals.h (mono_dont_free_domains): New internal option controlling
4632 whenever to free appdomain data after it has been unloaded.
4634 * domain.c (mono_domain_free): Don't free appdomain data if the option is set.
4636 2008-06-28 Zoltan Varga <vargaz@gmail.com>
4638 * icall.c (ves_icall_System_Enum_get_underlying_type): New icall.
4639 (mono_method_get_equivalent_method): Fix a warning.
4641 * object.c (mono_message_init): Avoid looking up array types for each call.
4643 2008-06-27 Zoltan Varga <vargaz@gmail.com>
4645 * object.c (mono_message_invoke): Avoid looking up the object[] type for each
4648 * icall.c (ves_icall_System_ValueType_Equals): Optimize the comparison of enums
4651 * class.c (mono_class_get_fields): Avoid calling setup_fields_locking () for
4654 * icall.c (ves_icall_System_ValueType_Equals): Avoid traversing all the static
4657 2008-06-26 Rodrigo Kumpera <rkumpera@novell.com>
4659 * object.c (mono_value_box): Fix boxing of nullables.
4661 2008-06-26 Kornél Pál <kornelpal@gmail.com>
4663 * assembly.c (mono_set_rootdir): Use __ImageBase instead of
4664 mono_module_handle that is defined by the linker; no initialization required.
4665 * coree.h: Remove mono_module_handle, add __ImageBase, update
4666 mono_image_open_from_module_handle.
4667 * coree.c (_CorValidateImage): Convert platform independent PE32 images to
4668 PE32+ on 64-bit Windows that makes the OS able to load CIL images as modules.
4669 (MonoFixupCorEE): Export Address Table RVAs are 32-bit unsigned integers so
4670 memory has to be allocated for trampolines (x64) or procedure labels (IA64) up
4671 to 4 GB away from image base address. IA64 version is not tested but was very
4672 easy to implement and should work if we ever need it.
4673 * domain.c (mono_init_internal): Avoid system error message boxes.
4674 * image.c (mono_image_open_from_module_handle): Replace ref_count argument
4675 with has_entry_point. Handle do_mono_image_load fauilre correctly.
4676 (mono_image_open_full, mono_image_close): Use has_entry_point instead of
4677 coff_attributes that is a more reliable way to detect if _CorDllMain was called.
4678 * metadata-internals.h: Add has_entry_point to _MonoImage on Windows.
4680 Contributed under MIT/X11 license.
4682 2008-06-25 Rodrigo Kumpera <rkumpera@novell.com>
4684 * class.c, class-internals.h: Export mono_class_get_generic_type_definition
4685 as part of the private mono API.
4687 * loader.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType):
4688 Do proper argument checking for methods that belong to generic classes.
4689 Do proper type resolution for GMFH/2.
4692 2008-06-25 Rodrigo Kumpera <rkumpera@novell.com>
4694 * verify.c (do_switch): Fix a memory corruption bug with
4695 the jump index is out of bound.
4697 2008-06-25 Rodrigo Kumpera <rkumpera@novell.com>
4699 * verify.c: Disable debug code.
4701 2008-06-25 Rodrigo Kumpera <rkumpera@novell.com>
4703 * reflection.c (mono_image_get_methodbuilder_token): Use
4704 mono_image_get_methodspec_token_for_generic_method_definition
4705 instead of mono_image_get_memberref_token. We cache more memberef
4708 2008-06-24 Rodrigo Kumpera <rkumpera@novell.com>
4710 * verify.c: Inflate exception clause types.
4713 2008-06-24 Rodrigo Kumpera <rkumpera@novell.com>
4715 * reflection.c (mono_image_get_methodbuilder_token): Don't leak
4718 * reflection.c (mono_image_get_ctorbuilder_token): Same.
4720 * reflection.c (mono_image_create_method_token): Same.
4722 2008-06-24 Rodrigo Kumpera <rkumpera@novell.com>
4724 * reflection.c: Added mono_image_get_methodref_token_for_methodbuilder.
4725 It does the same as mono_image_get_methodref_token but works on
4728 * reflection.c: Use mono_image_get_methodspec_token_for_generic_method_definition
4729 and always generate a methodspec. This follows the old behavior and fixes
4730 the regressions in System.Core.
4732 2008-06-24 Zoltan Varga <vargaz@gmail.com>
4734 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Collect exceptions for classes where
4735 don't event mono_class_get () succeeds. Fixes #402182.
4737 2008-06-20 Rodrigo Kumpera <rkumpera@novell.com>
4739 * metadata-internals.h: Added MonoDynamicImage::methodspec
4740 hashtable to store methodspec tokens created for MethodBuilders.
4742 * reflection.c (mono_image_get_methodbuilder_token): Encode generic
4743 MethodBuilders as open instantiations if a methodspec was requested.
4745 * reflection.c (fixup_method): Skip MethodBuilder with methodspec tokens.
4747 * reflection.c (create_dynamic_mono_image): Create the methodspec hashtable.
4749 * reflection.c (mono_dynamic_image_free): Release the methodspec hashtable.
4753 2008-06-20 Rodrigo Kumpera <rkumpera@novell.com>
4755 * loader.c (method_from_methodspec): Avoid crashing if the
4756 method lookup fails.
4758 2008-06-20 Dick Porter <dick@ximian.com>
4760 * socket-io.c (get_socket_assembly): Cope with Moonlight network
4761 classes being in a different assembly. Fixes bug 399184.
4763 2008-06-20 Zoltan Varga <vargaz@gmail.com>
4765 * loader.c (mono_loader_init): Make this callable multiple times.
4766 (mono_dllmap_insert): Call mono_loader_init () so this works even before
4767 the runtime is initialized. Fixes #401755.
4769 2008-06-19 Dick Porter <dick@ximian.com>
4771 * socket-io.c (convert_socketflags): Ignore SocketFlags.Partial.
4774 2008-06-19 Dick Porter <dick@ximian.com>
4777 * icall-def.h: Implement Socket generic Send() and Receive()
4778 methods. Fixes bug 395168.
4780 2008-06-19 Kornél Pál <kornelpal@gmail.com>
4782 * icall-def.h, icall.c: Add ves_icall_System_Reflection_Module_GetHINSTANCE.
4784 Contributed under MIT/X11 license.
4786 2008-06-18 Martin Baulig <martin@ximian.com>
4788 * mono-debug.h (MONO_DEBUGGER_VERSION): Split into
4789 `MONO_DEBUGGER_MAJOR_VERSION' and `MONO_DEBUGGER_MINOR_VERSION';
4790 set to 80.0. The debugger <-> runtime interface is now frozen as
4794 (mono_debug_debugger_version): Bump to 4.
4796 2008-06-18 Martin Baulig <martin@ximian.com>
4798 * debug-mono-symfile.c
4799 (load_symfile): Don't check the minor version.
4801 * debug-mono-symfile.h: Bump the version number to 50.0.
4803 2008-06-18 Martin Baulig <martin@ximian.com>
4805 * debug-mono-symfile.c
4806 (load_symfile): Treat `MONO_SYMBOL_FILE_MINOR_VERSION' as a
4807 minimum required version.
4809 2008-06-17 Rodrigo Kumpera <rkumpera@novell.com>
4811 * reflection.c (mono_custom_attrs_from_property): Fix support for
4812 retriveving cattrs of dynamic inflated generic types.
4814 * reflection.c (mono_custom_attrs_from_event): Same.
4816 * reflection.c (mono_custom_attrs_from_field): Same;
4818 * reflection.c (typebuilder_setup_events): Same cattrs of events.
4820 * loader.c (-mono_metadata_get_corresponding_field_from_generic_type_definition):
4821 Moved to metadata.c.
4823 * metadata.c: New functions to retrive the equivalent field, event
4824 of property from the generic type definition.
4826 * metadata-internals.h: Added new functions from metadata.c.
4828 2008-06-17 Rodrigo Kumpera <rkumpera@novell.com>
4830 * reflection.c (mono_custom_attrs_from_builders): Mark MonoCustomAttrInfo
4831 to cached in a mempool is used.
4833 * metadata.c (free_generic_class): In some situations field generic_info type
4834 is not properly dup'ed and leads to double free'ing.
4838 2008-06-17 Mark Probst <mark.probst@gmail.com>
4840 * marshal.c (mono_marshal_get_static_rgctx_invoke): Also handle
4841 this arguments (will be needed later for generic methods).
4844 2008-06-17 Mark Probst <mark.probst@gmail.com>
4846 * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
4847 Create a static RGCTX invoke wrapper for methods which require it.
4849 2008-06-17 Mark Probst <mark.probst@gmail.com>
4851 * object.c, class-internals.h: New function for checking whether
4852 an individual field is special static.
4854 2008-06-15 Zoltan Varga <vargaz@gmail.com>
4856 * metadata.c (mono_metadata_get_generic_param_row): Use bsearch instead of
4857 linear search since the table is sorted.
4859 * gc.c (mono_gc_cleanup): Abort the finalizer thread more gracefully.
4862 2008-06-14 Zoltan Varga <vargaz@gmail.com>
4864 * appdomain.c (unload_thread_main): Applied patch from Tim Howard
4865 (timh@ict.om.org). Remove the timeouts when waiting for appdomains to unload.
4867 * gc.c (mono_domain_finalize): Allow an infinite timeout.
4869 * threads.c (mono_threads_abort_appdomain_threads): Ditto.
4871 * threads.c (mono_thread_request_interruption): Get rid of locking, use
4872 InterlockedCompareExchange to query and modify
4873 thread->interruption_requested.
4875 * object-internals.h (struct _MonoThread): Change interruption_requested
4876 to a gint32 so it can be modified by atomic operations. Add
4877 'critical_region_level' from the managed side, change small_id to a guint32,
4878 add new set of 'unused' fields.
4880 * appdomain.c: Bump corlib version.
4882 2008-06-13 Zoltan Varga <vargaz@gmail.com>
4884 * class.c (mono_class_from_name): Search modules as well. Fixes
4887 2008-06-13 Mark Probst <mark.probst@gmail.com>
4889 * generic-sharing.c: Code for maintaining the MRGCTX and MRGCTX
4890 templates. Templates are generalized with an additional type_argc
4891 argument. RGCTX templates have type_argc==0, MRGCTX templates
4894 * domain-internals.h, domain.c: New hash table for looking up
4897 * metadata.c, metadata-internals.h: Rename hash and equal
4898 functions for MonoGenericInst's and make them public.
4900 * class-internals.h: New data structures for the MRGCTX. Macros
4901 for distinguishing slots in the RGCTX and the MRGCTX.
4903 2008-06-13 Mark Probst <mark.probst@gmail.com>
4905 * object.c (mono_method_get_imt_slot): Put the same methods of
4906 different instantiations of the same generic interface in the same
4907 IMT slots, to make generic sharing simpler.
4909 2008-06-12 Rodrigo Kumpera <rkumpera@novell.com>
4911 * metadata-internals.h: Added mono_metadata_field_info_with_mempool.
4913 * metadata.c (mono_metadata_field_info_with_mempool): Added.
4914 This function works just like mono_metadata_field_info, but
4915 accept a mempool as argument to be used allocating memory.
4917 * marshal.c (mono_marshal_load_type_info): Use new function
4918 to load marshal data into image mempool.
4920 2008-06-12 Rodrigo Kumpera <rkumpera@novell.com>
4922 * class.c (mono_class_inflate_generic_type_with_mempool):
4923 This function allows to inflate a generic type using
4926 * class.c (inflate_generic_type): Take a mempool as argument
4927 and use it to do type dup'ing.
4929 * class.c (mono_class_setup_fields): Field type for generic
4930 generic classes are allocated from the image mempool.
4932 * metadata.c (free_generic_class): Inflated field type is
4933 now allocated in the image mempool.
4935 2008-06-12 Rodrigo Kumpera <rkumpera@novell.com>
4937 * threads.c (thread_cleanup): Free MonoThread::name.
4939 2008-06-12 Marek Habersack <mhabersack@novell.com>
4941 * appdomain.c (ensure_directory_exists): avoid unnecessary
4942 mkdir(2) calls when the shadow directory already exists.
4943 (mono_make_shadow_copy): copy also satellite assemblies from the
4944 private bin directories.
4946 2008-06-11 Zoltan Varga <vargaz@gmail.com>
4948 * threads.c (mono_thread_get_stack_bounds): Align the stack in all cases.
4950 * threads.c (mono_thread_get_stack_bounds): Align the stack address to
4951 a page boundary. Fixes #396219.
4953 2008-06-10 Rodrigo Kumpera <rkumpera@novell.com>
4955 * marshal.c (mono_marshal_load_type_info): Add a memory barrier
4956 due to double-checked locking.
4958 2008-06-10 Rodrigo Kumpera <rkumpera@novell.com>
4960 * assembly.c (build_assembly_name): Release memory on failure.
4962 * assembly.c (mono_assembly_name_parse_full): Release memory on failure.
4964 2008-06-10 Rodrigo Kumpera <rkumpera@novell.com>
4966 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Release
4969 2008-06-10 Rodrigo Kumpera <rkumpera@novell.com>
4971 * icall.c (ves_icall_System_Reflection_AssemblyName_ParseName): Release
4974 2008-06-10 Rodrigo Kumpera <rkumpera@novell.com>
4976 * loader.c (field_from_memberref): Check if field signature type is equal
4977 to the non-inflated type of the field. Fixes #398980.
4979 2008-06-11 Zoltan Varga <vargaz@gmail.com>
4981 * assembly.c (mono_assembly_load_from_full): Call
4982 mono_assembly_load_friends () outside the assemblies lock, since it can
4983 acquire the loader lock. Fixes #323696.
4985 * reflection.c (resolve_object): Inflate the inst with the context for
4986 FieldOnTypeBuilderInst. Fixes #399010.
4988 2008-06-10 Rodrigo Kumpera <rkumpera@novell.com>
4990 * reflection.c (mono_image_get_field_on_inst_token): Don't
4991 inflate the field to encode it's signature. If it's a
4992 VAR or MVAR it should stay that way in the signature.
4995 2008-06-10 Rodrigo Kumpera <rkumpera@novell.com>
4997 * reflection.c (resolve_object): Release memory of inflated types.
4999 2008-06-10 Rodrigo Kumpera <rkumpera@novell.com>
5001 * loader.c (mono_method_get_signature_full): Remove assert about
5002 loading a methodspec to a generic method. We have such methods, such as
5003 System.Threading.Interlocked::CompareExchange<T>.
5004 This assert was removed since it crashes the verifier when it checks
5005 methods calling CompareExchange<T>.
5007 2008-06-10 Marek Safar <marek.safar@gmail.com>
5009 * icall.c (ves_icall_MonoMethod_GetGenericArguments): Creates an instance
5010 of Type array and not MonoType.
5012 2008-06-10 Marek Habersack <mhabersack@novell.com>
5014 * profiler.c: fix a segfault on shutdown. Patch from Paolo Molaro
5017 2008-06-10 Martin Baulig <martin@ximian.com>
5019 * debug-mono-symfile.h
5020 (MONO_SYMBOL_FILE_MINOR_VERSION): Bump to 6. There were no
5021 changes to the file format, but we were generating incorrect
5022 source file indices in the line number table due to a bug, which
5023 made backtraces report an incorrect source file.
5025 2008-06-10 Rodrigo Kumpera <rkumpera@novell.com>
5027 * mono-debug.c: Moved mono_debug_free_method_jit_info from
5028 mini/debug-mini.c to here.
5030 * mono-debug.c (il_offset_from_address): Free memory from find_method.
5032 * mono-debug.h: Export mono_debug_free_method_jit_info, users should
5033 use it to release structs returned by mono_debug_find_method.
5035 2008-06-10 Zoltan Varga <vargaz@gmail.com>
5037 * class.c (mono_class_setup_vtable): Call setup_methods even for interfaces
5038 since it needs to set method->slot for all interface methods.
5040 2008-06-09 Rodrigo Kumpera <rkumpera@novell.com>
5042 * class-internals.h: Forgot to add.
5044 2008-06-09 Rodrigo Kumpera <rkumpera@novell.com>
5046 * class-internals.h: Added MONO_PROP_DYNAMIC_CATTR.
5048 * reflection.c (lookup_custom_attr): Added a MonoImage argument.
5049 Lookup the custom attributes from property_hash.
5051 * reflection.c (mono_save_custom_attrs): Save the custom attributes
5052 in property_hash. Allocate all data using the image mempool.
5054 * reflection.c: Removed dynamic_custom_attrs. Changed all checks
5055 for dynamic_custom_attrs to checks if the image is dynamic.
5057 2008-06-09 Zoltan Varga <vargaz@gmail.com>
5059 * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Free the
5062 * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid calling
5063 runtime functions while holding the domain assemblies lock.
5065 2008-06-09 Rodrigo Kumpera <rkumpera@novell.com>
5067 * verify.c: Reapplied the last bit of the reverted changes.
5069 2008-06-09 Rodrigo Kumpera <rkumpera@novell.com>
5071 * verify.c: Reapplied more of the reverted changes.
5073 2008-06-09 Martin Baulig <martin@ximian.com>
5075 * debug-mono-symfile.c (load_symfile): Check the major version
5076 first; if it's wrong, don't print the minor version in the error message.
5078 2008-06-09 Zoltan Varga <vargaz@gmail.com>
5080 * appdomain.c (set_domain_search_path): Make this use the domain assemblies
5081 lock instead of the domain lock to avoid deadlocks, since the thread might
5082 already hold the loader lock.
5084 * threads.c (start_wrapper): Call mono_monitor_init_tls ().
5085 (mono_thread_attach): Ditto.
5087 * monitor.c: Use a TLS variable for holding the current thread id instead
5088 of calling pthread_self ().
5089 (mono_monitor_init_tls): New internal function to initialize the TLS
5091 (mono_monitor_try_enter_internal): Put the owner == id check after the
5094 * object-internals.h (_G_BOOLEAN_EXPR): Redefine this glib macro to avoid
5095 missed optimizations when using gcc-4.3.
5097 2008-06-08 Rodrigo Kumpera <rkumpera@novell.com>
5099 * reflection.c (mono_dynamic_image_free): Free the memory
5100 used by MonoGenericParam in MonoDynamicImage::gen_param.
5102 * reflection.c (mono_reflection_setup_generic_class): Allocate
5103 container from mempool.
5105 * reflection.c (mono_reflection_initialize_generic_parameter): Allocate
5106 container from mempool.
5108 2008-06-07 Zoltan Varga <vargaz@gmail.com>
5110 * threads.c (mono_set_pending_exception): New internal function to set the
5111 pending exception of the current thread.
5112 (mono_thread_get_and_clear_pending_exception): Check for
5113 thread->pending_exception as well.
5115 * object-internals.h (struct _MonoThread): Add 'pending_exception' field.
5117 * boehm-gc.c (mono_gc_base_init): Set GC_no_dls before calling GC_init () since
5118 it can trigger a collection.
5120 2008-06-06 Martin Baulig <martin@ximian.com>
5122 Merged the `debugger-kahalo' branch.
5125 (MONO_DEBUGGER_VERSION): Bumped to 72.
5127 * debug-mono-symfile.h
5128 (MonoSymbolFileMethodIndexEntry): Removed.
5129 (MonoSymbolFileMethodEntry): New public typedef.
5130 (MonoSymbolFileOffsetTable): Added `_is_aspx_source'.
5131 (MonoSymbolFileSourceEntry): Remove everything except `index' and
5133 (MonoSymbolFileMethodEntry): Removed.
5134 (MonoSymbolFileLexicalBlockEntry): Removed.
5135 (MonoSymbolFileLineNumberEntry): Removed.
5136 (MonoDebugLexicalBlockEntry): Removed.
5137 (MonoDebugMethodInfo): Replaced `entry' by `guint32 entry_offset';
5138 removed `num_il_offsets' and `il_offsets'.
5139 (MonoSymbolFile): Replace `version' with `major_version' and
5141 (MONO_SYMBOL_FILE_VERSION): Replace with
5142 `MONO_SYMBOL_FILE_MAJOR_VERSION' and
5143 `MONO_SYMBOL_FILE_MINOR_VERSION'.
5145 * debug-mono-symfile.c
5146 (mono_debug_symfile_lookup_location): Add support for the new line
5147 number table format.
5149 2008-06-07 Rodrigo Kumpera <rkumpera@novell.com>
5151 * metadata.c (free_generic_class): Release the inflated
5152 MonoClass of dynamic generic classes if it's not a generic
5155 2008-06-07 Rodrigo Kumpera <rkumpera@novell.com>
5157 * verify.c: Reapplied more of the reverted changes.
5159 2008-06-07 Rodrigo Kumpera <rkumpera@novell.com>
5161 * reflection.c (lookup_custom_attr): Clean the cached flag or
5162 nobody will free it. Fixes a memleak in MonoCustomAttrs::IsDefinedInternal
5165 2008-06-07 Rodrigo Kumpera <rkumpera@novell.com>
5167 * verify.c: Reapplied a small part of the reverted changes.
5169 2008-06-07 Zoltan Varga <vargaz@gmail.com>
5171 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5173 * monitor.c (mono_monitor_try_enter_internal): Add NULL check which was
5174 previously in managed code.
5175 (mono_monitor_exit): Ditto.
5176 (ves_icall_System_Threading_Monitor_Monitor_exit): Removed, not needed anymore.
5178 * icall-def.h: Rename the Enter/Exit icalls to simply Enter/Exit to match
5179 the managed definition.
5181 2008-06-06 Rodrigo Kumpera <rkumpera@novell.com>
5183 * verify.c: Revert changes to see if it helps with weird buildbot crashes.
5185 2008-06-06 Zoltan Varga <vargaz@gmail.com>
5187 * monitor.c: Redefine GetCurrentThreadId () with a macro on !win32.
5189 * monitor.c: Add some micro optimizations.
5191 * icall.c (type_from_typename): Handle 'bool'.
5193 2008-06-06 Rodrigo Kumpera <rkumpera@novell.com>
5195 * verify.c: Implement constructor verification per P III 1.8.1.4.
5198 2008-06-06 Zoltan Varga <vargaz@gmail.com>
5200 * assembly.c (mono_assembly_loaded_full): Avoid calling the search hooks while
5201 holding the assemblies lock here too.
5203 2008-06-05 Rodrigo Kumpera <rkumpera@novell.com>
5205 * verify.c: Kill stack_top function.
5207 2008-06-05 Rodrigo Kumpera <rkumpera@novell.com>
5209 * verify.c: Kill stack_get function.
5211 2008-06-05 Rodrigo Kumpera <rkumpera@novell.com>
5213 * verify.c (mono_method_verify): Last change broke the build. Fixed.
5215 2008-06-05 Rodrigo Kumpera <rkumpera@novell.com>
5217 * verify.c (verify_type_compatibility_full): Make SZARRAY checks
5220 * verify.c (mono_method_verify): Inflate params and locals to avoid
5221 mismatch when checking for compatibility.
5223 2008-06-05 Jonathan Chambers <joncham@gmail.com>
5225 * metadata.c (mono_string_from_bstr): Fix BSTR marshalling.
5226 Length prefix should be size in bytes. Fix bug #339530.
5228 * metadata.c (mono_string_to_bstr): Fix BSTR marshalling.
5229 Length prefix should be size in bytes. Fix bug #339530.
5231 Code is contributed under MIT/X11 license.
5233 2008-06-05 Bill Holmes <billholmes54@gmail.com>
5235 * decimal.c: Adding MSVC implementation to my_g_bit_nth_msf.
5237 Contributed under MIT/X11 license.
5239 2008-06-05 Martin Baulig <martin@ximian.com>
5241 * mono-debug-debugger.c
5242 (mono_debugger_check_breakpoints): Reflect latest runtime changes.
5244 2008-06-05 Zoltan Varga <vargaz@gmail.com>
5246 * assembly.c (mono_assembly_load_from_full): Avoid calling the search hooks
5247 while holding the assemblies lock to prevent deadlocks. Handle the case
5248 where the search hook returns NULL but the assembly was still loaded.
5251 * appdomain.c (set_domain_search_path): Acquire the domain lock since we
5252 modify domain state.
5254 2008-06-05 Andreas Färber <andreas.faerber@web.de>
5256 * boehm-gc.c: Add DTrace probes gc-{begin,end}.
5257 * Makefile.am (pedump_LDADD): Post-process object files and
5258 add dtrace-generated object file, if necessary.
5260 Code is contributed under MIT/X11 license.
5262 2008-06-04 Rodrigo Kumpera <rkumpera@novell.com>
5264 * reflection.c (mono_dynamic_image_free): Free MonoDynamicImage::public_key.
5266 2008-06-04 Rodrigo Kumpera <rkumpera@novell.com>
5268 * class.c (mono_type_get_full): Add a work-around for generic type definitions.
5270 2008-06-04 Mark Probst <mark.probst@gmail.com>
5272 * threads.c: Try to free everything from the delayed free table
5273 when shutting down threads, and set the variable to NULL after the
5274 table is freed so that calling
5275 mono_thread_hazardous_try_free_all() when shutting down the root
5276 domain doesn't crash.
5278 2008-06-04 Rodrigo Kumpera <rkumpera@novell.com>
5280 * class.c (mono_type_retrieve_from_typespec): Add an argument to inform
5281 the caller if resulting type was inflated.
5283 * class.c (mono_class_create_from_typespec): Free the MonoType if it
5286 * class.c (mono_type_get_full): Free the MonoType if it was inflated.
5289 2008-06-04 Zoltan Varga <vargaz@gmail.com>
5291 * decimal.c (rescale128): Rework the code a bit so it no longer crashes the
5292 class library tests.
5294 * icall.c (ves_icall_InternalInvoke): Applied patch from Andy Hume
5295 (andyhume32@yahoo.co.uk). Add more useful exception messages. Fixes
5298 2008-06-04 Mark Probst <mark.probst@gmail.com>
5300 * domain.c, domain-internals.h: The JIT infos are now freed by the
5301 JIT info table code. They are freed immediately if there only a
5302 single JIT info table in circulation. If there is more, the free
5303 is delayed via a queue.
5305 * threads.c, threads-types.h: New hazard pointer function for
5306 freeing all freeable delayed items in one sitting.
5308 2008-06-03 Rodrigo Kumpera <rkumpera@novell.com>
5310 * reflection.c (typebuilder_setup_fields): Use mempool for allocations.
5312 * reflection.c (typebuilder_setup_properties): Same.
5314 * reflection.c (typebuilder_setup_events): Same.
5316 2008-06-03 Rodrigo Kumpera <rkumpera@novell.com>
5318 * reflection.c (mono_custom_attrs_from_builders): Receive a MonoMemPool
5319 and use it for allocating memory.
5321 * reflection.c (mono_marshal_spec_from_builder): Same.
5323 * reflection.c: Change code to use new signatures.
5325 * metadata.c (mono_metadata_type_dup): Add a FIXME note.
5327 2008-06-03 Zoltan Varga <vargaz@gmail.com>
5329 * decimal.c (rescale128): Put back one line which was accidently commented
5332 * decimal.c (rescale128): Disable the code added by the last patch, as it seems
5335 2008-06-03 Rodrigo Kumpera <rkumpera@novell.com>
5337 * reflection.c (mono_reflection_generic_class_initialize): Name must
5338 be always malloc'ed so we can free it later on. Do this for field, property
5341 * metadata.c (free_generic_class): Free field, property and event names.
5343 2008-06-03 Rodrigo Kumpera <rkumpera@novell.com>
5345 * reflection.c (fieldbuilder_to_mono_class_field): Use mono_metadata_type_dup
5346 instead of g_memdup.
5348 * reflection.c (typebuilder_setup_fields): Same.
5350 2008-06-03 Zoltan Varga <vargaz@gmail.com>
5352 * decimal.c (rescale128): Optimize this function a bit more.
5354 2008-06-03 Rodrigo Kumpera <rkumpera@novell.com>
5356 * metadata.c (free_generic_class): Release some memory from
5357 SRE generic classes.
5359 2008-06-03 Rodrigo Kumpera <rkumpera@novell.com>
5361 * reflection.c (mono_image_get_generic_field_token): No reference
5362 to name is kept, free it.
5364 * reflection.c (mono_reflection_generic_class_initialize): Free
5365 more memory of the inflated field.
5367 2008-06-03 Zoltan Varga <vargaz@gmail.com>
5369 * decimal.c (mono_decimalDiv): Moved equality checks here from managed
5372 2008-06-02 Rodrigo Kumpera <rkumpera@novell.com>
5374 * reflection.c (mono_dynamic_image_free): Release memory used by
5375 MonoDynamicImage::array_methods elements.
5377 * reflection.c (assembly_add_win32_resources): Release memory after
5380 2008-06-02 Zoltan Varga <vargaz@gmail.com>
5382 * decimal.c (log2_32): Use an optimized version for this function too.
5384 * decimal.c (log2_64): Fix this on 32 bit machines.
5386 2008-06-02 Rodrigo Kumpera <rkumpera@novell.com>
5388 * class.c (mono_dup_array_type): Implement allocation using a mempool.
5390 * class.c (mono_metadata_signature_deep_dup): Same.
5392 * metadata.c (mono_metadata_signature_dup_full): Added, allow dup'ng with
5395 * metadata.c (mono_metadata_signature_dup): Delegate to the _full version.
5397 * metadata.c (mono_metadata_type_dup): Remove asserts and FIXME.
5399 * metadata-internals.h: Added mono_metadata_signature_dup_full.
5401 * class-internals.h: Update signatures to take a MonoMemPool.
5403 2008-06-02 Dick Porter <dick@ximian.com>
5405 * icall.c (ves_icall_System_ComponentModel_Win32Exception_W32ErrorMessage):
5407 System.ComponentModel.Win32Exception.W32ErrorMessage, using the
5408 FormatMessage API to get the error text. Fixes bug 321827.
5410 2008-06-02 Zoltan Varga <vargaz@gmail.com>
5412 * decimal.c: Add some micro optimizations to make decimal operations faster.
5414 2008-06-01 Rodrigo Kumpera <rkumpera@novell.com>
5416 * reflection.c (method_encode_clauses): Take a mempool
5417 as parameter and use it to allocate the clause array.
5419 * reflection.c (mono_image_get_field_on_inst_token): Free
5420 the inflated type after encoding it.
5422 * reflection.c (mono_dynamic_image_free): Free each element
5423 of MonoDynamicImage::gen_params.
5425 * reflection.c (reflection_methodbuilder_to_mono_method):
5426 Allocate the generic param array from the mempool.
5427 Allocate signature params from the mempool.
5429 * reflection.c (mono_reflection_generic_class_initialize):
5430 Free inflated fields after been used.
5432 2008-05-30 Rodrigo Kumpera <rkumpera@novell.com>
5434 * icall.c: Reapply the memory leak fixes as they no
5435 longer make mono crash.
5437 2008-05-30 Rodrigo Kumpera <rkumpera@novell.com>
5439 * reflection.c (mono_type_get_object): Don't store the suplied
5440 MonoType with type_hash. A caller which pass a type that
5441 was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
5442 might end with a pointer to freed memory.
5443 The solution is to use byval_arg or this_arg from the associated
5444 MonoClass of the supplied type.
5446 2008-05-29 Zoltan Varga <vargaz@gmail.com>
5448 * icall.c: Revert the rest of the last change as it breaks the build too.
5450 2008-05-29 Rodrigo Kumpera <rkumpera@novell.com>
5452 * icall.c: Revert a leak fix as it's breaking the build.
5454 2008-05-29 Rodrigo Kumpera <rkumpera@novell.com>
5456 * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
5458 2008-05-29 Rodrigo Kumpera <rkumpera@novell.com>
5460 * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
5462 2008-05-29 Rodrigo Kumpera <rkumpera@novell.com>
5464 * icall.c: Fix some memory leaks.
5466 2008-05-29 Dick Porter <dick@ximian.com>
5468 * threadpool.c (mono_thread_pool_remove_socket): Always remove the
5469 async socket operations from the pending list when a socket
5470 closes. Leaving it until the threadpool services the event
5471 exposes a race condition when a socket descriptor is reused.
5474 2008-05-28 Rodrigo Kumpera <rkumpera@novell.com>
5476 * object.c: Fix negative index check for array alocation.
5478 2008-05-28 Rodrigo Kumpera <rkumpera@novell.com>
5480 * icall.c, marshal.c: Delegate wrappers should skip visibility.
5481 This check is performed by the verifier for IL created delegates
5482 and by Delegate::CreateDelegate for programatically created ones.
5485 2008-05-28 Rodrigo Kumpera <rkumpera@novell.com>
5487 * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
5488 Fix code to use mono_array_size_t instead of int.
5490 Based on patch by Luis F. Ortiz.
5491 Contributed under X11 license.
5492 http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
5494 2008-05-28 Rodrigo Kumpera <rkumpera@novell.com>
5496 * icall.c: Added ves_icall_System_Array_GetLongLength and
5497 ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
5500 * icall.h: Export both new functions.
5502 Based on patch by Luis F. Ortiz.
5503 Contributed under X11 license.
5504 http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
5506 2008-05-28 Martin Baulig <martin@ximian.com>
5508 The debugger now requires exactly r103463.
5510 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
5511 This version is not supported by the debugger, wait for 72.
5513 2008-05-28 Rodrigo Kumpera <rkumpera@novell.com>
5515 * object.h: Changed array related functions to use
5516 mono_array_size_t instead of guint32. Forgot to commit this file.
5518 Patch by Luis F. Ortiz.
5519 Contributed under X11 license.
5520 http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
5523 2008-05-28 Rodrigo Kumpera <rkumpera@novell.com>
5525 * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
5526 don't define it. Use the number literal instead.
5528 2008-05-27 Rodrigo Kumpera <rkumpera@novell.com>
5530 * icall.c: Changed array related functions to use
5531 mono_array_size_t instead of guint32.
5533 * icall.c (ves_icall_System_Array_GetLength): Check for length
5534 overflow under MONO_BIG_ARRAYS.
5536 Based on patch by Luis F. Ortiz.
5537 Contributed under X11 license.
5538 http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
5540 2008-05-27 Rodrigo Kumpera <rkumpera@novell.com>
5542 * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
5544 Based on patch by Luis F. Ortiz.
5545 Contributed under X11 license.
5546 http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
5548 2008-05-27 Rodrigo Kumpera <rkumpera@novell.com>
5550 * object.c, object.h: Changed array related functions to use
5551 mono_array_size_t instead of guint32.
5553 Patch by Luis F. Ortiz.
5554 Contributed under X11 license.
5555 http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
5557 2008-05-27 Rodrigo Kumpera <rkumpera@novell.com>
5559 * object.h: Introduced mono_array_size_t typedef. This must be used
5560 in all places an array length is expected. This is 64bits wide if
5561 MONO_BIG_ARRAYS is enabled.
5563 Patch by Luis F. Ortiz.
5564 Contributed under X11 license.
5565 http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
5567 2008-05-27 Zoltan Varga <vargaz@gmail.com>
5569 * security-manager.c class.c: Set the class exception info by calling
5570 mono_class_set_failure ().
5572 * class.c (mono_class_get_exception_data): New accessor function.
5573 (mono_class_set_failure): Store exception_data in the property hash.
5575 * class-internals.h (struct _MonoClass): Store 'exception_data' outside
5576 the struct as a property.
5578 * loader.c (mono_get_method_full): Store the lookup result for method
5579 tokens in method_cache, the others in methodref_cache to decrease the memory
5580 usage of hash tables.
5582 * image.c (mono_image_close): Destroy method_cache and methodref_cache.
5583 (mono_image_init): method_cache is lazy inited now.
5585 * metadata-internals.h (struct _MonoImage): Change method_cache to
5586 a MonoValueHashTable, add a separate methodref_cache.
5588 2008-05-27 Eyal Alaluf <eyala@mainsoft.com>
5590 * number-formatter.h: Fix tables to avoid arithemtic overflow in
5591 Double.ToString as exposed by Bug #383531.
5593 2008-05-26 Zoltan Varga <vargaz@gmail.com>
5595 * number-formatter.h: Make some tables static.
5597 * class.c (mono_method_set_generic_container): New accessor function.
5598 (mono_method_get_generic_container): Ditto.
5600 * class-internals.h (struct _MonoMethod): Remove rarely used
5601 'generic_container' field, store it in the property hash instead. Add
5602 'is_generic' boolean field instead.
5604 * image.c (mono_image_init): Initialize property_hash.
5605 (mono_image_close): Destroy property_hash.
5607 * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
5608 hold rarely used fields of runtime structures belonging to this image.
5610 * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
5611 to get/set method->generic_container.
5613 * loader.c (mono_get_method_from_token): Avoid loading the method header for
5616 2008-05-25 Zoltan Varga <vargaz@gmail.com>
5618 * class.c (mono_class_inflate_generic_method_full): Don't increase
5619 mono_stats.inflated_method_count for methods found in the cache.
5621 * threads.c (mono_thread_request_interruption): Add a comment about
5624 2008-05-24 Zoltan Varga <vargaz@gmail.com>
5626 * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
5627 interface_offsets_packed table.
5629 * class.c (mono_class_init): Remove some dead code.
5631 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
5632 mono_class_setup_vtable () when CAS is active to detect security problems.
5634 2008-05-23 Rodrigo Kumpera <rkumpera@novell.com>
5636 * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
5638 * verify.c (mono_delegate_signature_equal): Don't compar number of generic
5639 parameters as it's irrelevant for delegate checking.
5641 2008-05-23 Zoltan Varga <vargaz@gmail.com>
5643 * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
5645 * class.c (mono_class_init): Control the creation of a generic vtable using
5646 a global which is true by default, but set to false by the runtime startup code.
5648 * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
5649 Disabled for now since it breaks the embedding API.
5650 Move the setup of class->methods for arrays to mono_class_setup_methods ().
5651 (mono_class_setup_methods): Add a memory barrier.
5653 * object.c (mono_class_create_runtime_vtable): Add code to handle the case
5654 when mono_class_init () doesn't compute the generic vtable.
5656 2008-05-23 Massimiliano Mantione <massi@ximian.com>
5657 * profiler.c: Added mono_profiler_install_statistical_call_chain,
5658 mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
5659 to support call chains (backtrace) in the stat profiler.
5660 * profiler.c, profiler-private.h: Likewise.
5662 2008-05-22 Mark Probst <mark.probst@gmail.com>
5664 * generic-sharing.c: Init generic class when a method of it is
5665 requested via a runtime generic context.
5667 2008-05-22 Zoltan Varga <vargaz@gmail.com>
5669 * class.c (mono_class_init): Add a comment about trying to avoid calling this.
5671 * reflection.c (mono_type_get_object): Add a FIXME.
5673 * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
5675 * class.c (mono_class_get_method_by_index): New helper function, returning an
5676 entry in the class->methods array.
5678 2008-05-21 Zoltan Varga <vargaz@gmail.com>
5680 * class.c (mono_class_init): Only do the array optimization for szarrays.
5681 Avoid creating a generic vtable for generic instances as well.
5682 (mono_class_get_method_from_name_flags): Don't search in the metadata for
5685 2008-05-21 Rodrigo Kumpera <rkumpera@novell.com>
5687 * loader.c (mono_get_method_constrained): Inflate the signature
5688 with class context. Fix #325283.
5690 2008-05-21 Zoltan Varga <vargaz@gmail.com>
5692 * object.c (mono_class_create_runtime_vtable): Add a comment.
5694 * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
5696 (setup_interface_offsets): Handle the case when this is called twice for arrays.
5697 (mono_class_setup_vtable_general): Add an assert.
5698 (mono_class_init): Avoid creating a generic vtable for arrays.
5700 * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
5701 here, let mono_class_init () do that.
5703 * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
5704 interfaces in mscorlib.
5706 * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
5707 interfaces. Add some comments.
5708 (mono_class_init): Call mono_class_setup_methods () here since it is no
5709 longer called by mono_class_setup_vtable ().
5711 * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
5712 not set in class->vtable.
5713 (mono_class_create_runtime_vtable): Reenable the disabled code.
5715 * object.c (mono_class_create_runtime_vtable): Disable the last change for
5716 now as it causes some test failures.
5718 * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
5719 if using the vtable trampoline. Also remove some strange code which put the
5720 generic methods themselves into the vtable slots. Remove the AOT init_vtable
5721 stuff as it is no longer needed.
5723 2008-05-19 Rodrigo Kumpera <rkumpera@novell.com>
5725 * pedump.c: Give make --verify all option check code as well.
5726 Using --verify code won't check for metadata now.
5728 2008-05-19 Martin Baulig <martin@ximian.com>
5730 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
5733 (_mono_debug_using_mono_debugger): New global variable; it's set
5734 directly by the debugger, so mono_debug_using_mono_debugger() also
5735 works after attaching.
5737 2008-05-18 Rodrigo Kumpera <rkumpera@novell.com>
5739 * object.c (mono_class_create_runtime_vtable): Use memory barriers
5740 as we do double checked locking on MonoClass::runtime_info and
5741 MonoClassRuntimeInfo::domain_vtables.
5743 2008-05-18 Zoltan Varga <vargaz@gmail.com>
5745 * debug-helpers.c (print_field_value): Fix a warning.
5747 2008-05-16 Zoltan Varga <vargaz@gmail.com>
5749 * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
5750 set in the AOT case.
5752 2008-05-16 Rodrigo Kumpera <rkumpera@novell.com>
5754 * class.c (mono_class_setup_vtable_general): Use memory barriers
5755 as we do double checked locking on MonoClass::vtable.
5757 2008-05-16 Rodrigo Kumpera <rkumpera@novell.com>
5759 * reflection.c (resolve_object): Inflate only if the generic context
5760 is not null. Fixes #389886.
5762 2008-05-15 Jonathan Chambers <joncham@gmail.com>
5764 * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
5767 Code is contributed under MIT/X11 license.
5769 2008-05-14 Rodrigo Kumpera <rkumpera@novell.com>
5771 * class.c: Revert unrelated change.
5773 2008-05-14 Rodrigo Kumpera <rkumpera@novell.com>
5775 * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
5776 a generic instantiation, use mono_class_from_mono_type instead of playing
5777 with MonoType directly.
5779 2008-05-14 Rodrigo Kumpera <rkumpera@novell.com>
5781 * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
5782 checks must ignore generic instantiations, so mono_class_has_parent is not
5783 suitable. Fixes #390128.
5785 2008-05-14 Zoltan Varga <vargaz@gmail.com>
5787 * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
5788 it to avoid registering tokens during metadata generation. Fixes #390023.
5790 2008-05-14 Kornél Pál <kornelpal@gmail.com>
5792 * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
5795 Contributed under MIT/X11 license.
5797 2008-05-14 Kornél Pál <kornelpal@gmail.com>
5799 * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
5800 even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
5801 to fixup the EXE image.
5802 (mono_cleanup): Use mono_close_exe_image.
5803 (mono_close_exe_image): New function.
5804 * image.c: Include "marshal.h".
5805 (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
5806 (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
5807 counting when the image is loaded outside of mono_image_open_full. Set status
5808 based on GetLastError.
5809 * coree.c: Include required headers. Add init_from_coree.
5810 (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
5811 mono_assembly_open only when the image has vtfixups. Set init_from_coree.
5812 (_CorExeMain): Set init_from_coree.
5813 (CorExitProcess): Only call ExitProcess for now.
5814 (CorBindToRuntimeEx): New stub implementation.
5815 (CorBindToRuntime): New function.
5816 (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
5817 (MonoFixupExe): ILONLY executables require no fixups.
5818 (mono_set_act_ctx): New function to set activation context.
5819 (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.
5820 * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
5821 Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
5822 mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
5824 * domain-internals.h: Add mono_close_exe_image.
5826 Contributed under MIT/X11 license.
5828 2008-05-13 Rodrigo Kumpera <rkumpera@novell.com>
5830 * metadata.c (mono_metadata_compute_size): Correctly calculate field
5831 size for generic param and event tables. Fixes #388977.
5833 2008-05-13 Zoltan Varga <vargaz@gmail.com>
5835 * loader.c (mono_method_signature): Use memory barriers because of the double
5836 checked locking pattern.
5838 * threads.c (remove_and_abort_threads): Stop and wait for threads which are
5839 aborting or aborted as well. Fixes #376391.
5841 * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
5842 existing runtime state in the Suspend handler during shutdown.
5844 2008-05-12 Zoltan Varga <vargaz@gmail.com>
5846 * threads.c (mono_thread_request_interruption): Add some FIXMEs.
5848 * threads.c (mono_thread_suspend_all_other_threads): Add support for threads
5849 which are starting up or shutting down.
5851 * threads.c (mono_threads_set_shutting_down): Don't return a value since
5852 this function never returns if the runtime is already shutting down.
5854 * icall.c (ves_icall_System_Environment_Exit): Update after
5855 mono_threads_set_shutting_down () signature change.
5857 2008-05-09 Rodrigo Kumpera <rkumpera@novell.com>
5859 * class.c: Added can_access_instantiation to verify if the instantiation
5860 is visible. Fix access check for nested types as they returned TRUE
5861 before doing type and generic instantiation visibility checks.
5863 2008-05-08 Rodrigo Kumpera <rkumpera@novell.com>
5865 * reflection.c (mono_reflection_create_generic_class): The created type
5866 must have a different container from its TypeBuilder. Otherwise they
5867 will end sharing generic arguments, which is wrong.
5869 Due to the sharing, making a generic instance of the created type using
5870 the TypeBuider generic arguments resulted in the generic type definition
5871 been returned, which is wrong as well.
5873 As a bonus the code was leaking the type_params array. This memory should
5874 be allocated from the image mempool.
5876 This fixes bug #354047.
5878 2008-05-08 Rodrigo Kumpera <rkumpera@novell.com>
5880 * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
5881 to here as they are now used in assembly.c new code.
5882 Added a skipverification flag to MonoAssembly.
5883 New internal function mono_assembly_has_skip_verification.
5885 * assembly.c: New function mono_assembly_has_skip_verification. It checks
5886 if an assembly has a version 2.0 SkipVerification security attribute. Fixes
5889 2008-05-07 Zoltan Varga <vargaz@gmail.com>
5891 * object.c (mono_object_get_virtual_method): Inflate the resulting method if
5892 needed. Fixes #387034.
5894 * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
5896 2008-05-06 Miguel de Icaza <miguel@novell.com>
5898 * assembly.c (mono_assembly_load_reference): Prevent crash while
5899 disassembling Silverlight 2.0 executables while we still do not
5900 have GACed libraries.
5902 2008-05-07 Zoltan Varga <vargaz@gmail.com>
5904 * reflection.c: Special case generic type definitions as well. Fixes #383444.
5906 2008-05-06 Zoltan Varga <vargaz@gmail.com>
5908 * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
5909 of the dynamic case. Fixes #387404.
5911 2008-05-06 Rodrigo Kumpera <rkumpera@novell.com>
5913 *verify.c (mono_verifier_is_class_full_trust): If under
5914 verify_all and the verifier mode was not set, only
5915 gac and corlib types are fulltrust. This makes --verify-all
5916 usable to detect unverifiable code, which is the expected
5919 2008-05-06 Rodrigo Kumpera <rkumpera@novell.com>
5921 * verify.h: Ops, commited the header with debug
5924 2008-05-06 Rodrigo Kumpera <rkumpera@novell.com>
5926 * verify.c (merge_stack): Use the new value on unverifiable
5929 * verify.c (verify_type_compatibility_full): Comparison
5930 of nullable types can't use mono_class_is_assignable_from.
5932 * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
5933 that makes all verification errors be reported.
5935 * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
5938 2008-05-05 Robert Jordan <robertj@gmx.net>
5940 * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
5941 support for value types. See #386415.
5943 * object.c: comments.
5945 Code is contributed under MIT/X11 license.
5947 2008-05-05 Martin Baulig <martin@ximian.com>
5949 * debug-mono-symfile.h
5950 (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
5951 for old pre-terrania symbol files.
5953 2008-05-05 Andreas Färber <andreas.faerber@web.de>
5955 * mono-config.c: Add ppc64 architecture.
5957 Code is contributed under MIT/X11 license.
5959 2008-05-05 Andreas Färber <andreas.faerber@web.de>
5961 * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
5962 PPC64 uses function descriptors as well.
5964 Code is contributed under MIT/X11 license.
5966 2008-05-04 Zoltan Varga <vargaz@gmail.com>
5968 * object.c (compute_class_bitmap): Ignore literal static fields.
5970 * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
5971 var has an invalid format.
5972 (describe_ptr): Add some sanity checks for the vtable.
5973 (add_nursery_frag): Clear unused nursery fragments.
5974 (major_collection): Clear all remaining nursery fragments.
5976 2008-05-03 Robert Jordan <robertj@gmx.net>
5978 * image.c, metadata-internals.h: add thunk_invoke_cache.
5980 * marshal.c, marshal.h: implement
5981 mono_marshal_get_thunk_invoke_wrapper ().
5983 * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
5985 Code is contributed under MIT/X11 license.
5987 2008-05-02 Rodrigo Kumpera <rkumpera@novell.com>
5989 * verify.c (do_leave): Empty the stack.
5991 2008-05-02 Rodrigo Kumpera <rkumpera@novell.com>
5993 * class.c (mono_class_is_assignable_from): Variance
5994 doesn't work between reference and value types. For example,
5995 given type C<T+>, C<int32> is not assignable to C<object>.
5996 Break the argument checking loop on first error.
5998 2008-05-02 Atsushi Enomoto <atsushi@ximian.com>
6000 * icall.c : base64_to_byte_array() needs some more strict
6001 check for sequence of '=' characters. Patch by Santa
6002 Marta (http://deee.g.hatena.ne.jp/santamarta).
6004 Contributed under MIT/X11 license.
6005 (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
6007 2008-05-02 Jonathan Chambers <joncham@gmail.com>
6009 * domain.c: Disable LoadLibrary support to fix Win32 build.
6011 Code is contributed under MIT/X11 license.
6013 2008-05-02 Zoltan Varga <vargaz@gmail.com>
6015 * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
6016 to help with cache behaviour.
6018 2008-05-01 Miguel de Icaza <miguel@novell.com>
6020 * appdomain.c (mono_domain_from_appdomain): Add new accessor
6023 2008-05-01 Zoltan Varga <vargaz@gmail.com>
6025 * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
6027 2008-05-01 Dick Porter <dick@ximian.com>
6029 * process.c (process_get_fileversion): Only pass 16 bits of
6030 language ID to VerLanguageName. Fixes bug 381204.
6032 2008-04-30 Rodrigo Kumpera <rkumpera@novell.com>
6034 * verify.c (mono_method_verify): Fix the comparison
6035 operator for code bounds check.
6037 2008-04-30 Rodrigo Kumpera <rkumpera@novell.com>
6039 * verify.c (mono_method_verify): Check the bounds of
6040 all access of the code array.
6042 2008-04-29 Kornél Pál <kornelpal@gmail.com>
6044 * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
6046 2008-04-28 Zoltan Varga <vargaz@gmail.com>
6048 * image.c (mono_image_strong_name_position): Fix return value when the rva is
6051 2008-04-28 Kornél Pál <kornelpal@gmail.com>
6053 * loader.c (mono_get_method_from_token, mono_method_signature): Add
6054 support for METHOD_IMPL_ATTRIBUTE_NATIVE.
6055 * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
6056 fixup main EXE images when using mono.exe for mixed-mode assembly support.
6057 * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
6059 * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
6060 runtime initialization from metadata.
6061 * assembly.c: Remove obsolete ceGetModuleFileNameA.
6062 (mono_set_rootdir): Use mono_get_module_file_name.
6063 (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
6065 * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
6066 * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
6067 * image.c (mono_cli_rva_image_map): Use MonoImage instead of
6068 MonoCLIImageInfo. Add support for module handles.
6069 (load_cli_header): Update mono_cli_rva_image_map signature.
6070 (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
6071 (mono_image_strong_name_position): Use mono_cli_rva_image_map.
6072 (mono_image_rva_map): Add support for module handles.
6073 (mono_image_ensure_section_idx): Add support for module handles.
6074 (mono_image_close): Add support for module handles.
6075 (do_load_header): Add support for module handles.
6076 (mono_image_open_from_module_handle): New function for internal use.
6077 (mono_image_open_full): Load normal images using LoadLibrary on Windows.
6078 (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
6079 (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
6081 (mono_image_fixup_vtable): New function for mixed-mode assembly support.
6082 * image.h: Add mono_image_fixup_vtable.
6083 * coree.c: New file for mscoree.dll functions and mixed-mode assembly
6085 * coree.h: New file.
6086 * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
6087 unsupported native code.
6088 (mono_marshal_set_callconv_from_modopt): New function splitted from
6089 mono_marshal_get_managed_wrapper.
6090 (mono_marshal_get_managed_wrapper): Use
6091 mono_marshal_set_callconv_from_modopt.
6092 (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
6093 * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
6094 * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
6095 that results in a deadlock when the runtime is loaded in _CorDllMain.
6096 * Makefile.am: Add coree.c and coree.h.
6098 Contributed under MIT/X11 license.
6100 2008-04-28 Mark Probst <mark.probst@gmail.com>
6102 * generic-sharing.c: Search for type arguments in array element
6105 2008-04-28 Mark Probst <mark.probst@gmail.com>
6107 * class-internals.h, generic-sharing.c: New, small runtime generic context.
6109 * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
6111 * object.c: Don't setup the RGCTX when the vtable is created,
6112 because we're setting it up lazily now.
6114 2008-04-26 Zoltan Varga <vargaz@gmail.com>
6116 * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix
6119 2008-04-24 Rodrigo Kumpera <rkumpera@novell.com>
6121 * verify.c (verify_class_for_overlapping_reference_fields):
6122 If class is under fulltrust allow reference types to overllap
6123 if they have the same RVA.
6125 2008-04-24 Rodrigo Kumpera <rkumpera@novell.com>
6127 * pedump.c: Added new flag valid-only, that makes the verifier
6128 behaves just like --security=validil. It won't fail type load
6129 due to unverifiable restrictions.
6131 2008-04-23 Rodrigo Kumpera <rkumpera@novell.com>
6133 * class-internals.h (struct MonoMethod): Added a verification_success
6134 field to cache verifier executions. Reduced MonoMethod:slot size by
6137 2008-04-23 Zoltan Varga <vargaz@gmail.com>
6139 * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
6140 instead of a 'vt' argument to save an indirection and to allow these to be used
6142 (scan_vtype): New helper function to scan an area using a gc descriptor.
6143 (mono_gc_wbarrier_value_copy): Implement this.
6144 (handle_remset): Add support for REMSET_VTYPE.
6145 (find_in_remset_loc): Ditto.
6146 (mono_gc_base_init): Allow some debugging options to be controlled through the
6147 use of the MONO_GC_DEBUG env variable.
6148 (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
6149 (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
6151 2008-04-23 Martin Baulig <martin@ximian.com>
6153 * domain.c (mono_domain_create): Move the call to
6154 mono_debug_domain_create() down, after allocating the domain id.
6156 2008-04-23 Rodrigo Kumpera <rkumpera@novell.com>
6158 verify.c (verify_class_for_overlapping_reference_fields): Skip
6159 static fields while verifying for overlapping fields as they
6160 don't matter at all.
6162 2008-04-23 Marek Habersack <mhabersack@novell.com>
6164 * domain-internals.h: added a declaration of
6165 mono_make_shadow_copy.
6167 * assembly.c (mono_assembly_open_full): shadow copying of
6168 assemblies moved to here, so that all the assemblies within the
6169 application domain's private binary directories can be
6170 processed. Fixes bug #380546
6172 * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
6173 mono_make_shadow_copy and made non-static. The decision whether
6174 to shadow-copy an assembly is made based on its location - it's
6175 copied if it's in one of the private application domain binary
6176 directories and its different to the target file in the shadow
6177 directory. Fixes bug #380546
6179 2008-04-22 Zoltan Varga <vargaz@gmail.com>
6181 * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
6183 * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
6186 * reflection.c (mono_image_create_token): Handle
6187 Method/ConstructorOnTypeBuilderInst.
6188 (resolve_object): Ditto.
6189 (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
6190 so it can be called from resolve_object. Also handle the case when the inflated
6191 class already has its methods setup.
6193 2008-04-21 Martin Baulig <martin@ximian.com>
6195 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
6197 2008-04-20 Geoff Norton <gnorton@novell.com>
6199 * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
6200 pointer dereference.
6202 2008-04-15 Marek Habersack <mhabersack@novell.com>
6204 * appdomain.c (try_load_from): if IOMAP is in effect, call the
6205 portability API to look up the assembly file. Fixes behavior in
6206 situations when the application has a bin/ directory, but the
6207 assembly search patch refers to Bin/ (and thus the requested file
6208 name is Bin/SomeLibrary.dll). Fixes bug #379888
6210 2008-04-15 Rodrigo Kumpera <rkumpera@novell.com>
6212 verify.c (mono_type_is_generic_argument): Extracted this check
6213 from a dozen places to here.
6215 verify.c: Fixed all issues related to boxing generic arguments
6216 and their constraints.
6218 2008-04-14 Rodrigo Kumpera <rkumpera@novell.com>
6220 verify.c (mono_class_interface_implements_interface): Fix win32 build.
6222 2008-04-14 Zoltan Varga <vargaz@gmail.com>
6224 * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
6225 isn't finished yet. Fixes #363447.
6227 2008-04-13 Zoltan Varga <vargaz@gmail.com>
6229 * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
6232 2008-04-13 Jb Evain <jbevain@novell.com>
6234 * domain.c: update the 2.1 profile versions.
6235 Merged from the Moonlight 2 branch.
6237 2008-04-12 Zoltan Varga <vargaz@gmail.com>
6239 * assembly.c (mono_assembly_load_from_full): Do the check for loading other
6240 mscorlibs for the non-refonly case as well.
6242 * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
6243 in mono_assembly_load_from_full (). Fixes #378924.
6245 2008-04-11 Geoff Norton <gnorton@novell.com>
6247 * icall.c: The global extern environ doesn't exist on Mac. We
6248 need to call NSGetEnviron instead.
6250 2008-04-10 Rodrigo Kumpera <rkumpera@novell.com>
6252 verify.c: Add generic method constraint verification.
6254 2008-04-10 Rodrigo Kumpera <rkumpera@novell.com>
6256 class.c (mono_class_inflate_generic_method_full): Add a long
6257 explanation to the is_mb_open hack. Remove the FIXME.
6259 2008-04-10 Rodrigo Kumpera <rkumpera@novell.com>
6261 * verify.c (mono_method_verify): Mark all unknown opcodes
6262 as invalid. Mark jmp as unverifiable.
6264 2008-04-10 Rodrigo Kumpera <rkumpera@novell.com>
6266 * verify.c: Add code to do type constraint verification on class instances.
6268 * verify.c (mono_verifier_verify_class): Use the type constraint
6271 2008-04-10 Rodrigo Kumpera <rkumpera@novell.com>
6273 * class.c (mono_class_get_field_default_value): Don't pass cindex
6274 as hint to mono_metadata_get_constant_index. The local is not initialized
6275 and should contain garbage most of the time. This could only work
6278 2008-04-09 Rodrigo Kumpera <rkumpera@novell.com>
6280 * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
6282 2008-04-09 Rodrigo Kumpera <rkumpera@novell.com>
6284 * class-internals.h: Add generic_param_token to MonoClass::sizes union.
6286 * class.c (mono_class_from_generic_parameter): Save the token of the
6287 generic param in MonoClass::sizes.generic_param_token.
6289 * reflection.c (mono_custom_attrs_from_class): If the class type is
6290 VAR or MVAR retrieve the attributes of the generic param.
6292 2008-04-08 Rodrigo Kumpera <rkumpera@novell.com>
6294 * class.c (mono_class_init): Do class verification if the verifier
6297 2008-04-08 Rodrigo Kumpera <rkumpera@novell.com>
6299 * verify-internal.h: Added mono_verifier_verify_class.
6301 * verify.c: Added mono_verifier_verify_class. It checks for
6302 classes with explicit layout that have overlapping reference fields.
6304 * pedump.c: Init the verifier state prior to verification. Fixed
6305 command line arguments.
6307 2008-04-08 Rodrigo Kumpera <rkumpera@novell.com>
6309 * Makefile.am: Added verify-internals.h, hopefully fix the build.
6311 2008-04-08 Zoltan Varga <vargaz@gmail.com>
6313 * verify-internals.h: Fix a warning.
6315 2008-04-07 Rodrigo Kumpera <rkumpera@novell.com>
6317 * verify-internals.h: New header with the verifier configuration
6318 extracted from mini.c.
6320 * verify.c: Implemented the new functions exported by verify-internals.h.
6322 2008-04-07 Rodrigo Kumpera <rkumpera@novell.com>
6324 * verify.c: Add proper verification of ckfinite.
6326 2008-04-04 Rodrigo Kumpera <rkumpera@novell.com>
6328 * verify.c (do_conversion): Improved error message to something
6331 * verify.c (check_is_valid_type_for_field_ops): Fix to work
6332 with primitive types.
6334 2008-04-04 Rodrigo Kumpera <rkumpera@novell.com>
6336 * verify.c: Added tail prefix checking. Marked icall
6339 2008-04-04 Rodrigo Kumpera <rkumpera@novell.com>
6341 * verify.c: Fix the detection of branches to the middle
6344 2008-04-03 Rodrigo Kumpera <rkumpera@novell.com>
6346 * verify.c: Implemented verification of volatile. and
6347 unaligned. prefix. Check if a type is valid after retrieving it.
6349 2008-04-01 Dick Porter <dick@ximian.com>
6351 * process.c (process_get_fileversion): If there's no string block,
6352 set the file language to en_US. Fixes the other new part of bug
6355 2008-03-29 Rodrigo Kumpera <rkumpera@novell.com>
6357 * class.c: New functions mono_method_can_access_field_full and
6358 mono_method_can_access_method_full. They perform type visibility
6359 and type site check.
6361 * class-internal.h: Added exported functions.
6363 * verify.c: Use new functions to implement proper visibility checks.
6365 2008-03-29 Zoltan Varga <vargaz@gmail.com>
6367 * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
6369 2008-03-28 Dick Porter <dick@ximian.com>
6371 * process.c (process_get_fileversion): Use the first language ID
6372 we see, rather than insisting on an invariant language. Fixes bug
6375 2008-03-28 Zoltan Varga <vargaz@gmail.com>
6377 * reflection.c (calc_section_size): Use add_stream_zero to align the size of
6378 the streams to fix reading of invalid memory later.
6380 * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
6383 2008-03-26 Zoltan Varga <vargaz@gmail.com>
6385 * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
6386 (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
6388 2008-03-26 Massimiliano Mantione <massi@ximian.com>
6389 * threads.h: Added MonoThreadManageCallback type and
6390 mono_thread_set_manage_callback prototype
6391 * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
6392 (used to store the mono_thread_manage callback).
6393 * threads.c: Added mono_thread_set_manage_callback, and handle
6394 "MonoThread->manage_callback" in build_wait_tids.
6396 2008-03-26 Dick Porter <dick@ximian.com>
6398 * process.c (process_get_fileversion): Set FileVersionInfo strings
6399 to Empty when the resource doesn't have the particular info.
6402 2008-03-25 Rodrigo Kumpera <rkumpera@novell.com>
6404 * verify.c (mono_method_verify): Proper prefix validation.
6406 2008-03-25 Zoltan Varga <vargaz@gmail.com>
6408 * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
6409 itself in a separate argument instead of throwing them. Fixes #373448.
6411 * appdomain.c: Bump corlib version.
6413 2008-03-24 Rodrigo Kumpera <rkumpera@novell.com>
6415 * verify.c: Implemented readonly prefix and verify controled mutability pointers.
6417 2008-03-20 Kornél Pál <kornelpal@gmail.com>
6419 * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
6422 2008-03-20 Mark Probst <mark.probst@gmail.com>
6424 * generic-sharing.c, class-internals.h: Code for putting
6425 reflection types into the runtime generic context.
6427 2008-03-19 Rodrigo Kumpera <rkumpera@novell.com>
6429 * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
6433 2008-03-17 Rodrigo Kumpera <rkumpera@novell.com>
6435 * verify.c (VerifyContext): Added instruction prefix data to the struct.
6437 * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
6439 * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
6441 * verify.c (do_cast): Let the result value keep the boxed status.
6443 * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
6445 2008-03-17 Jb Evain <jbevain@novell.com>
6447 * reflection.c: when running on a 2.0 runtime, emit
6448 unconditionally the #~ header version as 2.0, and the
6449 CLI header version as 2.5, for symmetry's sake with csc.
6451 2008-03-16 Zoltan Varga <vargaz@gmail.com>
6453 * class.c: Remove the unused cache_interface_offsets stuff.
6455 * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
6456 profiler.c: Fix warnings.
6458 2008-03-16 Mark Probst <mark.probst@gmail.com>
6460 * generic-sharing.c, class-internals.h: Support for putting
6461 methods into the runtime generic context.
6463 2008-03-16 Zoltan Varga <vargaz@gmail.com>
6465 * class.c (mono_class_setup_fields): Ignore calls made to this function for
6466 classes which are generic instances of not-yet finished typebuilders. Fixes
6469 * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
6471 2008-03-15 Zoltan Varga <vargaz@gmail.com>
6473 * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
6475 * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
6476 field, replace it with a hash table in MonoDynamicImage.
6478 * reflection.c (inflate_mono_method): Access the generic definition object from
6479 image->generic_def_objects instead of imethod->reflection_info.
6481 * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto.
6483 * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
6485 * image.c (mono_image_close): Move the dynamic image freeing code to a separate
6486 function in reflection.c so it is easier to keep in sync with the dynamic image
6489 * reflection.c (mono_dynamic_image_free): New internal function, extracted from
6490 mono_image_close ().
6492 2008-03-15 Mark Probst <mark.probst@gmail.com>
6494 * class.c (mono_class_generic_sharing_enabled): Disable generic
6495 sharing for all architectures except AMD64 and x86 to fix build.
6497 2008-03-14 Rodrigo Kumpera <rkumpera@novell.com>
6499 * verify.c: Use the generic definition MonoGenericContext when available.
6500 Remove code for checking generics instance compatibility in favor of
6501 mono_class_is_assignable_from.
6503 2008-03-14 Mark Probst <mark.probst@gmail.com>
6505 * marshal.c, marshal.h, metadata-internals.h, image.c,
6506 wrapper-types.h: New wrapper for invoking a shared static method
6507 without having to pass the runtime generic context argument.
6509 2008-03-14 Rodrigo Kumpera <rkumpera@novell.com>
6511 * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
6513 2008-03-14 Zoltan Varga <vargaz@gmail.com>
6515 * reflection.c (mono_image_get_field_on_inst_token): Add caching.
6517 * reflection.c (mono_image_get_field_on_inst_token): New helper function to
6518 create a token from a FieldOnTypeBuilderInst.
6519 (mono_image_create_token): Handle FieldOnTypeBuilderInst.
6520 (resolve_object): Ditto.
6522 * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
6523 mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
6525 2008-03-14 Martin Baulig <martin@ximian.com>
6527 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
6529 * debug-mono-symfile.h
6530 (MONO_SYMBOL_FILE_VERSION): Bump to 41.
6531 (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
6533 2008-03-10 Martin Baulig <martin@ximian.com>
6535 * debug-mono-symfile.h
6536 (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
6537 `lexical_block_table_offset'.
6538 (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
6540 (MonoSymbolFile): Added `version'.
6543 (MonoDebugLexicalBlockEntry): Removed.
6544 (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
6547 * mono-debug.c (mono_debug_add_method): Don't compute lexical
6548 blocks here; the debugger now does this internally.
6550 2008-02-27 Martin Baulig <martin@ximian.com>
6552 * object.c (mono_runtime_exec_main): Call
6553 `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
6554 `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
6556 2008-03-12 Rodrigo Kumpera <rkumpera@novell.com>
6558 * verify.c (verify_type_compatibility_full): Allow native int to be converted
6559 to native pointer in non-strict mode. Required to "(IntPtr)null" work.
6561 2008-03-12 Rodrigo Kumpera <rkumpera@novell.com>
6563 * verify.c (verify_ldftn_delegate): Accept a sealed type when using
6564 ldftn with a virtual method.
6566 2008-03-13 Geoff Norton <gnorton@novell.com>
6568 * decimal.c: Only include memory.h if the platform has it.
6570 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
6572 * assembly.c, class.c, metadata-internals.h: make sure public key
6573 tokesns are compared in a case-insensitive way. Also, all
6574 the lookups in the GAC use a lowercase public key token
6575 (gaacutil already does the lowercasing on install). Fixes
6578 2008-03-11 Rodrigo Kumpera <rkumpera@novell.com>
6580 * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
6583 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
6585 * image.c: when someone loads a mscorlib from a file, return the
6586 currently loaded mscorlib (fixes bug #369253).
6588 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
6590 * class.c: handle types with no parents by forcing them to have
6591 System.Object as a parent and marking them as broken (this currently
6592 allows the first part of bug #369173 to work as well, likely because
6593 we don't check for typeload exceptions everywhere yet).
6595 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
6597 * class.c: more complete check that types belong to corlib
6598 (fixes second part of bug #369173).
6600 2007-03-10 Bill Holmes <billholmes54@gmail.com>
6602 * generic-sharing.c: Including glib.h for the MSVC builds to define
6603 "inline" to "__inline" before including mono-membar.h.
6605 * mono-perfcounters.c: Adding HAVE_SYS_TIME_H check for MSVC builds.
6606 Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for
6609 Contributed under MIT/X11 license.
6611 2008-03-10 Rodrigo Kumpera <rkumpera@novell.com>
6613 * verify.c (do_invoke_method): Remove return type validation.
6615 * verify.c (do_ret): Do return type validation at return site instead of
6618 2008-03-10 Rodrigo Kumpera <rkumpera@novell.com>
6620 * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
6622 * verify.c: Some todos cleaned and improved a few error messages.
6624 2008-03-08 Zoltan Varga <vargaz@gmail.com>
6626 * class.c (mono_class_setup_mono_type): Improve the test for corlib.
6628 2008-03-07 Zoltan Varga <vargaz@gmail.com>
6630 * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
6631 system types correctly.
6633 * exception.h exception.c (mono_exception_from_token_two_strings): New helper
6636 2008-03-06 Zoltan Varga <vargaz@gmail.com>
6638 * assembly.c (build_assembly_name): Fix a warning.
6640 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
6642 * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
6643 the called function takes an object type argument. Fixes storing or
6644 valuetypes across remoting as well as reducing memory usage.
6645 * image.c, metadata-internals.h: remove now unused ldfld_remote and
6646 stfld_remote wrapper caches.
6648 2008-03-06 Zoltan Varga <vargaz@gmail.com>
6650 * icall.c (mono_lookup_internal_call): Update the exception message when an icall
6653 * reflection.c (mono_image_register_token): New helper function to save
6654 a token->object mapping.
6656 * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
6659 * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
6660 one dimension arrays. Fixes #367670.
6661 (mono_reflection_get_type_internal): Ditto.
6663 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
6665 * marshal.c: mono_load_remote_field_new() always returns object.
6666 so use the proper signature (fixes bug #366445).
6668 2008-03-04 Zoltan Varga <vargaz@gmail.com>
6670 * class-internals.h (MonoMethod): Remove unused uses_this flag,
6671 add an 'inline_failure' flag instead.
6673 2008-03-04 Mark Probst <mark.probst@gmail.com>
6675 * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
6676 with a new structure, MonoGenericJitInfo, in the MonoJitInfo. It
6677 contains the location of "this", used for exception handling.
6679 2008-03-04 Zoltan Varga <vargaz@gmail.com>
6681 * class.c (mono_class_layout_fields): Set the min alignment of small structs to
6682 their size on all platforms for perf reasons.
6684 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
6686 * reflection.h: Move mono_reflection_is_valid_dynamic_token to
6689 * object-internal.h: Same.
6691 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
6693 * reflection.h: Fix the build I just broke.
6695 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
6697 * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
6698 Test if a token is valid, this remove explicit usage of
6699 MonoDynamicImage::tokens from the verifier code.
6701 * reflection.h: Added mono_reflection_is_valid_dynamic_token.
6703 * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
6704 instead of direct access to MonoDynamicImage::tokens.
6706 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
6708 * verify.c (token_bounds_check): Fix the build I just broke.
6710 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
6712 * verify.c (token_bounds_check): Fix bounds check for dynamic images.
6714 * verify.c (verifier_load_method): Fixed the errors message.
6716 * verify.c (mono_method_verify): Fixed a debug message.
6718 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
6720 * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
6721 mono-perfcounters.h, class-internals.h: support for predefined
6722 writable counters, query of categories and counters, bugfixes.
6724 2008-02-28 Rodrigo Kumpera <rkumpera@novell.com>
6726 * verify.c (do_refanytype): Verify the refanytype opcode.
6728 * verify.c (mono_method_verify): Use do_refanytype.
6730 2008-02-28 Rodrigo Kumpera <rkumpera@novell.com>
6732 * verify.c (do_mkrefany): Verify the mkrefany opcode.
6734 * verify.c (mono_method_verify): Use do_mkrefany.
6736 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
6738 * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
6739 mono-perfcounters.c, mono-perfcounters.h: basic performance counter
6742 2008-02-27 Zoltan Varga <vargaz@gmail.com>
6744 * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
6745 the type load exception.
6747 2008-02-27 Rodrigo Kumpera <rkumpera@novell.com>
6749 * verify.c: Added a few FIXME for method signatures
6751 * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
6752 of mono_method_get_signature and get vararg call working. Removed unused
6753 checks for return value.
6755 * verify.c (do_refanyval): Verify the refanyval opcode.
6757 * verify.c (mono_method_verify): Implemented verification of arglist and
6760 2008-02-27 Zoltan Varga <vargaz@gmail.com>
6762 * class.c (mono_class_setup_methods): Move the check for synchronized methods on
6763 vtypes to marshal.c.
6765 * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
6766 it works for AOT as well.
6768 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
6770 * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
6771 with mono_msec_ticks () which is monotonic and doesn't cause bugs when
6772 the system time is adjusted.
6774 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
6776 * icall.c, icall-def.h: use the new time functions (fixes the
6777 non-monotonic behaviour of TickCount).
6779 2008-02-26 Zoltan Varga <vargaz@gmail.com>
6781 * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
6782 it breaks the build.
6784 * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
6785 cattr is not finished yet.
6787 2008-02-25 Rodrigo Kumpera <rkumpera@novell.com>
6789 * verify.c: Proper token validation for field, method and type.
6791 2008-02-25 Rodrigo Kumpera <rkumpera@novell.com>
6793 * loader.c (field_from_memberref): Generate a loader error if the type is not found.
6795 * loader.c (method_from_memberref): Generate type load error instead of method missing
6796 if the type is not found.
6798 2008-02-23 Zoltan Varga <vargaz@gmail.com>
6800 * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
6801 some of the conversions caused the generation of a marshal directive exception.
6803 2008-02-21 Rodrigo Kumpera <rkumpera@novell.com>
6805 verify.c: Report which exception should be thrown by the JIT.
6806 Added a lot of FIXME notes.
6808 2008-02-22 Mark Probst <mark.probst@gmail.com>
6810 * generic-sharing.c: Runtime generic context slots are not
6811 instantiated on init anymore. Instead, provide function to do the
6812 instantiating on demand.
6814 * class-internals.h: Added vtable to runtime generic context.
6815 Macros for encoding direct and indirect slot offsets in one
6818 2008-02-21 Mark Probst <mark.probst@gmail.com>
6820 * object.c, generic-sharing.c: Moved some generic sharing code
6821 from object.c to generic-sharing.c.
6823 * generic-sharing.c: Added support for extensible runtime generic
6826 * metadata-internals.h: Two new hash tables in MonoImage for
6827 extensible runtime generic context support.
6829 * domain.c: Unregister generic vtables upon domain unloading.
6831 * image.c: Destroy new hash tables upon image unloading.
6833 * metadata.c: Unregister generic subclasses upon image unloading.
6835 * class-internals.h: New data structure for runtime generic
6836 context template. New fields in the runtime generic context for
6839 * Makefile.am: Added generic-sharing.c.
6841 2008-02-21 Rodrigo Kumpera <rkumpera@novell.com>
6843 icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
6844 there is a pending loader exception, raise it.
6846 icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken):
6849 icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken):
6854 2008-02-20 Zoltan Varga <vargaz@gmail.com>
6856 * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
6858 * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
6860 * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
6861 ref-only requests for compatibility with MS.
6863 2008-02-20 Raja R Harinath <harinath@hurrynot.org>
6865 * reflection.c (mono_custom_attrs_from_method): Don't silently
6866 return an empty list for generic method instances.
6867 (mono_custom_attrs_from_param): Likewise.
6869 2008-02-20 Rodrigo Kumpera <rkumpera@novell.com>
6870 Raja R Harinath <harinath@hurrynot.org>
6873 * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
6874 * class.c (mono_class_inflate_generic_method_full): Initialize it
6875 when a fully-open method is instantiated.
6876 * metadata.c (inflated_method_equal, inflated_method_hash): Update
6878 * reflection.c (inflate_mono_method): Don't create a temporary context.
6880 2008-02-20 Raja R Harinath <harinath@hurrynot.org>
6882 * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
6883 Compute correct value, to prepare for imethod->reflection_info going away.
6885 2008-02-19 Zoltan Varga <vargaz@gmail.com>
6887 * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
6889 2008-02-18 Rodrigo Kumpera <rkumpera@novell.com>
6891 * verify.c: Implement skip visibility flag.
6893 2008-02-18 Rodrigo Kumpera <rkumpera@novell.com>
6895 * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
6896 which contains an extra field to tell the kind of exception that should be thrown.
6898 * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
6900 2008-02-17 Raja R Harinath <harinath@hurrynot.org>
6902 * loader.c (mono_method_get_param_names): Initialize 'klass' after
6903 'method' is updated.
6905 2008-02-11 Zoltan Varga <vargaz@gmail.com>
6907 * class.c (mono_class_layout_fields): Set class->min_align for classes using
6908 explicit layout as well. Fixes #360375.
6910 2008-02-11 Geoff Norton <gnorton@novell.com>
6912 * loader.c: Guard and dereference against inflated generic methods
6914 2008-02-10 Gert Driesen <drieseng@users.sourceforge.net>
6916 * class.c: Include Retargetable spec in assembly name.
6917 * assembly.c: Always include PublicKeyToken spec in assembly name
6918 (with value "null" if assembly is not signed), and include
6920 * icall-def.h: Added icall for Assembly.get_fullname.
6921 * icall.c: Added icall returning the fullname of an assembly.
6923 2008-02-09 Zoltan Varga <vargaz@gmail.com>
6925 * class.c (mono_class_setup_vtable_general): Add a missing call to
6926 mono_class_setup_methods () which is needed in the AOT case.
6928 2008-02-08 Rodrigo Kumpera <rkumpera@novell.com>
6930 * verify.c (mono_type_get_stack_name): Added. Return the name for the
6931 stack type of the given MonoType.
6933 * verify.c (verify_type_compatibility_full): Handle the void type.
6935 * verify.c (is_compatible_boxed_valuetype): Changed to fit the
6936 way stack merging works.
6938 * verify.c (store_local): Improved verification message.
6940 * verify.c (do_branch_op): If the merging is invalid, the method
6941 is unverifiable and not invalid. Improved error message.
6943 * verify.c (merge_stacks): Properly merge a boxed valuetype and
6944 a reference type diferent than System.Object. Improved error
6947 2008-02-07 Rodrigo Kumpera <rkumpera@novell.com>
6949 * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
6951 * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
6952 type of an enum even if the argument is byref.
6954 * verify.c: Replace all explicit uses of enumtype and enum_basetype
6955 to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
6957 * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
6959 *verify.c (verify_type_compatibility_full): Make enum types
6960 compatible with their base types.
6962 * verify.c (is_compatible_boxed_valuetype): Added. Check if both
6963 types are compatible for the special case of a boxed valuetype and
6966 * verify.c (verify_stack_type_compatibility): The function
6967 is_compatible_boxed_valuetype was extracted from here.
6969 * verify.c (push_arg): Only set ctx->has_this_store if the method
6972 * verify.c (do_ldelem): Fixed a typo in an error message and added
6973 strict check for mixing int32 and native int as the array type
6976 * verify.c (merge_stacks): Consider boxed valuetypes in the
6977 compatibility checks.
6979 2008-02-07 Massimiliano Mantione <massi@ximian.com>
6980 * profiler.h: (MonoGCEvent): Added start-stop the world events.
6982 2008-02-06 Massimiliano Mantione <massi@ximian.com>
6983 *class.c: use_new_interface_vtable_code: renamed the env var to have
6984 a "MONO_" prefix, and fix the logic to enable it by default.
6986 2008-02-06 Massimiliano Mantione <massi@ximian.com>
6988 mono_class_setup_vtable_general: rewrote the way in which interface
6989 methods are added to vtables. Makes bug-77127.exe pass, and hopefully
6990 makes the code more maintainable.
6991 For now the old code is still there, and can be activated setting
6992 the env var "USE_NEW_INTERFACE_VTABLE_CODE".
6994 2008-02-06 Rodrigo Kumpera <rkumpera@novell.com>
6996 * verify.c: guarded some debug functions around and #ifdef.
6998 * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
7000 2008-02-06 Zoltan Varga <vargaz@gmail.com>
7002 * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
7003 changes for now since they seem to break too many things.
7005 2008-02-05 Mark Probst <mark.probst@gmail.com>
7007 * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
7008 mono_marshal_find_nonzero_bit_offset): Added macro and function
7009 for finding the byte- and bit-offset of a bitfield within a
7012 2008-02-05 Zoltan Varga <vargaz@gmail.com>
7014 * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
7015 (mono_marshal_get_struct_to_ptr): Ditto.
7017 * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of
7020 2008-02-03 Zoltan Varga <vargaz@gmail.com>
7022 * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
7023 between methods for non-corlib types.
7025 2008-02-02 Geoff Norton <gnorton@novell.com>
7027 * loader.c (mono_method_get_param_names): Populate the parameter name for
7028 generic parameters as well. (Fixes #342536)
7030 2008-01-31 Rodrigo Kumpera <rkumpera@novell.com>
7032 * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
7034 * verify.c (do_invoke_method): Fix for calling with byref structs.
7036 * verify.c (do_cast): push a boxed value type based on the type token and not
7039 2008-01-31 William Holmes <billholmes54@gmail.com>
7041 * process.c (process_module_string_read): Check the size returned form
7042 VerQueryValue to avoid out of memory exception.
7044 2008-01-30 Zoltan Varga <vargaz@gmail.com>
7046 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
7047 Handle properly modules which are not in the moduleref table. Fixes
7050 2008-01-29 Zoltan Varga <vargaz@gmail.com>
7052 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
7053 the dynamic case which is now in managed code.
7054 (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
7056 * marshal.c (mono_string_to_bstr): Fix a warning.
7057 (init_com_provider_ms): Ditto.
7059 * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
7061 * exception.c (mono_get_exception_out_of_memory): New helper function.
7063 2008-01-28 Jonathan Chambers <joncham@gmail.com>
7065 * marshal.c: Add support for BSTR marshalling
7066 using other COM systems.
7068 Code is contributed under MIT/X11 license.
7070 2008-01-28 Rodrigo Kumpera <rkumpera@novell.com>
7072 * object.c (mono_runtime_invoke_array): reverted previous
7073 commit as it breaks the build.
7075 2008-01-28 Rodrigo Kumpera <rkumpera@novell.com>
7077 * object.c (mono_runtime_invoke_array): Verify arguments for
7078 invalid types. Fixes #348522.
7080 2008-01-28 Rodrigo Kumpera <rkumpera@novell.com>
7082 * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
7083 non-final virtual calls using call.
7085 * verify.c (do_invoke): fixed some TODOs.
7087 * verify.c (push_arg): set has_this_store for "ldarga 0".
7089 2008-01-27 Zoltan Varga <vargaz@gmail.com>
7091 * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
7092 which belong to an inflated class. Fixes #356531.
7094 2008-01-26 Robert Jordan <robertj@gmx.net>
7096 * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
7097 which resort to FindFirstFile when a certain error condition
7098 (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
7099 Code is contributed under MIT/X11 license.
7101 2008-01-24 Jonathan Chambers <joncham@gmail.com>
7103 * marshal.c (emit_marshal_string): Fix out string marshalling
7104 to use specified encoding. Fixes #323900.
7106 Code is contributed under MIT/X11 license.
7108 2008-01-24 Raja R Harinath <harinath@hurrynot.org>
7110 * class.c (mono_class_inflate_generic_method_full): Don't modify
7111 iresult->context after cache check.
7113 2008-01-23 Zoltan Varga <vargaz@gmail.com>
7115 * class.c (mono_class_inflate_generic_method_full): Change the
7116 struct assignments to memcpy for better visibility and add some comments.
7118 2008-01-23 Dick Porter <dick@ximian.com>
7120 * threads.c (mono_threads_set_shutting_down): Simplify shutdown
7121 procedure, and make it work on windows.
7123 2008-01-22 Zoltan Varga <vargaz@gmail.com>
7125 * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
7126 a MonoReflectionTypeBuilder since it is always of that type.
7128 * reflection.c (mono_type_get_object): Remove an unneccesary check.
7130 * reflection.c (mono_generic_class_get_object): Simplify this a bit.
7132 * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
7134 * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
7136 * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
7138 * reflection.c (mono_reflection_create_runtime_class): Remove already created
7139 instantiations from the type cache.
7141 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
7143 * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
7145 * verify.c (do_unbox_value): push a controled mutability managed pointer.
7147 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
7149 * verify.c (do_ldstr): added, verifies if the #US token is valid.
7151 * verify.c (mono_method_verify): removed old TODO
7153 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
7155 * verify.c (do_newobj): add visibility check.
7157 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
7159 * verify.c (do_load_function_ptr): add visibility check.
7161 2008-01-21 Massimiliano Mantione <massi@ximian.com>
7163 mono_generic_class_get_class: hook profiler events.
7164 mono_field_get_offset: added to support heap-shot in the new profiler.
7165 *class.h: exported mono_field_get_offset.
7167 mono_reflection_setup_internal_class: hook profiler events.
7169 2008-01-20 Zoltan Varga <vargaz@gmail.com>
7171 * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions'
7172 argument here too and use it to avoid checking for pending exceptions if
7175 2008-01-20 Gert Driesen <drieseng@users.sourceforge.net>
7177 * assembly.c (build_assembly_name): add arg for passing the assembly
7178 flags. Do not consider a PublicKey with value "null" valid.
7179 (mono_assembly_name_parse_full): added boolean argument that will be
7180 set if the assembly name contains a PublicKeyToken spec. Added support
7181 for the Retargetable spec for which only Yes or No are allowed as valid
7182 value. Consider assembly name invalid if Retargetable spec is set, but
7183 either version, culture or public key (token) are not specified.
7184 * metadata-internals.h: sync signature of mono_assembly_name_parse_full
7185 with implementation in assembly.c.
7186 * icall.c (fill_reflection_assembly_name): also copy assembly flags
7187 from MonoAssemblyName.
7188 (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
7189 introduced argument for mono_assembly_name_parse_full to know if the
7190 assembly name has a PublicKeyToken spec, and if it has instruct
7191 fill_reflection_assembly_name to use default value for keyToken (if
7192 PublicKeyToken is null).
7194 2008-01-18 Rodrigo Kumpera <rkumpera@novell.com>
7196 * verify.c (mono_method_verify): fixed ovf ops with
7197 float values. They are unverifiable now.
7199 2008-01-18 Rodrigo Kumpera <rkumpera@novell.com>
7201 * class.c (set_failure_from_loader_error): add BadImageException to the
7202 list of exceptions that can cause a type to fail to load.
7204 * class.c (mono_class_get_exception_for_failure): same.
7206 2008-01-17 Rodrigo Kumpera <rkumpera@novell.com>
7208 * verify.c (in_any_exception_block): added, check if offset
7209 is part of any exception handling clause.
7211 * verify.c (get_stack_type): added VAR and MVAR types.
7213 * verify.c (do_stobj): better error messages.
7215 * verify.c (do_cpobj): added, check cpobj.
7217 * verify.c (do_initobj): added, check initobj.
7219 * verify.c (do_sizeof): added, check sizeof.
7221 * verify.c (do_localloc): added, check localloc.
7223 * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
7225 2008-01-17 Zoltan Varga <vargaz@gmail.com>
7227 * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
7228 save_lmf/restore_lmf opcodes.
7230 * threads.c (mono_threads_install_notify_pending_exc): New function to
7231 install a callback notifying the JIT there is a pending exception on a thread.
7232 (mono_thread_request_interruption): Call the new callback.
7233 (mono_thread_get_and_clear_pending_exception): New function to return the
7234 exception pending on a thread.
7236 * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
7237 to turn off checking for pending exceptions.
7238 (mono_marshal_get_native_wrapper): Ditto.
7240 2008-01-16 Zoltan Varga <vargaz@gmail.com>
7242 * threads-types.h: Get rid of the unnecessary extern declarations.
7244 2008-01-16 Gert Driesen <drieseng@users.sourceforge.net>
7246 * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
7247 return field from parent class if not private.
7248 (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
7249 returns fields from parent class if they are not private.
7250 (method_nonpublic): added function to determine if a given method
7251 should be considered non-public. Returns false for private methods
7252 on parent class, and internal methods from parent on the 1.0 profile.
7253 (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
7254 use method_nonpublic function to determine whether method should be
7256 (property_accessor_public): use newly introduced method_nonpublic
7257 function to determine whether accessor is non-public.
7258 (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
7259 event from parent class if not private. Only return static event if
7260 Static flag is set, and only return static event from parent class if
7261 FlattenHierarchy flag is set.
7262 (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
7263 include non-private events from parent class.
7265 2008-01-16 Zoltan Varga <vargaz@gmail.com>
7267 * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
7270 2008-01-16 Wade Berrier <wberrier@novell.com>
7272 * security.c: Add assembly.h header to appease some warnings
7274 2008-01-16 Dick Porter <dick@ximian.com>
7276 * process.c (process_module_string_read): Remove trailing null
7279 2008-01-16 Mark Probst <mark.probst@gmail.com>
7281 * class-internals.h: A new data structure describing the layout of
7282 a runtime generic context (MonoRuntimeGenericContextTemplate).
7284 * metadata-internals.h: Added a hash table to MonoDomain that maps
7285 from open generic classes to their runtime generic context
7288 * object.c: Building of the runtime generic context, including
7289 proper handling of generic type arguments of superclasses.
7290 Building of the runtime generic context according to the template.
7292 2008-01-15 Zoltan Varga <vargaz@gmail.com>
7294 * class.c (mono_class_setup_fields): Set field.count for generic instances.
7297 * image.c (do_mono_image_open): Pass TRUE as last_exists to
7298 mono_portability_find_file (). Fixes #325466.
7299 (mono_image_get_public_key): Fix a warning.
7301 2008-01-14 Zoltan Varga <vargaz@gmail.com>
7303 * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
7305 (mono_class_from_name_case): Ditto.
7307 2008-01-13 Eyal Alaluf <eyala@mainsoft.com>
7309 * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
7310 common storage for the tables used in the System/NumberFormatter class.
7312 2008-01-13 Zoltan Varga <vargaz@gmail.com>
7314 * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
7316 2008-01-11 Rodrigo Kumpera <rkumpera@novell.com>
7318 * verify.c (get_boxable_mono_type): check if the token is valid.
7320 * verify.c (set_stack_value): changed to add an error if an
7321 invalid type is set on stack. Changed all callers due to signature change.
7323 * verify.c (do_stobj): implement stobj validation.
7325 2008-01-11 Zoltan Varga <vargaz@gmail.com>
7327 * reflection.c (reflection_methodbuilder_to_mono_method): No need to
7328 set container->is_method, it was set earlier.
7330 * metadata.c (type_in_image): Handle MVARs which belong to not finished
7333 * reflection.c (mono_reflection_initialize_generic_parameter): Set
7334 is_method of the generic container to TRUE for methods.
7336 2008-01-10 Zoltan Varga <vargaz@gmail.com>
7338 * metadata.c (type_in_image): Handle type parameters properly.
7340 * class-internals.h (MonoGenericParam): Add an 'image' argument to track
7341 memory ownership of this structure.
7343 2008-01-10 Rodrigo Kumpera <rkumpera@novell.com>
7345 * verify.c (get_boxable_mono_type): make typedref types been just
7346 unverifiable. check for void type.
7348 * verify.c (do_unbox_any): added, verify opcode unbox.any.
7350 * verify.c (do_load_function_ptr): accept method spec tokens.
7352 2008-01-10 Zoltan Varga <vargaz@gmail.com>
7354 * marshal.c (mono_class_native_size): Always set *align even if this is called
7357 2008-01-09 Zoltan Varga <vargaz@gmail.com>
7359 * verify.c (mono_verify_corlib): Remove this as it was not used and was
7362 2008-01-09 Rodrigo Kumpera <rkumpera@novell.com>
7364 * verify.c: removed some old unused tables. A huge bunch of small fixes
7365 to things found while testing the verifier with mono basic.
7367 * verify.c (dump_stack_value): dump null literal flag to.
7369 * verify.c (verify_type_compatibility_full): fix comparison
7370 for types that have a generic super type.
7372 * verify.c (verify_stack_type_compatibility): fix compatibility
7373 between null literals and reference types. fix compatibility between
7374 boxed valuetypes and object. fix corner case test for enums.
7376 * verify.c (do_cmp_op): proper verification of cgt.un in case
7379 * verify.c (do_invoke_method): fix error message.
7381 * verify.c (do_store_indirect
7383 * verify.c (check_is_valid_type_for_field_ops): proper verification
7384 of managed pointers to valuetypes and boxed valuetypes. proper verification
7387 * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
7388 allow token to be a reference type.
7390 * verify.c (do_cast): proper handling of boxes valuetypes.
7392 * verify.c (do_stelem): proper handling of storing a boxed valuetype
7395 * verify.c (mono_method_verify): pass the opcode to do_cmp_op
7396 to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
7397 fixed the decoding of unbox_any
7399 2008-01-08 Zoltan Varga <vargaz@gmail.com>
7401 * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
7403 2008-01-08 Rodrigo Kumpera <rkumpera@novell.com>
7405 * verify.c (do_newobj): do delegate verification.
7407 * verify.c (verify_delegate_compatibility): perform delegate
7410 * verify.c (verify_ldftn_delegate): perform tests related to
7413 * verify.c (mono_delegate_signature_equal): perform the
7414 slightly diferent signature comparison required by delegates.
7416 * metadata.c (mono_metadata_type_equal_full): added and exported
7417 as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
7418 allows signature only comparison.
7420 * metadata-internal.h (mono_metadata_type_equal_full): added and exported
7423 2008-01-07 Rodrigo Kumpera <rkumpera@novell.com>
7425 * verify.c: added a bunch of stack_slot_* functions to
7426 make access to stack slot type easier. This is required to
7427 allow optional flags, like null literal, boxed value and
7429 All access paths to IlStackDesc::stype have been changed
7430 to use these new funcions.
7431 Removed a bunch of unused functions and cleared all warnings.
7432 This patch introduces the usage of the this pointer and
7435 2008-01-07 Zoltan Varga <vargaz@gmail.com>
7437 * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
7439 2008-01-06 Zoltan Varga <vargaz@gmail.com>
7441 * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
7442 match managed version.
7444 * appdomain.c: Bump corlib version.
7446 * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
7449 2008-01-06 Gert Driesen <drieseng@users.sourceforge.net>
7451 * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
7452 Set public key token to zero-length byte array if assembly is not
7455 2008-01-05 Zoltan Varga <vargaz@gmail.com>
7457 * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
7458 writing a vtype array elem.
7460 2007-01-05 Gert Driesen <drieseng@users.sourceforge.net>
7462 * assembly.c (build_assembly_name): return FALSE if length of token is
7463 not 16 (if not "null").
7464 (mono_assembly_name_parse_full): return FALSE if value of version,
7465 culture, token or key is 0.
7466 * icall.c (fill_reflection_assembly_name): add boolean arguments to
7467 specify whether public key and public key token must be set to default
7468 value (zero-length byte array) if not available. Set versioncompat to
7469 SameMachine. If public key is available or the default is set, then
7471 (ves_icall_System_Reflection_Assembly_FillName): if no public key
7472 is available, use empty byte array as default value. On the 2.0
7473 profile, use default value for public key token if not set.
7474 (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
7475 profile, use default value for public key if not set. On the 2.0
7476 profile, use default value for public key token if not set.
7477 (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
7478 default values for public key and public key token.
7480 2008-01-05 Zoltan Varga <vargaz@gmail.com>
7482 * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
7483 field to keep it in synch with the managed object.
7485 * marshal.c (emit_marshal_object): Add support for byref marshalling of
7486 delegates. Fixes #351520.
7488 * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
7489 contains defined memory.
7491 * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
7493 * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
7495 * sgen-gc.c (check_consistency): New helper function to do a consistency check
7496 of the GC data structures.
7498 * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
7500 * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
7502 * object.c (mono_array_full_copy): Fix detection of whenever to use a write
7504 (mono_array_clone_in_domain): Ditto.
7505 (mono_array_clone_in_domain): Ditto.
7507 * threads.c (start_wrapper): Register the thread start argument as a GC root.
7508 (cache_culture): Use a write barrier.
7510 * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
7511 (ves_icall_get_property_info): Ditto.
7513 * object.h (MONO_STRUCT_SETREF): New macro.
7515 * class-internals.h (MonoStats): Add some GC statistics.
7517 * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
7519 2008-01-04 Andreas Faerber <andreas.faerber@web.de>
7521 * exception.c (mono_exception_from_name_two_strings):
7522 Break from loop after method is found.
7524 2008-01-04 Dick Porter <dick@ximian.com>
7526 * process.c (process_module_string_read): Rename variable to
7527 reflect correct usage, after fixing bug 345972.
7529 2008-01-03 Rodrigo Kumpera <rkumpera@novell.com>
7531 * verify.c (mono_type_create_fnptr_from_mono_method):
7532 created a MonoType function pointer instance to be used during
7533 verification. The verifier releases this memory at end.
7535 * verify.c (mono_method_is_constructor): extracted repeated
7536 checks for constructor into a single class.
7538 * verify.c (do_push_field): use new extracted method
7539 for constructor check.
7541 * verify.c (do_newobj): same.
7543 * verify.c (do_ldftn): renamed to do_load_function_ptr
7544 and make it verify ldvirtftn too.
7546 * verify.c (mono_method_verify: proper verification
7547 of ldvirtftn. release created MonoMethod instances.
7549 2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
7551 * verify.c (token_bounds_check): added.
7553 * verify.c (do_ldftn): added.
7555 * verify.c (mono_method_verify): proper verificartion of ldftn.
7557 2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
7559 * metadata.c (mono_metadata_decode_row): Assert if index is bigger
7560 than the table row count. It's the resposibility of the caller to
7561 make the bounds check and raise the correct error.
7563 * metadata.c (mono_metadata_decode_row_col): Same.
7565 * loader.c (mono_get_method_from_token): perform bounds check
7566 on token for methoddef table.
7568 2007-12-29 Miguel de Icaza <miguel@novell.com>
7571 (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
7572 assert into a negative result, the managed code already coped with
7575 Some folks on Windows reported this error.
7577 2007-12-28 Gert Driesen <drieseng@users.sourceforge.net>
7579 * appdomain.c: Bump corlib version.
7581 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
7582 CultureInfo.CreateCulture to create CultureInfo for name.
7583 (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
7584 create CultureInfo for name. Fixes bug #347174.
7586 2007-12-27 Rodrigo Kumpera <rkumpera@novell.com>
7588 * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
7591 * verify.c (is_valid_branch_instruction): allow branching to the
7592 first instruction of the protected block.
7594 * verify.c (is_valid_cmp_branch_instruction): same.
7596 * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
7597 avoid double initialization.
7599 * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
7600 detect which cases the eval stack should just be copied.
7602 * verify.c (mono_method_verify): check if the eval stack
7603 is empty when entering a protected block.
7605 2007-12-27 Rodrigo Kumpera <rkumpera@novell.com>
7607 * verify.c: added is_clause_in_range, is_clause_inside_range,
7608 is_clause_nested and verify_clause_relationship. They perform
7609 the verifications stated in P1 12.4.2.7.
7611 * verify.c (mono_method_verify): remove some unused variables,
7612 add the new exception clause checks, add instruction border
7613 checks for protected block start/end, improved some error
7614 messages and fixed a bug in the way invalid instruction access
7617 2007-12-26 Zoltan Varga <vargaz@gmail.com>
7619 * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
7620 from GC 7.0 if available.
7622 * object.c: Remove an unused define.
7624 * object.c (mono_class_compute_gc_descriptor): Fix a warning.
7626 * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
7628 * null-gc.c (mono_gc_make_descr_for_array): Implement.
7630 * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
7632 * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
7633 to take the same arguments as the other make_descr functions.
7635 * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
7637 * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
7640 * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
7643 * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc ()
7646 * boehm-gc.c (mono_gc_register_root): Fix a warning.
7648 * null-gc.c (mono_gc_register_root): Fix a warning.
7650 * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
7652 * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
7653 (mono_gc_base_init): Call GC_init ().
7655 * null-gc.c: Define mono_gc_register_root () as a no-op.
7657 * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
7659 2007-12-24 Rodrigo Kumpera <rkumpera@novell.com>
7661 * verify.c: add prototype for merge_stacks at top
7663 * verify.c (do_switch): added.
7665 * verify.c (merge_stacks): on some cases the stack merging
7666 was not happening properly. Unequal stack sizes at merge
7667 points should be invalid.
7669 * verify.c (mono_method_verify): added more debug info on stack state.
7670 verify switch properly.
7672 2007-12-24 Zoltan Varga <vargaz@gmail.com>
7674 * method-builder.h: New file, moved the mono_mb_ declarations here from
7677 * boehm-gc.c marshal.c: Include method-builder.h.
7679 * marshal.c: Use mono_mb_emit_branch_label () in a few places.
7681 * marshal.c: Remove some code which is now in method-builder.c.
7683 2007-12-23 Zoltan Varga <vargaz@gmail.com>
7685 * method-builder.c: New file, extraction of the method builder functionality
7688 * marshal.c: Move the mb functions into method-builder.c.
7690 * marshal.h marshal.c: Export some mono_mb_... functions.
7692 * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
7694 * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
7697 * class.c (mono_class_get_full): Check the token type in the dynamic case.
7699 * loader.c (mono_field_from_token): Ditto.
7701 * loader.c (mono_get_method_from_token): Change the check so it checks memberref
7704 * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
7707 * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
7708 a helper function for setting it.
7710 * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
7713 * assembly.c: Significally simplify code now that referenced assemblies are
7714 loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
7716 * threads.h: Don't include the internal threads-types.h header file. Fixes
7719 2007-12-21 Rodrigo Kumpera <rkumpera@novell.com>
7721 * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
7722 instructions that were target of branches or are at protected block boundaries.
7724 * verify.c (in_same_block): handle filter clauses.
7726 * verify.c (is_valid_branch_instruction): added. checks the target of
7727 instructions br or brtrue/false.
7729 * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
7730 binary branch instructions such as beq and bge.
7732 * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
7733 and made it pin the instruction as been part of the exception block.
7735 * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
7738 * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
7741 * verify.c (do_ret): ret from a protected block is unverifiable and
7744 * verify.c (do_static_branch): verify br and br.s instructions.
7746 * verify.c (merge_stacks): add extra param to support detection
7747 of branches in the middle of instructions.
7749 * verify.c (mono_method_verify): verify branches and exception blocks
7750 that target the middle of instructions. Proper verification of br and br.s.
7752 2007-12-21 Zoltan Varga <vargaz@gmail.com>
7754 * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
7755 skip_visibility field.
7756 (reflection_methodbuilder_from_dynamic_method): Ditto.
7758 * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
7759 registrations. Fixes #348193.
7761 * threads.h: Move the internal mono_thread_get_pending_exception () to
7762 threads-types.h and rename it to mono_thread_get_undeniable_exception ().
7764 2007-12-20 Zoltan Varga <vargaz@gmail.com>
7766 * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
7767 icall registration. Fixes #348193.
7769 * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
7770 for corlib classes into object. Fixes #349621.
7772 2007-12-20 Gert Driesen <drieseng@users.sourceforge.net>
7774 * icall.c (property_accessor_nonpublic): new function to determine
7775 whether an accessor allows a property to be considered non-public.
7776 Returns false for private accessor(s) from parent class, and internal
7777 accessor(s) from parent on 2.0 profile (and higher).
7778 (ves_icall_Type_GetPropertiesByName): Use newly introduced function
7779 to determine whether property should be included if NonPublic flag
7780 is set. Fixes bug #349078.
7782 2007-12-20 Rodrigo Kumpera <rkumpera@novell.com>
7784 * verify.c (init_stack_with_value): added.
7786 * verify.c (mono_method_verify): extracted common
7787 code for exception initialization into init_stack_with_value.
7789 * verify.c (mono_method_verify): initialize the exception
7790 for handler clauses as well.
7792 * verify.c (mono_method_verify): fix the exception clause
7793 ordering rules, it should use handler end offset and not
7796 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
7798 * rawbuffer.c: remove useless warning.
7800 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
7802 * threads.h, threads-types.h: move functions to the correct header
7805 2007-12-19 Rodrigo Kumpera <rkumpera@novell.com>
7807 * verify.c (mono_method_verify): proper verification
7808 of exception handling clauses ranges and fallthru in
7809 and out of protected blocks.
7811 2007-12-19 Rodrigo Kumpera <rkumpera@novell.com>
7813 * verify.c (mono_method_verify): fixed compilation issue.
7815 2007-12-19 Rodrigo Kumpera <rkumpera@novell.com>
7817 * verify.c (mono_method_verify): a printf slipped in, changed
7818 to use verifier debug macro.
7820 2007-12-18 Rodrigo Kumpera <rkumpera@novell.com>
7822 * verify.c (is_correct_leave): check for filter clauses.
7824 * verify.c (do_filter): added.
7826 * verify.c (mono_method_verify): property verification of leave.
7829 2007-12-18 Mark Probst <mark.probst@gmail.com>
7831 * threads.c: Disable calls to _wapi_thread_signal_self() to fix
7832 Win32 build, until we figure out how to do the proper thing on
7835 2007-12-17 Zoltan Varga <vargaz@gmail.com>
7837 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
7838 by the previous patch.
7840 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
7841 the assembly resolve handler for refonly assemblies.
7843 2007-12-17 Mark Probst <mark.probst@gmail.com>
7845 * threads.c, thread-types.h, icall.c: New shutdown safeguards.
7846 Make sure only one thread is allowed to commence shutdown, and
7847 don't allow new threads to be started once shutdown is in
7850 2007-12-14 Rodrigo Kumpera <rkumpera@novell.com>
7852 * verify.c (is_correct_endfilter): added.
7854 * verify.c (is_unverifiable_endfilter): added.
7856 * verify.c (do_endfilter): added.
7858 * verify.c (mono_method_verify): property verification of endfilter
7859 and fixed a corner case or endfinally.
7861 2007-12-13 Rodrigo Kumpera <rkumpera@novell.com>
7863 * verify.h: new flags to support fail fast of unverifiable code and
7864 do non-strict verification. Non-strict verification is required to
7865 have MS runtime compatibility. There are a huge amount of unverifiable
7866 code that it accepts as verifiable. The strict mode verifies the code
7868 Non-strict mode will be required in cases where code needs to be
7869 accepted as verifiable but fails under strict mode.
7871 * pedump.c: added support to fail fast and non-strict verification.
7873 * verify.c: added support for both fail fast and non-strict verification.
7875 2007-12-12 Rodrigo Kumpera <rkumpera@novell.com>
7877 * verify.c (is_correct_endfinally): added.
7879 * verify.c (mono_method_verify): property verification of endfinally.
7881 2007-12-11 Rodrigo Kumpera <rkumpera@novell.com>
7883 * verify.c (in_any_block): check for filter clauses.
7885 * verify.c (is_correct_rethrow): added.
7887 * verify.c (mono_method_verify): property verification of rethrow.
7889 * metadata.h: added MONO_OFFSET_IN_FILTER macro.
7891 2007-12-11 Rodrigo Kumpera <rkumpera@novell.com>
7893 * verify.c (do_throw): added.
7895 * verify.c (mono_method_verify): property verification of throw
7897 2007-12-11 Zoltan Varga <vargaz@gmail.com>
7899 * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
7900 assemblies. Fixes #346425.
7902 2007-12-10 Zoltan Varga <vargaz@gmail.com>
7904 * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
7907 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
7909 * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
7910 prevent asserts when this is called with a token which might not be valid.
7912 * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
7913 lookup_dynamic_token_class with valid_token == FALSE.
7915 * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
7917 * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
7919 * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
7921 2007-12-10 Mark Probst <mark.probst@gmail.com>
7923 * gc.c: Don't delay threadpool thread finalization unless Mono is
7926 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
7928 * threads.c: turn an assert into a non-fatal warning.
7930 2007-12-09 Robert Jordan <robertj@gmx.net>
7932 * icall.c (GetVirtualMethod): Add missing argument validation.
7934 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
7936 * verify.c (do_cast): added.
7938 * verify.c (mono_method_verify): property verification of castclass and isinst.
7941 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
7943 * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
7945 * verify.c (do_stelem): added.
7947 * verify.c (mono_method_verify): property verification of stelem.X.
7949 2007-12-07 Mark Probst <mark.probst@gmail.com>
7951 * class.c, class-internals.h: Introduce an environment variable
7952 (MONO_GENERIC_SHARING) through which the extent of generic code
7953 sharing can be controlled (share all classes, share only corlib
7954 classes, or share nothing).
7956 * object.c: Only create runtime generic context for classes for
7957 which sharing is enabled.
7959 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
7961 * verify.c (do_ldelem): refactor it to work with ldelem.any.
7963 * verify.c (mono_method_verify): property verification of ldelem.any.
7965 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
7967 * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
7968 added ldelem.X opcodes.
7970 * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
7972 * verify.c: proper verification of ldelem.X
7974 2007-12-06 Zoltan Varga <vargaz@gmail.com>
7976 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
7978 2007-12-05 Rodrigo Kumpera <rkumpera@novell.com>
7980 * verify.c (mono_method_verify): null literal requires special handling,
7981 the value pushed on stack need to be flagged as so.
7983 * verify.c (do_ldelema): Verify ldelema properly.
7985 2007-12-05 Rodrigo Kumpera <rkumpera@novell.com>
7987 * verify.c: Verify ldlen properly.
7989 2007-12-05 Zoltan Varga <vargaz@gmail.com>
7991 * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
7992 to the target object's type. Fixes #346160.
7994 2007-12-05 Dick Porter <dick@ximian.com>
7996 * threadpool.c (socket_io_add_poll): Asynchronous connect() on
7997 Solaris needs the same workaround as BSD-derived systems. Fixes
7998 bug 323524, patch by Burkhard Linke
7999 <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
8001 2007-12-04 Gert Driesen <drieseng@users.sourceforge.net>
8003 * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
8004 handle to use when error dialog is shown; otherwise, update mask
8005 to show no error dialog when an error occurs.
8007 2007-12-03 Zoltan Varga <vargaz@gmail.com>
8009 * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
8011 * class.c (mono_class_get_field_default_value): New helper function to initialize
8012 field->def_type and field->data.
8014 2007-11-30 Zoltan Varga <vargaz@gmail.com>
8016 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
8019 * object.c (mono_runtime_create_delegate_trampoline): New helper function.
8021 * marshal.c: Avoid depending on delegate->method_info being set.
8023 * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
8025 * object.c (mono_delegate_ctor): Set delegate->method.
8027 * object-internals.h (struct _MonoDelegate): Add 'method' field.
8029 * appdomain.c: Bump corlib version.
8031 2007-11-27 Raja R Harinath <harinath@gmail.com>
8033 * metadata.c (mono_generic_inst_equal_full): Short-circuit
8034 equality check if we're comparing canonicalized MonoGenericInsts.
8036 2007-11-23 Zoltan Varga <vargaz@gmail.com>
8038 * class.c (generic_array_methods): Call mono_class_setup_methods () before
8039 accessing class->methods.
8041 2007-11-22 Dick Porter <dick@ximian.com>
8043 * threads.c: Ensure that the synch_cs is set before trying to use
8046 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
8048 * profiler.c: r89126 broke the statistial profiler, unbreak.
8050 2007-11-22 Martin Baulig <martin@ximian.com>
8052 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
8055 (mono_debug_debugger_version): Bump to 3.
8056 (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
8057 -> mono_debugger_class_initialized().
8059 * mono-debug-debugger.c
8060 (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
8063 (mono_debugger_start_class_init_func): Removed.
8064 (mono_debugger_class_loaded_methods_func): Added.
8065 (mono_class_setup_methods): Call it here.
8067 2007-11-22 Martin Baulig <martin@ximian.com>
8070 (mono_debug_add_delegate_trampoline): New public method.
8071 (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
8074 (MonoSymbolTable): Added `global_data_table'.
8075 (MonoDebuggerTypeKind): Removed.
8077 2007-11-21 Zoltan Varga <vargaz@gmail.com>
8079 * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
8082 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8084 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
8086 * object.c: some fields don't have a valid rva: ignore them (bug #343083).
8088 2007-11-20 Martin Baulig <martin@ximian.com>
8090 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
8092 * mono-debug-debugger.c
8093 (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
8094 (mono_debugger_remove_breakpoint): Likewise.
8095 (mono_debugger_check_breakpoints): Likewise.
8096 (mono_debugger_register_class_init_callback): New public method.
8097 (mono_debugger_remove_class_init_callback): Likewise.
8098 (mono_debugger_add_type): Likewise.
8100 * mono-debug-debugger.h
8101 (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
8103 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
8105 * class.c: more interface implementations needed for the
8106 array enumerator (fixes bug #341112).
8108 2007-11-18 Gert Driesen <drieseng@users.sourceforge.net>
8110 * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
8111 fix ParamName of ArgumentNullExceptions.
8113 2007-11-17 Miguel de Icaza <miguel@novell.com>
8115 * reflection.c (mono_reflection_encode_sighelper): Generate the
8116 modopts and modreqs. I have a useless test that crashes monodis,
8117 but that shows the code working.
8119 2007-11-17 Zoltan Varga <vargaz@gmail.com>
8121 * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
8122 (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
8124 2007-11-15 Dick Porter <dick@ximian.com>
8126 * threads.c (ves_icall_System_Threading_Thread_Join_internal):
8127 When joining a thread, it's the thread that's calling Join that
8128 gets WaitSleepJoin state not the target. Fixes the standalone
8129 test case in bug 334740, and hopefully the whole bug too.
8131 2007-11-15 Dick Porter <dick@ximian.com>
8133 * process.c: Read file version info from the files pointed at by
8134 process modules, not the current process. Fixes bug 315969.
8136 Use windows typedef names in some places to fix warnings on the
8139 2007-11-15 Mark Probst <mark.probst@gmail.com>
8141 * image.c, metadata-internals.h: Added a generic_class_cache hash
8142 to MonoImage for looking up generic classes when sharing generics.
8144 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
8146 * sgen-gc.c: warning cleanups.
8148 2007-11-15 Zoltan Varga <vargaz@gmail.com>
8150 * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
8151 inherited properties.
8153 2007-11-14 Mark Probst <mark.probst@gmail.com>
8155 * object.c, class-internals.h: Added more information to the
8156 runtime generic context.
8158 2007-11-13 Zoltan Varga <vargaz@gmail.com>
8160 * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
8161 instead of just the target method. Generalize the abstract method handling to
8162 handle any non-static method.
8164 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
8165 mono_marshal_get_delegate_invoke () signature change.
8167 2007-11-13 Mark Probst <mark.probst@gmail.com>
8169 * class.c, class-internals.h: Made
8170 mono_type_get_basic_type_from_generic () public. Fixed member
8171 access check for shared generics.
8173 * loader.c: Don't insert field into field cache if it's part of a
8174 non-inflated generic class.
8176 * domain.c, domain-internals.h: The generic sharing context is now
8177 part of the jit info data structure. Added two accessor
8180 2007-11-12 Zoltan Varga <vargaz@gmail.com>
8182 * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
8183 the array Get/Set/Address methods, since the JIT inlines them.
8185 * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
8187 * image.c (mono_image_close): Free runtime_invoke_direct_cache.
8188 (mono_image_init): Initialize runtime_invoke_direct_cache.
8190 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
8191 mono_marshal_get_delegate_invoke signature change.
8193 * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
8194 an additional argument. Add support for invoking abstract methods.
8196 * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
8198 * image.c (mono_image_close): Free delegate_abstract_invoke_cache.
8200 2007-11-09 Mark Probst <mark.probst@gmail.com>
8202 * class.c: Do field layout for open generic classes as well.
8204 2007-11-09 Mark Probst <mark.probst@gmail.com>
8206 * gc.c, gc-internal.h: Don't finalize threadpool threads with
8207 other objects, because the threadpool is still around. Put them
8208 in a list instead and after finalizing all other objects in the
8209 root domain shut down the thread pool and then finalize the
8210 threads. Fixes bug #337383.
8212 * threads.c, thread-types.h: New mono_thread_create_internal()
8213 function for marking a thread with the threadpool flag before it
8214 started. Set synch_cs to NULL after freeing it.
8216 * threadpool.c: Mark threadpool threads before they start.
8218 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
8220 * reflection.h, reflection.c: don't export random functions
8221 and lazy load dbnull and missing objects.
8223 2007-11-07 Jonathan Chambers <joncham@gmail.com>
8225 * class.c: Initialize COM types if COM interfaces
8226 are present (not just COM classes).
8228 Code is contributed under MIT/X11 license.
8230 2007-11-07 Massimiliano Mantione <massi@ximian.com>
8232 create_dynamic_mono_image: hook module profiler events (dynamic case).
8233 mono_image_basic_init: hook assembly profiler events (dynamic case).
8235 2007-11-07 Massimiliano Mantione <massi@ximian.com>
8237 simple_appdomain_unload: completely terminate the profiler
8238 instead of only processing the statistical samples.
8239 simple_shutdown: make sure this is really called exactly once,
8240 even in multithreaded applications, and always listen to
8242 * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
8243 here, the "[un]load" functions will do it.
8244 Fixes bugs #333791 and #325261.
8246 2007-11-07 Geoff Norton <gnorton@novell.com>
8248 * socket-io.c: Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
8249 rather than depend on __APPLE__.
8251 2007-11-07 Mark Probst <mark.probst@gmail.com>
8253 * icall.c: Safety checks in InitializeArray. Fixes bug #324535.
8255 2007-11-06 Sebastien Pouliot <sebastien@ximian.com>
8257 * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
8258 UTF16 MonoString. Fix the crash from bug #335488
8260 2007-11-06 Sebastien Pouliot <sebastien@ximian.com>
8262 * marshal.c: Correct (for non-Win32 OS) length != size in
8263 mono_string_from_bstr. Fix #339530.
8265 2007-11-06 Geoff Norton <gnorton@novell.com>
8267 * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
8270 2007-11-05 Kornél Pál <kornelpal@gmail.com>
8272 * process.c: Added run-time GetProcessId API detection for Windows.
8274 2007-11-04 Miguel de Icaza <miguel@novell.com>
8276 * reflection.c (mono_param_get_objects): If a parameter has the
8277 attribute [System.Runtime.InteropServices.Optional] we should
8278 set the DefaultValue of the ParameterInfo to be
8279 System.Reflection.Missing instead of DBNull.
8283 (mono_get_reflection_missing_object): New method,
8284 returns the System.Reflection.Missing.Value singleton instance.
8286 2007-11-03 Atsushi Enomoto <atsushi@ximian.com>
8288 * culture-info-table.h : regenerated.
8290 2007-11-02 Jonathan Chambers <joncham@gmail.com>
8292 * icall.c: Use GetEnvironmentStrings on windows
8293 so we are using the same environment block as
8294 GetEnvironmentVariable/SetEnvironmentVariable. Fixes
8297 Code is contributed under MIT/X11 license.
8299 2007-10-31 Martin Baulig <martin@ximian.com>
8301 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
8303 * mono-debug-debugger.h
8304 (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
8306 2007-10-30 Zoltan Varga <vargaz@gmail.com>
8308 * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated
8311 2007-10-30 Atsushi Enomoto <atsushi@ximian.com>
8313 * culture-info-table.h : regenerated.
8315 2007-10-30 Robert Jordan <robertj@gmx.net>
8317 * icall-def.h, icall.c:
8318 Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
8320 Code is contributed under MIT/X11 license.
8322 2007-10-29 Zoltan Varga <vargaz@gmail.com>
8324 * class.c (mono_class_setup_vtable): Find the inflated methods in the
8325 inflated class instead of inflating them again.
8327 * class.c (mono_class_setup_vtable): Inflate the override methods in the
8330 * class.c (mono_generic_class_get_class): Set klass->property.count as well.
8331 Call setup_supertypes () after klass->parent is set.
8332 (mono_class_setup_properties): Enable this to work on dynamic generic classes.
8334 * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
8335 for inflated instances of not yet created dynamic generic classes.
8336 (ctorbuilder_to_mono_method): Handle the case when this is called multiple
8337 times from inflated_method.
8338 (methodbuilder_to_mono_method): Ditto.
8340 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
8342 * gc.c: code cleanup and removed old untested option of not creating the
8345 2007-10-29 Zoltan Varga <vargaz@gmail.com>
8347 * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
8348 creating a jump trampoline for dynamic methods.
8350 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
8352 * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
8353 generic TypeBuilders when called from another method of the same type (bug #335131).
8356 2007-10-27 Zoltan Varga <vargaz@gmail.com>
8358 * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
8359 doesn't seem to work perfectly.
8361 * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
8362 called multiple times.
8363 (methodbuilder_to_mono_method): Ditto.
8364 (resolve_object): Inflate FieldBuilder's.
8366 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
8368 * string-icalls.c, string-icalls.h, appdomain.c: patch from
8369 Tyler Larson <mono-devel@tlarson.com> to fix the handling of
8370 RemoveEmptyEntries in the string.Split implementation (bug #322375).
8372 2007-10-26 Dick Porter <dick@ximian.com>
8374 * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
8375 Thread initialisation changes
8377 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
8379 * verify.c: fix compatibility check between arrays and System.Array
8381 2007-10-26 Zoltan Varga <vargaz@gmail.com>
8383 * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
8386 2007-10-25 Zoltan Varga <vargaz@gmail.com>
8388 * object.c (mono_value_box): Use typed allocation here.
8390 2007-10-23 Zoltan Varga <vargaz@gmail.com>
8392 * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
8393 trampoline instead of compiling the method right away.
8395 * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
8397 2007-10-21 Zoltan Varga <vargaz@gmail.com>
8399 * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
8400 related fields for dynamic classes. Fixes #334493.
8402 2007-10-20 Zoltan Varga <vargaz@gmail.com>
8404 * class.c (mono_generic_class_get_class): Set klass->field.count as well.
8406 * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
8408 * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
8409 (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
8411 * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
8413 * reflection.c (create_generic_typespec): Initialize klass->generic_container
8415 (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
8417 2007-10-18 Jonathan Chambers <joncham@gmail.com>
8419 * marshal.c: Use correct key when removing item
8422 Code is contributed under MIT/X11 license.
8424 2007-10-17 William Holmes <billholmes54@gmail.com>
8426 *marshal.c: Adding a case to marshal booleans to U1
8428 Code is contributed under MIT/X11 license.
8430 2007-10-18 Zoltan Varga <vargaz@gmail.com>
8432 * class.c (mono_class_from_name): Search the modules compromising dynamic
8433 assemblies. Fixes #331601.
8435 2007-10-16 Zoltan Varga <vargaz@gmail.com>
8437 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
8438 exception if the type name contains an assembly component. Fixes #334203.
8440 * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
8441 modules inside dynamic assemblies. Fixes #334200.
8443 * reflection.c: Set image->public_key and image->public_key_length;
8445 * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
8448 * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.
8450 2007-10-16 Mark Probst <mark.probst@gmail.com>
8452 * metadata.c: Implemented correct comparing of generic classes.
8453 An inflated generic class can be equal to a non-inflated one if it
8454 is inflated with generic type variables as type arguments. Fixes
8457 2007-10-15 Dick Porter <dick@ximian.com>
8459 * monitor.c (mono_monitor_try_enter_internal): Set thread state to
8460 WaitSleepJoin while it is waiting to acquire a lock. Fixes bug
8463 * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
8464 instead of a monitor lock. This means that monitor_try_enter and
8465 co can set the thread state safely.
8466 (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
8467 thread_interrupt_requested, so interrupt actually works.
8469 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
8470 ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
8471 state accessor function
8473 2007-10-15 Martin Baulig <martin@ximian.com>
8476 (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
8477 the debugger with the current runtime.
8479 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
8481 * object.c, object-internals.h: added the ability to set a single
8482 trampoline for all the slots in a vtable.
8484 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
8486 * marshal.c: deal with a possible race condition during multicast
8487 delegate invocation.
8489 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
8491 * class.c: ensure value type methods don't have the synchronized
8494 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
8496 * string-icalls.c, string-icalls.h: reverted unapproved patch that
8499 2007-10-11 Joel Reed <joelwreed@comcast.com>
8501 * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
8502 to take an options parameter so that empty entries can be removed during
8503 the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
8505 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
8507 * marshal.c: make sure we don't store the signature from a dynamic
8508 method into the runtime invoke cache (bug #327189).
8510 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
8512 * marshal.c: make sure the wrapper methods are properly initialized.
8514 2007-10-11 Mark Probst <mark.probst@gmail.com>
8516 * metadata.c, metadata-internals.h: Generalized
8517 mono_type_stack_size() to mono_type_stack_size_internal() which
8518 takes an additional argument specifying whether it allows open
8521 2007-10-10 Rodrigo Kumpera <rkumpera@novell.com>
8523 * verify.c (do_invoke_method): handle typedbyref params
8524 correctly and check for unverifiable return values.
8526 * verify.c (do_newobj): fix a warning.
8528 2007-10-09 Rodrigo Kumpera <rkumpera@novell.com>
8530 * verify.c: don't tread typedbyref as allways unverifable,
8531 so uses, like (ld/st)loc.0 are valid. verify for the cases
8532 that it matters, like boxing related operations.
8534 2007-10-09 Rodrigo Kumpera <rkumpera@novell.com>
8536 * verify.c: add verification of the newobj opcode. verification
8537 of delegate instantation still missing due ldftn and virldftn not
8538 pushing the function type on stack
8540 2007-10-08 Mark Probst <mark.probst@gmail.com>
8542 * class-internals.h: Runtime generic context data structure
8545 * object.c: Initialization of runtime generic context at runtime
8546 vtable creation time.
8548 2007-10-08 Massimiliano Mantione <massi@ximian.com>
8549 * class.c (mono_class_create_from_typedef,
8550 mono_class_from_generic_parameter, mono_ptr_class_get,
8551 mono_fnptr_class_get, mono_bounded_array_class_get)
8552 * domain.c (mono_domain_create, mono_domain_free)
8553 * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
8554 * image.c (do_mono_image_load, mono_image_close):
8555 Hooked up load-unload profiler events.
8557 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
8559 * domain.c: track statistics about the actual amount of native code
8562 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
8564 * class.c: the valuetype enumerators don't have the additional
8565 supertypes interfaces.
8567 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
8569 * class.c: need more interfaces setup for the IEnumerator<T>
8570 object created for arrays (tests/ienumerator-interfaces.2.cs).
8572 2007-10-05 Zoltan Varga <vargaz@gmail.com>
8574 * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
8576 2007-10-05 Alp Toker <alp@atoker.com>
8578 * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
8579 rather than the underlying type. Based on a patch by Ben Maurer. Fixes
8582 2007-10-04 Rodrigo Kumpera <rkumpera@novell.com>
8584 * verify.c (verify_type_compatibility_full): verification of
8585 compatibility improved, validates correctly non-strict checks between
8586 native int and I4 types different than (unsigned)int32.
8588 * verify.c (do_store_indirect): added, do all verification of
8591 * verify.c (get_load_indirect_mono_type): renamed to
8592 get_indirect_op_mono_type, as it now returns the MonoType for
8593 ldind.X and stind.X opcodes.
8595 2007-10-04 Rodrigo Kumpera <rkumpera@novell.com>
8597 * reflection.c: Fix the encoding of generic type definition for
8600 * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
8601 mono_image_typedef_or_ref but allows to specify if typespec lookups should
8602 be made. Typespec check is done prior to typeref cache lookup.
8604 * reflection.c (mono_image_typedef_or_ref): now just delegate to
8605 mono_image_typedef_or_ref_full.
8607 * reflection.c (encode_generic_class): encode the generic class
8608 directly instead of calling encode_type.
8610 * reflection.c (encode_type): encode the generic type definition
8611 MonoClass as a generic instantiation.
8613 * reflection.c (create_typespec): cache typespec tokens in
8614 the assembly->typespec cache. Don't create typespec for a generic
8615 instance MonoClass. Create typespec for the generic type defintion.
8617 * reflection.c (create_generic_typespec): encode the generic
8618 class directly instead of calling encode_type.
8620 * reflection.c (mono_image_create_token): encode the generic
8621 type definition not using a typespec for MonoType instances.
8624 2007-10-04 Raja R Harinath <rharinath@novell.com>
8627 * class.c (mono_image_init_name_cache): Don't return nested
8628 'protected internal' classes.
8629 (mono_class_from_name_case): Likewise.
8631 2007-10-04 Atsushi Enomoto <atsushi@ximian.com>
8633 * icall-def.h, icall.c : get_bundled_machine_config() is now the
8634 common function used by both DefaultConfig in System.dll and
8635 InternalConfigurationHost in System.Configuration.dll.
8637 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
8639 * class.c: automatically add to vectors only a few essential explicit
8640 generic interfaces. The rest of the interfaces that arrays should
8641 provide are currently implicitly added (but still not lazily, see the
8642 design in the discussion of bug#325495 for the details of what is
8643 needed for that). Additionally, implicit interfaces are assigned the
8644 same vtable slot as the explicit interfaces (as they are compatible):
8645 this enables huge memory savings since we don't need to instantiate
8646 as many memthods and as large vtables anymore. Also, Since
8647 GetEnumerator<T> returns an instance of a type that is required to
8648 support a similarly large set of interfaces as arrays, we add
8649 implicit interfaces and interface offset sharing support to those
8650 types, too. This change adds all the required interfaces so that
8651 the anonarray.cs test case in the bug report works (we don't add
8652 all the interfaces to arrays of arrays 3-level deep and more because
8653 of the memory requirements explained in the bug and since they are much
8654 less common: the lazy-loading support will enabled them to work, too).
8656 2007-10-02 Rodrigo Kumpera <rkumpera@novell.com>
8658 * verify.c (merge_stacks): major clean up, all type compatibility
8659 checks are done by verify_type_compatibility. This fix my earlier lack
8660 of understanding of the CLR type system and merge_stacks no longer looks
8663 * verify.c: fixed some bad spelling.
8665 2007-10-02 Rodrigo Kumpera <rkumpera@novell.com>
8667 * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
8668 a given stack slock.
8670 * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
8671 verify_type_compatibility_full. This removed a near indentical function and fixed
8672 handling of Int32 and IntPtr across all opcodes.
8674 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
8676 * class.c: only vectors have the additional generic interfaces.
8678 2007-10-01 Jonathan Chambers <joncham@gmail.com>
8680 * mono-config.c: Use g_strcasecmp instead of
8681 strcasecmp like everywhere else to fix
8682 compilation with MSVC.
8684 Code is contributed under MIT/X11 license.
8686 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
8688 * object.c, object-internals.h: refactored the IMT code to enable
8689 building a single slot at a time and lazily creating the IMT trampolines
8692 2007-09-29 Zoltan Varga <vargaz@gmail.com>
8694 * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
8696 * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
8699 2007-09-29 Raja R Harinath <harinath@gmail.com>
8701 * loader.c (method_from_methodspec): Rearrange to avoid
8702 un-necessary exposition. Don't assert out if the method's
8703 declaring type is a generic type definition.
8705 2007-09-28 Martin Baulig <martin@ximian.com>
8707 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
8709 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
8711 * class-internals.h: optimize field layout of MonoClass to
8712 requires less cachelines at runtime and save a few bytes on 64 bit
8715 2007-09-28 Jb Evain <jbevain@novell.com>
8717 * reflection.c: when encoding type names in custom attributes,
8718 if the type is a closed generic type, its generic arguments
8719 have to be serialized as AssemblyQualifiedName, so that when
8720 they are deserialized, it's possible to re-create them properly.
8724 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
8726 * object.c, class-internals.h: added delegate-creation counter.
8728 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
8730 * class.c: cleanup of the code that synthetizes interfaces for
8731 arrays in 2.0: saves quit a bit of corlib mempool memory.
8732 Code to fix bug #325495 ifdeffed out for now until the issues
8733 with memory usage and O(n^2) behaviour are fixed.
8735 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
8737 * marshal.c: when possible, do not duplicate the name of the methods
8738 in the method builder and in the generated MonoMethod.
8740 2007-09-27 Rodrigo Kumpera <rkumpera@novell.com>
8741 * verify.c: added support for type checking ldind_* opcodes.
8743 2007-09-27 Rodrigo Kumpera <rkumpera@novell.com>
8745 * class-internals.h (struct _MonoGenericClass): new field is_tb_open
8746 which is used to distinguish the fully open instantiation of a TypeBuilder
8747 with the rest. This temporary hack is required to restore the property that
8748 the fully open instantiation is the same type of the generic type definition.
8750 * class-internals.h (mono_generic_class_is_generic_type_definition):
8751 new function as part of the internal API.
8753 * class.c (inflate_generic_type): return NULL when the generic inst is
8754 fully open. The fully open generic type is now the same as the generic type
8755 definition for non TypeBuilder types.
8757 * class.c (mono_generic_class_get_class): removed assert since it is
8758 no longer valid, gklass->cached_class can point to the generic type definition.
8760 * class.c (mono_generic_class_is_generic_type_definition): new.
8762 * metadata.c (mono_generic_class_hash): added is_tb_open field
8763 to the hash calculation.
8765 * metadata.c (free_generic_class): if the generic class is associated
8766 with the generic type definition, its field will come from the mempool and
8769 * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
8770 new, this function identifies the corner case of a TypeBuilder fully open
8773 * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
8774 for lookup. Set gclass->cached_class to be the container class in case of
8775 the fully open instantiation of non TypeBuilder types.
8777 * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
8778 to compare generic classes.
8780 * reflection.c (method_encode_methodspec): remove assert that
8783 * reflection.c (mono_reflection_generic_class_initialize): add
8784 an aditional assert to ensure the proper type is used.
8786 2007-09-26 Rodrigo Kumpera <rkumpera@novell.com>
8788 * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
8791 2007-09-25 Rodrigo Kumpera <rkumpera@novell.com>
8793 * verify.c (push_arg): Fixed support for ldarga
8794 * verify.c (set_stack_value): Removed superfluous parameter, fixed the
8795 MonoType used as first arg in case of instance calls.
8797 2007-09-25 Rodrigo Kumpera <rkumpera@novell.com>
8799 * verify.c: Support for verifying VAR and MVAR types,
8801 2007-09-25 Zoltan Varga <vargaz@gmail.com>
8803 * icall.c (ves_icall_get_property_info): Set the reflected type of the
8804 accessors correctly.
8806 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
8808 * threads.c: support OSX and other systems in
8809 mono_thread_get_stack_bounds (bug #328026).
8811 2007-09-25 Martin Baulig <martin@ximian.com>
8814 (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
8816 2007-09-24 Martin Baulig <martin@ximian.com>
8819 (MonoDebugClassEntry): Moved the definition of this struct into
8820 mono-debug.c to make it private.
8823 (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
8824 type table per symbol file, we don't need to store the symfile id
8827 2007-09-24 Martin Baulig <martin@ximian.com>
8829 Create one type table per symbol file, since a `MonoClass *' gets
8830 invalid when its image is unloaded.
8832 * mono-debug.h (MonoSymbolTable): Removed `type_table'.
8833 (MonoDebugHandle): Added `type_table'.
8835 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
8837 * mempool.c, mempool.h: added mono_mempool_new_size () API
8838 to be able to specify a smaller initial size for the pool.
8839 Adjusted the code to slowly increase pool size before using
8840 the previous default size.
8841 * image.c: use a small initial size for image mempools.
8843 2007-09-23 Zoltan Varga <vargaz@gmail.com>
8845 * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
8848 * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal):
8849 Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
8851 2007-09-22 Zoltan Varga <vargaz@gmail.com>
8853 * metadata.c (mono_type_create_from_typespec): Remove an invalid
8854 free. Fixes #327438.
8856 2007-09-21 Raja R Harinath <harinath@gmail.com>
8858 * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
8859 generic instantiations, etc.
8860 <MONO_TYPE_ARRAY>: Likewise.
8862 2007-09-21 Martin Baulig <martin@ximian.com>
8864 * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
8865 these structs were never defined.
8866 (MonoDebugHandle): Removed the `_priv' field, it was never used.
8868 2007-09-21 Martin Baulig <martin@ximian.com>
8870 * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
8872 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
8874 * image.c: removed the guid hash tables: we can get the same info
8875 without the additional memory usage hit (partially fixes also bug #327052).
8877 2007-09-10 Massimiliano Mantione <massi@ximian.com>
8879 * profiler.h, profiler-private.h, profiler.c: add a new profiler
8880 event to handle unloading methods. After the event is called, the
8881 corresponding MonoMethod* must be considered invalid.
8882 * loader.c (mono_free_method): call the new mono_profiler_method_free
8885 2007-09-20 Mark Probst <mark.probst@gmail.com>
8887 * domain-internals.h: New flag in MonoJitInfo which marks shared
8888 generic methods. New hash table (shared_generics_hash) in
8889 MonoDomain to keep track of shared generic methods. Prototypes
8890 for functions to register and lookup shared generic methods.
8892 * domain.c: Support for registering and looking up shared generic
8893 methods via a hash table (shared_generics_hash) in MonoDomain.
8895 * class-internals.h: New exception to signal failure of shared
8896 compilation of a generic method. New counters for generics
8897 sharing in MonoStats.
8899 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
8901 * image.c, metadata-internals.h: don't keep a file descriptor open
8902 for loaded assemblies (bug#325988).
8904 2007-09-19 Raja R Harinath <rharinath@novell.com>
8906 * metadata.c (signature_in_image): New. Carve out of type_in_image.
8907 (ginst_in_image, gclass_in_image): Simplify. Change signature to
8908 use the corresponding datatypes.
8909 (type_in_image): Update to changes.
8910 (CleanForImageUserData): Simplify.
8911 (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
8912 Avoid quadratic behaviour in handling the "stolen" list by
8913 separating the filter predicate out, and by prepending the stolen
8914 items rather than appending them.
8915 (steal_ginst_in_image): Likewise.
8916 (mono_metadata_clean_for_image): Update to changes.
8918 2007-09-19 Martin Baulig <martin@ximian.com>
8920 * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
8922 2007-09-19 Martin Baulig <martin@ximian.com>
8924 * mono-debug.c (mono_debug_cleanup): Don't call
8925 mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
8927 2007-09-19 Raja R Harinath <harinath@gmail.com>
8929 Fix crash on 'make run-test' in mcs/errors
8930 * metadata.c (type_in_image): New. Carve out of ginst_in_image.
8931 Avoid more potential allocations in mono_class_from_mono_type.
8932 (ginst_in_image): Update to changes.
8933 (gclass_in_image): Rearrange slightly.
8935 2007-09-18 Zoltan Varga <vargaz@gmail.com>
8937 * class.c (mono_class_init): Move the code that sets up class->methods to
8938 mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
8940 * metadata.c (mono_metadata_get_inflated_signature): New function to return a
8941 canonical instance of an inflated generic signature.
8942 (mono_type_create_from_typespec): Remove an invalid free.
8944 * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.
8946 2007-09-18 Marek Habersack <mhabersack@novell.com>
8948 * domain-internals.h: added a declaration of the
8949 mono_assembly_load_full_nosearch internal function.
8951 * assembly.c (mono_assembly_load_with_partial_name): use
8952 mono_try_assembly_resolve return value properly.
8953 (mono_assembly_load_full_nosearch): copied the function body from
8954 mono_assembly_load_full, without the code to invoke assembly
8956 (mono_assembly_load_full): calls the above new function and if the
8957 assembly is not resolved, invokes the search hooks.
8959 * appdomain.c (mono_runtime_init): restore the global postload
8960 assembly search handlers.
8962 2007-09-18 Zoltan Varga <vargaz@gmail.com>
8964 * class.c (mono_class_init): Make sure class->methods and class->properties
8965 are never NULL in the generics case.
8967 * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
8969 2007-09-17 Zoltan Varga <vargaz@gmail.com>
8971 * metadata.c (free_generic_class): Disable some code to fix the build.
8973 * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
8975 * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
8976 from the image mempool.
8978 * metadata.c (free_generic_class): Free more data from the inflated class.
8980 * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
8982 * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
8984 (mono_type_create_from_typespec): Ditto.
8986 * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
8987 MonoImage to the caller.
8988 (mono_init_internal): Save the opened image in a global variable.
8989 (mono_cleanup): Close the image opened in get_runtimes_from_exe.
8991 * reflection.c (resolve_object): Fix a leak.
8993 * metadata.c: Fix the freeing of data in the generics caches.
8995 * metadata.c (free_generic_inst): Comment this out to fix the build.
8996 (free_generic_class): Ditto.
8998 * metadata.c: Free cached generic methods, instantinations and classes when
8999 they are removed from the caches.
9000 (mono_metadata_free_type): Free the type itself.
9002 * class.c: Free the result of mono_class_inflate_generic_type () in a few
9005 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
9007 * boehm-gc.c: restrict managed allocs to __thread supporting
9010 2007-09-16 Zoltan Varga <vargaz@gmail.com>
9012 * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
9013 (mono_generic_class_get_class): Fix a leak.
9015 * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
9016 mono_metadata_free_type ().
9017 (mono_metadata_inflate_generic_inst): Fix a leak.
9019 2007-09-14 Zoltan Varga <vargaz@gmail.com>
9021 * mono-debug.c (free_header_data): Fix a leak missed earlier.
9023 * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
9026 * mono-debug.c (mono_debug_close_image): Fix call to
9027 g_hash_table_remove ().
9029 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
9031 * icall-def.h: redirect all the string ctor to the managed
9032 CreateString () methods.
9033 * string-icalls.c, string-icalls.h: removed dead code for string
9036 2007-09-14 Zoltan Varga <vargaz@gmail.com>
9038 * mono-debug.c: Fix memory leaks.
9040 2007-09-14 Jonathan Chambers <joncham@gmail.com>
9042 * threads-types.h: Implement mono_hazard_pointer_set and
9043 mono_hazard_pointer_clear macros using do/while(0) to fix
9044 compilation with MSVC.
9046 Code is contributed under MIT/X11 license.
9048 2007-09-14 Zoltan Varga <vargaz@gmail.com>
9050 * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
9051 -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
9053 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
9055 * icall-def.h, string-icalls.c: get rid of old, no longer used, string
9058 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
9060 * boehm-gc.c, gc-internal.h, object.c: allow strings to be
9061 managed-code allocated as well.
9063 2007-09-13 Zoltan Varga <vargaz@gmail.com>
9065 * class.c (mono_class_is_assignable_from): Add support for generic variance.
9067 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
9069 * boehm-gc.c: fixed the build after the AOT changes.
9071 2007-09-13 Zoltan Varga <vargaz@gmail.com>
9073 * wrapper-types.h: Add an ALLOC wrapper type.
9075 * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
9076 reference managed allocator methods.
9078 2007-09-12 Marek Safar <marek.safar@gmail.com>
9080 * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
9081 of Type array and not MonoType, a fix suggested by Hari.
9083 2007-09-12 Jonathan Chambers <joncham@gmail.com>
9085 * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
9086 and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
9088 Code is contributed under MIT/X11 license.
9090 2007-09-10 Massimiliano Mantione <massi@ximian.com>
9092 * domain.c, object.c, mono-config.c, object-internals.h: Fixed #82416.
9094 2007-09-12 Marek Habersack <mhabersack@novell.com>
9096 * image.c (do_mono_image_open): if assembly file fails to open and
9097 MONO_IOMAP is in effect, try to find the path in a
9098 case-insensitive way.
9100 * appdomain.c (mono_runtime_init): do not install postload hooks -
9101 tests show that MS.NET doesn't use anything of that sort to
9102 trigger the AppDomain.AssemblyResolve event.
9103 (mono_try_assembly_resolve): renamed from try_assembly_resolve and
9105 (mono_runtime_init): init portability helpers here.
9107 * assembly.c (mono_assembly_load_with_partial_name): if other
9108 attempts fail, trigger the AppDomain.AssemblyResolve event handler
9109 to resolve the assembly.
9111 * domain-internals.h: added mono_try_assembly_resolve and marked
9114 2007-09-11 Jb Evain <jbevain@novell.com>
9116 * object-internals.h (MonoReflectionDynamicMethod): add
9117 a `MonoReflectionType *owner` field. The owner is used
9119 (mono_reflection_create_dynamic_method): use the owner of the dynamic
9120 method as the class declaring the dynamic method.
9121 (reflection_methodbuilder_from_dynamic_method): copy the owner of the
9122 dynamic method to the declaring type of the methodbuilder.
9124 2007-09-11 Mark Probst <mark.probst@gmail.com>
9126 * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
9127 rules for calling methods via reflection.
9129 2007-09-11 Zoltan Varga <vargaz@gmail.com>
9131 * reflection.c (resolve_object): Add support for MonoGenericClass.
9134 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
9136 * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
9137 provide a managed method that does fast allocations without needing
9138 a managed->unmanaged transition. Boehm GC implementation currently
9139 enabled for ptrfree objects on sane architectures.
9141 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
9143 * marshal.c, marshal.h: exported a couple of useful functions and
9144 added mono_mb_get_label () to easily handle backward branches.
9146 2007-09-10 Zoltan Varga <vargaz@gmail.com>
9148 * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
9150 2007-09-10 Massimiliano Mantione <massi@ximian.com>
9152 * loader.c (find_method): Fixed the regression introduced while
9155 2007-09-09 Zoltan Varga <vargaz@gmail.com>
9157 * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
9160 * class.c loader.c metadata.c object.c class-internals.h object-internals.h
9161 icall.c reflection.c: Pass a MonoGenericContext argument to
9162 mono_lookup_dynamic_token ().
9164 * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
9167 2007-09-09 Robert Jordan <robertj@gmx.net>
9169 * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
9170 for generic methods.
9172 * object.c (mono_object_get_virtual_method): Handle generic methods.
9175 Code is contributed under MIT/X11 license.
9177 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
9179 * image.c: fix locking in mono_image_load_file_for_image ().
9181 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
9183 * reflection.c, icall.c, icall-def.h: the methodinfos name field is
9184 used only as a cache: added an icall to fill it.
9186 2007-09-16 Rodrigo Kumpera <rkumpera@novell.com>
9188 * reflection.h: exposed mono_reflection_free_type_info
9189 * reflection.c (mono_reflection_get_type_internal): type_args is always freed
9190 since mono_reflection_bind_generic_parameters makes a copy of it.
9191 * reflection.c (free_type_info): subinfos should be freed.
9192 * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and
9194 * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
9195 replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
9196 this fixes #82695 and #81726.
9199 2007-09-03 Atsushi Enomoto <atsushi@ximian.com>
9201 * process.h, process.c: added support for user profile/info in
9202 ProcessStartInfo. For now only Windows works.
9204 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
9206 * metadata.c: consider the generic arguments when comparing
9207 signatures (bug #82614).
9209 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
9211 * cil-coff.h, image.c: updated assembly loader to cope with the
9212 PE32+ 64 bit file format.
9214 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
9216 * assembly.c, class.c, domain.c, loader.c: remove useless
9217 inclusion of cil-coff.h.
9219 2007-08-29 Jonathan Chambers <joncham@gmail.com>
9221 * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
9222 if interface is marked with CoClassAttribute.
9224 Code is contributed under MIT/X11 license.
9226 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
9228 * sgen-gc.c: ensure no object from the to space is copied again or finalized
9229 if it's seen twice in major collections.
9231 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
9233 * sgen-gc.c: big objects are not copied to the gray area, but they
9234 need to be considered for scanning, too, if they are brought alive
9235 by an object ready for finalizations or a survived one.
9237 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
9239 * sgen-gc.c: properly account the number of disappearing links when
9242 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
9244 * sgen-gc.c: share the code to scan the registered roots between the
9245 different types of collections.
9247 2007-08-28 Zoltan Varga <vargaz@gmail.com>
9249 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
9251 2007-08-28 Zoltan Varga <vargaz@gmail.com>
9253 * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
9254 class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
9256 2007-08-28 Mark Probst <mark.probst@gmail.com>
9258 * security-manager.c (mono_security_manager_get_methods):
9259 LinkDemandSecurityException now has 2 arguments instead of 3.
9261 2007-08-27 Zoltan Varga <vargaz@gmail.com>
9263 * class.c (mono_class_layout_fields): Only do the struct alignment hack on
9264 platforms which need it.
9266 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
9268 * sgen-gc.c: unregister thread data structures with a pthread_key_t
9271 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
9273 * threads.c: free the thread static data on thread exit.
9275 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
9277 * class.c: walk the hierarchy to find the generic definition for
9278 a class (fixes runtime part of bug #82498).
9280 2007-08-24 Zoltan Varga <vargaz@gmail.com>
9282 * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
9285 * image.c (mono_image_close): Here. Hopefully fixes #82510.
9287 2007-08-24 Mark Probst <mark.probst@gmail.com>
9289 * monodiet.c (handle_cattrs): Fixed a custom attr leak.
9291 2007-08-24 Robert Jordan <robertj@gmx.net>
9293 * appdomain.c: don't perform the ':'->';' substitution on Win32.
9295 2007-08-24 Jb Evain <jbevain@novell.com>
9297 * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
9300 2007-08-24 Mark Probst <mark.probst@gmail.com>
9302 * threads.c: Make sure a thread gets cleaned up only once. Fixes
9305 2007-08-24 Zoltan Varga <vargaz@gmail.com>
9307 * assembly.c: Fix a warning.
9309 2007-08-23 Marek Habersack <mhabersack@novell.com>
9311 * appdomain.c: parse the <runtime> section looking for the probing
9312 element with the 'privatePath' attribute, which sets additional
9313 directories in which the runtime should look for assemblies.
9315 2007-08-23 Robert Jordan <robertj@gmx.net>
9317 * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
9320 2007-08-23 Martin Baulig <martin@ximian.com>
9322 * mono-debug.[ch]: Rename mono_debug_init_corlib() into
9323 _mono_debug_init_corlib() and remove it from the header file.
9325 2007-08-23 Martin Baulig <martin@ximian.com>
9327 * mono-debug-debugger.c
9328 (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
9329 don't notify the debugger about it.
9331 * mono-debug-debugger.h
9332 (MonoDebuggerEvent): Removed `THREAD_ABORT'.
9334 2007-08-23 Robert Jordan <robertj@gmx.net>
9336 * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
9337 Code is contributed under MIT/X11 license.
9339 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
9341 * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
9343 2007-08-22 Martin Baulig <martin@ximian.com>
9345 * mono-debug.c: Store debugging info on a per-domain basis and
9346 free it on domain unload. Add support for unloading symbol files.
9349 (MonoDebugList): New typedef.
9351 - add `data_tables and `type_table'.
9352 - replace 'symbol_files' and `num_symbol_files' with a
9354 (mono_debug_data_table): Removed.
9355 (mono_debug_list_add): New public function.
9356 (mono_debug_list_remove): New public function.
9357 (mono_debug_init_1): Renamed into mono_debug_init_corlib().
9358 (mono_debug_init_2_memory): Renamed into
9359 mono_debug_open_image_from_memory().
9360 (mono_debug_close_image): New public function.
9361 (mono_debug_domain_create): Likewise.
9362 (mono_debug_domain_unload): Likewise.
9363 (MONO_DEBUGGER_VERSION): Bump to 60.
9365 * mono-debug-debugger.h
9366 (MonoDebuggerEvent):
9367 - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
9368 - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
9369 - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
9370 - rename `THREAD_CREATED' and `THREAD_EXITED' into
9371 `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
9372 - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
9374 (mono_debugger_add_symbol_file): Removed.
9375 (mono_debugger_add_type): Removed.
9376 (mono_debugger_lookup_type): Removed.
9377 (mono_debugger_lookup_assembly): Removed.
9380 (mono_domain_create): Call mono_debug_domain_create().
9381 (mono_init_internal): Call mono_debug_init_corlib().
9384 (mono_assembly_close): Call mono_debug_close_image().
9386 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
9388 * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
9391 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
9393 * sgen-gc.c: ensure section->pin_queue_end is initialized
9394 correctly when non pinning objects in the section have been found.
9396 2007-08-22 Marek Habersack <mhabersack@novell.com>
9398 * appdomain.c (set_domain_search_path): cope with PrivateBinPath
9399 containing a list of directories separated by ':'. MSDN docs say
9400 the directories should be separated with ';'. Part of a bugfix for
9403 2007-08-21 Rodrigo Kumpera <rkumpera@novell.com>
9405 * class.c (mono_type_retrieve_from_typespec) : fixed the return type
9406 it should MonoType and not MonoClass.
9408 2007-08-21 Atsushi Enomoto <atsushi@ximian.com>
9410 * culture-info-table.h : regenerated.
9412 2007-08-20 William Holmes <billholmes54@gmail.com>
9414 *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
9415 to call ReplaceFile Kernel32 on windows or in io-layer.
9416 *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
9417 *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
9418 as an internal call.
9420 Code is contributed under MIT/X11 license.
9422 2007-08-20 Jb Evain <jbevain@novell.com>
9424 * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
9425 and MONO_EXCEPTION_FIELD_ACCESS.
9427 * debug-helpers.[c|h]: new mono_field_full_name function.
9429 2007-08-20 Mark Probst <mark.probst@gmail.com>
9431 * class.c: Removed class_security_level() and moved it to
9432 security-core-clr.c.
9434 * security-core-clr.c, security-core-clr.h: class_security_level()
9435 is now public and renamed to mono_security_core_clr_class_level().
9436 It also looks for security attributes in the classes a class is
9439 2007-08-20 Mark Probst <mark.probst@gmail.com>
9441 * security-core-clr.c, security-core-clr.h: CoreCLR security
9444 * Makefile.am: Added security-core-clr.[ch].
9446 * security-manager.c, security-manager.h: Functions and enum for
9447 setting and getting the security mode.
9449 * class.c: CoreCLR security checks.
9451 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
9453 * icall-def.h, process.c, process.h: implemented icall to get
9454 user/system processor times.
9456 2007-08-17 Mark Probst <mark.probst@gmail.com>
9458 * domain.c, threads.c, class-internals.h, domain-internals.h: New
9459 reader-lock-free jit_info_table.
9461 2007-08-17 Zoltan Varga <vargaz@gmail.com>
9463 * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
9465 * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.
9467 * object-internals.h (MonoException): Add missing _data member.
9469 2007-08-08 Massimiliano Mantione <massi@ximian.com>
9471 * loader.c (find_method, find_method_in_class): Fixed bug #81466,
9472 checking that only methods with matching qname or fqname are picked
9473 from implemented interfaces.
9475 2007-08-16 Rodrigo Kumpera <rkumpera@novell.com>
9477 * verify.c (do_newarr):added, do type verification of
9478 newarr ops, push the right value on the eval stack.
9479 * verify.c (mono_method_verify): use do_newarr
9482 2007-08-16 Rodrigo Kumpera <rkumpera@novell.com>
9484 * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
9485 factored the common code into get_boxable_mono_type, which
9486 is now using mono_type_get_full, this fixed byref related tests.
9488 2007-08-16 Rodrigo Kumpera <rkumpera@novell.com>
9490 * class.c: added mono_type_get_full, this function has the same
9491 behavior of mono_class_get_full but the returned MonoType has
9492 all metadata of the associated token in case of a typespec token.
9493 * class.c: added mono_type_retrieve_from_typespec, used by
9494 mono_type_get_full to retrieve the token type.
9495 * class.c (mono_class_create_from_typespec): changed to use
9496 mono_type_retrieve_from_typespec.
9497 * class.c (mono_ldtoken): changed to use mono_type_get_full
9498 for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
9499 * class-internals.h: exported mono_type_get_full for internal use.
9501 2007-08-16 Jb Evain <jbevain@novell.com>
9503 * domain.c (supported_runtimes): add entry for
9504 the 'moonlight' runtime version.
9506 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
9508 * verify.c (mono_method_verify): small typo sliped in.
9510 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
9512 * verify.c (do_unbox_value): added, do type verification of
9514 * verify.c (mono_method_verify): use do_unbox_value
9517 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
9519 * verify.c (dump_stack_value): fixed typo, was printing string
9520 instead of object on stack.
9521 * verify.c (do_box_value): moved the byref check up as it leads
9522 to invalid code and should be done earlier.
9523 * verify.c: improved error messages for and ldobj
9525 2007-08-15 William Holmes <billholmes54@gmail.com>
9527 * marshal.c (emit_marshal_custom): Omit the call to
9528 marshal_native_to_managed when calling native to managed
9529 and the argument is specified as an out argument.
9531 Code is contributed under MIT/X11 license.
9533 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
9535 * verify.c: fixed the type checks for generics, function pointers and vectors.
9536 Added type verification for ldobj and ldtoken. The verifier
9537 would segfault if header or signature of a method contained references
9538 to non-existant types.
9540 2007-08-15 Jonathan Chambers <joncham@gmail.com>
9542 * marshal.c (cominterop_get_ccw): Patch from
9543 Bill Holmes to no walk up interface hierarchy.
9544 All parent methods should be present in the interface for COM.
9546 Code is contributed under MIT/X11 license.
9548 2007-08-15 Jonathan Chambers <joncham@gmail.com>
9550 * marshal.c (emit_marshal_com_interface): Patch from
9551 Bill Holmes to handle COM Interfaces as return values
9552 for native->managed calls.
9554 Code is contributed under MIT/X11 license.
9556 2007-08-14 Jonathan Chambers <joncham@gmail.com>
9558 * marshal.c (cominterop_get_idispatch_for_object): Implement
9559 for runtime callable wrappers.
9561 Code is contributed under MIT/X11 license.
9563 2007-08-13 Rodrigo Kumpera <rkumpera@novell.com>
9565 * pedump.c (main): changed from mono_init to mono_init_from_assembly
9566 so 2.0 types are accessible
9569 2007-08-13 Miguel de Icaza <miguel@novell.com>
9571 * domain.c (mono_init_internal): Call mono_assembly_load_friends
9572 once we load mscorlib. Due to the order in which we initialize,
9573 the mono_assembly_load_full routine that loads mscorlib did not
9574 load friends. We now load it once we load the
9575 mono_defaults.internals_visible_class class.
9577 * assembly.c: Expose the mono_load_friend_assemblies method.
9579 2007-08-11 Rodrigo Kumpera <rkumpera@novell.com>
9581 * verify.c: improved the handling of boxing, better
9582 type checking for unary ops and conversion. Fix bug
9583 regarding managed pointer compatibility checking
9585 2007-08-11 Zoltan Varga <vargaz@gmail.com>
9587 * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
9589 * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
9591 2007-08-09 Raja R Harinath <rharinath@novell.com>
9593 * reflection.c (dup_type): Remove.
9594 * class.c (dup_type): Remove.
9595 (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
9596 instead of the dodgy 'dup_type'.
9597 (inflate_generic_type): Likewise. Fix the VAR/MVAR cases to
9598 handle the case where 'dup_type' needed the second argument.
9600 2007-08-08 Zoltan Varga <vargaz@gmail.com>
9602 * domain.c: Fix a warning.
9604 2007-08-08 Massimiliano Mantione <massi@ximian.com>
9606 * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
9607 checking that methods with the same fqname are not overridden
9608 with a method from an ancestor.
9610 2007-08-07 Zoltan Varga <vargaz@gmail.com>
9612 * threads.c (free_thread_static_data_helper): Avoid a crash if
9613 thread->static_data is not yet set.
9615 2007-08-07 Jonathan Chambers <joncham@gmail.com>
9617 * marshal.c: Use correct image when emitting
9618 native wrapper for COM calls.
9620 Code is contributed under MIT/X11 license.
9622 2007-08-07 Atsushi Enomoto <atsushi@ximian.com>
9624 * icall-def.h, security.c, security.h :
9625 added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
9627 2007-08-07 Martin Baulig <martin@ximian.com>
9629 * mono-debug-debugger.h
9630 (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
9632 * domain.c (mono_domain_free): Call
9633 `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
9635 2007-08-06 Rodrigo Kumpera <rkumpera@novell.com>
9637 * verify.c (check_underflow, check_overflow): error message now returns IL offset
9638 * verify.c (in_same_block): code should test if either offset is inside the clauses
9639 * verify.c (mono_method_verify): push the exception into the eval stack of exception
9642 2007-08-03 Zoltan Varga <vargaz@gmail.com>
9644 * image.c (mono_image_close): Fix a leak.
9646 * object.c (mono_runtime_invoke_array): Avoid using alloca.
9648 * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.
9650 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
9652 * domain.c, threads.c, threads-types.h: fix memory retention issue
9653 with thread static variables not being cleared on domain unload.
9654 Reuse thread static slots after domain unload.
9656 2007-08-03 Zoltan Varga <vargaz@gmail.com>
9658 * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
9661 * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
9662 now done in mono_runtime_invoke_array.
9664 * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the
9665 receiver is a nullable type.
9667 * class.c (mono_class_is_assignable_from): Handle the case when klass is a
9670 2007-08-03 Jonathan Chambers <joncham@gmail.com>
9672 * marshal.c: Implement COM Objects as return type for
9673 managed->unmanaged calls. Added Release calls for COM Object
9674 out/return values in managed->unmanaged calls.
9676 Code is contributed under MIT/X11 license.
9678 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
9680 * threads.h, threads-type.h: move the hazard pointer declarations
9681 to the private header.
9683 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
9685 * file-io.c, appdomain.c: memory leak fixes.
9687 2007-08-02 Dick Porter <dick@ximian.com>
9690 (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
9691 SO_REUSEADDR setting into io-layer/sockets.c.
9693 2007-08-01 Zoltan Varga <vargaz@gmail.com>
9695 * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
9696 from Object when called on a generic parameter. Fixes #82211.
9698 2007-08-01 Dick Porter <dick@ximian.com>
9700 * file-io.c (convert_share): Test FileShare values bit-by-bit.
9701 Fixes bug 79250 yet again.
9703 2007-07-30 Martin Baulig <martin@ximian.com>
9705 Merged the `debugger-dublin' branch.
9708 (MonoDebugDataTable): New typedef.
9709 (MonoDebugMethodAddressList): New typedef.
9710 (MonoDebugWrapperData): Removed.
9711 (MonoDebugSymbolTable): Removed `current_data_table',
9712 `current_data_table_size', `current_data_table_offset'.
9713 (MonoDebugDataItemType): Moved into mono-debug.c.
9714 (MonoDebugMethodJitInfo): Remove `address'.
9715 (mono_debug_data_table): New global variable.
9716 (mono_debug_lookup_method_addresses): New public function.
9717 (mono_debug_find_method): Take a `MonoMethod *', not a
9718 `MonoDebugMethodInfo *'.
9720 * mono-debug.c: Drop support for the old symbol tables.
9722 2007-06-28 Martin Baulig <martin@ximian.com>
9724 * mono-debug.c (mono_debug_debugger_version): New public variable.
9726 2007-07-31 William Holmes <billholmes54@gmail.com>
9728 * metadata.c Changed mono_type_create_from_typespec to not insert
9729 the type into the hash map until after
9730 do_mono_metadata_parse_type has completed.
9732 Code is contributed under MIT/X11 license.
9734 2007-07-31 Zoltan Varga <vargaz@gmail.com>
9736 * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
9737 generic parameter. Fixes #82211.
9739 2007-07-27 Jb Evain <jbevain@novell.com>
9741 * pedump.c (dump_metadata, dump_metadata_header): dump
9742 versions contained in the metadata header.
9744 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
9746 * threads.c: register small_id_table with the GC.
9748 2007-07-27 Mark Probst <mark.probst@gmail.com>
9750 * threads.c, threads.h, class-internals.h, object-internals.h:
9751 Hazard pointers, to be used by lock-free parallel algorithms.
9753 2007-07-26 Dick Porter <dick@ximian.com>
9755 * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
9756 routine on non-windows platforms, as I've not managed to think of
9757 a non-kludgy way of doing this. Finishes off bug 78739.
9759 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
9761 * object.c: properly setup interface_bitmap in proxy vtables.
9763 2007-07-25 Marek Habersack <mhabersack@novell.com>
9765 * appdomain.c (get_shadow_assembly_location): do not use TickCount
9766 to create unique shadow copy target directories, use the domain's
9767 serial number instead. Each domain gets a unique target directory
9770 * domain.c (mono_domain_create): added code to increment domain
9771 shadow copy serial number and cache the value in the current
9774 * domain-internals.h (struct _MonoDomain): added a new field -
9775 shadow_serial to hold the serial number used in generation of
9776 shadow-copy directories. This is to make sure that the directory
9777 name is unique for each and every domain created. We avoid a race
9778 condition with overriding assemblies already in use by other app
9781 2007-07-24 Rodrigo Kumpera <rkumpera@novell.com>
9783 * class.c (mono_bounded_array_class_get): fixed memory leak when
9784 binding generic parameters.
9786 2007-07-24 Raja R Harinath <rharinath@novell.com>
9788 * metadata.c (do_mono_metadata_parse_generic_class): Use
9789 mono_metadata_lookup_generic_class. Don't g_assert on a metadata
9792 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
9794 * loader.c, class-internals.h, reflection.c: removed the per-method
9795 generics hashtable: we use the global one through the call of
9796 mono_class_inflate_generic_method ().
9798 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
9800 * class.c, metadata.c, class-internals.h: introduce yet another
9801 generics global cache for inflated methods (fixes 98% of the perf
9802 issue in bug #81806).
9804 2007-07-23 Raja R Harinath <rharinath@novell.com>
9806 Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
9807 * metadata.c (mono_metadata_lookup_generic_inst): Kill.
9808 (mono_metadata_get_generic_inst): New. Given a list of MonoType*,
9809 return a MonoGenericInst containing (a copy) of those types.
9810 (mono_metadata_inflate_generic_inst): Update to changes.
9811 (mono_metadata_parse_generic_inst): Likewise.
9812 (mono_get_shared_generic_inst): Likewise.
9813 * reflection.c (mono_class_bind_generic_parameters): Likewise.
9814 (mono_reflection_bind_generic_method_parameters): Likewise.
9815 * metadata-internals.h: Likewise.
9816 * icall.c (free_generic_context): Kill.
9817 (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
9819 * reflection.c (reflection_methodbuilder_to_mono_method): Use
9820 mono_metadata_type_dup.
9821 * marshal.c (mono_mb_create_method): Likewise.
9823 * metadata.c (mono_metadata_type_dup): Rename from
9824 mono_metadata_type_dup_mp. Take an optional mempool instead of a
9825 MonoImage. Handle a few more cases, esp. when no mempool is given.
9826 * marshal.c, metadata-internals.h: Update to changes.
9828 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
9830 * class.c: fixed a small leak for array classes and removed warning.
9832 2007-07-22 Zoltan Varga <vargaz@gmail.com>
9834 * loader.c (mono_method_get_param_token): Make this work on generic methods.
9835 Return 0x8000000 for return parameters. Fixes #82161.
9837 2007-07-21 Marek Habersack <grendello@gmail.com>
9839 * appdomain.c (get_shadow_assembly_location): append the current
9840 ticks value to the path. Avoids overwriting the same assemblies by
9841 several threads at the same time.
9843 2007-07-20 Atsushi Enomoto <atsushi@ximian.com>
9844 and Raja R Harinath <rharinath@novell.com>
9846 * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
9848 (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
9849 property for testing if a method is a generic method definition.
9851 2007-07-20 Atsushi Enomoto <atsushi@ximian.com>
9853 * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
9855 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
9857 * verify.c: used function from private branch, reverted to the one in class.h
9859 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
9861 * verify.c: a typo slipped in and the code wont compile
9863 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
9865 * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
9866 disabled box instruction as it is doing the wrong thing
9867 improved stack dump messages, now it is easier to debug type related issues
9870 2007-07-19 Juraj Skripsky <js@hotfeet.ch>
9872 * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak.
9874 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
9876 * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from
9877 TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
9878 grouped with class and valuetype. This change will simply
9879 the code as it should be handled just like unmanaged pointers.
9881 2007-07-19 Mark Probst <mark.probst@gmail.com>
9883 * class.c (concat_two_strings_with_zero): Fixed a silly bug.
9885 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
9887 * verify.c: several stack merge issues fixed, reference comparisons now
9888 check the type size. strict type check now works correctly.
9889 added more uses of IS_MANAGED_POINTER macro.
9890 fixed issues pointed by running the test suite against .net.
9893 2007-07-19 Mark Probst <mark.probst@gmail.com>
9895 * class.c, loader.c, class-internals.h: Removed the
9896 MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
9899 * icall.c: Better error checking in some internal reflection
9902 2007-07-18 William Holmes <billholmes54@gmail.com>
9904 * filewatcher.c : removed unused variable 'filename' in
9905 ves_icall_System_IO_FSW_SupportsFSW
9907 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
9909 * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
9912 2007-07-15 Zoltan Varga <vargaz@gmail.com>
9914 * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
9916 * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
9918 2007-07-14 Zoltan Varga <vargaz@gmail.com>
9920 * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken):
9921 Implement generics support.
9922 (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
9924 * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
9925 type_args and method_args arguments.
9926 (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
9927 (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
9928 (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
9930 2007-07-13 Rodrigo Kumpera <rkumpera@novell.com>
9932 * reflection.c: patch from Thong Nguyen to fix atribute resolution.
9933 It adds a rootimage parameter to mono_reflection_get_type_internal,
9934 adds new function mono_reflection_get_type_with_rootimage and use
9935 the rootimage to resolve the types instead of the current image
9937 2007-07-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
9939 * culture-info-table.h: Forgot to update after r78304.
9941 2007-07-13 Raja R Harinath <rharinath@novell.com>
9943 * class.c (mono_class_is_open_constructed_type)
9944 <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
9946 2007-07-12 Rodrigo Kumpera <rkumpera@novell.com>
9948 * class.c (mono_bounded_array_class_get): method fails if used with
9949 an incomplete TypeBuilder enum (no basetype field), fixed it by
9950 avoiding calculating the size for such array as it cannot be instantiated.
9953 2007-07-12 Raja R Harinath <rharinath@novell.com>
9955 * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
9957 * metadata.c, reflection.c: Update to changes.
9959 2007-07-11 Rodrigo Kumpera <rkumpera@novell.com>
9961 * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
9962 mono_class_is_valid_enum, they are used to valide a enum when loading.
9963 * reflection.c: used new functions to throw TypeLoadException when and
9964 invalid enum is build with TypeBuilder. Fixes #82018
9966 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
9968 * object.c: forgot commit of mono_class_setup_methods () to access
9970 * object-internals.h: added a few more handy fields to
9973 2007-07-11 Zoltan Varga <vargaz@gmail.com>
9975 * object.c (build_imt): Call mono_class_setup_methods () before accessing
9978 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
9980 * class-internals.h, object-internals.h, object.c: IMT-based
9981 interface invocation core from Massimiliano Mantione
9982 (massi@ximian.com) with a reworked arch-specific interface,
9983 bsearch implementation and a few bugfixes and memory savings by me.
9985 2007-07-10 Rodrigo Kumpera <rkumpera@novell.com>
9987 * class.c (mono_class_create_from_typedef): mono would segfault if
9988 an enum did not have a __value field. It now throws a TypeLoadException
9989 for such cases. Fix bug #82022
9991 2007-07-10 Zoltan Varga <vargaz@gmail.com>
9993 * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
9995 2007-07-09 Mark Probst <mark.probst@gmail.com>
9997 * class.c (mono_class_init): If a class is already inited but has
9998 an exception_type set, return FALSE, not TRUE. Fixes: 82050.
10000 2007-07-09 Mark Probst <mark.probst@gmail.com>
10002 * class.c: Properly handle the case of an unimplemented interface
10003 method. Fixes: 81673.
10005 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
10007 * class-internals.h, object.c: cleanup patch from massi: use
10008 MonoVTable->interface_bitmap since the vtable interfaces offset array
10011 2007-07-10 Zoltan Varga <vargaz@gmail.com>
10013 * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
10014 GetMDStreamVersion icall instead.
10016 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
10018 * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
10019 not use mono_dl_build_path() with a full library name: makes
10020 fallbacks to libgaim and libfam work.
10022 2007-07-06 William Holmes <billholmes54@gmail.com>
10024 * assembly.c: Added a continue statement in probe_for_partial_name when
10025 parse_assembly_directory_name fails. Fixes : 82002
10027 2007-07-06 Rodrigo Kumpera <rkumpera@novell.com>
10029 * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
10030 and added a verification for TYPEDBYREF.
10031 * verify.c (verify_stack_type_compatibility): fix handling of byref types,
10032 make native int interchangeable with int32 and some small cleanup and formating.
10033 * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
10034 handle byref of byref.
10035 * verify.c (push_local): handle byref of byref.
10036 * verify.c (do_binop): invalid mix of values is unverifiable
10037 * verify.c (do_invoke_method): fixed the handling of bad params on stack and
10038 added visibility checks
10039 * verify.c (field related method): added visibility checks
10040 * verify.c (do_push_field): cannot take the address of a temporary valuetype field
10042 2007-07-06 Zoltan Varga <vargaz@gmail.com>
10044 * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
10047 2007-07-05 Zoltan Varga <vargaz@gmail.com>
10049 * profiler.c (mono_profiler_load): Fix an off-by-one error.
10051 * marshal.c (emit_marshal_string): When returning a string from managed code,
10052 allways make a copy even for unicode strings. Fixes #81990.
10054 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
10056 * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
10057 of byref generic inst types (bug #81997).
10059 2007-07-03 Rodrigo Kumpera <rkumpera@novell.com>
10061 * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
10062 * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
10064 2007-07-02 Zoltan Varga <vargaz@gmail.com>
10066 * marshal.c (emit_marshal_string): Add support for unicode strings in
10067 MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
10069 2007-07-02 Rodrigo Kumpera <rkumpera@novell.com>
10071 * verify.c: field load/store are now verified, missing only access checks now
10073 2007-06-28 Martin Baulig <martin@ximian.com>
10075 * mono-debug.c (mono_debug_debugger_version): New public variable.
10077 2007-06-24 Gert Driesen <drieseng@users.sourceforge.net>
10079 * locales.c: When constructing DateTimeFormat or NumberFormat for
10080 MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
10081 MonoCultureInfo contructed from the current locale is always
10082 read-only and has UseUserOverride set to true. All MonoCultureInfo
10083 instances returned for GetCultures have both IsReadOnly and
10084 UseUserOverride set to true. Fixes part of bug #81930.
10086 2007-06-22 Jonathan Chambers <joncham@gmail.com>
10088 * icall-def.h: Update System.__ComObject icalls
10089 * marshal.c: Avoid managed transition (and object creation)
10090 when looking up COM interface in RCW.
10091 * marshal.h: Ditto.
10093 Code is contributed under MIT/X11 license.
10095 2007-06-22 Zoltan Varga <vargaz@gmail.com>
10097 * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
10098 to avoid crashes during assembly unloading.
10100 2007-06-22 Raja R Harinath <rharinath@novell.com>
10102 Fix MethodInfo.IsGenericMethodDefinition
10103 * reflection.c (mono_reflection_bind_generic_method_parameters):
10104 Rearrange code to ensure we always uses a generic method definition.
10105 * class.c (mono_class_inflate_generic_method_full): Set
10106 'generic_container' field only for generic method definitions.
10107 * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
10108 Use presense of 'generic_container' field as indication of being a
10109 generic method definition.
10111 2007-06-21 Zoltan Varga <vargaz@gmail.com>
10113 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10115 * object-internals.h: Reflect changes in the layout of the managed Delegate
10118 * object-internals.h reflection.c icall-def.h: Applied patch from Robert
10119 Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
10120 runtime memory used by the dynamic method. Fixes #77146.
10122 2007-06-21 Dick Porter <dick@ximian.com>
10125 * file-io.c (convert_share): Cope with FileShare.Delete. Patch
10126 from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
10129 2007-06-21 Raja R Harinath <rharinath@novell.com>
10131 * reflection.c (method_encode_methodspec): Add a tripwire.
10132 * class.c (inflate_generic_type): The fully open generic type is
10133 not the same as the generic type definition.
10135 2007-06-21 Martin Baulig <martin@ximian.com>
10137 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
10139 * mono-debug-debugger.h
10140 (MonoDebuggerBreakpointInfo): Removed.
10141 (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
10142 (mono_debugger_remove_breakpoint): Likewise.
10143 (mono_debugger_breakpoint_callback): Likewise.
10144 (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
10146 2007-06-21 Raja R Harinath <rharinath@novell.com>
10148 * metadata.c (mono_metadata_lookup_generic_class): The fully open
10149 generic type is not the same as the generic type definition.
10150 * class.c (mono_generic_class_get_class): Likewise.
10152 2007-06-20 Geoff Norton <gnorton@customerdna.com>
10154 * icall.c: The second argument to
10155 System.Reflection.MethodBase.GetMethodFromHandleInternalType
10156 is a MonoType not a MonoClass.
10158 2007-06-20 Rodrigo Kumpera <kumpera@gmail.com>
10160 * verify.c: support for function pointers in the verifier
10162 2007-06-20 Rodrigo Kumpera <kumpera@gmail.com>
10164 * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
10166 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
10168 * assembly.c: removed Mono.Data.SqliteClient from the list of
10169 forward-compatible assemblies as it breaks the ABI (bug #81899).
10171 2007-06-19 Raja R Harinath <rharinath@novell.com>
10173 * metadata.c (mono_metadata_lookup_generic_class): Protect cache
10174 lookup/update with the loader lock.
10175 * reflection.c (mono_class_bind_generic_parameters): No need to
10176 protect mono_metadata_lookup_* with the loader lock.
10177 * class.c (inflate_generic_type): Likewise.
10179 * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
10180 on a generic instantiated type.
10182 2007-06-18 Rodrigo Kumpera <kumpera@gmail.com>
10184 *verify.c: produce meanfull error messages on verification error
10185 *verify.c: fixed some cases of verification errors reported as validation errors
10186 *pedump.c: fixed the error name array, now it shows validation errors properly
10187 *verify.h: fixed the contant that should be used for verification errors
10189 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
10191 * metadata.c, image.c, metadata-internals.h: part of the fixes needed
10192 for bug #77596, 81858 and 80743 (generics data structures on domain
10195 2007-06-15 Raja R Harinath <rharinath@novell.com>
10197 Avoid allocating 'MonoGenericContext' on the heap.
10198 * class-internals (_MonoMethodInflated::context): Make field
10199 inline, not a pointer.
10200 * loader.c (method_from_methodspec): Allocate 'new_context' on the
10201 stack. Use the context embedded within the inflated method as the
10202 hash key, rather than 'new_context'.
10203 * class.c (inflate_generic_context): Simplify. Return a struct
10204 rather than allocating on the heap.
10205 (mono_class_inflate_generic_method_full): Update to changes. Now,
10206 doesn't salt away a copy of the context -- simplifying the
10207 lifetime rules of a 'MonoGenericContext *'.
10208 (mono_method_get_context): Return pointer to embedded context.
10209 (setup_generic_array_ifaces): Allocate temporary context on stack.
10210 * reflection.c (inflate_mono_method): Likewise.
10211 (mono_reflection_bind_generic_method_parameters): Likewise.
10212 Use the context embedded within the inflated method as the hash key.
10214 Avoid a source of allocation of 'MonoGenericContext'.
10215 * class-internals.h (_MonoGenericClass::context): Combine 'inst'
10216 and 'cached_context' fields into embedded 'MonoGenericContext' field.
10217 * class.c: Update to changes.
10218 (mono_generic_class_get_context): Simplify drastically. Now just
10219 returns a pointer to the field.
10220 * metadata-internals.h (mono_metadata_generic_context_hash): Mark
10221 argument as a const pointer.
10222 (mono_metadata_generic_context_equal): Likewise.
10223 * metadata.c, loader.c, icall.c, reflection.c, verify.c:
10226 2007-06-14 Rodrigo Kumpera <kumpera@gmail.com>
10228 * verify.c improved the handling of brtrue/brfalse, factored out common code
10230 2007-06-14 Raja R Harinath <rharinath@novell.com>
10232 Kill MonoGenericMethod.
10233 * class-internals.h (MonoGenericContext::method_inst): Rename from
10234 'gmethod' and convert to a MonoGenericInst.
10235 (MonoGenericMethod): Remove.
10236 * metadata.h (MonoGenericMethod): Note that the name is obsolete.
10237 * loader.c (method_from_methodspec): Update to changes. Use a
10238 MonoGenericContext as the key to the hashtable.
10239 * metadata.c (mono_metadata_generic_context_equal): Rename from
10240 'mono_metadata_generic_method_equal' and take MonoGenericContext.
10241 (mono_metadata_generic_context_hash): Likewise from
10242 'mono_metadata_generic_method_hash'. Change hash function.
10243 (mono_metadata_load_generic_params): Update to changes.
10244 (mono_get_shared_generic_method): Remove.
10245 * metadata-internals.h (mono_get_shared_generic_method): Remove.
10246 * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
10247 (inflate_generic_context): Likewise.
10248 (mono_class_inflate_generic_method_full): Likewise.
10249 (setup_generic_array_ifaces): Likewise.
10250 (mono_class_create_from_typespec): Likewise.
10251 * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
10252 (method_encode_methodspec): Update callsite.
10253 (reflection_methodbuilder_to_mono_method): Update to changes.
10254 (mono_reflection_bind_generic_method_parameters): Likewise. Use a
10255 MonoGenericContext as the key to the hashtable.
10256 (inflate_mono_method): Update to changes.
10258 * class-internals.h (MonoGenericMethod::container): Remove.
10259 * class.c, loader.c, metadata.c, reflection.c: Update to changes.
10261 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
10263 * profiler-private.h, profiler.c, profiler.h: added API to profile
10266 2007-06-13 Rodrigo Kumpera <kumpera@gmail.com>
10268 * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments
10270 2007-06-13 Rodrigo Kumpera <kumpera@gmail.com>
10272 * verify.c: method invocation is now validated, now we verify parameter types on stack.
10273 Fixed overflow and underflow not aborting the verification process.
10275 2007-06-13 Mark Probst <mark.probst@gmail.com>
10277 * class-internals.h (MonoStats): Added stats entries for dynamic
10280 2007-06-12 Zoltan Varga <vargaz@gmail.com>
10282 * loader.c (mono_free_method): Free header->locals and header->clauses.
10284 * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
10287 * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
10289 * class.c (setup_interface_offsets): Allocate memory from the image mempool.
10291 2007-06-12 Raja R Harinath <rharinath@novell.com>
10293 * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
10296 2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
10298 *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
10300 2007-06-11 Raja R Harinath <harinath@gmail.com>
10302 MonoGenericMethod on a diet
10303 * class-internals.h (_MonoMethodInflated::reflection_info): Move
10305 (_MonoGenericMethod::reflection_info): ... from here.
10306 * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
10308 * reflection.c (inflate_mono_method): Likewise.
10309 (mono_reflection_bind_generic_method_parameters): Likewise.
10311 2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
10313 *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
10314 *verify.c: factored long ldarg forms to share code with short forms
10316 2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
10318 *verify.c: fixed code formating factored some duplicate code
10319 into a new function
10321 *verify.h: fixed binary incompatibility introduced earlier
10323 *pedump.c: fixed formating
10325 2007-06-11 Raja R Harinath <harinath@gmail.com>
10327 Fix assertion when disassembling Mono.C5.dll
10328 * loader.c (method_from_methodspec): Avoid inflating a method
10329 twice with the same context. If the methodref is inflated, use
10330 the declaring method instead.
10332 * class.c (mono_class_from_generic_parameter): Fix case similar to
10333 bug #81830 handled below, but for method containers.
10335 2007-06-10 Raja R Harinath <harinath@gmail.com>
10337 * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
10338 get_shared_generic_class. Directly inflate the instance.
10339 [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
10340 (inflate_generic_class): Delete.
10341 (get_shared_generic_class): Delete. Move setting of
10342 'cached_class' and 'cached_context' ...
10343 * metadata.c (mono_metadata_lookup_generic_class): ... here.
10345 * metadata.c (mono_metadata_lookup_generic_class): Change
10346 signature to take the components of a MonoGenericClass rather than
10347 an allocated MonoGenericClass. Change semantics to be intern-like.
10348 * reflection.c (mono_class_bind_generic_parameters): Update to
10349 changes. Make locking region tighter.
10350 * class.c (inflate_generic_class): Update to changes.
10351 (get_shared_generic_class): Likewise.
10352 * metadata-internals.h: Likewise.
10354 * reflection.c (mono_class_bind_generic_parameters): Take and
10355 return a MonoClass*, not a MonoType*. Add 'is_dynamic' parameter.
10356 (mono_reflection_bind_generic_parameters): Use
10357 'mono_class_bind_generic_parameters' rather than duplicate the code.
10358 * class.c (mono_bounded_array_class_get): Update to changes.
10359 * object-internals.h: Likewise.
10361 * reflection.c (mono_class_bind_generic_parameters): Only support
10362 parameterizing generic type definitions. Remove support for other
10365 2007-06-08 Zoltan Varga <vargaz@gmail.com>
10367 * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
10369 * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
10370 in the dynamic case.
10372 2007-06-08 Gert Driesen <drieseng@users.sourceforge.net>
10374 * threads.c: When cleaning up thread, reset the Background bit.
10377 2007-06-08 Jonathan Chambers <joncham@gmail.com>
10379 * metadata.c: Move variable declarations to top of scope.
10380 * verify.c: Move variable declarations to top of scope.
10382 Code is contributed under MIT/X11 license.
10384 2007-06-08 Raja R Harinath <rharinath@novell.com>
10386 * reflection.c (mono_class_bind_generic_parameters): Replace
10387 open-coded loop with mono_metadata_inflate_generic_inst.
10389 * class.c (get_shared_generic_class): Don't call
10390 mono_get_shared_generic_inst. Use the container's own
10393 * metadata.c (mono_metadata_load_generic_params): Move
10394 initialization of 'context' field here from ...
10395 * class.c (mono_class_create_from_typedef): ... here, and ...
10396 * loader.c (mono_get_method_from_token): ... here.
10398 * class.c (get_shared_generic_class): Rename from
10399 mono_get_shared_generic_class and make static.
10400 (mono_get_shared_generic_inst): Move to metadata.c.
10401 * loader.c (mono_get_shared_generic_method): Likewise.
10402 * class-internals.h, metadata-internals.h: Update to changes.
10405 * class.c (mono_class_from_generic_parameter): Don't assume a
10406 generic container owner exists. Generic containers from monodis
10409 2007-06-06 Rodrigo Kumpera <kumpera@gmail.com>
10411 * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
10412 * verify.h: new typedefs to returns the non-verifiable status
10413 * verify.c: initial implementation of generics, stack merging and object compatibility check
10415 2007-06-06 Mark Probst <mark.probst@gmail.com>
10417 * class.c, image.c, class-internals.h (MonoImage): class_cache is
10418 a MonoInternalHashTable again (fixed bug in internal hash table
10421 2007-06-06 Mark Probst <mark.probst@gmail.com>
10423 * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
10424 MonoInternalHashTable again (fixed bug in internal hash table
10427 2007-06-06 Mark Probst <mark.probst@gmail.com>
10429 * class.c, image.c, class-internals.h, domain.c,
10430 domain-internals.h (MonoImage): Reverting MonoInternalHashTable
10431 changes. Have to figure out what makes them break the SWF
10434 2007-06-04 Mark Probst <mark.probst@gmail.com>
10436 * class.c, image.c, class-internals.h (MonoImage): class_cache is
10437 a MonoInternalHashTable now.
10439 2007-06-04 Mark Probst <mark.probst@gmail.com>
10441 * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
10442 MonoInternalHashTable now.
10444 2007-05-31 Zoltan Varga <vargaz@gmail.com>
10446 * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
10449 * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
10451 * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
10452 dependent trampoline.
10454 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10456 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
10458 2007-05-29 Robert Jordan <robertj@gmx.net>
10460 * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
10462 2007-05-28 Zoltan Varga <vargaz@gmail.com>
10464 * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
10466 2007-05-25 Jonathan Chambers <joncham@gmail.com>
10468 * marshal.c: Fix interface lookup loops for
10469 cominterop_get_com_slot_for_method and
10470 cominterop_get_method_interface. Only need to lookup
10471 if type is a class, else use interface type method is on.
10473 Code is contributed under MIT/X11 license.
10475 2007-05-25 Sebastien Pouliot <sebastien@ximian.com>
10477 * reflection.c: HasSecurity can be present even if no specially
10478 encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
10479 SecurityAttribute). Fix CAS regression tests on buildbot.
10481 2007-05-24 Jonathan Chambers <joncham@gmail.com>
10483 * appdomain.c: Add configure checks for header files.
10484 * image.c: Add configure checks for header files.
10485 * file-io.c: Add configure checks for header files.
10486 * debug-mono-symfile.c: Add configure checks for header files.
10487 * threadpool.c: Add configure checks for header files.
10488 * console-io.c: Add configure checks for header files.
10489 * profiler.c: Add configure checks for header files.
10490 * rawbuffer.c: Add configure checks for header files.
10491 * icall.c: Add configure checks for header files.
10492 * rand.c: Add configure checks for header files.
10493 * socket-io.c: Add configure checks for header files.
10495 Code is contributed under MIT/X11 license.
10497 2007-05-24 Zoltan Varga <vargaz@gmail.com>
10499 * reflection.c (mono_custom_attrs_from_builders): Remove the
10500 assertion as it breaks the build.
10502 * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
10504 * reflection.c (lookup_custom_attr): Make a copy here too.
10506 * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
10509 * class.c (mono_class_init): Avoid accessing the metadata in dynamic
10512 * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
10515 2007-05-22 Zoltan Varga <vargaz@gmail.com>
10517 * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
10518 (load_cattr_value): Ditto.
10520 2007-05-20 Zoltan Varga <vargaz@gmail.com>
10522 * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
10524 2007-05-19 Gert Driesen <drieseng@users.sourceforge.net>
10526 * threads.c: In "start_wrapper", set apartment_state to MTA if
10527 apartment_state is Unknown and we're running on 2.0 profile or
10529 * object.c: In "mono_runtime_exec_main", if STAThread is not applied
10530 to main method, then set apartment_state to Unknown on 1.0 profile,
10531 and MTA on 2.0 profile.
10533 2007-05-16 Jb Evain <jb@nurv.fr>
10535 * class-internals.h (MonoDefaults): Add an attribute_class and
10536 customattribute_data_class.
10537 * domain.c (mono_init_internal): Populate them.
10538 * reflection.c: Use them to remove duplicates. Make a vew
10539 MonoClass variables `static'.
10541 2007-05-15 Massimiliano Mantione <massi@ximian.com>
10543 * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
10544 step in implementing IMT, so that all isinst checks now can go
10545 through the bitmap.
10546 This was needed because vtables for TransparentProxy need to look
10547 like the vtable of the "target" class, so they need to point to
10548 its interface bitmap directly.
10550 * object.c: inside "mono_class_create_runtime_vtable" and
10551 "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
10553 2007-05-15 Atsushi Enomoto <atsushi@ximian.com>
10555 * object-internals.h
10556 culture-info.h : added territory field in MonoCulture and
10557 CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
10558 * locales.c : fill territory field above too.
10559 * culture-info-table.h : regenerated.
10561 2007-05-12 Zoltan Varga <vargaz@gmail.com>
10563 * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
10566 2007-05-11 Jonathan Chambers <joncham@gmail.com>
10568 * object.c: Always initialize apartment, even if
10569 there is no custom attributes on entry point.
10571 Code is contributed under MIT/X11 license.
10573 2007-05-10 Jonathan Chambers <joncham@gmail.com>
10575 * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
10576 * metadata.c: If no encoding is set, check for unicode
10579 Code is contributed under MIT/X11 license.
10581 2007-05-09 Jonathan Chambers <joncham@gmail.com>
10583 * threads.c: Handle if mono_thread_current returns NULL
10585 Code is contributed under MIT/X11 license.
10587 2007-05-09 Jonathan Chambers <joncham@gmail.com>
10589 * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
10590 in start_wrapper. Added mono_thread_init_apartment_state and
10591 mono_thread_cleanup_apartment_state.
10592 * object.c: Initialize thread apartment state on main thread
10593 by checking for STAThreadAttribute on entry point.
10594 * object-internals.h: Add apartment_state field to MonoThread.
10595 * threads-types.h: Add unmanaged definition of
10596 System.Threading.ApartmentState, MonoThreadApartmentState.
10598 Code is contributed under MIT/X11 license.
10600 2007-05-08 Jonathan Chambers <joncham@gmail.com>
10602 * class.c: Fix windows build.
10603 * class-internals.h: Fix windows build.
10605 Code is contributed under MIT/X11 license.
10607 2007-05-08 Robert Jordan <robertj@gmx.net>
10609 * process.c (CreateProcess_internal):
10610 Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
10611 .CreateNoWindow was specified. Fixes #81496.
10613 2007-05-08 Massimiliano Mantione <massi@ximian.com>
10615 * class-internals.h: Removed "MonoClass.interface_offsets" as a first
10616 step in implementing IMT, replaced it with two compact arrays
10617 (interfaces_packed and interface_offsets_packed) and a bitmap that
10618 is used for isinst checks (interface_bitmap).
10620 * class.c: (compare_interface_ids): compare function to pass to
10621 bsearch when looking for an interface with a given id.
10622 (mono_class_interface_offset): reimplemented using bsearch on
10623 interfaces_packed, getting the offset from interface_offsets_packed.
10624 (print_implemented_interfaces): utility debugging function.
10625 (setup_interface_offsets): reworked to initialize interfaces_packed,
10626 interface_offsets_packed and interface_bitmap.
10628 * object.c: replaced all accesses to "MonoClass.interface_offsets"
10629 with uses of interfaces_packed and interface_offsets_packed.
10631 2007-05-08 Massimiliano Mantione <massi@ximian.com>
10633 * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
10634 mono_class_interface_offset prototype to wrap all accesses to
10635 "MonoClass.interface_offsets".
10637 * class.c: Implemented mono_class_interface_offset, and wrapped all
10638 accesses to "MonoClass.interface_offsets".
10640 * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
10641 "MonoClass.interface_offsets".
10643 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
10645 * icall.c, icall-def.h: implemented new GetFieldFromHandle and
10646 GetMethodFromHandle overloads (bug #78637).
10648 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
10650 * assembly.c: parse ProcessorArchitecture in assembly name and ignore
10651 it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
10653 2007-05-01 Zoltan Varga <vargaz@gmail.com>
10655 * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
10658 * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
10660 (mono_custom_attrs_from_index): Ditto.
10662 * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes.
10665 2007-04-30 Zoltan Varga <vargaz@gmail.com>
10667 * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
10668 is now allocated from a mempool.
10670 2007-04-28 Zoltan Varga <vargaz@gmail.com>
10672 * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
10673 caller holds threads_lock, leading to deadlocks. Fixes #81476.
10675 2007-04-26 Zoltan Varga <vargaz@gmail.com>
10677 * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
10678 mono_loader_clear_error () too late. Fixes #81463.
10680 2007-04-26 Atsushi Enomoto <atsushi@ximian.com>
10682 * culture-info-table.h : regenerated.
10684 2007-04-25 Zoltan Varga <vargaz@gmail.com>
10686 * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
10689 2007-04-25 Dick Porter <dick@ximian.com>
10691 * Makefile.am: Put the mingw enforced-optimisation back into the
10692 PLATFORM_WIN32 section.
10694 2007-04-24 Zoltan Varga <vargaz@gmail.com>
10696 * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
10699 * image.c (mono_image_load_module): New API function to load a module reference.
10701 * image.c (load_modules): Load modules lazily. Fixes #80812.
10703 * class.c (mono_class_from_typeref): Use mono_image_load_module.
10705 * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
10707 * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this
10708 to mono_image_load_module_dynamic.
10710 2007-04-23 Jonathan Chambers <joncham@gmail.com>
10712 * marshal.c: Fix calling convention for CCW on non-windows
10713 platforms. STDCALL on windows, CDECL everywhere else to work
10714 with XPCOM and MainWin COM.
10716 Code is contributed under MIT/X11 license.
10718 2007-04-23 Martin Baulig <martin@ximian.com>
10723 (method_from_memberref): Added `gboolean *used_context' argument.
10724 (mono_get_method_from_token): Likewise.
10725 (mono_get_method_full): Don't insert the method in the cache when
10726 `used_context' is true.
10728 2007-04-23 Raja R Harinath <rharinath@novell.com>
10730 * monodiet.c (add_types_from_method): Fix "wrong type" warning.
10732 * reflection.c (mono_reflection_bind_generic_parameters): Don't
10733 create new MonoTypes for returned types.
10734 * class.c (mono_generic_class_get_class): Export mono-internal.
10735 * class-internals.h: Update to changes.
10737 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
10739 * threadpool.c, threadpool.h, icall-def.h: patch from
10740 Robert Jordan to implemnt ThreadPool.SetMaxThreads.
10742 2007-04-18 Zoltan Varga <vargaz@gmail.com>
10744 * threads.c (mono_thread_get_stack_bounds): Fix windows build.
10746 * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
10748 * threads.c (mono_thread_get_stack_bounds): New helper function.
10750 * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
10751 Correctly compute stack bounds when attaching. Fixes #81394.
10753 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
10755 * reflection.c: fix handling of doubles in custom attributes
10756 for the arm-fpa format (bug #81368).
10758 2007-04-18 Raja R Harinath <rharinath@novell.com>
10760 * reflection.c (assembly_add_win32_resources): Mildly relax an
10761 bounds check to let the end pointer point just past the end of the
10762 allocated buffer. (may fix #81384)
10764 2007-04-17 Atsushi Enomoto <atsushi@ximian.com>
10766 * culture-info-table.h : regenerated.
10768 2007-04-07 Zoltan Varga <vargaz@gmail.com>
10770 * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
10771 the thread is aborted early.
10773 2007-04-05 Dick Porter <dick@ximian.com>
10775 * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
10776 FindFirstFile()/FindNextFile() to find entries. This lets the
10777 io-layer versions use MONO_IOMAP compatibility helpers. Fixes bug
10780 * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
10782 ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
10784 2007-04-04 Martin Baulig <martin@ximian.com>
10787 (mono_method_desc_full_match): Add support for nested classes.
10789 2007-04-02 Zoltan Varga <vargaz@gmail.com>
10791 * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
10793 2007-04-01 Zoltan Varga <vargaz@gmail.com>
10795 * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
10796 waiting for too many threads.
10798 2007-03-28 Sebastien Pouliot <sebastien@ximian.com>
10800 * environment.c: Fix return value check on uname so we can get the
10801 executing version on Solaris operating systems.
10803 2007-03-28 Jb Evain <jbevain@gmail.com>
10805 * class.c (mono_type_get_name_recurse): Complete the
10806 fix for the creation of assembly qualified names for
10807 pointer types. Fixes #81208.
10809 2007-03-27 Dick Porter <dick@ximian.com>
10811 * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
10812 of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
10816 (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
10817 the value of ReleaseMutex().
10819 2007-03-27 Dick Porter <dick@ximian.com>
10821 * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
10822 in little-endian order, not network endian, so must be converted
10823 to host endian here. Fixes bug 80593.
10825 2007-03-22 Jb Evain <jbevain@gmail.com>
10827 * class.c (mono_type_get_name_recurse): Fix the creation of assembly
10828 qualified names for pointer types. Fixes #81208.
10830 2007-03-21 Jonathan Chambers <joncham@gmail.com>
10832 * marshal.c: Add support for PreserveSigAttribute.
10834 Code is contributed under MIT/X11 license.
10836 2007-03-14 Zoltan Varga <vargaz@gmail.com>
10838 * process.c: Fix endianness issues. Fixes #81126.
10840 * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
10841 multiple circular calls made from the same DynamicMethod work. Fixes #81141.
10843 * image.c (mono_image_lookup_resource): Make this work on big-endian
10844 machines.Change API contract so the caller needs to free the return value.
10846 * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
10849 2007-03-14 Martin Baulig <martin@ximian.com>
10851 * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
10852 mono_type_get_desc() as well.
10854 2007-03-13 Jonathan Chambers <joncham@gmail.com>
10856 * icall.c: Fix environ access in VS.
10858 2007-03-13 Alp Toker <alp@atoker.com>
10860 * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
10861 rather than the underlying type. Based on a patch by Ben Maurer. Fixes
10864 2007-03-12 Zoltan Varga <vargaz@gmail.com>
10866 * reflection.c (mono_reflection_create_dynamic_method): Add support for
10867 circular references among dynamic methods. Fixes #81091.
10869 * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
10871 2007-03-09 Martin Baulig <martin@ximian.com>
10873 * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
10875 2007-03-09 Jonathan Chambers <joncham@gmail.com>
10877 * appdomain.c: Fix shadow copy on Windows. Use g_snprintf instead
10878 of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.
10880 Code is contributed under MIT/X11 license.
10882 2007-03-09 Gert Driesen <drieseng@users.souceforge.net>
10884 * loader.c: Reapply patch for bug #79424.
10886 2007-03-06 Zoltan Varga <vargaz@gmail.com>
10888 * metadata.c (mono_type_to_unmanaged): Only convert object to
10889 MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
10891 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
10893 * class-internals.h, class.c, metadata.c, reflection.c: removed unused
10894 (and incorrectly set) is_reference field from MonoGenericInst.
10896 2007-03-06 Zoltan Varga <vargaz@gmail.com>
10898 * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
10901 * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
10903 * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
10905 2007-03-05 Miguel de Icaza <miguel@novell.com>
10907 * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
10908 FileOptions.1 value to mean "temporary", map that to
10909 FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
10913 2007-03-03 Marek Habersack <mhabersack@novell.com>
10915 * appdomain.c: implement MS .Net style shadow copying. Copies of
10916 the assemblies are made in a subdirectory of the dynamic base
10917 directory, the assembly names are preserved.
10918 Copy .mdb and .config files along with the assemblies being shadowed.
10920 2007-02-28 Zoltan Varga <vargaz@gmail.com>
10922 * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
10923 (emit_marshal_handleref): Ditto.
10925 * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
10926 on Visual C++. Fixes #80671.
10928 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
10930 * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
10931 for clone operations.
10933 2007-02-28 Zoltan Varga <vargaz@gmail.com>
10935 * marshal.c: Fix warnings.
10937 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
10939 * loader.c: allow case-insensitive matching of the dll name
10940 in dllmap handling when prefixed with "i:".
10942 2007-02-20 Jonathan Chambers <joncham@gmail.com>
10944 * threads.c: Fix #ifdef for dummy_apc function for VS.
10946 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
10948 * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
10950 2007-02-19 Massimiliano Mantione <massi@ximian.com>
10951 * class.c (mono_class_setup_vtable_general): Fix bug 75903,
10952 giving precedence to the methods with a fully qualified name
10953 (InterfaceName.MethodName) when building the interface sections
10956 2007-02-16 Dick Porter <dick@ximian.com>
10958 * threadpool.c (append_job): Fix fast-path array handling, so it's
10959 less likely the array will grow exponentially when the load is
10962 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
10964 * metadata-internals.h, loader.c: fix dllmap lookup order
10965 for non-function maps, too, and prepare for fallback code.
10967 2007-02-12 Robert Jordan <robertj@gmx.net>
10969 * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
10970 to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
10971 and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
10972 GlobalFree. Fixes a part of bug #77075.
10974 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
10976 * loader.c: implemented typedef parent in field memberref.
10978 2007-02-11 Jonathan Chambers <joncham@gmail.com>
10980 * marshal.c: Fix warnings and remember to call Release on
10983 Code is contributed under MIT/X11 license.
10985 2007-02-10 Miguel de Icaza <miguel@novell.com>
10987 * class-internals.h: Add MonoHandleRef definition, and
10988 handleref_class to mono_defaults.
10990 * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
10991 structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
10993 * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
10994 (do nothing on this stage)
10995 (emit_object_to_ptr_conv): Extract the handle from the HandleRef.
10996 (emit_marshal_handleref): New method, used for argument handling
10999 2007-02-08 Jonathan Chambers <joncham@gmail.com>
11001 * class.c (mono_class_setup_parent): Lazily init com types.
11002 * domain.c (mono_init_internal, mono_init_com_types): Lazily
11004 * object.c (mono_remote_class_vtable): Lazily init com types.
11005 * class-internals.h: Add iunknown and idispatch to MonoDefaults.
11006 * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
11007 * domain-internals.h: Expose mono_init_com_types.
11008 * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
11009 * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
11010 Add support for COM Callable Wrapper marshalling.
11011 * marshal.h: Add icall definitions.
11012 * gc.c: Handle freeing of CCWs in finalizer code.
11014 Code is contributed under MIT/X11 license.
11016 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
11018 * reflection.c: changed all the signature encoding code to use
11019 a variable-sized buffer.
11021 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
11023 * marshal.c: locking fixes: never take the loader lock
11024 or other runtime locks when holding the marshal lock
11027 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
11029 * marshal.c: make the delegate function pointer mapping
11030 work for the moving GC.
11032 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
11034 * marshal.c: fix from Robert Jordan (robertj@gmx.net)
11037 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
11039 * image.h, loader.c, metadata-internals.h: use mono-dl instead of
11042 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
11044 * threadpool.c: made the code moving-GC safe.
11046 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
11048 * assembly.c, boehm-gc.c, class-internals.h, class.c,
11049 debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
11050 monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
11052 * reflection.c: warning cleanup, some threading and moving GC fixes.
11054 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
11056 * class.c, loader.c: create the needed Set/Get/Address array methods
11057 as well as the .ctors in mono_class_init (), fixes bug #80567.
11059 2007-01-24 Zoltan Varga <vargaz@gmail.com>
11061 * class.c (mono_class_layout_fields): When force-aligning a field, make sure
11062 we doesn't decrease its alignment. Should fix the sparc build.
11064 2007-01-24 Dick Porter <dick@ximian.com>
11067 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11068 Create the returned object if we need to ignore an unsupported
11069 socket option. Fixes a segfault reported by Atsushi.
11071 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
11073 * class.c, object.c: restrict GC-tracked fields to
11074 UIntPtr fields used inside corlib, so we provide better
11075 type info to the GC and also allow broken packing as in
11078 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
11080 * sgen-gc.c: removed duplicated function.
11082 2007-01-19 Miguel de Icaza <miguel@novell.com>
11084 * socket-io.c (convert_sockopt_level_and_name): return -2 as a
11085 value that means that the value is not supported, but that we
11086 should not return a failure, but instead report this as a
11087 successful operation.
11089 2007-01-19 Raja R Harinath <rharinath@novell.com>
11091 Fix tests/bug79956.2.il
11092 * class.c (mono_type_get_underlying_type): Handle genericinst enums.
11093 (mono_generic_class_get_class): If the generic definition in an
11094 enum, copy over other fields related to it.
11096 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
11098 * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
11099 genericinst enums (bug #79215).
11101 2007-01-17 Massimiliano Mantione <massi@ximian.com>
11102 * class.c: Fix bug 80307.
11104 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
11106 * image.c: if the file table is not present, try to load
11107 all the modules, since we don't have info about them
11108 having or not metadata (bug #80517).
11109 * assembly.c: allow mono_assembly_load_references () to
11110 work for netmodules.
11112 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
11114 * image.c, metadata-internals.h, object.c: execute module
11115 cctors when running on the 2 runtime if present (bug #80487).
11117 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
11119 * icall.c: optimized InitializeArray() on bigendian.
11121 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
11123 * icall.c: fix for the broken ARM FPA double format.
11125 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
11127 * icall.c: handle endian issues for r4 and r8 types, too, in
11128 the InitializeArray() icall.
11130 2007-01-15 Miguel de Icaza <miguel@novell.com>
11132 * loader.c (mono_loader_error_prepare_exception): Clear the error
11133 once we have extracted the information from it, do this before we
11134 call into the JIT's class loading mechanisms.
11136 * object.c (mono_class_create_runtime_vtable): Do not clear the
11137 loader error before calling mono_class_get_exception_for_failure
11138 as the loader error is needed inside
11139 mono_class_get_exception_for_failure to throw the error (thinko).
11143 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
11145 * reflection.c: align fields rva data so it's faster to load at
11148 2007-01-12 Raja R Harinath <rharinath@novell.com>
11150 Prepare to simplify GenericMethod handling.
11151 * class-internals.h (mono_method_get_context): New accessor function.
11152 * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
11153 rather than directly accessing '->context' field.
11155 * class-internals.h (_MonoGenericParam.method): Move ...
11156 (_MonoGenericContainer): ... here. Add into union with klass field.
11157 * class.c, icall.c, loader.c, metadata.c, reflection.c:
11160 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
11162 * Makefile.am, class-internals.h, debug-helpers.c: consolidate
11163 the wrapper type enum and reduce relocations.
11165 2007-01-12 Raja R Harinath <rharinath@novell.com>
11167 * reflection.c (inflate_mono_method): Reuse method instantiation
11168 from the generic method, if available.
11170 2007-01-11 Jonathan Chambers <joncham@gmail.com>
11172 * marshal.c (emit_marshal_variant): Fix conv_arg
11173 type in last commit, based on whether parameter is byref.
11175 2007-01-11 Jonathan Chambers <joncham@gmail.com>
11177 * marshal.c (emit_marshal_variant): Handle unmanaged->managed
11179 (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
11180 MONO_TYPE_OBJECT back for VARIANT support.
11182 2007-01-11 Jonathan Chambers <joncham@gmail.com>
11184 * marshal.c, marshal.h, icall-def.h: Implement
11185 Marshal.ReAllocCoTaskMem.
11187 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
11189 * marshal.c: memory retention fixes: use the proper
11190 image cache for runtime_invoke method lookups.
11192 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
11194 * mempool.c: added code to help debug mempool allocations.
11196 2007-01-11 Dick Porter <dick@ximian.com>
11198 * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
11199 support (experimenting with faking it with IP_MTU_DISCOVER for
11200 systems that don't have IP_DONTFRAGMENT.)
11201 (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
11204 * icall-def.h: new System.Net.Sockets.Disconnect icall.
11206 * socket-io.h: Add new fields to MonoSocketAsyncResult
11207 corresponding to the new ones in Socket.cs.
11209 2007-01-11 Raja R Harinath <rharinath@novell.com>
11211 Fix IronPython regression mentioned in #80249
11212 * metadata.c (do_mono_metadata_parse_generic_class): Clear
11213 'cached_context' field, since it may have been initialized as a
11214 side-effect of metadata parsing.
11216 * class-internals.h (_MonoGenericClass.is_inflated): Remove.
11217 (_MonoGenericClass.cached_class): Move here and rename from lone
11218 remaining field of ...
11219 (_MonoInflatedGenericClass): ... this. Remove.
11220 * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
11223 Fix mcs/tests/test-128.cs regression.
11224 * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
11225 2007-01-10 change below.
11226 [MONO_TYPE_OBJECT]: Recurse into array case.
11228 2007-01-11 Raja R Harinath <harinath@gmail.com>
11230 * class-internals.h (mono_get_inflated_generic_class): Remove.
11231 * class.c (mono_get_inflated_generic_class): Remove.
11232 (mono_generic_class_get_class): Rename from
11233 mono_class_create_generic.
11234 (mono_class_from_mono_type) [GENERICINST]: Use it.
11235 * reflection.c, metadata.c: Update to changes. Use
11236 'mono_class_from_mono_type'.
11238 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
11240 * reflection.c: use passed type when encoding an array element
11241 in custom attributes (patch from David Mitchell, dmitchell@logos.com).
11243 2007-01-09 Robert Jordan <robertj@gmx.net>
11245 * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
11246 result arguments (someDelegate.EndInvoke (unrelatedAres)).
11249 2007-01-09 Raja R Harinath <rharinath@novell.com>
11251 * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
11253 * object.c (set_value): Avoid aliasing between type->data.klass
11254 and type->data.generic_class.
11256 * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
11258 2007-01-08 Raja R Harinath <rharinath@novell.com>
11260 * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
11261 between type->data.klass and type->data.generic_class.
11263 2007-01-08 Lluis Sanchez <lluis@ximian.com>
11265 * marshal.c: In MS.NET, StringBuilder objects are not copied by
11266 value in out parameters.
11268 2007-01-08 Raja R Harinath <rharinath@novell.com>
11270 Simplify invariant for MonoGenericClass::klass field.
11271 * class.c (mono_class_create_generic): Verify 'klass' is null.
11272 * metadata.c (do_mono_metadata_parse_generic_class): Don't
11273 initialize 'klass' field.
11275 2007-01-05 Raja R Harinath <rharinath@novell.com>
11277 Ongoing work to avoid redundant data and simplify invariants.
11278 * class-internals.h (_MonoGenericMethod.class_inst): Rename from
11279 'generic_class', and change type to a GenericInst.
11280 (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
11281 * class.c, loader.c, metadata.c, reflection.c: Update to changes.
11283 2007-01-05 Atsushi Enomoto <atsushi@ximian.com>
11285 * class.c : skip io-layer under PLATFORM_WIN32.
11287 2007-01-03 Tor Lillqvist <tml@novell.com>
11289 Fix #80305: In a bundled executable, look in the bundled exe
11290 assembly to determine the runtime version. Add the possibility to
11291 bundle also the machine.config file.
11293 * assembly.c (mono_assembly_open_from_bundle): Make
11294 non-static. Allow being called even if we have no bundled
11295 assemblies, and return NULL right away in that case.
11297 * domain-internals.h: Declare mono_assembly_open_from_bundle()
11300 * domain.c (app_config_parse): Take an assembly exe file name as
11301 parameter instead of a config file name. Check for a bundled
11302 config file for that assembly by calling
11303 mono_config_string_for_assembly_file() (see below) before looking
11304 for one in the file system.
11305 (get_runtimes_from_exe): Corrsponding change to call of
11306 app_config_parse().
11307 (get_runtimes_from_exe): Check for bundled assembly exe file first
11308 by calling mono_assembly_open_from_bundle(). If no bundled
11309 assembly exe file is found, call mono_image_open() as before to
11310 look it up in the file system.
11312 * mono-config.c: Add variable bundled_machinec_onfig.
11313 (mono_config_string_for_assembly_file): New function.
11314 (mono_config_for_assembly): Move code snippet that looks for a
11315 bundled assembly .config file into the above new function. Call
11317 (mono_register_machine_config, mono_get_machine_config): New
11318 functions to set and retrieve
11320 * assembly.h: Declare mono_register_machine_config().
11322 * mono-config.h: Declare mono_get_machine_config() and
11323 mono_config_string_for_assembly_file().
11325 * icall.c: No declaration of environ necessary on Win32. It is
11326 declared (as a macro expanding to a function call) in stdlib.h.
11327 (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
11328 New internal mono function. Returns the value of
11329 mono_get_machine_config() as a Mono string.
11331 * icall-def.h: Add get_bundled_machine_config().
11333 2007-01-04 Raja R Harinath <rharinath@novell.com>
11335 Remove redundant field
11336 * class-internals.h (_MonoGenericContext.container): Remove field.
11337 * loader.c (mono_method_get_signature_full): Don't parse a
11338 "container" for a signature parse when the signature is inflated
11340 (method_from_methodspec): Likewise, for a generic_inst.
11341 * class.c, metadata.c, reflection.c: Update to changes.
11343 2006-01-04 Raja R Harinath <rharinath@novell.com>
11345 * class-internals.h (_MonoGenericClass): Rename 'context' field to
11346 'cached_context', and change semantics -- it starts off NULL, and
11347 is initialized on demand.
11348 * class.c (mono_generic_class_get_context): New accessor to
11349 replace 'context' field accesses.
11350 (mono_class_get_context): New helper.
11351 (*): Update to changes.
11352 * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
11354 2007-01-03 Miguel de Icaza <miguel@novell.com>
11356 * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
11357 before the memcpy. Fixes Marshal2 regression.
11359 2007-01-02 Jb Evain <jbevain@gmail.com>
11361 * blob.h: add a MONO_TYPE_ENUM definition
11362 * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
11363 fix the encoding of arrays of enums in custom attributes.
11367 2007-01-01 Miguel de Icaza <miguel@novell.com>
11369 * marshal.c (mono_string_to_byvalwstr): Fix this routine. The
11370 string is null terminated, but only cut the string short if it
11371 overflows the buffer.
11373 (mono_string_to_byvalstr): Also fix this routine. The code here
11374 was not properly terminating a string (it was only terminated
11375 because of the previous catch-all memset).
11377 I left the memset, because I do not know if applications expect
11378 the runtime to clear this region.
11382 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
11383 Clear the error before returning to unmanaged code to prevent the
11384 runtime from being confused later on (fixes 80420).
11385 (ves_icall_type_from_name): Always call mono_loader_clear_error
11386 after parsing a type that could have failed.
11387 (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
11389 * loader.c (mono_loader_clear_error): Fix indentation.
11391 2006-12-28 Martin Baulig <martin@ximian.com>
11393 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
11395 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
11397 * reflection.c: patch from Rolf Bjarne Kvinge to fix
11398 getting a token for an EnumBuilder.
11400 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
11402 * reflection.c: be more careful in case resource generation
11403 fails to create the data array.
11405 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
11407 * sgen-gc.c: write barrier for clone and fix unregister handles.
11409 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
11411 * reflection.c: some fixes needed in the generics code for the moving GC.
11413 2006-12-22 Robert Jordan <robertj@gmx.net>
11415 * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
11416 account. Fixes bug #80299.
11418 2006-12-21 Raja R Harinath <rharinath@novell.com>
11420 Fix WaitHandle usage in delegates.
11421 * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
11422 * object.c (mono_wait_handle_new): Use the property set method to
11423 initialize the handle.
11424 (mono_wait_handle_get_handle): New.
11425 * threadpool.c (mono_async_invoke): Use it.
11426 * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
11428 (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
11430 2006-12-21 Jonathan Chambers <joncham@gmail.com>
11432 * marshal.c (emit_marshal): Call emit_marshal_variant and
11433 emit_marshal_com_interface when applicable.
11434 (emit_marshal_variant, emit_marshal_com_interface): Add
11435 methods for this case and remove if's from emit_marshal_object.
11437 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
11439 * filewatcher.c: updated to use the mono-dl API instead of gmodule.
11441 2006-12-19 Jonathan Chambers <joncham@gmail.com>
11443 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
11444 ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
11445 and GlobalFree on Windows. Remove FIXME.
11447 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
11449 * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
11450 implementation for managed objects.
11452 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
11454 * object.c: implemented code to be used for checking
11455 that no reference field overlaps with non-references.
11457 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
11459 * threadpool.c: fix queue code to be compatible with the
11462 2006-12-18 Miguel de Icaza <miguel@novell.com>
11464 * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
11465 in structures by throwing ArgumentNullException.
11467 (emit_marshal_safehandle): Also when they are null parameters.
11469 (emit_marshal_safehandle): Add support for ref
11470 SafeHandles parameters
11472 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
11474 * profiler.c: updated to use the mono-dl API instead of
11477 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
11479 * profiler.c: updated to use the mono-dl dynamic loading
11480 API instead of gmodule.
11482 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
11484 * profiler.c: use readlink, older versions of glib don't have
11485 g_file_read_link ().
11487 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
11489 * profiler.c: try to detect the path to mono if libc fails to provide
11490 a useful name (bug #80286).
11492 2006-12-16 Raja R Harinath <rharinath@novell.com>
11495 * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
11496 instance, use the generic type definition instead.
11497 (ves_icall_Type_GetNestedTypes): Likewise.
11498 * class.c (mono_class_create_generic): Always set the
11499 nested_classes of a generic instance to NULL, even if the generic
11500 type definition has nested types.
11502 2006-12-15 Jonathan Chambers <joncham@gmail.com>
11504 * marshal.c (mono_string_from_bstr): Revert previous Windows change
11507 2006-12-15 Miguel de Icaza <miguel@novell.com>
11509 * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
11510 my arguments were in the wrong order. I also fixed the Windows
11511 version which seems to have had the same issue.
11513 (mono_free_bstr): On Unix, this is g_free.
11514 (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
11515 conversions (for the tests in corlib to pass).
11517 2006-12-14 Miguel de Icaza <miguel@novell.com>
11519 * marshal.c (emit_ptr_to_object_conv): For now, ignore
11520 MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
11521 exception if a ref SafeHandle in a struct has changed).
11523 (emit_struct_conv): Do not perform layout checks for classes
11524 derived from SafeHandle, as those are specially handled.
11526 (emit_object_to_ptr_conv): Add support for
11527 MONO_MARSHAL_CONV_SAFEHANDLE conversion.
11529 (emit_marshal_safehandle): Implement conversion of return values
11530 of safehandles (MARSHAL_ACTION_CONV_RESULT).
11532 * threads.c: WaitHandle now is compiled with two different handles
11533 "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
11536 (ves_icall_System_Threading_WaitHandle_WaitAll_internal)
11537 (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
11538 these routines to cope with both kinds of fields.
11540 2006-12-12 Miguel de Icaza <miguel@novell.com>
11542 * metadata.c (mono_type_to_unmanaged): Handle the case where
11543 type->data.klass is a SafeHandle, and in that case, return the
11544 size of a pointer (MONO_NATIVE_INT) and set the conversion to be
11545 MONO_MARSHAL_CONV_SAFEHANDLE.
11547 2006-12-11 Miguel de Icaza <miguel@novell.com>
11549 * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
11550 MONO_TYPE_OBJECT cases and check for a SafeHandle here before
11551 calling emit_marshal_object.
11553 (emit_marshal_safehandle): Implement marshalling of
11554 SafeHandle parameters (no ref support yet).
11556 (MarshalAction): Document the defines as I implement
11557 them for SafeHandle.
11559 (emit_marshal_object): indentation police.
11561 * class-internals.h: Define MonoSafeHandle.
11562 Add safehandle_class to MonoDefaults type.
11564 * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
11565 list of classes to check for fields.
11567 * domain.c (mono_init_internal): Add SafeHandle to the list of
11568 mono_defaults loaded.
11570 2006-12-15 Raja R Harinath <rharinath@novell.com>
11573 * reflection.c (mono_reflection_bind_generic_parameters): If the
11574 generic type definition is a type builder, ensure that it is fully
11575 initialized before instantiating it. Kill some dead code.
11577 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
11579 * object.c: clear the loader_error () before loading
11580 more metadata stuff (bug #80258).
11582 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
11584 * icall.c, icall-defs.h: type modifiers icalls for
11585 parameters and properties.
11587 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
11589 * object.c, icall.c: fixed warnings.
11591 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
11593 * marshal.c: fixed a couple of leaks and coding style in a few places.
11595 2006-12-08 Dick Porter <dick@ximian.com>
11597 * process.c: Cope with NULL ProcessStartInfo arguments on windows
11598 too. Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
11601 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
11603 * process.c: ProcessStartInfo may have only filename set and
11604 arguments can be NULL.
11606 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
11608 * icall.c: fix leak found by Robert Jordan.
11610 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
11612 * marshal.c, marshal.h: generate managed method to access an element
11613 of a multi-dimensional array.
11615 2006-11-30 Paolo Molaro (lupus@ximian.com)
11617 * metadata.c, marshal.c: locking fixes when writing to image->mempool.
11619 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
11621 * icall.c: back out GetFields () fix until the serialization code is
11622 fixed to not depend on the incorrect behaviour.
11624 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
11626 * profiler.c: provide defaults if none are set.
11628 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
11630 * Makefile.am, attrdefs.h: new public header file with
11631 constants for attributes for use by embedders.
11633 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
11635 * icall.c: GetFields () fix for bug #80064.
11637 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
11639 * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
11640 removed long unused icalls.
11642 2006-11-27 Jonathan Chambers <joncham@gmail.com>
11645 (mono_marshal_emit_managed_wrapper): Level of indirection for
11646 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
11647 can be generated without a delegate class.
11648 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
11650 Signed-off-by: Jonathan Chambers <joncham@gmail.com>
11652 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11654 * console-io.c: add the 'signal' call removed by mistake. Fixes bug
11657 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
11659 * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
11660 icall-def.h: added icalls needed by System.GC.
11662 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
11664 * loader.c: ensure the class in catch clauses is handled
11665 correctly for generics methods (fixes bug#79980).
11667 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
11669 * monitor.h, monitor.c: added mono_locks_dump () function
11670 to help debug deadlocks involving managed locks.
11672 2006-11-13 Dick Porter <dick@ximian.com>
11674 * file-io.c (get_file_attributes): If the file is a symlink try
11675 and get the stat data for the target, but also add the
11676 FILE_ATTRIBUTE_REPARSE_POINT flag. This is an attempt to follow
11677 the specs for the windows symlink support, but will probably have
11678 to be reworked when I have test data from a vista machine. Fixes
11681 2006-11-13 Dick Porter <dick@ximian.com>
11683 * gc.c (mono_domain_finalize):
11684 * marshal.c (mono_delegate_begin_invoke):
11685 * threadpool.c (socket_io_init, mono_thread_pool_init)
11686 (mono_thread_pool_finish):
11687 * monitor.c (mono_monitor_try_enter_internal):
11688 * threads.c (mono_thread_resume, mono_thread_init)
11689 (mono_thread_suspend_all_other_threads)
11690 (mono_thread_execute_interruption):
11691 * appdomain.c (mono_domain_unload): Check for NULL error returns
11692 from CreateThread(), CreateEvent() and CreateSemaphore(). See bug
11695 2006-11-11 Miguel de Icaza <miguel@novell.com>
11698 (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
11699 Only close the handle if the value of the handle is not
11700 INVALID_HANDLE_VALUE. This just makes the process a bit more
11703 Improvement for #75733, so that we do not run into this problem.
11706 * assembly.c (check_path_env, check_extra_gac_path_env): Do not
11707 include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
11708 internal variables. Fixes #79462
11711 2006-11-09 Dick Porter <dick@ximian.com>
11713 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
11714 Use poll() not select(). Fixes bug 79397.
11716 2006-11-09 Raja R Harinath <rharinath@novell.com>
11719 * assembly.c (mono_assembly_load_from_full): Check that the given
11720 image has an assembly manifest.
11722 2006-11-09 Ankit Jain <jankit@novell.com>
11724 * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
11725 (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
11726 (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
11728 2006-11-07 Dick Porter <dick@ximian.com>
11730 * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
11731 Put the old resolver behaviour back for pre-2.0 profiles.
11733 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
11735 * threadpool.c: precise GC and locking fixes.
11737 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
11739 * class.c: don't load types that have an explicit unaligned
11740 managed reference. Provide better info in the TypeLoad exception.
11741 Part of the fix for bug #79744.
11742 * object.c: use the correct check for class type load issues.
11744 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
11746 * class.c: enforce alignment of fields with managed references
11747 even when Pack=1 is forced by the user (bug #77788).
11749 2006-11-03 Dick Porter <dick@ximian.com>
11751 * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
11752 If the address reverse lookup fails, return it as the hostname
11753 anyway. Fixes bug 79721.
11755 2006-11-03 Dick Porter <dick@ximian.com>
11757 * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
11758 Fix build on Windows.
11760 2006-11-02 Dick Porter <dick@ximian.com>
11763 * object-internals.h:
11764 * exception.c (mono_get_exception_thread_interrupted):
11765 * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
11768 * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
11769 Check for pending Thread.Interrupt.
11771 2006-10-27 Massimiliano Mantione <massi@ximian.com>
11772 * loader.c: Fixed bug 79684.
11774 2006-10-27 Dick Porter <dick@ximian.com>
11776 * file-io.c (get_file_attributes): Force symlinks to directories
11777 to be returned as a regular file. Fixes bug 79733.
11778 2006-10-26 Dick Porter <dick@ximian.com>
11780 * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
11781 CreateFile to open a directory then we need to set the
11782 FILE_FLAG_BACKUP_SEMANTICS flag. Fixes bug 75285.
11784 2006-10-23 Zoltan Varga <vargaz@gmail.com>
11786 * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
11789 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
11791 * sgengc.c: small cleanup of timer code.
11793 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
11795 * sgen-gc.c: fix some warnings and start adding support for
11796 complete object removal on domain unload.
11798 2006-10-22 Gert Driesen <drieseng@users.sourceforge.net>
11800 * assembly.c: build_assembly_name should not consider a version
11801 number without build or revision number invalid. Fixes bug #79715.
11803 2006-10-18 Jonathan Chambers <joncham@gmail.com>
11805 * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
11806 call kernel32 function OutputDebugString directly.
11808 Signed-off-by: Jonathan Chambers <joncham@gmail.com>
11810 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
11812 * reflection.c: small cleanup, using a function to insert a MonoString
11813 in the string heap.
11815 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
11817 * reflection.c: moving GC fixes.
11819 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
11821 * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
11822 all the objects with finalizers belonging to an unloading appdomain.
11824 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
11826 * sgen-gc.c: added ability to allocate even when the nursery is fully
11827 pinned and fixed a couple of bugs.
11829 2006-10-15 Zoltan Varga <vargaz@gmail.com>
11831 * threads.h: Revert the last change for now.
11833 * threads.h (mono_thread_get_pending_exception): Rename this to
11834 mono_thread_get_undeniable_exception ().
11836 2006-10-15 Gert Driesen <drieseng@users.sourceforge.net>
11838 * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
11839 BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
11840 when fname does not refer to valid assembly. This result in a more
11841 meaningful error message.
11842 * exception.c: added mono_get_exception_bad_image_format2 which
11843 constructs a BadImageFormatException using the ctor taking a custom
11844 message and the file name. Passing in a NULL msg results in a default
11846 * exception.h: define mono_get_exception_bad_image_format2 function.
11847 * icall.c: in InternalGetAssemblyName, throw BadImageFormatException
11848 when file name pointed to an invalid IL image. Use
11849 mono_get_exception_file_not_found2 to construct FileNotFoundException,
11850 as this results in a more meaningful error message.
11852 2006-10-15 Zoltan Varga <vargaz@gmail.com>
11854 * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
11857 2006-10-12 Zoltan Varga <vargaz@gmail.com>
11859 * metadata.c (mono_type_size): Change the align parameter to guint32 for
11860 consistency with the other _size functions.
11861 (mono_type_stack_size): Ditto.
11863 * class.c object.c icall.c: Fix warnings caused by the above change.
11865 * class.c (mono_class_get_method_from_name_flags): Fix a typo.
11867 * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
11869 * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
11871 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
11873 * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
11874 process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
11875 socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
11876 threadpool.h, threads-types.h: mark more internal functions.
11878 2006-10-11 Dick Porter <dick@ximian.com>
11880 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
11881 Fix typo spotted by Robert Jordan in bug 79352 (though I can't
11882 reproduce the bug even before applying the fix.)
11884 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
11886 * reflection.c: allow retrieving attributes for arguments in generic
11887 methods (bug #79241).
11889 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
11891 * debug-mono-symfile.c: properly check fopen () result (found by
11894 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
11896 * reflection.c: make error message clearer and fixed two
11897 issuelets found by Coverity.
11899 2006-10-10 Zoltan Varga <vargaz@gmail.com>
11901 * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
11903 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
11905 * object-internals.h, gc-internal.h, profiler-private.h:
11906 mark internal functions.
11908 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
11910 * reflection.c: put data in the text section.
11911 * icall.c: recognize more types in type_from_typename ().
11912 * process.c, marshal.c: added some GC FIXMEs.
11914 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
11916 * loader.c: check for NULL before initializing.
11918 2006-10-09 Zoltan Varga <vargaz@gmail.com>
11920 * gc.c (finalizer_thread): Use a non-alertable wait here.
11922 * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
11923 until the correct solution is found.
11925 2006-10-06 Zoltan Varga <vargaz@gmail.com>
11927 * reflection.c (mono_module_get_object): Avoid an assert when operating on
11928 modules with no metadata. Fixes #79596.
11930 * image.c (load_metadata_ptrs): Put back the error message when
11931 the #- heap is encountered since the support is not complete yet.
11933 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
11935 * gc.c: do not allow the user to SuppressFinalize () a
11936 delegate because it would leak the trampoline if present.
11938 2006-10-06 Zoltan Varga <vargaz@gmail.com>
11940 * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
11943 2006-10-05 Zoltan Varga <vargaz@gmail.com>
11945 * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
11947 * metadata.c (mono_metadata_get_param_attrs): Ditto.
11949 * row-indexes.h: Add definitions for *Ptr tables.
11951 * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
11953 * metadata.c (mono_metadata_translate_token_index): New helper function to
11954 translate table indexes used in uncompressed metadata.
11955 (mono_metadata_decode_table_row): Ditto.
11956 (mono_metadata_decode_table_row_col): Ditto.
11958 * metadata.c: Add table schema for *Ptr tables.
11960 * class.c loader.c: Use the new helper function to access the affected metadata
11963 * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
11966 2006-10-04 Zoltan Varga <vargaz@gmail.com>
11968 * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
11969 sequences which can be unbounded in size. Fixes #79583.
11971 2006-10-02 Zoltan Varga <vargaz@gmail.com>
11973 * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
11974 static initialization.
11976 * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
11978 * class-internals.h (MonoVTable): Add an 'init_failed' flag.
11980 * domain.c (mono_domain_free): Free up type_init_exception_hash.
11982 * object.c (mono_runtime_class_init): Implement correct semantics when a static
11983 ctor fails, i.e. throw the same exception on subsequent accesses.
11985 2006-09-0 Jonathan Chambers <joncham@gmail.com>
11987 * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
11988 * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
11989 Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
11990 Handle marshalling of interfaces and VARIANTs contained in structs.
11992 Code is contributed under MIT/X11 license.
11994 2006-09-30 Zoltan Varga <vargaz@gmail.com>
11996 * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
11998 * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
12001 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12003 * console-io.c: ignore previous SIGINT handler.
12005 2006-09-27 Zoltan Varga <vargaz@gmail.com>
12007 * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual
12008 (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
12009 #79460, #79461, #79485.
12011 * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
12013 * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
12016 2006-09-26 Zoltan Varga <vargaz@gmail.com>
12018 * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
12019 could be generated from it.
12021 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
12023 * rand.c: fix read loop to correctly handle EINTR.
12025 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
12027 * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
12028 internal calls are defined to keep methods closer to the declaring
12029 type and allow a significant reduction in runtime relocations and
12032 2006-09-21 Gert Driesen <drieseng@users.sourceforge.net>
12034 * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
12035 exception message to have FileNotFoundException use the default
12036 assembly load error message. Fixes bug #79426.
12037 * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
12039 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12041 * threadpool.c: (start_thread_or_queue) use the root domain when
12042 creating the thread instead of the async object one.
12044 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
12046 * class.c, object.c, class-internals.h, reflection.c:
12047 for arrays, store element_size inside MonoClass (speedup
12048 for array object creation).
12050 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
12052 * icall.c: fixed CodeBase to use the file name and not the module
12055 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
12057 * mono-debug.c, mono-debug.h: export find_method as
12058 mono_debug_find_method ().
12060 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
12062 * debug-helpers.c, class-internals.h: added a few functions useful
12063 when debugging under gdb.
12065 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12067 * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
12068 characters that need special handling.
12070 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
12072 * mono-config.c: make the os/cpu specification more flexible,
12073 allowing lists and negation.
12075 2006-09-18 Jonathan Chambers <joncham@gmail.com>
12077 * marshal.c: COM Interop fixes. Handle case where method->klass.
12078 is interface. Handle BSTR/MonoString when null. Use CDECL as
12079 calling convention on non-windows platforms. This is for
12080 compatibility with XPCOM and MainWin COM.
12082 Code is contributed under MIT/X11 license.
12085 2006-09-18 Zoltan Varga <vargaz@gmail.com>
12087 * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
12088 correctly. Fixes #79217.
12090 * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
12092 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
12094 * mono-config.c: allow both an os and cpu attribute for dllmap
12095 and dllentry elemnets to enable a single config file to be used
12096 for multiple architectures.
12098 2006-09-18 Gert Driesen <drieseng@users.sourceforge.net>
12100 * loader.c: MonoLoaderError was cleared too soon on load failure.
12103 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
12105 * icall.c: use the defining class vtable when accessing a
12106 static field, not a pobblibly derived class.
12108 2006-09-17 Zoltan Varga <vargaz@gmail.com>
12110 * icall.c string-icalls.c: Remove references to unicode.h.
12112 * unicode.h unicode.c Makefile.am: Remove these unused source files.
12114 * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
12116 * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument,
12117 indicating the image where custom marshaller types should be looked up.
12118 (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
12119 custom marshallers, instead of corlib. Fixes #79425.
12121 2006-09-14 Zoltan Varga <vargaz@gmail.com>
12123 * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
12125 2006-09-14 Jonathan Chambers <joncham@gmail.com>
12127 * environment.c (ves_icall_System_Environment_get_ProcessorCount):
12128 Implement Environment.ProcessorCount.
12130 * environment.h (ves_icall_System_Environment_get_ProcessorCount):
12131 Implement Environment.ProcessorCount.
12134 Add Environment.ProcessorCount icall.
12136 Patch by Jason McFall.
12138 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12140 * assembly.c: don't append .exe/.dll when the filename already contains
12141 one of those extensions.
12143 2006-09-12 Martin Baulig <martin@ximian.com>
12145 * class.c (mono_bounded_array_class_get): Also add `IList<object>'
12146 to array interfaces.
12148 2006-09-11 Martin Baulig <martin@ximian.com>
12150 * reflection.c (mono_image_build_metadata): Create the
12151 MethodImpl's after emitting all types and methods, so we don't
12152 need another fixup pass for them.
12154 2006-09-11 Zoltan Varga <vargaz@gmail.com>
12156 * class.c (mono_class_from_name_case): Fix regression introduced by the last
12159 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
12161 * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
12164 2006-09-10 Zoltan Varga <vargaz@gmail.com>
12166 * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
12167 args is not set. Fixes #78926.
12169 2006-09-08 Zoltan Varga <vargaz@gmail.com>
12171 * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
12173 * image.c (load_class_names): Move this to class.c, and rename it to
12174 'mono_image_init_name_cache'.
12175 (load_modules): Fix a warning.
12177 * class.c icall.c image.c: Initialize image->name_cache lazily.
12179 * class-internals.h (MonoGetClassFromName): New hook function to find a class based
12180 on its name using information in the AOT file.
12182 * class.c (mono_class_from_name): Use the new hook function.
12184 2006-09-06 Zoltan Varga <vargaz@gmail.com>
12186 * reflection.c (mono_param_get_objects): Handle enum default parameter values
12189 * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
12192 2006-09-06 Martin Baulig <martin@ximian.com>
12194 * icall.c (mono_lookup_internal_call): Small fix.
12196 2006-09-05 Raja R Harinath <rharinath@novell.com>
12198 * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
12201 2006-09-04 Sebastien Pouliot <sebastien@ximian.com>
12203 * debug-mono-symfile.c: Fix *some* memory leaks that happens only
12204 when --debug is specified.
12206 2006-09-04 Zoltan Varga <vargaz@gmail.com>
12208 * class.c (setup_generic_array_ifaces): Fix a warning.
12210 2006-09-04 Miguel de Icaza <miguel@novell.com>
12212 * Temporarily remove the patch to assemly.c that checks the
12213 assembly versions as it breaks our gacutil.
12215 2006-09-03 Zoltan Varga <vargaz@gmail.com>
12217 * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
12219 * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
12222 * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
12223 created using the default ctor. Fixes #79152.
12224 (mono_string_builder_to_utf16): Ditto.
12226 2006-09-01 Martin Baulig <martin@ximian.com>
12228 Fix handling of the generic array interfaces.
12230 * class-internals.h
12231 (MonoDefaults): Removed `generic_array_class' and added
12232 `generic_ilist' class.
12235 (mono_bounded_array_class_get): Add the new generic array interfaces.
12236 (setup_generic_array_ifaces): New static method; create vtable
12237 entries for each method in the generic array interfaces.
12240 (select_container): Allow "parent-less" generic methods.
12243 (mono_marshal_get_generic_array_helper): New public method.
12246 (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
12247 Renamed into ves_icall_System_Array_GetGenericValueImpl() and
12248 moved the interncall into System.Array.
12250 2006-09-01 Raja R Harinath <rharinath@novell.com>
12252 A few more cases of avoiding work on types with ->byref set.
12253 Has the real fix for #79238
12254 * icall.c (is_generic_parameter): New helper.
12255 (ves_icall_Type_GetGenericParameterPosition): Use it.
12256 (ves_icall_Type_GetGenericParameterAttributes): Likewise.
12257 (ves_icall_MonoType_get_IsGenericParameter): Likewise.
12258 (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
12259 (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
12261 (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
12263 (ves_icall_Type_get_IsGenericInstance): Likewise.
12264 (ves_icall_Type_get_IsGenericType): Likewise.
12266 2006-09-01 Zoltan Varga <vargaz@gmail.com>
12268 * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
12271 * mempool.h (mono_mempool_get_allocated): New helper function.
12273 * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
12276 * mempool.c: Fix warnings and the calculation of stats.
12278 * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
12280 * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
12282 * loader.c (mono_get_method_from_token): Update method_count stat.
12284 * class-internals.h (MonoStats): Add some stats.
12286 2006-08-31 Robert Jordan <robertj@gmx.net>
12288 * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
12289 with managed variants.
12290 All code is contributed under the MIT/X11 license.
12292 2006-08-31 Zoltan Varga <vargaz@gmail.com>
12294 * reflection.c (reflection_methodbuilder_to_mono_method): Set
12295 method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
12297 * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
12299 * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
12300 with cycles in classes.
12302 * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
12304 * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is
12305 missing a [MarshalAs] directive. Fixes #79203.
12307 * marshal.c (mono_marshal_load_type_info): Fix a race in initializing
12308 klass->marshal_info. Fixes #79217.
12310 2006-08-30 Martin Baulig <martin@ximian.com>
12312 Committing a patch from Joachim Ante <joe@otee.dk>:
12313 Add support for binary data symbol stores.
12315 * debug-mono-symfile.c
12316 (mono_debug_open_mono_symbol_file): Renamed into
12317 mono_debug_open_mono_symbols() and added `raw_contents' and `size'
12321 (mono_debug_open_image): Added `raw_contents' and `size' args.
12322 (mono_debug_init_2_memory): New public function.
12324 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
12326 * icall.c: handle TypedReference in GetTypeCode (bug #79150).
12328 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12330 * appdomain.c: implement support for ShadowCopyFiles.
12332 2006-08-22 Sebastien Pouliot <sebastien@ximian.com>
12334 * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
12335 when value is NULL (and should remove CID #51).
12337 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12339 * image.c: moved 2 functions to ../utils.
12341 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
12343 * gc.c: cope with the target object of a GC handle being NULL
12346 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
12348 * class.c: recursively check parent's explicit implementations
12349 of interface methods (fixes bug #79125).
12351 2006-08-19 Miguel de Icaza <miguel@novell.com>
12353 * filewatcher.c: Avoid warnings when building, do not redefine
12354 constants that are defined.
12358 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12360 * image.c: don't fail when the link points to an absolute path.
12362 2006-08-18 Sebastien Pouliot <sebastien@ximian.com>
12364 * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
12367 2006-08-17 Miguel de Icaza <miguel@novell.com>
12369 * image.c (full_path): A new method used to obtain the actual path
12370 of an assembly even in the presence of symbolic links.
12372 This is necessary for the case where we are running a binary that
12373 has been GACed, but we are using the "published" path name
12374 ($prefix/mono/1.0/blah.exe) which happens to point to the real
12377 This was the source of the failure for the `xsp' command with the
12378 recent AppDomain changes, as far as the runtime was concerned,
12379 there were two different assemblies: $prefix/mono/1.0/blah.exe and
12380 $prefix/mono/gac/blah/version/blah.exe.
12382 (do_mono_image_open): use full path
12384 2006-08-17 Zoltan Varga <vargaz@gmail.com>
12386 * object.c (mono_class_create_runtime_vtable): Add a FIXME.
12388 2006-08-17 Sebastien Pouliot <sebastien@ximian.com>
12390 * marshal.c: Fix mono_marshal_check_domain_image if an invalid
12391 domain_id is supplied. Fix CID #241 and corlib's unit tests.
12393 2006-08-17 Zoltan Varga <vargaz@gmail.com>
12395 * class.c (mono_class_layout_fields): Set min_align to a bigger value for
12396 small structures. Fixes #78990.
12398 2006-08-17 Zoltan Varga <vargaz@gmail.com>
12400 * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
12402 * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
12404 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12407 * marshal.c: don't load all the assemblies from a domain into newly
12408 created ones. The new domains might have different rules and load
12409 assemblies from different locations. Fixes bug #76757.
12411 Patch by Lluis. Conflicts resolved by Brian Crowell.
12413 2006-08-16 Alp Toker <alp@atoker.com>
12415 * socket-io.c: First half of the fix for #79084.
12416 Set sa_size to the length of the content, not that of the struct.
12417 Don't add NULL suffix to the content, this should be done in
12418 managed code if needed.
12420 2006-08-14 Raja R Harinath <rharinath@novell.com>
12423 * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
12424 mono_metadata_parse_type returns NULL.
12426 2006-08-13 Atsushi Enomoto <atsushi@ximian.com>
12428 * normalization-tables.h : new file for string normalization data.
12429 * locales.c, locales.h, icall.c :
12430 added load_normalization_resource() for string normalization,
12432 * Makefile.am : added normalization-tables.h to the sources.
12434 2006-08-13 Zoltan Varga <vargaz@gmail.com>
12436 * marshal.c: Add more helper functions to reduce code duplication and use them
12439 2006-08-12 Zoltan Varga <vargaz@gmail.com>
12441 * marshal.c: Fix non-x86 stdcall warnings.
12443 * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use
12446 2006-08-11 Jonathan Chambers <joncham@gmail.com>
12448 * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
12449 type check on multi-dimensional arrays. Fixes #79000.
12451 2006-08-10 Jonathan Chambers <joncham@gmail.com>
12453 * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
12454 * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
12455 to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
12456 * class-internals.h: add is_com_object to class structure.
12457 * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
12458 null checks to COM object marshalling. Fix .ctor call on RCW.
12459 * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
12461 All code is contributed under the MIT/X11 license.
12463 2006-08-09 Dick Porter <dick@ximian.com>
12465 * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
12466 racing mono_monitor_allocator_lock() somewhere, so don't delete
12467 the critical section for now. Found by running and exiting
12470 2006-08-10 Zoltan Varga <vargaz@gmail.com>
12472 * marshal.c (cominterop_get_native_wrapper): Fix a warning.
12473 (ves_icall_System_ComObject_FindInterface): Ditto.
12474 (ves_icall_System_ComObject_CacheInterface): Ditto.
12476 * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
12477 (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
12479 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12481 * threadpool.c: treat pipes from process asynchronous reads as sockets
12482 when reading from them, so we get select/poll or epoll to wait for
12485 2006-08-07 Sebastien Pouliot <sebatien@ximian.com>
12487 * loader.c: Fix a typo (CID #233) in the null check.
12489 2006-08-07 Zoltan Varga <vargaz@gmail.com>
12491 * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
12492 Hopefully fixes #78949.
12494 * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from
12495 Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
12496 bytes. Fixes #78972.
12498 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12500 * filewatcher.c: we need to set errno here.
12502 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12504 * filewatcher.c: let Win32Exception get the error value.
12506 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12508 * filewatcher.c: translate errno into win32 errors for Win32Exception
12509 to know what happened.
12511 2006-08-01 Zoltan Varga <vargaz@gmail.com>
12513 * threadpool.c: Fix more warnings.
12515 * assembly.c (search_loaded): Fix warnings.
12517 * threadpool.c (mono_thread_pool_finish): Fix warnings.
12518 (mono_async_invoke): Ditto.
12520 2006-07-28 Jonathan Chambers <joncham@gmail.com>
12522 * object.c (mono_remote_class_vtable): Need to create proxy vtable
12523 entries for __ComObject type in addition to ComImport types.
12524 * marshal.c: Added support for marshalling COM RCWs. Fixed warning
12527 All code is contributed under the MIT/X11 license.
12529 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
12531 * image.c: avoid tentative loading of modulerefs that contain
12532 no metadata (P/Invoke library names).
12534 2006-07-28 Dick Porter <dick@ximian.com>
12536 * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
12537 mono_loader_lock() somewhere, so don't delete the critical section
12538 for now. Found by running and exiting monodevelop.
12540 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12542 * filewatcher.c: define the inotify syscalls when we're building on
12543 linux and have sys/syscall.h. The build system might not have support
12544 for inotify but the target system might have it.
12546 2006-07-26 Miguel de Icaza <miguel@novell.com>
12548 * domain.c: Documentation updates.
12550 * loader.c (mono_free_method): Do not release the method
12551 information if we are being profiled, as profilers will use this
12552 information at shut down to present some data to the user.
12554 This is needed so that the profiler does not crash, as the
12555 profiler tends to keep MonoMethods around, and they might become
12556 invalid if we free these.
12558 (mono_get_method_constrained): Return the original CIL stream
12559 method as well, so verification can be performed against it.
12561 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12563 * filewatcher.[ch]: support for inotify file system watcher.
12564 * icall.c: add new internal calls for the inotify file system watcher.
12566 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12568 * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
12571 2006-07-20 Dick Porter <dick@ximian.com>
12573 * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
12576 2006-07-20 Dick Porter <dick@ximian.com>
12578 * threads.c (start_wrapper): Do the thread cleanup while we still
12579 hold a reference to its object. Fixes bug 78123.
12581 2006-07-18 Kornél Pál <kornelpal@gmail.com>
12583 * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
12584 * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
12585 "managed-to-managed".
12586 * icall.c: Redirect string constructors that take sbyte* to
12587 ves_icall_System_String_ctor_RedirectToCreateString.
12588 * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
12589 to CreateString () methods with matching signature.
12590 * reflection.c: Use original security informations for
12591 MONO_WRAPPER_MANAGED_TO_MANAGED.
12592 * security-manager.c: Use original security informations for
12593 MONO_WRAPPER_MANAGED_TO_MANAGED.
12594 * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
12595 that is a placeholder and only its address should be used.
12596 * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
12597 that is a placeholder and only its address should be used.
12599 2006-07-15 Jonathan Chambers <joncham@gmail.com>
12601 Begin implementing COM Interop.
12602 * appdomain.c: Increment corlib version.
12603 * class.c: Set ComImport classes' parent to __ComObject.
12604 * loader.c: Mark cominterop methods as such.
12605 * domain.c: Add __ComObject class to MonoDefaults structure.
12606 * image.c: Add 2 hashtables to the image for COM Interop related methods
12607 * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
12608 using the mempool allocator
12610 * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
12611 * metadata.h: Added cominterop field to _MonoMethodSignature struct and
12612 declaration for mono_metadata_type_dup_mp.
12614 * debug-helpers.c: Added strings for two additional wrapper types
12615 * object.c: Create proxy objects for ComImport classes
12616 * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
12617 and added __ComObject class to MonoDefaults structure.
12619 * object-internals.h: Finish MonoRealProxy definition, and add definition of
12620 MonoComInteropProxy and MonoComObject.
12622 * marshal.c: Added support for COM Interop
12623 (signature_cominterop): Converts managed signature to corresponding
12624 unmanaged COM signature.
12625 (cominterop_get_function_pointer): gets unmanaged function pointer via
12627 (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
12628 (cominterop_get_method_interface): returns interface type that method is defined on
12629 (mono_mb_emit_cominterop_call): emits native call to function pointer
12631 (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
12632 that matches signature of unmanaged function.
12633 (cominterop_get_native_wrapper): wrapper around adjusted method call.
12634 (cominterop_get_invoke): forwards call from proxy to __ComObject
12635 (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef
12636 (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface
12637 (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release
12639 * marshal.h: Added Marshal icall declarations.
12640 * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
12641 so we can access them in finalizer
12643 2006-07-14 Dick Porter <dick@ximian.com>
12645 * object.c (mono_type_initialization_cleanup): Fix a race
12646 condition by temporarily commenting out the critical section
12649 2006-07-14 Zoltan Varga <vargaz@gmail.com>
12651 * reflection.c (create_custom_attr): Fix some warnings.
12652 (create_custom_attr_data): Ditto.
12653 (typebuilder_setup_properties): Save custom attrs for properties in dynamic
12654 types. Fixes #78855.
12656 2006-07-11 Zoltan Varga <vargaz@gmail.com>
12658 * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
12660 * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
12662 2006-07-08 Zoltan Varga <vargaz@gmail.com>
12664 * reflection.c (resolve_object): Add support for DynamicMethod.
12666 * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
12667 Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
12669 2006-07-06 Sebastien Pouliot <sebastien@ximian.com>
12671 * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal
12672 don't leak GPtrArray's pdata has we have no use (nor free) for it.
12674 2006-07-01 Zoltan Varga <vargaz@gmail.com>
12676 * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
12679 2006-06-30 Raja R Harinath <rharinath@novell.com>
12681 * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
12682 slightly: remove a shadow local variable.
12684 2006-06-29 Raja R Harinath <rharinath@novell.com>
12686 * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
12687 definition that introduces the virtual function slot.
12688 Also fix Coverity #105.
12690 2006-06-29 Zoltan Varga <vargaz@gmail.com>
12692 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
12693 for dynamic assemblies. Fixes #78724.
12695 2006-06-28 Zoltan Varga <vargaz@gmail.com>
12697 * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
12700 2006-06-21 Martin Baulig <martin@ximian.com>
12703 (method_encode_clauses): Don't assert on `ex_info->handlers' here;
12706 2006-06-21 Zoltan Varga <vargaz@gmail.com>
12708 * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
12710 2006-06-20 Raja R Harinath <rharinath@novell.com>
12712 Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
12714 * class.c (mono_class_create_from_typespec): Add 'context' argument.
12715 Inflate result if necessary.
12716 (mono_class_get_full): Remove old version. Rename from
12717 'mono_class_get' and add 'context' argument. Pass it to
12718 ..._create_from_typespec.
12719 (mono_class_get): New. Simple wrapper to mono_class_get_full.
12720 (mono_ldtoken): Revert change below.
12722 2006-06-20 Martin Baulig <martin@ximian.com>
12724 * class.c (mono_ldtoken): Don't pass the generic context to
12725 mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF. Fixes #78053.
12727 2006-06-15 Zoltan Varga <vargaz@gmail.com>
12729 * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
12730 and later freeing it. Fixes #78638.
12732 2006-06-15 Miguel de Icaza <miguel@novell.com>
12734 * icall.c (mono_class_get_throw): Revert over-zealous error
12735 throwing, the caller for mono_class_get_throw will cope with
12736 errors when classes are not properly initialized already.
12738 The code still copes with loader exceptions though.
12740 Fixes the regression in reftype1 and reftype3 from the CAS tests.
12742 2006-06-14 Miguel de Icaza <miguel@novell.com>
12744 Fixes the `make run1' version of RuntimeAbort (to be commited,
12745 source is in Bugzilla).
12747 * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
12748 FALSE on class loading failure instead of returning true.
12750 * class.c (mono_class_create_from_typedef): It is possible for
12751 mono_metadata_interfaces_from_typedef_full to fail if a class is
12752 not found, cope with this.
12755 2006-06-14 Dick Porter <dick@ximian.com>
12758 * process.c: Fix a bunch of signed/unsigned warnings from gcc
12761 2006-06-12 Atsushi Enomoto <atsushi@ximian.com>
12763 * culture-info-table.h : oops, forgot to make it nsync with r61548.
12765 2006-06-09 Jonathan Chambers <jonathan.chambers@ansys.com>
12767 * icall.c: Another fix for building mono in Visual Studio.
12769 2006-06-09 Jonathan Chambers <jonathan.chambers@ansys.com>
12771 * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
12773 2006-06-09 Martin Baulig <martin@ximian.com>
12775 * debug-mono-symfile.c: Put this back and really fix it this
12776 time. Sorry for all the trouble.
12778 2006-06-08 Zoltan Varga <vargaz@gmail.com>
12780 * icall.c (mono_class_get_throw): Fix a warning.
12781 (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw
12782 ReflectionTypeLoadException if needed. Fixes #78606.
12784 * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
12785 (mono_class_init): Ditto.
12787 * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
12788 ref_only exceptions.
12789 (mono_loader_clear_error): Make this work even if there is no error.
12791 2006-06-08 Jonathan Chambers <jonathan.chambers@ansys.com>
12793 * object-internals.h marshal.c marshal.h icall.c: Implement method
12794 Marshal.GetComSlotForMethodInfo using internal call.
12796 2006-06-07 Zoltan Varga <vargaz@gmail.com>
12798 * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
12799 a function for signalling it.
12801 * class.c (mono_class_from_typeref): Use the new kind of loader error when
12802 a referenced assembly is not found.
12804 * loader.c (mono_loader_error_prepare_exception): Add support for
12805 LOADER_ERROR_ASSEMBLY. Fix formatting.
12807 2006-06-05 Jonathan Chambers <jonathan.chambers@ansys.com>
12809 * domain.c appdomain.c class-internals.h marshal.c: Add support
12810 for VARIANT marshalling on windows and increment corlib version
12811 since Variant struct was added.
12813 2006-06-03 Miguel de Icaza <miguel@novell.com>
12815 * debug-mono-symfile.c: Revert Martin's previous patch which broke
12816 stack trace line information:
12818 (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
12819 (Martin) when looking up B which is between A and C, return A not C.
12823 Thanks to Alexander Olk for tracking this down.
12825 2006-06-02 Zoltan Varga <vargaz@gmail.com>
12827 * marshal.c (mono_marshal_set_last_error_windows): Fix build.
12829 * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
12830 avoid clobbering its value.
12831 (mono_string_to_lpstr): Fix a warning on windows.
12833 2006-05-31 Zoltan Varga <vargaz@gmail.com>
12835 * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
12837 * reflection.c loader.c: Removed references to 'dummy' flag.
12839 * loader.c (mono_loader_error_prepare_exception): Fix a warning.
12841 * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
12842 it gets GC tracking.
12844 * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
12847 * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
12849 * marshal.c threadpool.c: Update callers of mono_async_result_new.
12851 * appdomain.c: Bump corlib version.
12853 2006-05-30 Zoltan Varga <vargaz@gmail.com>
12855 * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
12856 CEE_STIND_REF when working with object references.
12858 2006-05-31 Zoltan Varga <vargaz@gmail.com>
12860 * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
12863 2006-05-30 Miguel de Icaza <miguel@novell.com>
12865 * loader.c (method_from_memberref): Fix argument value for
12866 mono_loader_set_error_method_load (I was passing the MonoClass
12867 instead of the class name char *).
12869 2006-05-30 Zoltan Varga <vargaz@gmail.com>
12871 * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
12872 CEE_STIND_REF when working with object references.
12874 2006-05-30 Martin Baulig <martin@ximian.com>
12876 * mono-debug.c (mono_debug_print_stack_frame): Reverted the
12877 mono_method_full_name() change and replace the ':' with a '.'
12880 2006-05-30 Martin Baulig <martin@ximian.com>
12882 * debug-mono-symfile.c
12883 (mono_debug_symfile_lookup_location): Fix the algorithm:
12884 when looking up B which is between A and C, return A not C.
12886 2006-05-29 Martin Baulig <martin@ximian.com>
12889 (MonoDebugMethodInfo): Make the typedef public.
12890 (MonoDebugSourceLocation): New public struct.
12893 (mono_debug_source_location_from_address): Removed.
12894 (mono_debug_source_location_from_il_offset): Removed.
12895 (mono_debug_il_offset_from_address): Removed.
12896 (mono_debug_address_from_il_offset): Removed.
12897 (mono_debug_lookup_method): New public function.
12898 (mono_debug_lookup_source_location): New public function; replaces
12899 the old mono_debug_source_location_from_*() functions; see the
12900 inline documentation.
12901 (mono_debug_free_source_location): New public function.
12902 (mono_debug_print_stack_frame): New public function; see the
12903 inline documentation.
12905 * debug-mono-symfile.c
12906 (mono_debug_find_source_location): Renamed into
12907 mono_debug_symfile_lookup_location(); only take a
12908 `MonoDebugMethodInfo *' and an `offset' argument; added inline
12910 (mono_debug_find_method): Renamed into
12911 mono_debug_symfile_lookup_method().
12913 2006-05-27 Zoltan Varga <vargaz@gmail.com>
12915 * assembly.c (mono_assembly_open_full): Dont overwrite the status
12916 returned by mono_image_open_full ().
12918 * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
12919 MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
12922 * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
12925 2006-05-27 Miguel de Icaza <miguel@novell.com>
12927 * class.c (mono_class_from_typeref): handle missing images
12928 earlier, deals with bug #78418. Refactor code;
12930 Fix a warning introduced in my previous commit (some stale code
12931 from before I revisited my patch).
12933 * class.c (mono_class_create_from_typedef): On failure, remove the
12934 class from the MonoImage->class_cache as the class is not
12935 initialized; Fixes the leak pointed out by Paolo.
12937 2006-05-25 Dick Porter <dick@ximian.com>
12939 * threads.c (mono_thread_cleanup): Build fix. Comment out the
12940 DeleteCriticalSections until I figure out which one may still be
12941 sometimes locked when mono_thread_cleanup is called.
12943 2006-05-24 Dick Porter <dick@ximian.com>
12945 * threads.c (mono_thread_cleanup): Move the threading cleanup out
12946 of mono_thread_manage and back into its own function, so it can be
12947 called after the finalizer thread has finished.
12949 * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
12951 2006-05-24 Zoltan Varga <vargaz@gmail.com>
12953 * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
12956 * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
12957 with non-blittable elements.
12958 (emit_object_to_ptr_conv): Ditto. Fixes #78492.
12960 2006-05-24 Martin Baulig <martin@ximian.com>
12962 * mono-debug-debugger.h (MonoDebuggerEvent): Added
12963 `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.
12965 * mono-debug-debugger.c (mono_debugger_cleanup): Send a
12966 `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
12967 `mono_debugger_event_handler' to NULL.
12969 2006-05-24 Martin Baulig <martin@ximian.com>
12971 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
12973 2006-05-24 Martin Baulig <martin@ximian.com>
12975 * mono-debug-debugger.h
12976 (mono_debugger_create_notification_function): Added
12977 `MonoCodeManager *' argument.
12979 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
12981 * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
12983 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
12985 * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
12986 * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
12989 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
12991 * icall.c: precise GC support: objects can't be stored in unmanaged
12992 memory anymore, even if they are kept alive by other references: since
12993 they can move the GC needs to be able to always find them.
12995 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
12997 * object.c: precise GC support for static fields. Support
12998 for moving GCs: write barriers and pinned allocation for interned
13001 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
13003 * domain.c, domain-internals.h: precise GC support for the MonoDomain
13006 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
13008 * class.c, gc.c: sgen and precise GC updates.
13010 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
13012 * marshal.h, marshal.c: added write barrier wrapper and precise type
13015 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
13017 * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
13020 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
13022 * reflection.c: precise and sgen GC updates.
13024 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
13026 * debug-helpers.c, class-internals.h: added write barrier wrapper type.
13028 2006-05-22 Zoltan Varga <vargaz@gmail.com>
13030 * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
13032 2006-05-20 Zoltan Varga <vargaz@gmail.com>
13034 * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
13035 MONO_TYPE_OBJECT. Fixes #78462.
13037 2006-05-18 Zoltan Varga <vargaz@gmail.com>
13039 * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct
13040 and blittable types.
13042 2006-05-17 Miguel de Icaza <miguel@novell.com>
13044 * class.c (mono_class_get_exception_for_failure): Implement parts
13045 of a TODO: if the loader error is set (instead of the class
13046 error), we return a Loader exception that can be properly thrown
13049 This was exposed by some Winforms 2.0 code that I tried to run
13050 (Atsushi pointed me to it).
13052 2006-05-17 Zoltan Varga <vargaz@gmail.com>
13054 * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
13055 uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
13057 * marshal.c (emit_marshal_vtype): Add limited support for
13058 UnmanagedType.LPStruct. Fixes #78427.
13060 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure):
13061 Applied a patch from kangaroo to fix #77523.
13063 2006-05-17 Martin Baulig <martin@ximian.com>
13066 (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
13067 (debugger_thread_created): Removed.
13068 (debugger_thread_exited): Removed.
13070 2006-05-15 Zoltan Varga <vargaz@gmail.com>
13072 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13074 * object-internals.h (MonoReflectionResource): Sync with managed version.
13076 2006-05-12 Wade Berrier <wberrier@novell.com>
13078 * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
13080 2006-05-12 Zoltan Varga <vargaz@gmail.com>
13082 * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
13083 functions try to allocate from the image mempool.
13085 2006-05-12 Dick Porter <dick@ximian.com>
13087 * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
13089 2006-05-12 Lluis Sanchez <lluis@ximian.com>
13091 * object.c: The FieldGetter and FieldSetter methods require the full
13092 name of the class, not only the name. Fixes bug #78277.
13094 2006-05-11 Miguel de Icaza <miguel@novell.com>
13096 * loader.c (method_from_memberref): Do not pass the NULL klass to
13097 mono_loader_set_error_() methods. Pass the non-NULL value
13100 2006-05-11 Zoltan Varga <vargaz@gmail.com>
13102 * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
13103 (mono_assembly_close): Null out assembly->image->references after freeing it.
13105 * image.c (mono_image_close): Free image->references.
13107 * reflection.c (mono_image_basic_init): Fix a small memory leak.
13109 2006-05-10 Sebastien Pouliot <sebastien@ximian.com>
13111 * marshal.c: In function mono_mb_add_local don't use the mb pointer
13112 before checking if it's NULL (g_assert).
13114 2006-05-10 Martin Baulig <martin@ximian.com>
13116 * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
13117 I thought I already killed that two months ago, but now it somehow reappeared.
13119 2006-05-10 Martin Baulig <martin@ximian.com>
13121 * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
13123 2006-05-10 Zoltan Varga <vargaz@gmail.com>
13125 * reflection.c: Allocate memory for dynamically created methods in the image
13128 2006-05-10 Sebastien Pouliot <sebastien@ximian.com>
13130 * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions,
13131 don't use the ad pointer before checking if it's NULL (g_assert).
13133 2006-05-09 Zoltan Varga <vargaz@gmail.com>
13135 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
13136 a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
13138 * marshal.c: Allocate all signatures from mempools.
13140 * marshal.c: Allocate some more signatures from mempools.
13142 2006-05-09 Miguel de Icaza <miguel@novell.com>
13144 * object.c (mono_load_remote_field): The code used to provide a
13145 temporary variable for returning results if the user did not
13146 provide a result pointer. But our temporary variable was allocted
13149 Fix calling code to always pass a result area. Coverity ID 103.
13151 2006-05-06 Zoltan Varga <vargaz@gmail.com>
13153 * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
13154 value, not the old. Fixes #78312.
13155 (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
13157 * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
13158 (mono_ptr_class_get): Ditto. Also change the cache from a global one to a
13161 * assembly.c (mono_assembly_close): Free image->references.
13163 * assembly.c (mono_assembly_names_equal): Fix a warning.
13164 (mono_assemblies_cleanup): Cleanup more global data.
13166 * metadata-internals.h (MonoImage): Add 'ptr_cache'.
13168 * image.c (mono_image_close): Free up the contents of 'array_cache', free up
13169 ptr_cache and image->modules.
13171 * image.c (mono_image_init): Allocate array_cache lazily.
13173 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13175 * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
13176 behavior was changed recently and has bad side effects.
13178 2006-05-05 Zoltan Varga <vargaz@gmail.com>
13180 * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
13182 * assembly.c (mono_assembly_close): Remove a debug printf.
13184 * profiler.c (create_profiler): Use mono_aligned_addr_hash.
13186 * metadata-internals.h image.c assembly.c: Change the reference counting scheme
13187 to also allow for temporary references between mono_image_open ()/close ().
13189 * domain.c (get_runtimes_from_exe): Add a FIXME.
13191 2006-05-04 Zoltan Varga <vargaz@gmail.com>
13193 * marshal.c: Fix support for dynamic methods.
13195 * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
13197 * marshal.c (mono_marshal_cleanup): New cleanup function.
13199 * marshal.c: Rewrite the wrapper code to allocate most of its memory from the
13202 * class.c (mono_class_init): Fix leaking class->nested_classes.
13204 * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
13206 * image.c (mono_image_init): Initialize the new cashes.
13208 * image.c (mono_image_close): Destroy the new cashes.
13210 * marshal.c: Get rid of most of the static caches in favor of per-image caches.
13212 * mempool.c (mono_mempool_strdup): New helper function.
13214 * class-internals.h: Add prototype for mono_loader_unlock ().
13216 * domain.c (mono_jit_info_table_find): Fix a warning.
13217 (mono_debugger_check_runtime_version): Ditto.
13219 * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h
13220 class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
13221 functions to these modules.
13223 * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
13226 * marshal.c (mono_free_bstr): Fix a warning.
13228 * assembly.c (mono_assembly_open_full): Fix another small leak.
13230 * object.c: Fix some unload leaks in the remoting code.
13232 * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
13235 * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
13237 * reflection.c: Fix some unload leaks in dynamic assemblies.
13239 2006-05-02 Jonathan Chambers <jonathan.chambers@ansys.com>
13241 * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
13242 * marshal.h: Add BSTR support on Win32
13243 * icall.c: Add BSTR icalls
13244 * metadata.h: Add BSTR enums
13246 2006-04-28 Miguel de Icaza <miguel@novell.com>
13248 Work to catch the crash from #76795 and turn it into an
13249 exception. As I stubbed out pieces of the VisualBasic support,
13250 I found a number of places where the code was failing and I added
13251 checks to those places.
13253 * metadata.c (do_mono_metadata_parse_generic_class): Make this
13254 function return a status code. If we fail to parse the signature
13255 from mono_metadata_parse_generic_inst, return FALSE.
13257 * loader.c (mono_get_method_from_token): If we fail to load the
13258 method (mono_class_get) return NULL.
13260 * (method_from_memberref): Return NULL if we are unable to parse
13261 the method signature
13263 (mono_loader_error_prepare_exception): Since we now use the
13264 loader_error flag internally to stop processing, and obtaining
13265 exceptions that might be thrown will walk this code path the
13266 proper way of going from a MonoLoaderError into a
13267 MonoException was convoluted. This new routine encapsulates the
13268 process of turning the error into an exception and *clearing* the
13271 2006-04-27 Miguel de Icaza <miguel@novell.com>
13273 Work to catch the crashes from 75075 (cope in Assembly.GetTypes
13274 with missing assemblies), and to cope with:
13276 * Missing fieldref from a non-existing assembly.
13277 * Missing methodref from a non-existing assembly.
13279 The first batch of work to address *some* of the issues from 76661.
13281 * object.c (mono_class_create_runtime_vtable): If we fail to
13282 initialize the class raise the exception here.
13284 * metadata.c (mono_class_get_overrides_full): If any methods fail
13285 to load return the failure to the caller.
13287 * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
13288 flagging assemblies that failed to load.
13290 Do not crash if we are unable to load the assembly.
13292 (mono_assembly_close): Do nothing with REFERENCE_MISSING
13295 * loader.c (mono_loader_set_error_type_load): Change the
13296 convention to always pass unallocated strings, so we make our own
13297 copies (I know our own code had duplicated strings before, but
13298 this keeps the normal conventions).
13299 (method_from_memberref): Call mono_loader_set_error_method_load
13300 for all possible failures of loading the class.
13301 Remove assert, turn into a loader error.
13303 (mono_loader_error_to_exception): Move this routine from mini
13304 (mini_loader_error_to_exception) there was no need to have that in
13307 * class.c (mono_class_from_typeref): If we were not able to load
13308 the assembly with mono_assembly_load_reference, call the
13309 mono_loader_set_error_type_load to register the problem.
13311 (mono_class_setup_fields): If we fail to load the type from
13312 mono_metadata_parse_type_full, call mono_class_set_failure and
13313 break from the loop.
13315 If class->exception_type is set, we do not layout the fields as
13316 that might crash the runtime, and instead return (from breaking
13317 from the previous loop).
13319 (mono_class_setup_vtable): This now returns a boolean indicating
13320 whether the table was properly setup. The decision is driven by
13321 mono_class_get_overrides_full which might run into non-existing
13324 (mono_class_init): Returns TRUE on success or FALSE if there was a
13325 problem in loading the type (incorrect assemblies, missing
13326 assemblies, methods, etc).
13328 When we call mono_class_setup_fields we also check for a potential
13329 error inside this call (either a class exception or a general
13332 (mono_class_create_from_typedef): If the parent fails to load
13333 (calling mono_class_get_full) return NULL.
13337 calls to mono_metadata_parse_type_full should be checked
13338 everywhere and set the mono_class_set_failure
13339 (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
13341 The current patch checks the places where my manually constructed
13342 tests show the errors are showing up, but we should do it
13347 mono_class_init return values should be tested everywhere, like
13348 the previous case this is something that we should audit
13349 everywhere and not only on the cases exposed by the tests I
13352 2006-04-26 Miguel de Icaza <miguel@novell.com>
13354 * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
13355 boolean parameter and instead pass the information on `options'
13356 parameter (FileOptions).
13358 * icall.c: Register the new signature for MonoIO.Open.
13360 * debug-helpers.c (dis_one): Trying to understand how coverity
13361 works. Fix Run 5, item 78.
13363 2006-04-26 Dick Porter <dick@ximian.com>
13365 * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
13368 2006-04-25 Martin Baulig <martin@ximian.com>
13370 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
13372 * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
13373 debugger_thread_created().
13374 (debugger_gc_push_all_stacks): Don't handle the main thread in any
13376 (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
13377 (mono_debugger_finalize_threads): New function; undo the effects
13378 of mono_debugger_init_threads().
13379 (mono_debugger_create_all_threads): Removed.
13381 2006-04-24 Zoltan Varga <vargaz@gmail.com>
13383 * image.c (mono_image_close): Tidy up trace messages.
13385 * assembly.c (mono_assembly_close): Ditto.
13387 * assembly.c (mono_assembly_close): Clear out image->assembly so the image
13388 no longer references an already freed assembly. Fixes #78168.
13390 2006-04-21 Dick Porter <dick@ximian.com>
13392 * threads.c (mono_thread_detach): Fix reference counting when
13395 2006-04-21 Zoltan Varga <vargaz@gmail.com>
13397 * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
13400 2006-04-19 Zoltan Varga <vargaz@gmail.com>
13402 * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
13403 (mono_type_to_stind): Ditto.
13405 * marshal.c: Use the new helper functions to simplify code.
13407 * image.c (mono_image_close): Add some code for help debug assembly unloading
13410 * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
13413 * assembly.c (mono_assembly_open_full): Invoke the load hook when the
13414 assembly was already loaded in another appdomain. Fixes #78083.
13416 2006-04-13 Zoltan Varga <vargaz@gmail.com>
13418 * assembly.c (mono_assembly_load_reference): Increase the refcount of the
13419 referenced assemblies.
13420 (mono_assembly_close): Decrease the refcount of the referenced assemblies.
13422 * domain.c (mono_domain_free): Add a trace message.
13424 * appdomain.c (add_assemblies_to_domain): Ditto.
13426 * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
13429 2006-04-12 Zoltan Varga <vargaz@gmail.com>
13431 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
13433 2006-04-12 Martin Baulig <martin@ximian.com>
13435 * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
13436 `USE_INCLUDED_LIBGC'.
13438 2006-04-12 Zoltan Varga <vargaz@gmail.com>
13440 * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
13441 the patch contains ../ and a small directory name later. Hopefully fixes
13444 2006-04-10 Martin Baulig <martin@ximian.com>
13446 Clean up the debugger's thread-handling code.
13448 The debugger's thread-handling code has been moved from
13449 ../mini/debug-debugger.c to threads.c. We now iterate directly
13450 over the `threads' hash, keep track of exiting threads and also
13451 use proper locking.
13453 We can now debug XSP and XSP based applications with the debugger.
13455 * object-internals.h (MonoThread): Added `gpointer end_stack'.
13458 (MonoThreadCallbacks): Removed; this was only used by the debugger.
13459 (mono_install_thread_callbacks): Likewise.
13461 * threads.c (mono_thread_callbacks): Removed.
13462 (debugger_thread_created, debugger_thread_exited): New static functions.
13463 (start_wrapper): Call debugger_thread_created().
13464 (thread_cleanup): Call debugger_thread_exited().
13465 (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
13466 (mono_debugger_init_threads): New public function.
13467 (debugger_thread_vtable): Moved here from debug-debugger.c; we now
13468 iterate directly over the `threads' hash and also use proper locking.
13470 * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
13472 * mono-debug-debugger.h
13473 (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
13475 2006-04-10 Zoltan Varga <vargaz@gmail.com>
13477 * reflection.c (encode_cattr_value): Fix handling of parameter type=object,
13478 argument type=array. Fixes #78057.
13480 2006-04-10 Atsushi Enomoto <atsushi@ximian.com>
13482 * culture-info-table.h : regenerated. Fixed bug #69652.
13484 2006-04-07 Zoltan Varga <vargaz@gmail.com>
13486 * loader.c metadata.c: Reapply a variant r59116.
13488 * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
13490 * class.c (mono_class_setup_interface_offsets): New internal function.
13492 * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
13493 interfaces too. Fixes #77398.
13495 * reflection.c (encode_cattr_value): Add support for
13496 parameter type=object, argument type=array.
13497 (load_cattr_value): Ditto. Fixes #77916.
13499 * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
13500 (emit_ptr_to_object_conv): Ditto. Fixes #77960.
13502 * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
13503 a byval char array and CharSet is Ansi.
13505 * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
13507 2006-04-06 Zoltan Varga <vargaz@gmail.com>
13509 * metadata.c: Add some locking comments.
13511 * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
13513 (mono_metadata_free_method_signature): Don't free the signature itself.
13515 * loader.c (mono_free_method): Don't free the signature in non-dynamic methods.
13517 * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
13518 reference the same MonoImage.
13519 (mono_assembly_load_from_full): Add an assert.
13521 2006-04-05 Zoltan Varga <vargaz@gmail.com>
13523 * image.c (mono_image_close): Don't put the image we are about to free into the
13524 loaded_images_guid_hash.
13526 * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
13527 to reduce code duplication.
13529 * marshal.c: Register the native functions called by this module as icalls, to
13530 somewhat centralize the creation of MonoMethodSignature's.
13532 * loader.c (mono_method_signature): Add a cache for method signatures.
13534 * metadata.c (mono_metadata_get_param_attrs): New helper function to return
13535 the parameter attributes of a method.
13536 (mono_metadata_parse_method_signature_full): Refactored the computation of
13537 parameter attributes into a separate function. Also avoid one allocation in
13540 * assembly.c (mono_assembly_close): Ditto.
13542 * image.c (mono_image_close): Log trace messages with INFO level.
13544 * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
13546 * image.c reflection.c: Correct reference counting of image modules.
13548 * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
13549 of this function from the image mempool.
13551 (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
13552 to allow more cached types to be used.
13554 * mono-debug.c (mono_debug_add_method): Appled patch from
13555 David S. Miller <davem@sunset.davemloft.net>: Access
13556 minfo->lexical_blocks[] entry elements using read32().
13558 2006-04-04 Zoltan Varga <vargaz@gmail.com>
13560 * loader.c (mono_free_method): No longer free the method header for non-dynamic
13561 methods as it is allocated from the mempool.
13563 * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
13566 * metadata-internals.h: Add comments describing the reference counting scheme
13567 used for MonoImage and MonoAssembly.
13569 * image.c assembly.c reflection.c: Rework reference counting of images and
13570 assemblies so they are freed when the runtime is shut down. Free some
13571 additional memory structures when an image is unloaded.
13573 2006-04-03 Zoltan Varga <vargaz@gmail.com>
13575 * class.c loader.c reflection.c: Allocate more data structures in
13578 2006-03-31 Miguel de Icaza <miguel@novell.com>
13581 (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
13582 build on pre glib 2.4 systems.
13584 2006-03-31 Zoltan Varga <vargaz@gmail.com>
13586 * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
13588 * icall.c: Fix some warnings.
13590 2006-03-29 Atsushi Enomoto <atsushi@ximian.com>
13592 * culture-info-table.h : regenerated.
13594 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
13596 * threads.c, object-internals.h, verify.c: changed the culture caching
13597 code to use a normal MonoArray for storage so the GC can keep track of
13598 them easily. Fixed bits of the cache logic, too and simplified the
13601 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
13603 * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
13604 thread for non-Boehm GCs.
13606 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
13608 * domain.c, object.c, domain-internals.h: reduce the amount of memory
13609 needed to keep track of the data for static fields.
13611 2006-03-29 Raja R Harinath <rharinath@novell.com>
13614 * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
13615 for interface classes. Use 'num_methods' instead.
13616 (ves_icall_Type_GetPropertiesByName): Likewise. Setup vtable
13617 before using '->vtable_size' field.
13619 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
13621 * domain.c, object.c, domain-internals.h: proxy_vtable_hash
13622 doesn't contain managed pointers, so use a normal hashtable.
13624 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
13626 * reflection.c, class-internals.h, domain.c: fixed handling of types
13627 used as values for objects in custom attributes (bug #77915):
13629 2006-03-24 Martin Baulig <martin@ximian.com>
13631 * class.c (mono_class_setup_fields): Added support for generic
13632 instances; fixes #77580.
13634 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13636 * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
13638 2006-03-24 Dick Porter <dick@ximian.com>
13640 * file-io.c (get_file_attributes): More stat macro breakage.
13643 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
13645 * profiler.c: added the file=filename option in the default profiler
13646 to output the profile data to filename.
13648 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13650 * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
13653 2006-03-22 Martin Baulig <martin@ximian.com>
13655 * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
13656 allocated `MonoClassField *' in `fb->handle'.
13658 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
13660 * class.c, image.c, metadata-internals.h: implemented new mechanism to
13661 allocate interface ID to save memory and allow better ID reuse on
13662 appdomain unload. setup_generic_vtable () removal from Martin.
13664 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
13666 * object.h, appdomain.c, domain.c, exception.c, icall.c,
13667 locales.c, marshal.c, object.c, reflection.c, threadpool.c,
13668 threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
13669 write barriers for reference stores with managed objects accessed with
13670 C structures in the runtime and in embedding programs.
13672 2006-03-20 Raja R Harinath <rharinath@novell.com>
13674 * icall.c (ves_icall_Type_GetInterfaces): Avoid using
13675 'interface_id' and 'max_interface_id' fields of MonoClasses
13676 representing open generic types.
13678 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
13680 * object.h, object.c, icall.c: added functions to deal with
13681 storing valuetypes that contain references in managed objects.
13682 * reflection.c, string-icalls.c, threads.c, marshal.c: small
13683 fixes and comments around uses of mono_array_addr ().
13685 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
13687 * object.h, icall.c, monitor.c: object.GetHashCode ()
13688 implementation that supports the moving garbage collector.
13690 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
13692 * icall.c, threads-types.h, threads.c: implemented finalizer for
13693 LocalDataStoreSlot.
13695 2006-03-15 Zoltan Varga <vargaz@gmail.com>
13697 * metadata.c (mono_type_size): Add a fixme.
13698 (mono_type_stack_size): Ditto.
13700 * object-internals.h (MonoReflectionAssemblyBuilder): Added
13701 'type_forwarders' field.
13703 * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
13704 attribute from net 2.0.
13706 * object.c (mono_vtable_get_static_field_data): Moved this to object.c
13709 * class.c (mono_class_setup_fields): Fix a warning.
13711 * class.c (mono_class_from_name): Add support for assemblyref entries
13712 in the EXPORTEDTYPE table.
13714 * reflection.c: Add support for handling type forwarders under net 2.0.
13716 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13718 2006-03-14 Zoltan Varga <vargaz@gmail.com>
13720 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
13721 overwriting entries in ModuleBuild->types, also clean up the code
13722 a little. Fixes #77774.
13724 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
13726 * domain.c, assembly.c, metadata-internals.h, class-internals.h:
13727 load friend assembly info when present.
13729 2006-03-14 Raja R Harinath <rharinath@novell.com>
13731 Fix crasher on gtest-158.cs.
13732 * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
13733 the return value if the MonoClass we want is yet in an
13734 inconsistent state.
13735 * class.c (mono_class_create_from_typedef): Add an comment
13736 explaining an order dependency between mono_class_setup_parent and
13737 mono_class_setup_mono_type.
13739 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
13741 * class.c: documentation updates and events bug fix.
13743 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
13745 * class.c: some cleanup, locking fixes.
13747 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
13749 * class.c: fix the generics code to setup nested
13750 type info to the instantiated type (bug #77770).
13752 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
13754 * marshal.c: fixed a few type correctness issues.
13756 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
13758 * loader.c: the Set/Get/Addrtess array methods should be public.
13760 2006-03-11 Zoltan Varga <vargaz@gmail.com>
13762 * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
13764 * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
13767 2006-03-10 Zoltan Varga <vargaz@gmail.com>
13769 * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
13771 * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
13773 * mempool.c (mono_mempool_alloc): Speed this up a bit.
13774 (mono_mempool_alloc0): Ditto.
13776 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13779 (create_object_from_sockaddr): it was allocating 4 extra bytes
13780 for the AF_UNIX data. Fixes bug #77747.
13782 2006-03-09 Zoltan Varga <vargaz@gmail.com>
13784 * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
13786 2006-03-09 Dick Porter <dick@ximian.com>
13788 * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
13789 Fixes bug 76966 again.
13791 2006-03-07 Peter Dennis Bartok <pbartok@novell.com>
13793 * verify.c (dtfinfo_fields): Updated to match new (serializable) field
13795 * appdomain.c: Bumped corlib version to 48 (due to r57532)
13797 2006-03-07 Martin Baulig <martin@ximian.com>
13800 (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
13802 2006-03-07 Martin Baulig <martin@ximian.com>
13805 (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
13806 regression introduced in r56970; see gtest-252.cs.
13808 * loader.c (mono_get_method_constrained): Correctly handle generic
13809 methods; see gtest-253.cs.
13811 2006-03-04 Zoltan Varga <vargaz@gmail.com>
13813 * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
13815 2006-03-04 Martin Baulig <martin@ximian.com>
13817 * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
13818 compute the parent type at runtime, just like we're already doing
13822 (mono_reflection_bind_generic_parameters): Don't compute the
13823 parent type anymore.
13825 * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
13827 2006-03-04 Martin Baulig <martin@ximian.com>
13829 * mono-debug-debugger.h
13830 (mono_debugger_create_notification_function): Allocate memory at
13831 runtime and return a pointer to it.
13833 2006-03-03 Zoltan Varga <vargaz@gmail.com>
13835 * assembly.c: Fix windows build.
13837 * assembly.c: Fix build.
13839 * assembly.c: Move the contents of os/{unix,win32}/util.c to this file.
13841 * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
13843 2006-03-03 Dick Porter <dick@ximian.com>
13846 (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
13847 Check parameters before dereferencing them. Fixes Aaron's part of
13850 2006-03-03 Raja R Harinath <rharinath@novell.com>
13852 Fix performance regression.
13853 * loader.c (find_method_in_class): Add 'from_class' argument.
13854 Rename 'klass' argument to 'in_class'. The signature is compared
13855 against the method in 'in_class', and the corresponding method is
13856 returned from 'from_class'.
13857 (find_method): Walk both 'in_class' and 'from_class' in parallel.
13858 (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
13859 type definition and generic instantiation in parallel.
13860 (mono_get_method_constrained): Update to changes.
13862 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
13864 * threads.c: make sure the domain is correct, too when doing
13865 mono_thread_attach ().
13867 2006-03-01 Zoltan Varga <vargaz@gmail.com>
13869 * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
13870 windows. Fixes #77683.
13872 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
13874 * object.h, *: introduced specific way to set elements of an array
13875 of references to be used as write barrier. Still need to audit the
13876 uses of mono_array_addr.
13878 2006-03-01 Miguel de Icaza <miguel@novell.com>
13880 * object-internals.h: New field to cache the assmebly name, patch
13881 from Tambet Ingo (tambet@ximian.com)
13883 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
13885 * decimal.h, class-internals.h, metadata-internals.h,
13886 file-io.h: mark a few function declarations as internal, to
13887 reduce the number of PLT entries.
13889 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13891 * file-io.c: fix typo in warning message.
13893 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
13895 * loader.c: on unix, lookup the "*A" version of a function
13896 if charset is auto as a second option before failing.
13898 2006-02-28 Raja R Harinath <rharinath@novell.com>
13900 * class.h (mono_class_inflate_generic_method): Revert to two
13902 * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
13903 (mono_class_inflate_generic_method_full): Add.
13904 * class.c (mono_class_inflate_generic_method_full): Rename from
13905 'mono_class_inflate_generic_method'. Don't set 'inflated' field.
13906 (mono_class_inflate_generic_method): New. Wrapper around ..._full.
13907 * loader.c, reflection.c: Update to changes.
13909 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
13911 * icall.c: const fixes and small improvements.
13913 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13915 * threadpool.c: for asynchronous connect(), enable the same workaround
13916 for BSD 6 as for the Mac. Fixes bug #77637.
13918 2006-02-24 Zoltan Varga <vargaz@gmail.com>
13920 * marshal.c (mono_marshal_free_asany): Fix handling of blittable
13921 formatted classes. Fixes #77524.
13923 2006-02-24 Raja R Harinath <rharinath@novell.com>
13925 * class.c (inflate_generic_type): Add a couple more
13926 micro-optimizations.
13927 (inflate_generic_context): Don't use the 'gmethod' from
13929 (mono_class_inflate_generic_method): If the method has generic
13930 parameters, but the passed-in context doesn't have a 'gmethod',
13931 create one. Use the possibly simplified generic instantiation
13932 from the declaring class instead of the one passed in.
13934 2006-02-24 Raja R Harinath <harinath@gmail.com>
13936 Make generic method signature and method header handling lazy.
13937 * class.c (mono_class_inflate_generic_signature): Move to loader.c.
13938 (inflate_generic_header): Likewise.
13939 (mono_class_inflate_generic_method): Rewrite. Add a 'klass_hint'
13940 parameter to avoid inflating types.
13941 (mono_get_inflated_method): Empty out.
13942 * class.h (mono_class_inflate_generic_method): Update to changes.
13943 * loader.c (mono_get_method_from_token): Don't parse signature for
13944 generic methods, nor methods of generic classes.
13945 (mono_method_signature): Rename from 'mono_method_signature'.
13946 Inflate signature on demand.
13947 (mono_method_get_header): Inflate method header on demand.
13948 * reflection.c: Update to changes.
13950 2006-02-23 Raja R Harinath <rharinath@novell.com>
13952 * metadata.c (mono_metadata_inflate_generic_inst): If the
13953 instantiation is closed, don't bother expanding it in the new
13955 * class.c (inflate_generic_class): If the generic instantiation
13956 doesn't change after inflation, return the argument itself.
13957 (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
13959 (inflate_generic_context): If neither the generic class nor the
13960 generic method instantiations change, return the original context.
13961 * reflection.c (mono_method_get_object): Do
13962 'mono_get_inflated_method' before accessing the ->klass field.
13963 (inflate_mono_method): Don't create a MonoGenericMethod unless
13965 (inflate_method): Don't pass a constructed type as the declaring
13966 type of a methodbuilder.
13968 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
13970 * object.c: fix memory overwrite.
13972 2006-02-22 Dick Porter <dick@ximian.com>
13974 * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
13975 it doesn't work any more.
13976 (mono_threads_request_thread_dump): Fix unused variable warnings.
13978 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
13980 * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
13981 mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
13982 the public header file.
13984 2006-02-21 Zoltan Varga <vargaz@gmail.com>
13986 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
13988 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
13990 * class-internals.h, object.c: reduce the size of MonoVTable
13991 and store the interface_offsets array at negative offsets.
13993 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
13995 * metadata.c: tweak table descriptors data structures to reduce
13996 size and runtime relocations.
13998 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
14000 * marshal.c: fix some types and opcodes to be type-safe
14001 in marshaling wrappers.
14003 2006-02-21 Ankit Jain <jankit@novell.com>
14005 * metadata.h (mono_metadata_decode_signed_value): Add declaration.
14007 2006-02-21 Raja R Harinath <rharinath@novell.com>
14009 * metadata.c (get_constraints): Relax debugging checks for monodis.
14011 2006-02-21 Ankit Jain <jankit@novell.com>
14013 * metadata.c (mono_metadata_load_generic_params): Move the code
14014 checking for ambiguous generic params from here to mono/dis/get.c
14015 * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
14017 2006-02-21 Raja R Harinath <harinath@gmail.com>
14019 Fix assertion triggered when compiling nemerle.
14020 * class.c (mono_get_shared_generic_inst): Rename from
14021 get_shared_inst and make non-static.
14022 * loader.c (mono_get_shared_generic_method): New. Used to create
14023 the MonoGenericContext-equivalent of a MonoGenericContainer.
14024 (mono_get_method_from_token): Initialize the 'context' field of
14025 the created MonoGenericContainer.
14026 * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
14027 * metadata.c (get_constraints): Add sanity check.
14028 * class-internals.h: Add new internal methods.
14030 * reflection.c (verify_safe_for_managed_space): New sanity check.
14031 Currently checks that owner-less generic parameters aren't allowed
14033 (mono_type_get_object): Use it.
14034 * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
14035 that are now in mono_type_get_object.
14036 (ves_icall_MonoMethod_GetGenericArguments): Likewise.
14038 2006-02-19 Raja R Harinath <harinath@gmail.com>
14040 * metadata.c (mono_type_create_from_typespec): Rename from
14041 mono_type_create_from_typespec_full. Remove MonoGenericContainer*
14042 argument and caching of types in the generic container.
14043 (unwrap_arrays, find_generic_param): Remove.
14044 * metadata-internals.h: Update.
14045 * class-internals.h (_MonoGenericContainer): Remove 'types' field.
14047 2006-02-18 Zoltan Varga <vargaz@gmail.com>
14049 * class.c (mono_class_get_exception_for_failure): Fix a warning.
14051 * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
14052 return values. Fixes #77581.
14054 * class.c (mono_fnptr_class_get): Switch name and name_space.
14056 * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
14057 classes and add support for [In, Out] attributes.
14058 (mono_marshal_free_asany): Ditto. Fixes #77524.
14060 2006-02-18 Raja R Harinath <harinath@gmail.com>
14062 * class.c (mono_class_from_generic_parameter): Make more robust to
14063 incomplete MonoGenericContainers from monodis.
14065 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
14067 * class-internals.h: added some more exception types.
14068 * class.c, metadata.c: added a few checks to handle missing
14071 2006-02-17 Raja R Harinath <rharinath@novell.com>
14073 Use owner-less generic-params some more.
14074 * class.c (my_mono_class_from_generic_parameter): Remove.
14075 (mono_class_from_generic_parameter): Handle null image,
14076 param->name and param->owner.
14077 (mono_class_from_mono_type): Update.
14078 (mono_class_create_from_typespec): Remove 'container' parameter.
14079 If that parameter is non-null, the result is always inflated by
14080 'mono_class_get_full' anyway.
14081 (mono_class_get): Rename from _mono_class_get. Remove 'container'
14083 (mono_class_get_full): Update.
14085 * class.c (inflate_generic_type) [GENERICINST]: If the generic
14086 instance is not open, don't bother inflating.
14087 (mono_class_setup_fields): Hoist some loop-invariants. Don't
14088 parse metadata for inflated classes.
14089 (_mono_class_get): Change GenericContext* parameter to
14091 (mono_class_create_from_typespec): Likewise. Simplify, and
14092 implement trivially. All the cases are handled in
14093 mono_class_from_mono_type. Don't inflate returned class.
14094 (mono_class_get_full): Delegate GENERICINST optimization to
14095 inflate_generic_type.
14096 (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
14098 2006-02-16 Dick Porter <dick@ximian.com>
14100 * socket-io.c (create_object_from_sockaddr): Fix typo.
14101 (create_sockaddr_from_object): Check array lengths before
14102 potentially accessing items off the end.
14103 (ves_icall_System_Net_Sockets_Socket_Receive_internal)
14104 (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
14105 (ves_icall_System_Net_Sockets_Socket_Send_internal)
14106 (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
14107 length checks to avoid wraparound overflows.
14108 (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
14109 contents of the array of sockets
14110 (hostent_to_IPHostEntry2)
14111 (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
14112 Check return value of inet_ntop ().
14113 (addrinfo_to_IPHostEntry): Fix typo
14115 2006-02-16 Raja R Harinath <rharinath@novell.com>
14117 Type metadata parsing doesn't use generic-instantiation information.
14118 * metadata.c (mono_metadata_parse_array_full): Change
14119 MonoGenericContext* parameter to MonoGenericContainer*.
14120 (mono_metadata_parse_type_full): Likewise.
14121 (mono_type_create_from_typespec_full): Likewise.
14122 (mono_metadata_parse_mh_full): Likewise.
14123 (mono_metadata_parse_generic_inst): Likewise.
14124 (do_mono_metadata_parse_generic_class): Likewise.
14125 (do_mono_metadata_parse_type): Likewise.
14126 * metadata-internals.h: Update to changes.
14127 * class.c (mono_class_find_enum_basetype): Likewise.
14128 (mono_class_setup_fields): Likewise.
14129 (mono_class_create_from_typespec): Likewise.
14130 * loader.c (method_from_methodspec): Likewise.
14131 (mono_get_method_from_token): Likewise.
14132 (mono_method_get_header): Likewise.
14134 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
14136 * marshal.c: handle additional GENERICINST case (patch from
14137 Thong Nguyen <tum@veridicus.com>).
14138 Fix a few cases where LDIND_I/STIND_I was used for references.
14140 2006-02-16 Raja R Harinath <rharinath@novell.com>
14142 * reflection.c (mono_reflection_get_token): Remove unused variable.
14144 2006-02-16 Martin Baulig <martin@ximian.com>
14146 * reflection.c (mono_reflection_get_token): Add support for fields
14147 in instantiated generic types.
14150 (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
14152 2006-02-15 Martin Baulig <martin@ximian.com>
14155 (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
14156 (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
14157 (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
14158 (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
14160 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
14162 * class.c, metadata.c, metadata.h, object.c, icall.c,
14163 marshal.c: changed mono_type_get_underlying_type () to do
14164 the sensible thing and introduced mono_type_generic_inst_is_valuetype().
14165 Fixed handling of instantiated generic valuetypes (bug #75479).
14167 2006-02-15 Raja R Harinath <rharinath@novell.com>
14169 * metadata.c (mono_metadata_decode_signed_value): Simplify.
14170 Delegate to mono_metadata_decode_value, and work on the returned value.
14172 * icall.c (ves_icall_MonoType_GetGenericArguments):
14173 Add consistency check here too.
14175 2006-02-15 Ankit Jain <jankit@novell.com>
14177 * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
14180 2006-02-15 Ankit Jain <jankit@novell.com>
14182 * metadata.c (mono_metadata_decode_signed_value): New function to decode
14183 signed values, used only for representing lower bounds of arrays.
14184 (mono_metadata_parse_array_full): Use new
14185 mono_metadata_decode_signed_value to decode lower bounds.
14187 2006-02-14 Martin Baulig <martin@ximian.com>
14190 (mono_reflection_get_token): Support "MonoGenericMethod" and
14191 "MonoGenericCMethod" and allow generic instances / methods.
14193 2006-02-11 Zoltan Varga <vargaz@gmail.com>
14195 * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
14196 to obtain the terminal size using an ioctl.
14198 * object.c (mono_nullable_init): Revert this as nullable reference
14199 types are not valid.
14200 (mono_nullable_box): Ditto.
14202 2006-02-09 Dick Porter <dick@ximian.com>
14204 * threads.c (mono_thread_detach): Drop a reference to the thread
14207 2006-02-09 Zoltan Varga <vargaz@gmail.com>
14209 * object.c (mono_nullable_init): Handle nullable reference types.
14210 (mono_nullable_box): Ditto. Fixes #77446.
14212 2006-02-07 Martin Baulig <martin@ximian.com>
14214 * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
14216 2006-02-07 Ankit Jain <jankit@novell.com>
14218 * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
14219 * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
14220 (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
14221 (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
14222 (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
14223 (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
14225 2006-02-02 Zoltan Varga <vargaz@gmail.com>
14227 * class.c (mono_class_create_generic): Set type_token as well.
14229 * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
14230 compatible with MS.
14232 2006-02-02 Martin Baulig <martin@ximian.com>
14234 * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
14235 has never been used so far.
14237 2006-02-02 Martin Baulig <martin@ximian.com>
14239 * mono-debug-debugger.h: Changed comment at the top of this file;
14240 the header is not installed, but it's safe to #include it from
14243 * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
14244 * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
14246 2006-02-02 Martin Baulig <martin@ximian.com>
14249 (MonoSymbolTable): Removed the `metadata_info' field.
14252 (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
14254 * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
14255 (mono_debugger_add_builtin_types): Removed.
14256 (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
14257 (mono_debugger_create_notification_function): We now operate on a
14258 pre-allocated area; take a `gpointer' and return `void'.
14260 * mono-debug-debugger.c
14261 (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
14262 (mono_debugger_add_builtin_types): Removed.
14264 2006-02-02 Martin Baulig <martin@ximian.com>
14266 * threads.c (mono_debugger_create_all_threads): New public method.
14268 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
14270 * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
14271 breaks on several platforms.
14273 2006-02-01 Sebastien Pouliot <sebastien@ximian.com>
14275 * assembly.c: the VS.NET build doesn't supply default values for
14276 MONO_ASSEMBLIES and MONO_CFG_DIR.
14278 2006-02-01 Zoltan Varga <vargaz@gmail.com>
14280 * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
14283 * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
14285 * loader.c (method_from_memberref): Fix a warning.
14287 * metadata.c (mono_metadata_load_generic_params): Fix a warning.
14289 * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
14290 with explicit layout. Fixes #77433.
14292 2006-01-31 Zoltan Varga <vargaz@gmail.com>
14294 * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure
14295 max_interface_id is initialized before using it. Fixes #77398.
14296 (ves_icall_Type_GetInterfaces): Ditto.
14298 2006-01-30 Raja R Harinath <rharinath@novell.com>
14300 * metadata.c (mono_metadata_parse_method_signature_full): Don't
14301 allocate memory for parameter attributes when parsing memberref
14303 * loader.c (mono_loader_set_error_method_load): Don't warn.
14304 (method_from_memberref): Ensure MissingMethodException gets thrown
14305 if method is not found. Make warning more informative.
14307 2006-01-29 Raja R Harinath <harinath@gmail.com>
14310 * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
14311 return true if is byref.
14312 (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
14313 (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
14314 (ves_icall_MonoType_get_DeclaringMethod): Likewise.
14316 2006-01-27 Raja R Harinath <rharinath@novell.com>
14318 Fix tests/find-method.2.il
14319 * loader.c (find_method, find_method_in_class): Remove is_inflated
14320 argument. Revert 2006-01-18 change.
14321 (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
14322 is generic, search for method in its generic definition.
14323 * class.c (mono_class_setup_vtable_general): Print generic
14324 arguments of generic types in debugging printf.
14326 2006-01-26 Zoltan Varga <vargaz@gmail.com>
14328 * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
14330 * threads.c (mono_threads_request_thread_dump): New helper function.
14332 2006-01-25 Raja R Harinath <rharinath@novell.com>
14334 * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
14336 2006-01-25 Ankit Jain <jankit@novell.com>
14338 * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
14339 move definition to ..
14340 * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
14342 2006-01-25 Ankit Jain <jankit@novell.com>
14343 Raja R Harinath <rharinath@novell.com>
14345 * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
14346 * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
14349 2006-01-25 Martin Baulig <martin@ximian.com>
14351 * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
14352 `MonoDebuggerThread' into debug-debugger.c.
14354 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
14356 * profiler.c: fix printing of data.
14358 2006-01-24 Atsushi Enomoto <atsushi@ximian.com>
14360 * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
14361 invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
14363 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
14365 * object.c: fix deadlock related to string interning.
14367 2006-01-23 Martin Baulig <martin@ximian.com>
14369 * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
14371 * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
14373 2006-01-23 Martin Baulig <martin@ximian.com>
14375 * mono-debug.h: Moved the prototypes of some functions which are
14376 used by the JIT here from mono-debug-debugger.h.
14378 2006-01-21 Martin Baulig <martin@ximian.com>
14380 * Makefile.am: Don't install mono-debug-debugger.h.
14382 2006-01-21 Martin Baulig <martin@ximian.com>
14384 * mono-debug-debugger.h: Enforce the private status of this header
14385 file and removed unneccessary #include's in metadata/*.c and mini/*.c.
14386 Moved some stuff from mono-debugger-jit-wrapper.h here.
14388 2006-01-20 Raja R Harinath <rharinath@novell.com>
14390 * class.c (mono_class_from_typeref): Add a sanity test to help
14391 catch lack of assembly load/search hooks.
14393 2006-01-19 Zoltan Varga <vargaz@gmail.com>
14395 * marshal.c (emit_struct_conv): Relax the fields with same offset
14396 check even more. Fixes #77230.
14398 2006-01-18 Martin Baulig <martin@ximian.com>
14400 * loader.c (find_method_in_class): Added `gboolean is_inflated'
14401 argument; if false, we compare the uninstantiated signatures.
14402 (method_from_memberref): Compare the uninstantiated signatures;
14405 2006-01-18 Robert Jordan <robertj@gmx.net>
14407 * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
14408 Clear the weak link. Fixes bug #77170.
14410 * gc.c (mono_gchandle_free):
14411 Reflect *-gc.c changes (tiny optimization).
14413 2006-01-18 Zoltan Varga <vargaz@gmail.com>
14415 * metadata.c (mono_metadata_signature_dup): Applied patch from
14416 Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
14419 2006-01-17 Zoltan Varga <vargaz@gmail.com>
14421 * marshal.c (emit_struct_conv): Allow fields with the same offset when
14422 marshalling from native to managed code. Fixes #77230.
14424 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14426 * threadpool.c: fix problem (Mac only) when more than one asynchronous
14427 connect. Fixes bug #77020.
14429 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
14431 * class.c: fixed id assignement for nested interfaces (bug #77275).
14432 Added also better info for --print-vtable debugging.
14434 2006-01-12 Martin Baulig <martin@ximian.com>
14436 * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
14437 interfaces on-the-fly; fixes #76625.
14439 * class-internals.h
14440 (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
14441 don't need that anymore.
14443 2006-01-12 Miguel de Icaza <miguel@novell.com>
14446 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
14447 To avoid initing the nested_classes when not needed I turned the
14448 PeerCredData as a toplevel internal class, as it has to be shared
14451 Fixes the CASA issue.
14453 2006-01-11 Ben Maurer <bmaurer@andrew.cmu.edu>
14455 * domain.c: Accessors for MonoJitInfo
14457 * profiler-private.h: Add jitinfo to the end jit hook
14459 * profiler.[ch]: Define new hooks, called after jitting which give
14460 the MonoJitInfo that was compiled
14462 2006-01-10 Martin Baulig <martin@ximian.com>
14464 * class.c (mono_class_setup_events): Add support for generic
14465 classes; fixes #76440.
14467 2006-01-06 Raja R Harinath <rharinath@novell.com>
14470 * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
14471 on passed-in method.
14473 2006-01-03 Zoltan Varga <vargaz@gmail.com>
14475 * object.c (mono_runtime_invoke_array): Add Nullable support.
14477 * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
14479 2006-01-03 Sebastien Pouliot <sebastien@ximian.com>
14481 * file-io.c: Don't consider sockets as directory and avoid an endless
14482 loop. Fix bug #76966.
14484 2006-01-03 Zoltan Varga <vargaz@gmail.com>
14486 * object.c (mono_nullable_init): New helper function.
14487 (mono_nullable_box): Ditto.
14489 * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
14491 * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
14493 * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
14495 2006-01-02 Zoltan Varga <vargaz@gmail.com>
14497 * class.c (mono_class_is_assignable_from): Make T assignable to
14500 2005-12-23 Sebastien Pouliot <sebastien@ximian.com>
14502 * appdomain.c: Bump corlib version to 46.
14503 * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
14504 serialization purpose) and changed ves_icall_System_Reflection_
14505 Assembly_get_code_base signature to accept a boolean (to escape, or
14506 not, the assembly code base).
14508 2005-12-23 Dick Porter <dick@ximian.com>
14512 * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
14513 CreateEvent icall now returns "created" boolean parameter.
14515 2005-12-22 Zoltan Varga <vargaz@gmail.com>
14517 * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
14520 * reflection.c (mono_custom_attrs_construct_by_type): Handle the case
14521 when attr_klass is an interface. Fixes #77045.
14523 2005-12-20 Zoltan Varga <vargaz@gmail.com>
14525 * marshal.c (emit_struct_conv): Fix previous patch.
14527 * marshal.c (emit_struct_conv): Add a check for fields with the same
14530 2005-12-20 Raja R Harinath <rharinath@novell.com>
14532 Fix regression in Mono.C5.
14533 * class.c (mono_class_create_generic): If 'klass' is an interface
14534 set up the interface offsets.
14535 (mono_class_is_assignable_from): Don't throw away generic arguments.
14537 2005-12-19 Raja R Harinath <rharinath@novell.com>
14539 * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
14542 2005-12-15 Raja R Harinath <rharinath@novell.com>
14544 * metadata.c (mono_metadata_parse_method_signature_full): Remove a
14546 (do_mono_metadata_parse_generic_class): Don't pass the current
14547 generic context when parsing the type being instantiated: it
14548 cannot use it, anyway.
14550 * loader.c (method_from_memberref): Don't inflate a signature if
14551 it doesn't contain any type parameters.
14553 2005-12-15 Zoltan Varga <vargaz@gmail.com>
14555 * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
14557 2005-12-14 Martin Baulig <martin@ximian.com>
14560 (mono_type_get_name_recurse): Don't return null for type
14561 parameters and open generic classes.
14562 (mono_class_setup_methods): Don't exclude generic instances.
14563 (mono_get_unique_iid): Use different IDs for different
14564 instantiations of the same generic type.
14565 (mono_class_setup_vtable): Only use setup_generic_vtable() for
14566 open generic instances; create a normal vtable for closed generic
14568 (mono_class_setup_vtable_general): We're now also called for
14569 closed generic instances.
14572 (mono_reflection_bind_generic_parameters): Correctly use
14573 mono_metadata_lookup_generic_inst() everywhere.
14575 2005-12-14 Zoltan Varga <vargaz@gmail.com>
14577 * object.c (mono_class_create_runtime_vtable): Call
14578 mono_class_setup_vtable ().
14580 * reflection.c (mono_reflection_get_dynamic_overrides): New helper
14582 (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
14585 * loader.c (mono_loader_set_error_type_load): Print the type load
14586 warnings to the console so they are more visible to the user.
14587 (mono_loader_set_error_method_load): Ditto.
14589 * reflection.c (ensure_runtime_vtable): Revert the last change as it
14592 * reflection.c (ensure_runtime_vtable): Fix build.
14594 * reflection.c (ensure_runtime_vtable): Disable an optimization which
14595 doesn't work in all cases.
14597 2005-12-13 Zoltan Varga <vargaz@gmail.com>
14599 * object.c (mono_array_new_full): Treat a single dimensional array
14600 with 0 lower bounds as an szarray. Fixes #76973.
14602 * reflection.c (custom_attr_visible): Really fix this.
14604 2005-12-12 Zoltan Varga <vargaz@gmail.com>
14606 * reflection.c (custom_attr_visible): Allow nested public attributes
14609 * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
14612 2005-12-12 Raja R Harinath <harinath@gmail.com>
14614 * class.c (set_generic_param_owner): Delete.
14615 (mono_class_create_from_typedef): Don't set ->owner field of
14616 generic parameters to "param containers" of enclosing classes.
14617 * reflection.c (mono_reflection_initialize_generic_parameter):
14620 2005-12-11 Zoltan Varga <vargaz@gmail.com>
14622 * reflection.c (custom_attr_visible): Fix build.
14624 2005-12-10 Zoltan Varga <vargaz@gmail.com>
14626 * reflection.c (mono_custom_attrs_from_builders): Avoid returning
14627 private attributes.
14629 * reflection.c (reflection_methodbuilder_to_mono_method): Fix
14630 handling of null parameter defaults.
14632 2005-12-09 Raja R Harinath <rharinath@novell.com>
14634 * class.c (mono_class_from_generic_parameter): Don't set
14635 klass->generic_container.
14636 (my_mono_class_from_generic_parameter): Likewise.
14638 2005-12-07 Zoltan Varga <vargaz@gmail.com>
14640 * reflection.c (load_public_key): Fix a warning.
14641 (method_encode_code): Fix unaligned accesses.
14643 2005-12-07 Martin Baulig <martin@ximian.com>
14645 * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
14648 (write_generic_param_entry): Encode our custom attrs.
14650 * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
14652 2005-12-07 Martin Baulig <martin@ximian.com>
14654 * reflection.c (encode_new_constraint): Removed; we don't use the
14655 `NewConstraintAttribute' anymore.
14657 2005-12-06 Zoltan Varga <vargaz@gmail.com>
14659 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
14660 not fire a TypeResolve event when Assembly.GetType () is called.
14662 2005-12-05 Ben Maurer <bmaurer@ximian.com>
14664 Beginning of support for nullable types in the runtime. Parts of
14665 this patch are from Martin.
14667 * appdomain.c (MONO_CORLIB_VERSION): Bump
14669 * domain.c (mono_init_internal): get the nullable type
14671 * class.c (mono_class_is_nullable): New method
14672 (mono_class_get_nullable_param): New mehod
14673 (mono_class_create_generic): In types T? set cast_class to T
14675 * class-internals.h (MonoDefaults): new nullable default class
14676 (mono_class_get_nullable_param, mono_class_get_nullable_param):
14679 2005-12-05 Raja R Harinath <rharinath@novell.com>
14681 * metadata.c (select_container): New. Refactor code to select the
14682 appropriate GenericContainer given the type of generic parameter
14683 we are looking for.
14684 (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
14685 not a MonoGenericContext. Use select_container. Update parameters.
14686 (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
14687 and MONO_TYPE_MVAR.
14688 (unwrap_arrays): Remove duplicate tests.
14689 (find_generic_param): Rename from 'has_same_context'. Now walks a
14690 generic instantiated class to find any arguments that are generic
14692 (mono_type_create_from_typespec_full): Use find_generic_param to
14693 avoid evicting some generic instantiations from the typespec
14696 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
14698 * reflection.c: fixed writing of doubles on ARM FPA.
14700 2005-12-02 Robert Jordan <robertj@gmx.net>
14702 * icall.c: Fixed EventInfo.ReflectedType (#76829).
14704 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14706 * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
14707 least on SUSE 10 they are not the same (on debian, they are just the
14710 2005-12-01 Raja R Harinath <rharinath@novell.com>
14712 * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
14713 DeclaringType for VARs and MVARs.
14714 * class.c (set_generic_param_owner): Fix initialization of owner
14717 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
14719 * icall.c: fixed Enum.ToObject() to correctly convert the values.
14721 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14723 * threadpool.c: workaround for a bug that shows up on the Mac:
14724 select()+connect() on a blocking socket is not like it should
14725 be, so we proceed to connect() in that case, wasting the I/O
14726 threadpool thread until connect succeedes. Fixes bug #75436.
14728 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14730 * threadpool.c: fix typo when setting file descriptor states.
14732 2005-11-28 Raja R Harinath <rharinath@novell.com>
14734 * class-internals.h (MonoGenericContainer.is_signature): Remove.
14735 * metadata.c (mono_metadata_parse_method_signature_full): Don't
14736 create a temporary signature container.
14737 (mono_metadata_parse_generic_param): Update to changes.
14738 (mono_type_create_from_typespec_full): Update to changes.
14739 * loader.c (method_from_memberref): Don't use a
14740 MonoGenericContainer while parsing a memberref signature.
14741 (method_from_methodspec): Remove dead-store of the 'container'
14742 variable. It's overwritten before use.
14744 * metadata.c (mono_type_create_from_typespec_full): Make debugging
14746 (mono_metadata_parse_generic_param): Likewise.
14747 * loader.c (find_method_in_class): Does not need a
14748 MonoGenericContainer. Use 'mono_method_signature' rather than
14749 'mono_method_signature_full'.
14750 (find_method, mono_get_method_constrained, method_from_memberref):
14753 * metadata.c (mono_type_create_from_typespec_full): Ensure that
14754 owner-less generic-parameters are never evicted from the typespec
14757 * loader.c (method_from_memberref): Don't use the current context
14758 when parsing signatures.
14759 (method_from_methodspec, mono_get_method_from_token): Update to changes.
14761 * metadata.c (do_mono_metadata_parse_generic_class): Avoid
14762 side-effects in g_assert.
14763 * loader.c (mono_get_method_from_token): Resolve klass earlier so
14764 that we don't potentially lose information.
14766 2005-11-26 Dick Porter <dick@ximian.com>
14769 * threads.c: icalls to implement basic (ie, not named)
14770 System.Threading.Semaphore.
14772 2005-11-24 Dick Porter <dick@ximian.com>
14775 (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
14776 Use GetProcessId() if it's available.
14778 2005-11-23 Zoltan Varga <vargaz@gmail.com>
14780 * icall.c threads-types.h threads.c: Add Exchange<T> icall.
14782 2005-11-23 Raja R Harinath <rharinath@novell.com>
14783 Ankit Jain <jankit@novell.com>
14785 * loader.c (mono_get_method_from_token): Initialize 'method' field
14786 of all generic parameters before parsing the signature. Remove
14787 code that "fixed"-up MVAR references.
14789 2005-11-23 Ankit Jain <jankit@novell.com>
14791 * metadata.c (mono_metadata_has_generic_params):
14792 (mono_metadata_load_generic_param_constraints):
14793 (mono_metadata_load_generic_params): Move duplicate code ...
14794 (mono_metadata_get_generic_param_row): ... here. Returns the
14795 first row-id in GenericParam table for a given owner (token).
14796 * metadata-internals.h (mono_metadata_get_generic_param_row): Add
14799 2005-11-23 Raja R Harinath <rharinath@novell.com>
14800 Ankit Jain <jankit@novell.com>
14802 * metadata.c (mono_metadata_class_equal): Pass signature_only when
14803 comparing VARs too.
14804 * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at
14805 type->data.generic_param only if the type is an MVAR.
14806 (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
14807 leak owner-less VARs and MVARs into managed space.
14809 2005-11-21 Martin Baulig <martin@ximian.com>
14811 * class-internals.h
14812 (MonoMethod): Moved the `generic_container' here from
14813 `MonoMethodNormal' since we now also need it for
14814 `MonoMethodPInvoke';
14815 (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
14816 (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
14817 an union containing both `MonoMethodNormal' and
14818 `MonoMethodPInvoke'.
14821 (mono_get_method_from_token): Allow implementing generic methods
14825 (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
14828 2005-11-17 Dick Porter <dick@ximian.com>
14832 * process.c: Split the Process Start_internal icall into
14833 ShellExecuteEx_internal and CreateProcess_internal, which are
14834 called depending on whether UseShellExecute is true. Fixes bug
14837 * appdomain.c (MONO_CORLIB_VERSION): Incremented
14839 2005-11-17 Zoltan Varga <vargaz@gmail.com>
14841 * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
14842 'msize' parameters, use the information in 'mspec' instead.
14843 (emit_object_to_ptr_conv): Ditto.
14845 * marshal.c (emit_struct_conv): Handle explicit layout structs with
14846 fields out of order. Fixes #76733.
14848 2005-11-17 Ankit Jain <jankit@novell.com>
14850 * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
14852 2005-11-16 Atsushi Enomoto <atsushi@ximian.com>
14854 * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
14857 2005-11-16 Zoltan Varga <vargaz@gmail.com>
14859 * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
14860 for types with non-auto layout. Fixes #76717.
14862 2005-11-16 Ankit Jain <jankit@novell.com>
14864 * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
14865 * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam
14866 if generic_context is null.
14867 (mono_metadata_generic_param_equal): param->owner can be null.
14868 (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
14871 2005-11-16 Zoltan Varga <vargaz@gmail.com>
14873 * reflection.c (create_dynamic_mono_image): Set md_version_minor to
14876 2005-11-15 Martin Baulig <martin@ximian.com>
14878 * object.c (set_value): Use mono_class_from_mono_type() instead of
14879 the hack for generic instances; fixes #76136.
14881 2005-11-15 Zoltan Varga <vargaz@gmail.com>
14883 * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
14886 * image.c (load_metadata_ptrs): Initialize the new fields.
14888 * reflection.c (create_dynamic_mono_image): Ditto.
14890 * reflection.c (build_compressed_metadata): Use the new fields.
14892 * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
14895 * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
14898 2005-11-15 Ankit Jain <jankit@novell.com>
14899 Raja R Harinath <harinath@gmail.com>
14901 * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
14902 * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
14903 new per-generic_container cache if the cached MonoType's context matches
14904 the current context.
14905 (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
14906 to the expected context.
14907 (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
14909 2005-11-14 Carlos Alberto Cortez <calberto.cortez@gmail.com>
14911 * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
14912 we changed the signature of an icall.
14913 * icall.c: Modify to mono_double_ParseImpl return true/false
14914 depending on the success, instead of throwing the exception. This will
14915 help us in Double.TryParse methods.
14917 2005-11-14 Zoltan Varga <vargaz@gmail.com>
14919 * marshal.c (emit_marshal_object): Throw an exception when
14920 marshalling 'object' instead of crashing. Fixes #76696.
14922 2005-11-11 Zoltan Varga <vargaz@gmail.com>
14924 * class-internals.h: Add prototype for mono_type_get_full_name ().
14926 2005-11-11 Dick Porter <dick@ximian.com>
14928 * threads.c (mono_thread_manage): Make sure the main thread has
14929 abandoned all its mutexes when cleaning up. Fixes bug 74680.
14931 2005-11-11 Zoltan Varga <vargaz@gmail.com>
14933 * loader.c (mono_loader_set_error_type_load): Log a warning to the
14934 console about the missing type.
14935 (mono_loader_set_error_method_load): Ditto.
14937 2005-11-09 Miguel de Icaza <miguel@novell.com>
14939 * mono-config.c (mono_get_config_dir): Set the system defaults if
14942 * assembly.c (mono_set_dirs): New API entry point to set the
14943 assembly and the config directory in one call
14945 2005-11-09 Zoltan Varga <vargaz@gmail.com>
14947 * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
14948 the ftnptr was created from a delegate in a domain other than the
14949 current domain. Fixes #75377.
14951 * exception.h exception.c: Add mono_get_exception_not_supported ().
14953 2005-11-08 Martin Baulig <martin@ximian.com>
14955 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
14957 2005-11-07 Sebastien Pouliot <sebastien@ximian.com>
14959 * security-manager.h: Added definitions to deal with strongname key
14960 pairs bigger (and smaller) than 1024 bits.
14961 * reflection.c: Remove hardcoded strongname size (128 bytes) and
14962 adjust wrt the public key length being used.
14964 2005-11-03 Atsushi Enomoto <atsushi@ximian.com>
14966 * marshal.c, icall.c : reverted sig->pinvoke changes which broke
14967 Windows build (r51396-51397).
14969 2005-11-03 Martin Baulig <martin@ximian.com>
14971 * class.c (mono_class_setup_vtable_general): Also add generic
14972 methods to the vtable; fixes #76581.
14974 2005-11-01 Miguel de Icaza <miguel@novell.com>
14976 * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
14977 sure that we lookup GetString method from the System.Text.Encoding
14978 class, not the derived class or we get an empty method.
14980 Fixed class #76612.
14982 2005-10-25 Miguel de Icaza <miguel@novell.com>
14984 * assembly.c (mono_assemblies_init): Do not set the Mono root dir
14985 if it has been previously set (embedders).
14987 Make mono_set_rootdir available also on Unix.
14989 005-10-24 Robert Jordan <robertj@gmx.net>
14991 * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
14993 2005-10-30 Zoltan Varga <vargaz@freemail.hu>
14995 * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
14996 only calls which are made to native code use this flag.
14998 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
15000 2005-10-29 Zoltan Varga <vargaz@freemail.hu>
15002 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
15003 Add support for FieldBuilders.
15005 2005-10-29 Martin Baulig <martin@ximian.com>
15008 (mono_debug_using_mono_debugger): New public method; returns
15009 whether we're running inside the debugger.
15011 2005-10-27 Zoltan Varga <vargaz@gmail.com>
15013 * reflection.c (mono_reflection_get_custom_attrs_info): Add support
15014 for Method/Constructor/FieldBuilders.
15016 2005-10-26 Zoltan Varga <vargaz@gmail.com>
15018 * reflection.c (module_add_cattrs): Save custom attributes for global methods
15019 and fields as well.
15021 2005-10-26 Martin Baulig <martin@ximian.com>
15023 * mono-debug-debugger.c
15024 (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
15026 2005-10-24 Raja R Harinath <harinath@gmail.com>
15028 * icall.c (base64_to_byte_array): Don't pass an out-of-range
15029 integer to isspace.
15031 2005-10-21 Zoltan Varga <vargaz@gmail.com>
15033 * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
15034 when passing valuetypes byref. Fixes #76502.
15036 2005-10-19 Jackson Harper <jackson@ximian.com>
15038 * profiler.c: Don't put a . in front of types that are not in a
15041 2005-10-18 Zoltan Varga <vargaz@gmail.com>
15043 * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
15045 2005-10-15 Zoltan Varga <vargaz@freemail.hu>
15047 * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
15049 (mono_marshal_get_ldflda_wrapper): Fix a warning.
15051 2005-10-13 Carlos Alberto Cortez <calberto.cortez@gmail.com>
15053 * assembly.c metadata-internals.h icall.c: Define an additional
15054 parameter for mono_assembly_name_parse_full, so we can avoid creating
15055 S.R.AssemblyName.Version when no version info wasn't passed.
15057 2005-10-09 Miguel de Icaza <miguel@novell.com>
15059 * class.c (mono_type_get_full_name): Reimplement method that was
15062 * image.c: Some docs
15064 2005-10-10 Zoltan Varga <vargaz@gmail.com>
15066 * profiler.c (output_newobj_profile): Fix printing of Total memory
15069 2005-10-08 Zoltan Varga <vargaz@freemail.hu>
15071 * profiler.c: Add support for allocations > 2GB. Fixes #74886.
15073 2005-10-08 Gert Driesen <drieseng@users.sourceforge.net>
15075 * threads.c: remove debug output.
15077 2005-10-08 Zoltan Varga <vargaz@freemail.hu>
15079 * threads.c (mono_thread_manage): Fix crashes if more than 64
15080 threads need to be aborted. Hopefully fixes #75899.
15082 * assembly.c (mono_stringify_assembly_name): New helper function.
15084 * class.c: Use mono_stringify_assembly_name instead of the similar
15087 * assembly.h assembly.c: Add support for calling a postload search
15088 hook if an assembly cannot be loaded.
15090 * appdomain.c: Register new search hooks which call the AssemblyResolve
15091 events in AppDomain. Fixes #75231
15093 2005-10-07 Martin Baulig <martin@ximian.com>
15095 * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
15096 methods without debug info.
15098 2005-10-07 Zoltan Varga <vargaz@gmail.com>
15100 * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
15103 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15105 * file-io.c: now that we return symlinks, use lstat and, when the file
15106 is a symbolic link, stat, to get the file attributes. Also avoid the
15107 conversion to/from utf16/external.
15109 2005-10-06 Zoltan Varga <vargaz@gmail.com>
15111 * class.c (mono_class_layout_fields): Compute klass->has_references
15112 correctly if an embedded valuetype is not yet initialized. Fixes
15115 2005-10-04 Martin Baulig <martin@ximian.com>
15118 (mono_metadata_load_generic_param_constraints): New public
15119 function; splitted the constraints loading out from
15120 mono_metadata_load_generic_params().
15122 * class.c (mono_class_create_from_typedef): Call
15123 mono_metadata_load_generic_param_constraints() after setting up
15124 the type and creating our parent; fixes #75329.
15126 2005-10-04 Martin Baulig <martin@ximian.com>
15128 * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
15129 non-dynamic parent classes.
15131 2005-10-04 Atsushi Enomoto <atsushi@ximian.com>
15133 * file-io.c : win32 build fix (ETXTBSY seems not found).
15135 2005-10-04 Martin Baulig <martin@ximian.com>
15138 (mono_image_get_methodspec_token): Make the cache actually work;
15141 2005-10-04 Martin Baulig <martin@ximian.com>
15143 * class.c (mono_class_name_from_token): Removed the unneccessary
15144 `MonoGenericContext *' argument.
15146 2005-10-04 Martin Baulig <martin@ximian.com>
15149 (method_from_methodspec): Make the caching work again; fixes the
15150 performance regression from #76262.
15152 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15156 * icall.c: replace FindFirst/FindNext/FindClose calls with a new
15157 GetFileSystemEntries that performs the same work but without going
15158 into io-layer, locking, etc.
15160 2005-09-30 Zoltan Varga <vargaz@gmail.com>
15162 * threads.c (ves_icall_System_Threading_Thread_Abort): Handle
15163 ThreadState_Stopped as well. Fixes #76047.
15165 2005-09-29 Martin Baulig <martin@ximian.com>
15168 (inflate_generic_context): If the new context has a `gmethod', set
15169 its `container' that that gmethod's `container'.
15172 (mono_metadata_parse_generic_param): Simplify things;
15173 `generic_container = generic_context->container;' is just fine.
15175 * loader.c (method_from_methodspec): Code cleanups.
15177 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
15179 * decimal.c: fix warning (and let gcc generate correct
15180 code on ARM with optimizations).
15182 2005-09-28 Martin Baulig <martin@ximian.com>
15185 (method_from_memberref): Added `MonoGenericContext *class_context'
15186 argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
15187 (method_from_methodspec): If we're a memberref, use the enclosing
15188 context when parsing its parent. Fixes #76262; see gtest-206.cs.
15190 2005-09-28 Martin Baulig <martin@ximian.com>
15192 * object.c (mono_runtime_invoke_array): Added support for
15193 MONO_TYPE_GENERICINST; fixes #75917.
15195 2005-09-27 Martin Baulig <martin@ximian.com>
15197 * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
15198 `k->byval_arg.type' to determine the actual type.
15200 * loader.c (method_from_methodspec): Removed some hacks.
15202 2005-09-27 Ben Maurer <bmaurer@ximian.com>
15204 * class-internals.h (mono_field_is_deleted): Do the test for
15205 rtspecialname before we check the actual name of the field. This
15206 prevents us from dereferencing a pointer into the string table,
15207 saving us from accessing a few pages
15209 * *.c: Replace the use of {Enter,Leave}CriticalSection with
15210 macros. This will allow a deadlock debugger to easily be plugged
15213 2005-09-27 Martin Baulig <martin@ximian.com>
15215 * loader.c (method_from_methodspec): Create a "signature"
15216 MonoGenericContainer and use mono_get_method_full(). Fixes #75584.
15218 2005-09-27 Martin Baulig <martin@ximian.com>
15221 (inflate_generic_class): Correctly set the new context's
15225 (find_method, find_method_in_class): Take a `MonoGenericContainer *'
15226 instead of a `MonoGenericContext *'.
15227 (mono_method_signature_full): Take a `MonoGenericContainer *'
15228 instead of a `MonoGenericContext *'.
15231 (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
15232 instead of a `MonoGenericContext *'.
15233 (mono_metadata_parse_method_signature_full): Likewise.
15235 2005-09-26 Martin Baulig <martin@ximian.com>
15238 (mono_class_from_generic_parameter): Set `klass->generic_container'
15239 (mono_class_from_generic_parameter): Likewise.
15240 (mono_bounded_array_class_get): We inherit the generic container
15241 from the element class.
15244 (find_method, find_method_in_class): Take a `MonoGenericContext *'
15245 argument rather than computing it here.
15246 (method_from_memberref): Correctly set the generic context before
15247 parsing the signature. Fixes #75681.
15249 2005-09-26 Zoltan Varga <vargaz@gmail.com>
15251 * object.c (mono_class_has_special_static_fields): Fix warnings.
15253 2005-09-26 Carlos Alberto Cortez <calberto.cortez@gmail.com>
15255 * assembly.c: Add parse_public_key function, to
15256 par the public keys. Also added mono_assembly_name_parse_full,
15257 to define it the parsed key should be freed or not.
15258 * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
15259 to parse a long format assembly name.
15260 * metadata-internals.h: Keep mono_assembly_name_parse_full as
15261 private, since calling it to preserve the key requires
15262 freeing it manually.
15264 2005-09-26 Atsushi Enomoto <atsushi@ximian.com>
15266 * locales.c : removed HAVE_ICU part.
15268 2005-09-24 Zoltan Varga <vargaz@freemail.hu>
15270 * object.c (mono_class_create_runtime_vtable): Avoid calling
15271 field_is_special_static if the klass has no special static fields.
15273 * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
15274 (MonoCachedClassInfo): Likewise.
15276 * object.c (mono_class_has_special_static_fields): New helper function.
15278 2005-09-23 Zoltan Varga <vargaz@gmail.com>
15280 * class.c (mono_class_create_from_typedef): Don't call
15281 interfaces_from_typedef_full for enums.
15282 (mono_class_create_from_typedef): Compute the base types of enums directly
15283 without calling mono_class_setup_fields ().
15284 (mono_class_find_enum_basetype): New helper function.
15286 * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
15287 one place inside the string heap.
15289 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
15291 * class.c: locking fixes, code cleanups, some docs added.
15292 Allocate some data structures in the image mempool.
15294 2005-09-23 Zoltan Varga <vargaz@gmail.com>
15296 * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
15299 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
15301 * class-internals.h, class.c, reflection.c: reduce memory taken by
15304 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
15306 * metadata.c, metadata.h, loader.h: documentation updates, code and
15309 2005-09-23 Zoltan Varga <vargaz@gmail.com>
15311 * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
15314 * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
15315 page faults caused by the runtime while reading metadata.
15317 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15319 * socket-io.c: the field names were changed 3 months ago and no one
15320 realized until bug #76077 got filed!
15322 2005-09-20 Martin Baulig <martin@ximian.com>
15324 * icall.c (assembly_icalls): Removed some unused debugger icalls.
15326 2005-09-20 Martin Baulig <martin@ximian.com>
15328 * mono-debug.c (mono_debug_add_type): Ignore array types and don't
15329 write the rank into the class entry.
15331 2005-09-20 Martin Baulig <martin@ximian.com>
15333 * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
15335 2005-09-19 Zoltan Varga <vargaz@gmail.com>
15337 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15339 * icall.c (custom_attrs_defined_internal): New icall.
15341 * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
15343 (mono_custom_attrs_construct_by_type): New helper function.
15345 2005-09-17 Zoltan Varga <vargaz@freemail.hu>
15347 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
15348 terminate the resulting string. Fixes #76123.
15350 2005-09-16 Martin Baulig <martin@ximian.com>
15353 (mono_debug_add_method): Ignore inflated methods for the moment.
15355 2005-09-14 Martin Baulig <martin@ximian.com>
15357 * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
15359 2005-09-13 Zoltan Varga <vargaz@gmail.com>
15361 * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
15362 return a success/failure indication.
15363 (mono_metadata_interfaces_from_typedef_full): Ditto.
15364 (get_constraints): Ditto.
15366 2005-09-12 Zoltan Varga <vargaz@gmail.com>
15368 * marshal.c (emit_marshal_array): Fix handling of null arrays.
15370 * marshal.c (emit_marshal_array): Add support for returning string
15371 arrays from delegates. Fixes #76063.
15373 * marshal.c: Use the emit_ldloc/stloc macros where possible.
15375 2005-09-11 Zoltan Varga <vargaz@gmail.com>
15377 * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
15380 2005-09-09 Zoltan Varga <vargaz@gmail.com>
15382 * reflection.c icall.c: Fix after mono_get_exception_type_load
15385 * assembly.c (mono_assembly_get_assemblyref): New helper function.
15386 (mono_assembly_load_reference): Use the new helper.
15388 * class-internals.h (MonoLoaderError): New structure containing
15389 information about type loading errors.
15391 * class-internals.h loader.c: Add APIs to store per-thread loader
15394 * loader.c class.c: Set the loader error if needed.
15396 * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
15398 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
15400 * decimal.c: fixed to handle the broken ARM fp format.
15402 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
15404 * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
15407 2005-09-06 Martin Baulig <martin@ximian.com>
15409 * domain.c (supported_runtimes): Added v2.0.50727.
15411 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
15413 * culture-info.h: reduce the size of some structures.
15415 2005-09-05 Martin Baulig <martin@ximian.com>
15417 Reflect latest API changes in the August CTP.
15420 ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
15421 ("MonoType.HasGenericArguments"): Removed.
15422 ("MonoMethod.BindGenericParameters"): Renamed to
15423 "MakeGenericMethod".
15424 ("MethodBuilder.BindGenericParameters"): Renamed to
15425 "MakeGenericMethod".
15427 2005-09-05 Martin Baulig <martin@ximian.com>
15429 * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
15431 2005-09-05 Martin Baulig <martin@ximian.com>
15433 Applying a patch from Michal Moskal <malekith@nemerle.org>.
15435 * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
15436 generic_container is non-NULL.
15438 2005-09-05 Martin Baulig <martin@ximian.com>
15440 Applying a patch from Michal Moskal <malekith@nemerle.org>.
15442 * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
15444 2005-08-29 Michal Moskal <malekith@nemerle.org>
15446 * reflection.c (encode_locals,
15447 mono_reflection_sighelper_get_signature_local): Increase buffer sizes
15448 for large generic types.
15450 2005-09-05 Martin Baulig <martin@ximian.com>
15452 Applying a patch from Michal Moskal <malekith@nemerle.org>.
15454 * class.c (mono_dup_array_type): New public method.
15455 (mono_metadata_signature_deep_dup): New public method.
15456 (dup_type): Correctly duplicate array and function types.
15458 2005-09-05 Martin Baulig <martin@ximian.com>
15460 Applying a patch from Michal Moskal <malekith@nemerle.org>.
15462 * reflection.c (get_default_param_value_blobs): Handle generic types
15463 and generic methods.
15465 2005-09-02 Sebastien Pouliot <sebastien@ximian.com>
15467 * class.c: Fixed error reporting (method/class were inversed) for
15468 inheritance demands.
15469 * security-manager.c|h: Added the AppDomain when calling the managed
15470 System.Security.SecurityManager.InheritanceDemand method.
15472 2005-09-01 Raja R Harinath <rharinath@novell.com>
15474 * reflection.c (encode_marshal_blob): 'marshaltype' and
15475 'marshaltyperef' are alternate sources for the custom marshaler
15478 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
15480 * class.c: fix creation of array classes with rank == 1
15481 (patch by Ankit Jain <jankit@novell.com>).
15483 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
15485 * object.c: fix check for creating the bound data for arrays vs
15488 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15490 * object.c: configuration file name is now based on the executable name,
15491 not the image name. Fixes bug #75931.
15493 2005-08-29 Zoltan Varga <vargaz@gmail.com>
15495 * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
15496 flag using LDIND_U4 since it leads to smaller and faster code on ia64.
15498 2005-08-25 Zoltan Varga <vargaz@gmail.com>
15500 * rand.c: Use wincrypt.h instead of WinCrypt.h.
15502 2005-08-24 Ankit Jain <jankit@novell.com>
15503 Raja R Harinath <rharinath@novell.com>
15505 * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
15506 called by it recursively.
15507 (mono_class_init): Remove special case in pending_init handling, since it's
15508 superseded by the fix to mono_class_from_typeref.
15510 2005-08-22 Zoltan Varga <vargaz@freemail.hu>
15512 * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the
15513 BROKEN_THREAD_START stuff.
15515 2005-08-21 Zoltan Varga <vargaz@freemail.hu>
15517 * class-internals.h object.c: Add a new kind of trampoline called a delegate
15520 * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
15522 * object.c (mono_delegate_ctor): Replace the original function address with
15523 a delegate trampoline.
15525 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
15527 * icall.c: add boolean argument to base64_to_byte_array and
15528 InternalFromBase64String to control whether a whitespace-only string
15529 is allowed (or should casue a FormatException to be thrown). We need
15530 this as the behavior has changed between MS.NET 1.x and 2.0, and we
15531 to match the MS behaviour in both profiles.
15532 * appdomain.c: Bump corlib version.
15534 2005-08-20 Carlos Alberto Cortez <calberto.cortez@gmail.com>
15536 This patch implements a big portion of publisher policy
15537 support, used to bind assembly versions and redirect
15538 one assembly from version A to version B.
15541 New GSList loaded_assembly_bindings, for storing the cached
15543 (assembly_binding_maps_name): New static function for checking if a
15544 assembly binding information maps an assembly name.
15545 (mono_assembly_binding_info_free): New function for freeing
15546 assembly binding information resources.
15547 (get_publisher_policy_info): New static function for retrieving
15548 assembly binding information from a MonoImage.
15549 (compare_versions): New static function for comparing an assembly
15550 binding information data and the version of an assembly name.
15551 (check_policy_versions): New static function for checking if an
15552 assembly binding info mapping an assembly name is valid for it.
15553 (mono_assembly_load_publisher_policy): New static function for
15554 loading the 'policy.major.minor.MyAssembly' image for an assembly
15555 with an assembly name 'aname'.
15556 (mono_assembly_bind_version): New static function for updating
15557 assembly redirection.
15558 (mono_assembly_apply_binding): New static function for applying
15560 (search_binding_loaded): New static function for searching
15561 loaded assembly binding infos in the cache domain.
15562 (mono_assembly_load_full): Don't apply assembly binding for
15563 reflection only assemblies.
15565 * metadata-internals.h: Add MonoAssemblyBindingInfo,
15566 which contains information about assembly binding. Also
15567 declare signature for mono_config_parse_publisher_policy ()
15568 function, used to retrieve pub policy info.
15571 (publisher_policy_start): New static function used to parse publisher
15572 policy config files.
15573 (publisher_policy_parser): New static MonoParseHandler containing
15574 the functions used when parsing config files.
15575 (mono_config_parse_publisher_policy): New function for parsing
15576 publisher policy files.
15578 2005-08-20 Zoltan Varga <vargaz@freemail.hu>
15580 * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
15582 * marshal.c (mono_delegate_free_ftnptr): Ditto.
15584 * object.c (mono_get_addr_from_ftnptr): New helper function.
15586 * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
15588 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15590 2005-08-19 Dick Porter <dick@ximian.com>
15592 * threads.c, threads.h, appdomain.c, appdomain.h,
15593 profiler-private.h, monitor.c, object.c, object-internals.h,
15594 profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
15595 store the thread ID, so it can hold a 64 bit value if needed.
15597 2005-08-19 Zoltan Varga <vargaz@freemail.hu>
15599 * reflection.c (mono_reflection_create_dynamic_method): Store the
15600 handle class into the method references as well so ldtoken works in
15603 * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
15606 2005-08-19 Ankit Jain <jankit@novell.com>
15609 * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature
15610 here rather than using the method signature of a arbitrary function
15611 named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with
15613 Hack done with Harinath.
15615 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15617 * threadpool.c: disable printing stack traces when we get a exception
15618 in a threadpool thread. I need to do more testing to figure out which
15619 cases actually print this. Fixes bug #75828.
15621 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15623 * icall.c: there might be ignored whitespace after the last '='. This
15624 fixes length computation and bug #75840.
15626 2005-08-18 Zoltan Varga <vargaz@freemail.hu>
15628 * assembly.c (mono_assembly_load_full): Consider .exe extension as
15629 well. Fixes #75809.
15631 * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
15634 * reflection.c (create_custom_attr_data): Ditto.
15636 2005-08-17 Atsushi Enomoto <atsushi@ximian.com>
15638 * locales.c, culture-info.h : removed RegionLCIDMap.
15639 * culture-info-tables.h : regenerated.
15641 2005-08-16 Martin Baulig <martin@ximian.com>
15643 * class.c (mono_type_get_name_recurse): Small fix.
15645 2005-08-16 Atsushi Enomoto <atsushi@ximian.com>
15647 * locales.c : indentation fixie.
15649 2005-08-15 Atsushi Enomoto <atsushi@ximian.com>
15651 * object-internals.h,
15655 icall.c : added RegionInfo table support.
15656 * culture-info-table.h : regenerated for region support.
15658 2005-08-14 Kamil Skalski <nazgul@nemerle.org>
15660 * reflection.c (resolve_object): handle all kinds of MonoMethod
15661 including generic ones
15663 2005-08-12 Ankit Jain <jankit@novell.com>
15665 * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
15666 (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY.
15668 2005-09-12 Lluis Sanchez <lluis@ximian.com>
15670 * process.c: Don't close a thread handle when it's NULL. This is a
15671 workaround for bug #75733.
15673 2005-08-11 Zoltan Varga <vargaz@freemail.hu>
15675 * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
15677 2005-08-10 Zoltan Varga <vargaz@freemail.hu>
15679 * icall.c (ves_icall_Type_get_IsGenericType): New icall.
15681 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15683 * threadpool.c: if a work item in the thread pool has a callback that
15684 catches a exception, don't propagate it after invoking the callback.
15687 2005-08-08 Zoltan Varga <vargaz@freemail.hu>
15689 * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
15691 * class-internals.h (MonoCachedClassInfo): Add some new fields.
15693 * class.c (mono_class_init): Load field info lazily in the AOT case.
15695 * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
15697 2005-08-03 Ankit Jain <jankit@novell.com>
15700 * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
15701 PInvoke calling convention is 0.
15703 2005-08-02 Zoltan Varga <vargaz@freemail.hu>
15705 * socket-io.c (convert_sockopt_level_and_name): Applied patch from
15706 Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
15708 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
15710 * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
15711 to handle threads not started by the GC (patch by Michael Meeks
15712 <michael.meeks@novell.com>).
15714 2005-07-31 Kamil Skalski <nazgul@omega.pl>
15716 * reflection.c: Make buffer used in emitting types larger for some
15717 big generic types (patch by Michal Moskal).
15719 2005-07-30 Zoltan Varga <vargaz@freemail.hu>
15721 * mono-debug.c: Fix some (not all) alignment problems.
15723 2005-07-29 Carlos Alberto Cortez <calberto.cortez@gmail.com>
15725 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
15726 Invoke mono_image_load_from_data_full passing the refonly
15730 (mono_assembly_open_from_bundle): Add the refonly argument,
15731 in order to pass it to other methods it calls to.
15732 (do_mono_assembly_open): Add the refonly argument, in order
15733 to pass it to other methods it calls to.
15734 (mono_assembly_open_full): Invoke do_mono_assembly_open passing
15735 the refonly parameter to it.
15737 * image.c: Add loaded_images_refonly_hash and
15738 loaded_images_refonly_guid_hash to cache the reflection
15739 only loaded images.
15740 (mono_images_init): Initialize the hash tables used for
15741 caching the reflection only images.
15742 (load_modules): Invoke mono_image_open_full passing the refonly
15743 parameter to load the modules the correct way.
15744 (build_guid_table): Add the refonly argument, to re-build the
15745 correct hash table.
15746 (do_mono_image_open): Added the refonly argument, in order to
15747 define it for the loaded image.
15748 (mono_image_loaded_full): New function, which receives an
15749 additional parameter to look for the image in the refonly or
15750 non-refonly section.
15751 (mono_image_loaded): Updated, using mono_image_loaded_full.
15752 (mono_image_loaded_by_guid_full): The same case that happens
15753 with mono_image_loaded_full.
15754 (mono_image_loaded_by_guid): Likewise.
15755 (register_image): Use the ref_only variable inside MonoImage
15756 to decide in which hash table store the current image.
15757 (mono_image_open_from_data_full): Rename
15758 mono_image_open_from_data to mono_image_open_from_data_full,
15759 adding the refonly argument, to define the ref_only variable
15761 (mono_image_open_from_data): Return
15762 mono_image_open_from_data_full.
15763 (mono_image_open_full): Rename mono_image_open to
15764 mono_image_open_full, receiving the new refonly argument,
15765 to pass it to inner methods.
15766 (mono_pe_file_open): Update this function, to open
15767 a MonoImage as a non-refonly image.
15768 (mono_image_close): Use the refonly variable inside
15769 MonoImage to remove the image from the correct caches.
15771 * image.h: Add the signatures of mono_image_open_full,
15772 mono_image_open_from_data_full, mono_image_loaded_full,
15773 mono_image_loaded_by_guid_full.
15775 * metadata-internals.h: Add the ref_only field to
15778 2005-07-29 Carlos Alberto Cortez <calberto.cortez@gmail.com>
15780 * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
15781 Fix the last behavior, which used to load the assemblies and
15782 extract MonoReflectionAssemblyName information, instead of
15783 extract it from the metadata tables. Needed for Reflection
15786 2005-07-29 Martin Baulig <martin@ximian.com>
15788 * mono-debug-debugger.c
15789 (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
15793 (mono_debug_address_from_il_offset): Check whether we have
15794 debugging support before attempting to take the lock.
15795 (mono_debug_source_location_from_address): Likewise.
15796 (mono_debug_source_location_from_il_offset): Likewise.
15797 (mono_debug_il_offset_from_address): Likewise.
15798 (mono_debug_address_from_il_offset): Likewise.
15800 2005-07-29 Zoltan Varga <vargaz@freemail.hu>
15802 * class.c (mono_class_from_name_case): Add support for dynamic images.
15805 * object.c (mono_class_compute_gc_descriptor): Add a workaround
15808 2005-07-28 Zoltan Varga <vargaz@freemail.hu>
15810 * reflection.c (mono_method_get_object): Fix warning.
15812 2005-07-28 Martin Baulig <martin@ximian.com>
15815 (mono_debug_add_wrapper): Also write the wrapper type.
15817 2005-07-28 Zoltan Varga <vargaz@freemail.hu>
15819 * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
15821 * class.c (mono_class_init): Avoid reading nested classes if the AOT
15822 data indicates the class has none.
15824 2005-07-26 Ben Maurer <bmaurer@ximian.com>
15826 * mono-debug.c, debug-mono-symfile.c: Replace the use of the
15827 loader lock with the debugger lock. Prevents deadlocks for beagle.
15829 Beagle can now run on an smp box for a weekend without any
15832 2005-07-26 Zoltan Varga <vargaz@freemail.hu>
15834 * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
15835 in a module. Fixes #75629.
15837 2005-07-26 Martin Baulig <martin@ximian.com>
15839 * mono-debug.c (mono_debug_add_wrapper): New static method.
15840 (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
15841 interncall or a wrapper.
15843 * mono-debug.h (MonoDebugWrapperData): New public typedef.
15844 (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
15845 (MONO_DEBUGGER_VERSION): Bump to 51.
15847 * mono-debug-debugger.c
15848 (mono_debugger_add_type): Removed this empty function.
15849 (mono_debugger_add_method): Likewise.
15851 2005-07-22 Zoltan Varga <vargaz@freemail.hu>
15853 * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable ()
15854 before accessing method->slot.
15856 2005-07-21 Jb Evain <jbevain@gmail.com>
15858 * reflection.c (method_encode_clauses/class): Handle filters clauses.
15861 2005-07-21 Zoltan Varga <vargaz@freemail.hu>
15863 * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
15866 2005-07-20 Zoltan Varga <vargaz@freemail.hu>
15868 * image.h image.c: Add mono_image_get_guid () API function.
15870 2005-07-19 Ben Maurer <bmaurer@ximian.com>
15872 There were issues when multiple threads tried to load
15873 assemblies. A deadlock was created between assemblies_mutex and
15874 mono_domain_assemblies_lock. This fixes the issue by making the
15875 assembly ref counting be lock free. See bug 75586.
15877 * image.c (mono_image_close): The add ref function here was using
15878 Interlocked operations while the unref was using a mutex and a
15879 --. I don't think this was ever a bug that would be exposed in a
15880 non-pendantic way (ie, by an embedder doing a ref on one thread
15881 and an unref on another), but for the sake of correctness, this is
15884 * assembly.c (mono_assembly_addref): Use InterlockedIncrement
15885 (mono_assembly_load_reference): Call mono_assembly_addref rather
15886 than touching the refcount ourselves.
15887 (mono_assembly_close): Use InterlockedDecrement to unref the
15888 assembly. Don't acquire the lock unless it is actually needed.
15890 2005-07-12 Zoltan Varga <vargaz@freemail.hu>
15892 * class.c (mono_class_layout_fields): Fix calculation of has_references
15895 2005-07-12 Martin Baulig <martin@ximian.com>
15897 Applying a patch from Michal Moskal <malekith@nemerle.org>.
15900 (mono_type_hash): Provide better hashing for generic instances.
15901 (mono_generic_inst_hash): Improve hashing.
15902 (mono_generic_class_hash): Likewise.
15904 * reflection.c (mymono_metadata_type_hash): Improve hashing for
15907 2005-07-12 Martin Baulig <martin@ximian.com>
15909 * reflection.c (mono_reflection_create_runtime_class): Remove the
15910 hack for generic type definitions and non-`Run' assemblies.
15911 (mono_reflection_bind_generic_parameters): Also use
15912 `klass->wastypebuilder' to check for TypeBuilders.
15914 2005-07-12 Zoltan Varga <vargaz@freemail.hu>
15916 * class.c (mono_class_layout_fields): Fix calculation of has_references
15919 * class.c (inflate_generic_class): Fix a leak.
15920 (mono_class_init): Fix calculation of gchimpl and has_finalize fields
15923 2005-07-11 Martin Baulig <martin@ximian.com>
15925 * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
15928 2005-07-11 Martin Baulig <martin@ximian.com>
15930 * loader.c (find_method): Also lookup in
15931 `mono_defaults.object_class' if we're an interfaces; fixes #75460.
15933 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
15935 * appdomain.c (mono_domain_unload): Don't free the error message
15936 before passing it to mono_get_exception_...
15938 * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
15940 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
15942 * threads.c: try to better guess an available RT signal (bug #75387).
15944 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
15946 * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
15949 2005-07-07 Martin Baulig <martin@ximian.com>
15951 * class.c (mono_type_get_name_full): Return NULL for
15952 MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
15955 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
15957 * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
15958 exit the appdomain as well being aborted.
15960 * threadpool.c: Create all threadpool threads inside the root appdomain, and
15961 change back to the root domain after calling managed code. This enables
15962 appdomains using threadpools to be unloaded.
15964 2005-07-07 Martin Baulig <martin@ximian.com>
15966 * class-internals.h
15967 (MonoInflatedGenericClass): Moved the `MonoType *parent' field
15968 into `MonoDynamicGenericClass' since we only need it for dynamic
15971 * reflection.c (mono_class_bind_generic_parameters): We don't need
15972 to compute the `parent' here.
15974 2005-07-07 Atsushi Enomoto <atsushi@ximian.com>
15976 * culture-info-table.h : regenerated.
15978 2005-07-06 Martin Baulig <martin@ximian.com>
15981 (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
15983 * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
15985 2005-07-06 Martin Baulig <martin@ximian.com>
15987 * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
15988 we're doing a signature-only comparision; fixes #74945.
15990 2005-07-06 Martin Baulig <martin@ximian.com>
15992 * class-internals.h (MonoGenericClass): Moved some things out into
15993 a new `MonoInflatedGenericClass' type.
15994 (MonoInflatedGenericClass): New type; the `klass' of a
15995 `MonoGenericClass' is now computed lazyly in
15996 mono_get_inflated_generic_class().
15998 * class.c (mono_get_inflated_generic_class): New public function.
15999 (mono_class_inflate_generic_method): Removed the unused
16000 `MonoClass *' argument.
16001 (setup_generic_vtable): Don't call mono_get_inflated_method() on
16003 (mono_class_create_generic): Make this static and merge it with
16004 mono_class_create_generic_2(); we're now called automatically from
16005 mono_get_inflated_generic_class().
16007 * loader.c (mono_method_signature): Call
16008 mono_get_inflated_method() here.
16010 2005-07-06 Zoltan Varga <vargaz@freemail.hu>
16012 * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
16013 type of fields with RVA.
16015 * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
16016 for this pseudo class.
16017 (my_mono_class_from_generic_parameter): Likewise.
16018 (mono_class_init): Allow interfaces to have cctors.
16020 2005-07-05 Zoltan Varga <vargaz@freemail.hu>
16022 * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
16023 lazily for AOT methods.
16025 2005-07-05 Martin Baulig <martin@ximian.com>
16027 * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
16028 returns FALSE for a successful match, not TRUE.
16030 2005-07-05 Zoltan Varga <vargaz@freemail.hu>
16032 * loader.c (mono_method_get_index): Optimize this a bit.
16034 2005-07-04 Martin Baulig <martin@ximian.com>
16037 (class_compute_field_layout): Move the check for generic type
16038 definitions into mono_class_layout_fields(). Fixes #74684.
16039 (mono_class_from_generic_parameter): Correctly compute
16040 `klass->parent'; fixes #75457.
16042 * reflection.c (register_assembly, register_module): Make sure
16043 `domain->rejobject_hash' is already created.
16045 2005-07-02 Martin Baulig <martin@ximian.com>
16047 * class-internals.h
16048 (MonoGenericClass): Move `count_ifaces' and `ifaces' into
16049 `MonoDynamicGenericClass'.
16051 2005-07-01 Lluis Sanchez <lluis@ximian.com>
16053 * icall.c: In ves_icall_InternalExecute() dont't assert if the value
16054 returned by a field getter is null, since null is a valid value.
16056 2005-07-01 Martin Baulig <martin@ximian.com>
16058 * reflection.c (mono_reflection_generic_class_initialize): Update
16059 the `dgclass->fields [i].parent' to the correct class.
16060 (mono_image_get_fieldref_token): Use the declaring type, not the
16063 2005-07-01 Martin Baulig <martin@ximian.com>
16065 * loader.c (find_method): Also look in the interfaces; fixes #75429.
16067 2005-06-30 Ben Maurer <bmaurer@ximian.com>
16069 * threads.c (thread_cleanup): assert that thread != NULL
16070 (wait_for_tids_or_state_change): We were using the wrong variable
16071 when accessing wait->threads. `i' was always out of the bounds of
16074 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16076 * loader.c: map user32 and kernel32 to libMonoSupportW
16078 2005-06-28 Zoltan Varga <vargaz@freemail.hu>
16080 * appdomain.c (unload_thread_main): Mark this as WINAPI.
16082 2005-06-28 Martin Baulig <martin@ximian.com>
16084 * loader.c (method_from_methodspec): Fix #75334.
16086 2005-06-28 Martin Baulig <martin@ximian.com>
16088 Fix #74953 - Arrays now implement the generic IList<T> interface
16089 on the 2.0 platform.
16091 * class-internals.h (MonoDefaults): Added `generic_array_class'.
16093 * reflection.c (mono_class_bind_generic_parameters): New public
16094 function; similar to mono_reflection_bind_generic_parameters(),
16095 but operates on a `MonoType *' and not on a `MonoReflectionType *'.
16097 * domain.c (mono_init_internal): Try to initialize.
16098 `mono_defaults.generic_array_class' here; this'll only succeed if
16099 we're using the 2.0 corlib.
16102 (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
16103 interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
16104 (mono_lookup_internal_call): Added support for nested classes.
16107 (mono_get_method_from_token): Set `result->signature->pinvoke' if
16108 we're an interncall and have generic arguments.
16111 (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
16112 (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
16113 instance of System.Array.InternalArray<T> for arrays, so they
16114 implement the generic IList<T> interface.
16116 2005-06-27 Zoltan Varga <vargaz@freemail.hu>
16118 * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
16119 (chastamar@yahoo.com). Fixes #75374.
16121 2005-06-27 Atsushi Enomoto <atsushi@ximian.com>
16123 * culture-info-table.h: regenerated.
16125 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16127 * icall.c: handle spaces correctly for base64 strings.
16129 2005-06-26 Ben Maurer <bmaurer@ximian.com>
16131 * *.c: Kill some warnings.
16133 2005-06-23 Duncan Mak <duncan@novell.com>
16135 * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
16136 that this builds on Solaris 10 (x86).
16138 2005-06-23 Martin Baulig <martin@ximian.com>
16141 (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
16142 generic type definitions.
16144 2005-06-23 Martin Baulig <martin@ximian.com>
16148 * metadata.c (mono_class_get_overrides): Renamed to
16149 mono_class_get_overrides_full() and added a `MonoGenericContext *'.
16150 (method_from_method_def_or_ref): Added `MonoGenericContext *' and
16151 pass it to mono_get_method_full().
16153 2005-06-22 Ben Maurer <bmaurer@ximian.com>
16155 * reflection.c (mono_reflection_create_runtime_class): take the
16156 mono_domain_lock in this method. Prevents deadlocks
16158 2005-06-22 Martin Baulig <martin@ximian.com>
16160 * loader.c (method_from_methodspec): Fix #75330.
16162 2005-06-22 Martin Baulig <martin@ximian.com>
16164 * reflection.c (type_get_qualified_name): Use
16165 mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
16166 (_mono_reflection_get_type_from_info): Added `MonoImage *image'
16167 argument; use it if we don't have an assembly name.
16169 2005-06-22 Lluis Sanchez Gual <lluis@novell.com>
16171 * object.c: In mono_message_init, set "copy out" flag for in
16172 parameters with the [Out] flag.
16174 2005-06-21 Martin Baulig <martin@ximian.com>
16177 (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
16180 2005-06-21 Martin Baulig <martin@ximian.com>
16182 * class.c (mono_class_init): Don't initialize `class->fields' for
16183 generic instances since they're initialized again in
16184 compute_field_layout().
16185 (compute_field_layout): Set the field's `generic_info' here; fix
16188 2005-06-21 Martin Baulig <martin@ximian.com>
16190 * class-internals.h
16191 (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
16193 * metadata.c (mono_metadata_generic_method_equal): Also
16194 distinguish the `generic_class'; fixes #75334.
16196 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16200 * domain-internals.h:
16201 * reflection.c: 'domain_assemblies' field is now protected by its own
16202 lock. Don't call into managed code to run the AssemblyLoad event if we
16203 now there are no registered delegates for it.
16205 2005-06-20 Martin Baulig <martin@ximian.com>
16207 * class.c (mono_class_is_assignable_from): Use a custom version of
16208 mono_class_has_parent() to make things work for generic instances;
16211 2005-06-20 Martin Baulig <martin@ximian.com>
16213 * loader.c (method_from_methodspec): Apply a patch from
16214 Kamil Skalski <nazgul@nemerle.org> to fix #75296.
16216 2005-06-20 Martin Baulig <martin@ximian.com>
16218 * class.c (mono_class_init): Reverted Zoltan's last change; it
16221 2005-06-19 Zoltan Varga <vargaz@freemail.hu>
16223 * threads.c (wait_for_tids_or_state_change): Add missing locking.
16225 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16227 * socket-io.c: fix the index in the socket array for writable/error
16228 sockets. Fixes bug #75306.
16230 2005-06-17 Zoltan Varga <vargaz@freemail.hu>
16232 * class.c (mono_class_init): Allow interfaces to have static ctors.
16234 2005-06-17 Martin Baulig <martin@ximian.com>
16236 * loader.c (method_from_methodspec): Use `context->container' when
16237 parsing the `gmethod->inst'.
16239 2005-06-17 Martin Baulig <martin@ximian.com>
16241 * class.c (mono_type_get_name_recurse): Don't add the assembly
16242 name for type arguments.
16244 2005-06-15 Martin Baulig <martin@ximian.com>
16246 * reflection.c (mono_image_get_inflated_method_token): Encode
16247 correct klass; fixes #75260.
16249 2005-06-13 Michal Moskal <malekith@nemerle.org>
16251 * icall.c: Make GetCorrespondingMethod/Constructor take
16252 MonoReflectionMethod method not MonoMethod. Removed
16253 MonoType.GetCorrespondingField, and make
16254 MonoGenericType.GetCorrespondingField take name not
16257 2005-06-13 Michal Moskal <malekith@nemerle.org>
16259 * reflection.c (field_encode_signature, encode_locals):
16260 Make sizes of buffers for types larger (for big generic types).
16261 (create_generic_typespec,
16262 mono_reflection_sighelper_get_signature_local,
16263 mono_reflection_sighelper_get_signature_field):
16264 Add asserts for too small buffers.
16266 2005-06-15 Martin Baulig <martin@ximian.com>
16268 * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
16269 if our parent is not a dynamic type.
16271 2005-06-15 Martin Baulig <martin@ximian.com>
16273 * class-internals.h (MonoTypeNameFormat): New enum.
16276 (mono_class_get_name_full): Renamed to mono_type_get_name_full().
16277 (mono_type_get_full_name): Removed.
16278 (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
16279 argument instead of the boolean's.
16281 * icall.c (ves_icall_System_MonoType_getFullName):
16282 Added `gboolean assembly_qualified'.
16285 (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
16287 * reflection.c (mono_reflection_parse_type): Parse the new type
16290 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16292 * icall.c: no need to convert from utf16 to utf8 and then back again
16293 after the call to GetLogicalDrives.
16295 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16297 * icall.c: frombase64. Fix problems exposed by new tests.
16299 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16301 * icall.c: added internal calls for converting char [] and strings in
16302 base64 into byte [].
16304 2005-06-10 Martin Baulig <martin@ximian.com>
16306 * class.c (mono_class_create_generic_2): Read the nested classes
16307 from the metadata rather than from `gklass->nested_classes' since
16308 `gklass' might not be initialized yet.
16310 2005-06-09 Duncan Mak <duncan@novell.com>
16312 * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
16313 all public headers. Fixes #74919.
16315 2005-06-09 Lluis Sanchez Gual <lluis@novell.com>
16317 * domain.c: The key for proxy_vtable_hash is now a pointer
16318 array. Added new GHashFunc and GCompareFunc functions for this.
16320 * class.h: The list of interfaces in MonoRemoteClass is known in
16321 advance and can't grow (we create a new MonoRemoteClass if needed),
16322 so now the interface array can be allocated together with
16325 * object.c: Added a new method create_remote_class_key.
16326 Fixed mono_remote_class so it does not depend on
16327 mono_upgrade_remote_class.
16328 Removed extend_interface_array.
16329 Added new method clone_remote_class(), which makes a copy of a remote
16330 class and adds a new interface or class to it.
16331 mono_upgrade_remote_class() now creates a new remote class (or gets
16332 it from the cache) if an vtable upgrade is needed. In this way
16333 we make sure that other objects sharing the same remote class
16334 don't get the new vtable with unwanted interfaces.
16336 * object-internals.h:
16337 * object.h: Moved mono_upgrade_remote_class to object-internals.h.
16339 * marshal.c: Track changes in mono_upgrade_remote_class().
16341 2005-06-08 Kamil Skalski <nazgul@nemerle.org>
16342 * icall.c: Add runtime methods for obtaining members of inflated
16343 class, which were created from supplied non-inflated members. It
16344 is used in internal Get{Method,Constructor,Field} methods in
16347 2005-06-09 Martin Baulig <martin@ximian.com>
16350 (mono_reflection_bind_generic_method_parameters): Fix #75169.
16352 2005-06-08 Carlos Alberto Cortez <calberto.cortez@gmail.com>
16353 * reflection.c (mono_image_basic_init): Define
16354 Version in MonoDynamicAssembly.
16356 2005-06-08 Martin Baulig <martin@ximian.com>
16361 (mono_method_signature_full): New public method; takes a
16362 `MonoGenericContext *'.
16363 (find_method): Use mono_method_signature_full() and pass the
16364 klass'es context to it.
16366 * class.c (mono_class_is_inflated_method): Use
16367 mono_method_signature_full() and pass the context to it.
16369 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
16371 * object.c: add proper locking in mono_remote_class_vtable(),
16372 fixes possible memory corruption.
16374 2005-06-08 Michael Meeks <michael.meeks@novell.com>
16376 * marshal.c (mono_remoting_marshal_init): set
16377 initialized after initialization.
16379 2005-06-08 Atsushi Enomoto <atsushi@ximian.com>
16381 * locales.c : hush.
16383 2005-06-06 Michael Meeks <michael.meeks@novell.com>
16385 * object.c (extend_interface_array): fix really silly
16386 memory corrupting / comparison bug.
16388 2005-06-07 Carlos Alberto Cortez <calberto.cortez@gmail.com>
16390 * reflection.c: Functions added to support the creation
16391 of CustomAttributeData, which includes Attribute data
16392 used by ReflectionOnly methods.
16394 * reflection.h: mono_reflection_get_custom_attrs_data and
16395 mono_custom_attrs_data_construct added (functions exposed).
16397 * icall.c: Added mono_reflection_get_custom_attrs_data
16400 2005-06-07 Zoltan Varga <vargaz@freemail.hu>
16402 * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
16405 2005-06-06 Zoltan Varga <vargaz@freemail.hu>
16407 * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
16409 * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
16410 dynamic DllImportAttribute.
16412 * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of
16413 dynamic DllImportAttribute.
16415 * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
16418 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16420 * threads.c: avoid segfault when an unstarted thread is aborted.
16422 2005-06-05 Kornél Pál <kornelpal@hotmail.com>
16424 * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
16425 Returns the name and version of the runtime for reporting.
16427 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16429 * appdomain.c: bump corlib version.
16430 * object-internals.h: new field in MonoReflectionAssembly.
16432 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16434 * object-internals.h: Carlos forgot to add this field.
16436 2005-06-03 Carlos Alberto Cortez <calberto.cortez@gmail.com>
16438 * icall.c: Added create_version to create instances
16439 of Version of MonoReflectionAssemblyName. This change helps
16440 the AssemblyName tests to keep running fine.
16442 2005-06-03 Lluis Sanchez Gual <lluis@novell.com>
16444 * object.c (mono_method_return_message_restore): A somehow less
16445 intrusive fix for #75138.
16447 2005-06-03 Raja R Harinath <rharinath@novell.com>
16449 * object.c (mono_method_return_message_restore): Fix computation
16450 of expected number of out args.
16452 2005-06-02 Zoltan Varga <vargaz@freemail.hu>
16454 * reflection.c (mono_image_get_method_info): Fix the case when the
16457 2005-06-02 Lluis Sanchez Gual <lluis@novell.com>
16459 * object.c: Added missing null check in
16460 mono_method_return_message_restore.
16462 2005-06-02 Zoltan Varga <vargaz@freemail.hu>
16464 * reflection.c (mono_image_get_method_info): Handle the case when
16467 2005-06-02 Lluis Sanchez Gual <lluis@novell.com>
16469 * object.c: When creating the vtable for a proxy, take into account
16470 all inherited interfaces, not only the ones registered in
16471 iclass->interfaces. This fixs bug #74996.
16472 Also, in mono_method_return_message_restore, verify that the array
16473 of out args has the expected lengh.
16475 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16477 * socket-io.c: update the timeout in Poll when the call is interrupte.
16479 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16481 * socket-io.c: support abort/suspend in Select_internal after last
16484 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16486 * threadpool.c: remove warning.
16488 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16491 * socket-io.[ch]: Select_internal uses poll() now when available, thus
16492 removing the 1024 limit from select(). Runtime part of the fix for
16495 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16497 * socket-io.c: when resolving the addresses for the same
16498 host returned by gethostname(), get the local IPs from the interface
16499 list. Loopback addresses are discarded if the are interfaces up with
16500 non-loopback ones. Fixes bug #63265.
16502 2005-05-27 Vladimir Vukicevic <vladimir@pobox.com>
16504 * appdomain.c, verify.c, object-internals.h, reflection.c:
16505 bumped corlib number to 36, and added new extra_flags field
16506 to ReflectionMethodBuilder and friends. Fixes #75060.
16508 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
16510 * gc.c: register a new weak link only if the object is non-null
16513 2005-05-26 Atsushi Enomoto <atsushi@ximian.com>
16515 * culture-info.h : short time pattern too.
16517 2005-05-26 Atsushi Enomoto <atsushi@ximian.com>
16519 * culture-info.h : expand long time pattern string length.
16521 2005-05-25 Atsushi Enomoto <atsushi@ximian.com>
16523 * culture-info-table.h : update (more French date format; #72788).
16525 2005-05-25 Zoltan Varga <vargaz@freemail.hu>
16527 * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
16528 the method is static. Fixes #75029.
16530 2005-05-25 Lluis Sanchez Gual <lluis@novell.com>
16532 * reflection.c: Update the table_idx field of method builders after
16533 saving the module, since it can change. This is a workaround for
16536 2005-05-25 Atsushi Enomoto <atsushi@ximian.com>
16538 * culture-info-table.h : update (additional French date format).
16540 2005-05-20 Zoltan Varga <vargaz@freemail.hu>
16542 * icall.c (ves_icall_type_Equals): Revert last change.
16544 * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
16546 * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
16548 2005-05-20 Sebastien Pouliot <sebastien@ximian.com>
16550 * class-internals.h: Added executioncontext_class field to
16551 MonoDefaults structure.
16552 * domain.c: Cache System.Threading.ExecutionContext class in
16554 * object.c: Capture the ExecutionContext for asynchroneous calls in
16555 mono_async_result_new.
16556 * object-internals.h: Added execution_context and original_context
16557 fields to MonoAsyncResult. Added execution_context to MonoThread.
16558 * security-manager.c|.h: Added mono_get_context_capture_method to
16559 return the capture method (if required by the security manager or by
16560 the framework version used).
16561 * threadpool.c: Apply capture (if present) ExecutionContext in
16562 mono_async_invoke and revert to original context after it completes.
16564 2005-05-19 Atsushi Enomoto <atsushi@ximian.com>
16566 * culture-info-table.h : updated (real hacky solution for zh-CHT).
16568 2005-05-18 Atsushi Enomoto <atsushi@ximian.com>
16570 * culture-info-table.h : zh-CHT related workaround.
16572 2005-05-12 Zoltan Varga <vargaz@freemail.hu>
16574 * marshal.c (emit_marshal_custom): Add some error checking and call the
16575 methods in the ICustomMarshaler interface. Fixes #74875.
16577 * marshal.c (emit_marshal_array): Implement [Out] marshalling in
16578 native->managed wrappers.
16580 2005-05-12 Martin Baulig <martin@ximian.com>
16582 * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
16583 here and use the loader lock.
16585 * mono-debug.c: Properly lock when the debugger is not attached.
16586 (mono_debug_init): Release the initial lock if we're not running
16589 2005-05-12 Zoltan Varga <vargaz@freemail.hu>
16591 * marshal.c (emit_marshal_custom): Pass through NULL values without
16592 calling the custom marshalling routines.
16594 * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
16595 conversion in structures. Fixes #74882.
16597 2005-05-12 Atsushi Enomoto <atsushi@ximian.com>
16599 * culture-info-table.h : zh-* cultures were missing.
16601 2005-05-12 Lluis Sanchez Gual <lluis@novell.com>
16603 * threads.c: Added a new event background_change_event which is signaled
16604 when a thread changes its background mode.
16605 Moved here several checks previously done in managed code. The checks
16606 require the thread lock, and using the thread lock in managed code
16607 can result in deadlocks.
16608 Merged Start_internal and Thread_internal into a single method. Now
16609 Thread_internal does all work of creating and starting a thread.
16610 Added icalls for setting and getting the state of the object. Moved from
16611 managed code to avoid locking there.
16612 Added wait_for_tids_or_state_change() which is called instad of
16613 wait_for_tids when waiting for non-backround threads to end. This method
16614 will return if one of the threads ends or the background_change_event
16616 * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
16617 the background mode. This method signals the background_change_event
16620 * threads-types.h: Added icalls for ClrState, SetState and GetState, and
16621 removed Start_internal.
16623 2005-05-11 Martin Baulig <martin@ximian.com>
16625 * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
16626 to order of some fields to get proper alignment on 64-bit machines.
16628 2005-05-11 Martin Baulig <martin@ximian.com>
16630 * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
16631 changes as they're broken and completely fuck up the debugger.
16633 * mono-debug.c (mono_debug_add_method): Properly unlock on error.
16635 2005-05-10 Martin Baulig <martin@ximian.com>
16637 * reflection.c (mono_reflection_generic_class_initialize): Don't
16638 call mono_class_setup_parent() here.
16640 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16642 * metadata/socket-io.c: on windows, getsockopt/setsockopt for
16643 send/receive timeout use an integer in milliseconds. We were using a
16646 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16649 (internal_get_cultures): reserve the first slot of the array for the
16650 InvariantCulture, which will be filled in managed code.
16652 2005-05-06 Zoltan Varga <vargaz@freemail.hu>
16654 * reflection.c (mono_image_fill_module_table): Initialize the
16655 GENERATION field as well.
16657 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16659 * monitor.c: ignore calls to Monitor.Exit even if no one ever called
16660 Monitor.Enter on the object.
16662 2005-05-05 Lluis Sanchez Gual <lluis@novell.com>
16664 * threads.c: Enable the wait for running threads when exiting.
16665 * icall.c: Suspend all threads before exiting.
16667 2005-05-05 Zoltan Varga <vargaz@freemail.hu>
16669 * assembly.c (mono_assembly_load_reference): Fix warning.
16671 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16673 * threadpool.c: changed the default number of threads per cpu. From now
16674 on, the default will be 20 + (5 * number of cpus) instead of 50.
16676 2005-05-04 Zoltan Varga <vargaz@freemail.hu>
16678 * loader.c (mono_method_get_signature_full): Add locking here.
16680 2005-05-03 Lluis Sanchez Gual <lluis@novell.com>
16682 * appdomain.c: Moved methods for parsing and freeing assembly
16683 names to assembly.c.
16684 * assembly.c, domain-internals.h: Created public methods for parsing
16685 assembly names. Fixed mono_assembly_load_with_partial_name:
16686 it now finds the best match, taking into account the version,
16687 token and culture specified in the partial name. Also return
16688 the latest version if no version information is specified.
16690 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
16692 * threadpool.c: replace check for SocketAsyncCall class.
16694 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16696 * threadpool-internals.h:
16697 * Makefile.am: added threadpool-internals.h
16699 * threadpool.c: call mono_unhandled_exception on exceptions not handled
16700 that happen in threadpool threads (tested on MS).
16701 (mono_thread_pool_remove_socket): new function that dispatch any pending
16702 AIO call on a socket that is closing. By now only epoll really needs it,
16703 as select/poll wake up when the socket closes.
16706 * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
16708 2005-05-01 Zoltan Varga <vargaz@freemail.hu>
16710 * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
16712 2005-05-01 Lluis Sanchez Gual <lluis@novell.com>
16714 * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
16716 2005-04-30 Lluis Sanchez Gual <lluis@novell.com>
16718 * threads.c: In mono_thread_suspend_all_other_threads, if a thread
16719 has an abort request, convert it into a suspend request.
16721 2005-04-30 Ben Maurer <bmaurer@ximian.com>
16723 * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
16724 warning for the usage of `UnmanagedFunctionPointerAttribute' which
16725 is not supported yet.
16727 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16729 * image.c: register assemblies loaded from data (bundles) in the loaded
16730 assemblies hash. Fixes bug #74772.
16732 2005-04-29 Martin Baulig <martin@ximian.com>
16734 * class.c (mono_type_get_name_recurse): Update to the new naming
16735 schema from the latest .NET 2.x beta2.
16736 (mono_class_setup_vtable_general): If we're a generic instance,
16737 copy the vtable from our generic type definition and inflate all
16740 * loader.c (find_method): Update to the new naming schema from the
16741 latest .NET 2.x beta2.
16743 2005-04-29 Raja R Harinath <harinath@gmail.com>
16745 * class.c (mono_class_init): Add a mono_loader_unlock to the
16748 2005-04-28 Zoltan Varga <vargaz@freemail.hu>
16750 * icall.c (ves_icall_System_Environment_Exit): Remove the
16751 suspend_all_other_threads () call for the time being, since it can hang.
16753 * threads.c (mono_thread_manage): Similarly, disable the waiting for
16754 the background threads to exit, since it can also hang.
16756 * class.c (mono_class_init): Applied patch from Ankit Jain
16757 (radical@gmail.com). Avoid pending init errors when a field refers
16758 to a nested class using a typeref. Fixes #74734.
16760 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
16761 this for dynamic modules.
16763 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16765 * threads.c: don't wait for threads that are in the process of aborting
16766 or aborted. Set the 'shutting_down' flag before cleaning the threadpool
16767 and waiting for background threads to finish. This makes xsp and
16768 mod-mono-server exit without random length delays and/or hangs.
16770 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16772 * icall.c: remove duplicate assignment from GetReferencedAssemblies.
16774 2005-04-25 Zoltan Varga <vargaz@freemail.hu>
16776 * class.c (mono_class_is_assignable_from): Call is_assignable_to for
16777 dynamic types to prevent infinite loops. Fixes #74727.
16779 * reflection.c (mono_reflection_call_is_assignable_from): Rename to
16780 ..._is_assignable_to.
16782 2005-04-25 Sebastien Pouliot <sebastien@ximian.com>
16784 * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
16786 2005-04-25 Martin Baulig <martin@ximian.com>
16788 Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
16791 (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
16793 * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
16795 * reflection.c (build_compressed_metadata): Set metadata header
16798 2005-04-23 Zoltan Varga <vargaz@freemail.hu>
16800 * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
16801 number into an integral and a decimal part. Fixes #70473.
16803 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
16805 2005-04-23 Atsushi Enomoto <atsushi@ximian.com>
16807 * culture-info-table.h : reflected the latest locale-builder output.
16809 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16811 * threadpool.c: check for SuspendRequested too when deciding if
16812 mono_thread_interruption_checkpoint should be called.
16814 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16816 * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
16817 * threads.c: remove interruption_mutex and use Interlocked instead. When
16818 suspending all the threads, wait for all the suspended events at once.
16819 If we're shutting down and get an APC that is going to be queued,
16820 call mono_thread_execute_interruption immediately, as the thread might
16821 be sleeping on a pthread condition or mutex.
16823 * icall.c: call mono_runtime_set_shutting_down before suspending the
16826 Fixes bug #74693. And now xsp is happier when exiting.
16828 2005-04-22 Zoltan Varga <vargaz@freemail.hu>
16830 * loader.c (mono_stack_walk): Fix #74690.
16832 2005-04-22 Martin Baulig <martin@ximian.com>
16834 * mono-debug.h (MonoDebugMethodJitInfo): Added
16835 `MonoDebugMethodJitInfo *jit'.
16837 * mono-debug.c (mono_debug_read_method): Cache the
16838 MonoDebugMethodJitInfo in `address->jit'.
16839 (mono_debug_free_method_jit_info): New public method.
16841 2005-04-22 Martin Baulig <martin@ximian.com>
16843 * class.c (mono_class_is_assignable_from): Disallow
16844 type parameter -> interface.
16846 2005-04-21 Dick Porter <dick@ximian.com>
16848 * threads.c (mono_thread_create): Turn an assertion into an error.
16850 2005-04-20 Zoltan Varga <vargaz@freemail.hu>
16852 * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
16854 * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c:
16855 Fix some gcc 4.0 warnings.
16857 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
16859 * file-io.c: fix alt dir separator char on unix systems
16860 and cleanup (fixes bug #71214).
16862 2005-04-19 Lluis Sanchez Gual <lluis@novell.com>
16864 * marshal.c: Use CALLVIRT instead of CALL when dispatching
16865 a call to a remote domain, since the method may be an
16866 interface method in the client domain. This fixes bug #74192.
16868 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16870 * threadpool.c: recv/send are now performed before going back to managed
16871 code to save one transition.
16873 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16875 * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
16877 * metadata/threadpool.c: removed hack to workaround the bug above.
16881 2005-04-16 Zoltan Varga <vargaz@freemail.hu>
16883 * reflection.c reflection.h: Fix handling of parameter defaults in
16884 dynamic methods. Also fixes handling of parameter attributes.
16887 * mono-debug.c (mono_debug_close_image): Fix warning.
16889 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16891 * socket-io.h: replaced old unused field with new 'blocking'.
16892 * threadpool.c: restore socket blocking state on windows(tm).
16894 2005-04-14 Sebastien Pouliot <sebastien@ximian.com>
16896 * icall.c: don't return the codebase in the AssemblyName[] returned by
16897 ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
16898 * object-internals.h: Removed FIXME (fields were presents) and fixed
16899 versioncompat declaration.
16901 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16903 * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
16904 not closed, so don't cleanup when it happens.
16906 2005-04-13 Chris Toshok <toshok@ximian.com>
16908 * mono-debug-debugger.h: change prototype for
16909 mono_debugger_lookup_type.
16911 * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
16912 this function, although it should probably be named
16913 mono_debugger_init_type.
16915 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16917 * threadpool.c: fix non-AIO case.
16919 2005-04-13 Zoltan Varga <vargaz@freemail.hu>
16921 * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
16922 the built-in profiler to measure just JIT compilation times.
16924 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16926 * threadpool.c: the epollfd might be closed by another thread at
16927 any time, so ignore EBADF at treat it as a "we're closing" sign.
16929 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16931 * threadpool.c: release the semaphores with a count equals to the number
16932 of working threads in both IO and regular pools. Fixed typo that messed
16933 up the count of IO pool threads. Don't initialize the pipe handles if
16936 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16938 * threadpool.c: some systems don't like a NULL when deleting the socket
16941 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16943 * threadpool.c: fix semaphore allocation.
16945 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16947 * threadpool.c: added epoll() based implementation for asynchronous IO
16948 that is used instead of the default poll() when available.
16949 It can be disabled by setting MONO_DISABLE_AIO.
16951 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16953 * threadpool.c: windows needs 'closesocket' and instead of returning
16954 0 when the stream is closed while in select, it returns -1. Fixes bug
16957 2005-04-12 Zoltan Varga <vargaz@freemail.hu>
16959 * class.c (class_compute_field_layout): Fix the regression caused by
16962 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16964 * threadpool.c: separate pool for socket async. IO.
16965 * threadpool.h: mono_max_worker_threads is not a global any more.
16967 2005-04-10 Zoltan Varga <vargaz@freemail.hu>
16969 * class.c (class_compute_field_layout): Fix #74549.
16971 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16973 * threadpool.c: select() on windows doesn't allow pipe handles, soooo
16974 use 2 connected sockets instead.
16976 2005-04-08 Miguel de Icaza <miguel@novell.com>
16978 * mono-config.c: Add new entry point for mkbundle
16979 mono_config_parse_memory.
16981 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16983 * threadpool.c: removed another unused function.
16985 2005-04-08 Ankit Jain <radical@corewars.org>
16987 * reflection.c (get_default_param_value_blobs): Add 'types'
16988 parameter to get the types encoded in the constant table.
16989 (mono_param_get_objects): Use the type from the constant table,
16990 not the type of the parameter, when creating default values.
16991 Handle null default values correctly.
16993 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17000 * socket-io.c: removed dead code for async IO.
17002 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17004 * socket-io.h: 2 more fields in MonoSocketAsyncResult.
17006 * threadpool.c: intercept socket async. calls and pass them to a thread
17007 that is polling and dispatching the job items to the threadpool as
17008 socket become ready. Fixes bugs #71217, #71933.
17010 * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
17011 between char and short/ushort arrays.
17013 * socket-io.c: remove dead code.
17015 2005-04-06 Atsushi Enomoto <atsushi@ximian.com>
17018 icall.c : removed InternalToUpper_Comp() and
17019 InternalToLower_Comp().
17021 2005-04-06 Atsushi Enomoto <atsushi@ximian.com>
17023 * char-conversions.h : The tables were incorrectly generated. Should
17024 be generated against invariant culture.
17026 2005-04-04 Zoltan Varga <vargaz@freemail.hu>
17028 * object.c (mono_runtime_invoke_array): Fix return value when
17029 passing pre-created valuetype objects to ctors.
17031 * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer
17032 (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
17035 2005-03-30 Sebastien Pouliot <sebastien@ximian.com>
17037 * domain.c: removed g_assert for runtimesecurityframe_class. This is
17038 only used with --security and hides the wrong corlib version error.
17040 2005-03-30 Joshua Tauberer <tauberer@for.net>
17042 * class.c: Changed mono_class_name_from_token so that types
17043 outside of a namespace don't have an initial period. Improved
17044 the g_warning message used in _mono_class_get when loading
17046 * assembly.c: In mono_assembly_load_reference, when an assembly
17047 can't be found, "No such file or directory" is misleading and
17048 unhelpful because a few paths were checked for the presence of
17049 the assembly. When that happens (ENOENT), display a nicer
17050 message indicating the directories that were searched. In all
17051 cases, the warning is made easier to read for non-hackers.
17053 2005-03-29 Sebastien Pouliot <sebastien@ximian.com>
17055 * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
17057 * appdomain.h|domain.c: Removed inline from functions.
17058 * appdomain.c: Reduced warnings when compiling on windows.
17059 * icall.c: Fixed output_debug declaration to gunichar2*.
17060 * mono-config.c: Reduced warnings when compiling on windows.
17061 * rand.c: Added missing "windows.h". Added missing return value.
17062 * rawbuffer.c: Added missing winsock2.h for windows.
17063 * sysmath.h: Added mono-compiler.h header to allow/ease
17064 compilation with non-GCC compilers.
17065 * threads.c: Fixed declarations to compile with VS.NET C compiler.
17066 Removed cast warnings.
17068 Adapted from the work of J Lothian (for VC6).
17070 2005-03-29 Zoltan Varga <vargaz@freemail.hu>
17072 * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
17075 2005-03-27 Zoltan Varga <vargaz@freemail.hu>
17077 * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
17080 2005-03-27 Raja R Harinath <harinath@gmail.com>
17082 * Makefile.am (assembliesdir): Fix. If it is arch-dependent it
17083 has to be in $(exec_prefix). $(prefix) is for arch-independent
17084 stuff, and it would probably use $(prefix)/share rather than
17087 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17089 * console-io.c: added 2 includes that might be missing.
17091 2005-03-24 Zoltan Varga <vargaz@freemail.hu>
17093 * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
17096 * reflection.c (create_custom_attr): Allocate the params array using
17097 alloca so it gets GC tracking.
17099 2005-03-23 Chris Toshok <toshok@ximian.com>
17101 * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
17104 2005-03-24 Raja R Harinath <rharinath@novell.com>
17106 * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
17107 changes to pick up any changes in prefix, etc.
17109 2005-03-23 Zoltan Varga <vargaz@freemail.hu>
17111 * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
17113 * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
17114 * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
17116 2005-03-23 Zoltan Varga <vargaz@freemail.hu>
17118 * class-internals.h object-internals.h class.c reflection.c: Extend the
17119 mono_lookup_dynamic_token () function to return the class of the
17122 * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
17123 well. Fixes #73848.
17125 2005-03-23 Sebastien Pouliot <sebastien@ximian.com>
17127 * security-manager.c: Skip inheritance checks for intra-corlib
17128 class inheritance and method overrides. This skips a lot of checks
17129 and (anyway) permissions cannot work until corlib is loaded.
17131 2005-03-23 Martin Baulig <martin@ximian.com>
17133 * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
17134 MONO_TYPE_GENERICINST.
17136 2005-03-23 Martin Baulig <martin@ximian.com>
17138 * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
17140 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
17142 * class.c: added locking comments to some functions.
17143 Cache the interface offsets arrays (saves about 20 KB
17144 of runtime memory in a typical app).
17145 Reduce the time overhead in mono_class_setup_supertypes ().
17147 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
17149 * icall.c: speedup and fix leaks in GetMethodsByName and
17150 GetPropertiesByName.
17152 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
17154 * reflection.c: some locking fixes.
17156 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
17158 * metadata.c: added missing break in case statement.
17160 2005-03-22 Zoltan Varga <vargaz@freemail.hu>
17162 * marshal.c (mono_marshal_get_runtime_invoke): Add support for
17163 typedbyref return values. Fixes #73941.
17165 2005-03-17 Sebastien Pouliot <sebastien@ximian.com>
17167 * security-manager.c|h: Added demandunmanaged method and
17168 suppressunmanagedcodesecurity class to MonoSecurityManager.
17169 Renamed aptc class to allowpartiallytrustedcallers.
17171 2005-03-17 Martin Baulig <martin@ximian.com>
17173 * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
17175 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17177 * file-io.c: disabled file async. IO using aio_*. It uses the
17178 threadpool now. Workaround for bug #73718.
17180 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
17182 * assembly.h, mono-config.c: added code to deal with bundled configs
17183 for bundled assemblies.
17185 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
17187 * *.c, private.h: cleanup, removing old private.h header file.
17189 2005-03-16 Zoltan Varga <vargaz@freemail.hu>
17191 * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
17192 and throw_on_unmappable_char attributes.
17194 2005-03-13 Sebastien Pouliot <sebastien@ximian.com>
17196 * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
17197 _ProcessName_internal.
17199 2005-03-13 Zoltan Varga <vargaz@freemail.hu>
17201 * object.c (mono_array_new_full): Fix aligning of array size. Fixes
17204 * icall.c threads.c threads-types.h: Remove slothash icalls as they
17205 are no longer used.
17207 2005-03-11 Zoltan Varga <vargaz@freemail.hu>
17209 * object.c (compute_class_bitmap): Add support for generics. Fixes
17212 2005-03-10 Zoltan Varga <vargaz@freemail.hu>
17214 * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
17216 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17218 * filewatcher.c: commented out the code for windows watcher, as we don't
17219 use it (we use the managed implementation instead).
17221 2005-03-10 Zoltan Varga <vargaz@freemail.hu>
17223 * object-internals.h (MonoThread): Remove 'unused1' field.
17225 * appdomain.c: Bump corlib version.
17227 * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
17229 * reflection.c (mono_reflection_create_runtime_class): Remove the
17230 AssemblyBuilder.Save optimization since it causes too many problems.
17232 2005-03-10 Sebastien Pouliot <sebastien@ximian.com>
17234 * exception.c|h: Added mono_get_exception_reflection_type_load to
17235 create a ReflectionTypeLoadException object.
17236 * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
17237 to return NULL is a InheritanceDemand fails during reflection. Updated
17238 ves_icall_System_Reflection_Assembly_GetTypes to throw a
17239 ReflectionTypeLoadException if an InheritanceDemand fails during
17240 reflection. Added icall mapping for GetLinkDemandSecurity.
17241 * security-manager.c|h: Added ves_icall_System_Security_
17242 SecurityManager_GetLinkDemandSecurity internal call to return the
17243 class and methods permissions set for a LinkDemand. Removed unused
17244 fields in MonoSecurityManager.
17246 2005-03-10 Martin Baulig <martin@ximian.com>
17248 * class.c (mono_bounded_array_class_get): Initialize `eclass' if
17249 it's a generic instance.
17251 2005-03-09 Zoltan Varga <vargaz@freemail.hu>
17253 * reflection.c (mono_get_object_from_blob): Applied patch from
17254 Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
17256 * class.c (mono_class_is_assignable_from): Another try at fixing
17257 #73469 without breaking anything.
17259 2005-03-08 Zoltan Varga <vargaz@freemail.hu>
17261 * class.c: (mono_class_is_assignable_from): Revert the last changes
17262 since they don't work with generics.
17264 * class.c (mono_class_is_assignable_from): Fix build bustage.
17266 * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
17267 the managed IsAssignableFrom method. Fixes #73469.
17269 * reflection.c (mono_reflection_call_is_assignable_from): New helper
17272 2005-03-04 Zoltan Varga <vargaz@freemail.hu>
17274 * object.c (mono_load_remote_field_new): Fix returning uninitialized
17275 memory when the remoting callback does not sets the out arguments.
17278 * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
17281 * string-icalls.c: Return String.Empty where needed. Fixes #73310.
17283 * object-internals.h (MonoStackFrame): Sync with managed object layout.
17285 * appdomain.c: Bump corlib version.
17287 2005-03-03 Zoltan Varga <vargaz@freemail.hu>
17289 * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
17292 * threads.c (mono_thread_attach): Detect threads which are not started
17293 by the GC pthread wrappers.
17295 2005-03-03 Sebastien Pouliot <sebastien@ximian.com>
17297 * icall.c: Added new icall for RNG.
17298 * rand.c|h: Added new icall to open the RNG. This allows to share a
17299 single handle on Linux to access /dev/urandom and fix #73183.
17301 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
17303 * object.c: setting the new vtable in a transparent proxy object must
17304 not change the GC descriptor.
17306 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
17308 * object.c: fixed compilation without GCJ support.
17309 * reflection.c: for runtime-created types ensure klass->has_references
17310 is correct (bug #73215).
17312 2005-03-02 Martin Baulig <martin@ximian.com>
17314 * class.c (mono_class_is_assignable_from): Make this work if
17315 `oklass' is a generic instance; fixes #72831.
17317 2005-03-01 Zoltan Varga <vargaz@freemail.hu>
17319 * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
17322 * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
17324 * marshal.c: Reorganize native->managed marshalling code to also use
17325 the emit_marshal_... functions.
17327 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
17329 * object.c: typed allocs have issues with bitmap sizes > 30,
17330 so check for max_set >= 30.
17332 2005-03-01 Zoltan Varga <vargaz@freemail.hu>
17334 * marshal.c (emit_marshal_array): Implement marshalling of arrays to
17335 managed code. Fixes #73012.
17337 * metadata.h (MonoMarshalSpec): Add elem_mult field.
17339 * metadata.c reflection.c: Load/Emit elem_mult as well.
17341 * metadata.h (MonoMarshalSpec): Add comment.
17343 * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
17345 * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
17346 num_elem to -1 if not given.
17348 * object-internals.h (MonoReflectionMarshal): Add has_size field.
17350 * reflection.c (encode_marshal_blob): Differentiate between 0 and not
17353 2005-03-01 Marek Safar <marek.safar@seznam.cz>
17355 * null-gc.c (mono_gc_free_fixed): Was not compilable.
17357 2005-02-28 Zoltan Varga <vargaz@freemail.hu>
17359 * reflection.c (encode_marshal_blob): Encode param_num field as well.
17361 * object-internals.h (MonoReflectionMarshal): Add param_num field.
17363 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
17365 * object.c: generalized the reference bitmap creation
17366 and added hooks for the new GC.
17367 * class-internals.c: removed the gc_bitmap field from MonoClass.
17369 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
17371 * domain.c: help the compiler to produce better code
17372 in mono_jit_info_table_find ().
17374 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
17376 * object.c: make all allocations look typed.
17378 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
17380 * socket-io.c: load Mono.Posix if it's not loaded already
17383 2005-02-24 Martin Baulig <martin@ximian.com>
17385 * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
17386 * reflection.c (dup_type): Likewise.
17388 2005-02-24 Zoltan Varga <vargaz@freemail.hu>
17390 * gc.c (run_finalize): Set the domain for finalizing delegates as well.
17391 Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
17393 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
17395 * domain.c, threads.c, object-internals.h: make the critical thread
17396 local vars use the fast access mode (even when we're compiled in
17397 a lib). Provide accessors to be used by the jit during codegen.
17399 2005-02-24 Carlos Alberto Cortez <calberto.cortez@gmail.com>
17401 * appdomain.c: Changed hook functios behavior to include
17402 support for the reflection only assemblies. Some icalls were changed
17403 to support the mentioned assemblies too. Signatures of static methods
17404 try_assembly_resolve and real_load now have an additional parameter:
17407 * assembly.c: General changes to mono_assembly_ methods to support
17408 reflection only api. Functions mono_assembly_open, mono_assembly_load,
17409 mono_assembly_load_from and mono_assembly_loaded have got a '_full'
17410 suffix, to support an additional gbool parameter to specify whether
17411 the assembli is reflection only or not. Created some new hook functions
17412 to add support for reflection only assemblies. Signatures of static
17413 methods load_in_path, search_loaded, and mono_assembly_load_from_gac
17414 have now an additional parameter: refonly.
17416 * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
17417 indicating whether the assembly is reflection only or not.
17419 * exception.c: Add mono_get_exception_invalid_operation.
17421 * icall.c: Throw an InvalidOperationException when trying to invoke
17422 a property/method/event, or trying to set/get the value of a field.
17423 Also add an icall to retrieve the ref_only flag to the
17424 MonoReflectionAssembly.
17426 2005-02-23 Chris Toshok <toshok@ximian.com>
17428 Part of fix for #72827.
17429 * mono-debug.c (mono_debug_add_method): add lexical block data to
17430 the info we write. Kind of a hack at the moment - we copy the
17431 lexical block info from the MonoDebugMethodInfo to the
17432 MonoDebugMethodJitInfo here, before writing it.
17433 (mono_debug_read_method): read the lexical block info.
17435 * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
17437 * debug-mono-symfile.h: add lexical block support.
17439 * debug-mono-symfile.c (mono_debug_find_method): add lexical block
17442 2005-02-23 Zoltan Varga <vargaz@freemail.hu>
17444 * loader.c (mono_lookup_pinvoke_call): Fix warning.
17446 * object.c (mono_runtime_free_method): Call mono_free_method () and
17447 put the TODOs there.
17449 * loader.c (mono_free_method): Free up most memory allocated for
17452 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
17454 * reflection.c: properly flag a Type argument to a
17455 named custom attr value (bug #72248).
17457 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
17459 * reflection.c: reduce code duplication in named custom
17460 attribute encoding.
17462 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
17464 * reflection.c: properly encode custom attrs of type object
17467 2005-02-23 Zoltan Varga <vargaz@freemail.hu>
17469 * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
17471 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
17473 * socket-io.c: load System.dll if it's not loaded already
17474 (bug #72850 and #70477).
17476 2005-02-21 Martin Baulig <martin@ximian.com>
17478 * marshal.c (mono_marshal_get_runtime_invoke): Add support for
17481 2005-02-21 Martin Baulig <martin@ximian.com>
17483 * reflection.c (mono_image_build_metadata): We also need to
17484 "fixup" the MethodImpl table after we computed the final method
17485 indices. Call fixup_methodimpl() to do that.
17486 (fixup_methodimpl): New private method.
17488 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
17490 * assembly.c: special case mscorlib.dll (bug#72536),
17491 patch from Carlos Alberto Cortez.
17493 2005-02-20 Zoltan Varga <vargaz@freemail.hu>
17495 * threads-types.h threads.c: Fix build bustage.
17497 * threads.c: Use a union for long<->double conversions.
17499 * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
17500 functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
17502 * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock
17503 containing the checkpoint call with NOT_TAKEN.
17505 * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt
17506 checkpoint before pushing the arguments, so they won't have to be
17509 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
17511 * domain.c, assembly.c, domain-internals.h: make some data
17512 const and relocation-free.
17514 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
17516 * object.c, appdomain.c, class-internals.h: introduce the
17517 MonoClassRuntimeInfo structure to hold the info needed to
17518 use a class at runtime. Made mono_class_vtable() lock-free
17519 for all the appdomains.
17521 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
17523 * metadata-internals.h, image.c: introduce a per-image mempool to
17524 be used for memory that has the same lifetime as the image.
17526 2005-02-18 Lluis Sanchez Gual <lluis@novell.com>
17528 * domain.c: In mono_init_internal(), instead of selecting the first
17529 runtime version supported by an executable, get a list of all
17530 supported versions and select the one for which an mscorlib exists
17531 (since even if the runtime supports a given version, it doesn't mean
17532 that the framework for that version is installed).
17533 Modified get_runtimes_from_exe to support this behavior.
17534 In supported_runtimes, added information about additional system
17537 * assembly.c: Added support for more than one system assembly version
17538 per runtime version. Updated the assembly list.
17539 In mono_assembly_remap_version, removed the initial version check,
17540 since we don't know to which version we need to compare until we
17541 get the version set on which the assembly is based.
17542 Moved the code for loading corlib into the new method
17543 mono_assembly_load_corlib(), so it can be used by the initialization
17546 * domain-internals.h: Updated data structures and added declaration
17547 for mono_assembly_load_corlib.
17549 2005-02-17 Zoltan Varga <vargaz@freemail.hu>
17551 * reflection.c (resolve_object): Fix the creation of the signature in
17552 the SignatureHelper case.
17554 * assembly.c (mono_assembly_remap_version): Fix binary search.
17556 2005-02-17 Sebastien Pouliot <sebastien@ximian.com>
17558 * class.c: Added inheritance check when a method is overloaded (from a
17559 virtual method or when implementing an interface) and when a class is
17560 inherited. Added functions to set a failure for a class and to
17561 retreive the exception from a failure.
17562 * class-internals.h: Added fields to MonoClass to keep the exception
17563 information status for inheritance (or other exceptions) to be thrown
17564 later (i.e. not at load time).
17565 * object.c: Throw the inheritance SecurityException when a type is to
17566 be created with either class or method inheritance violations.
17567 * reflection.c|h: Fix when getting declsec from a class. Removed
17568 unrequired code for class. Improved sanity in parameter naming.
17569 * security-manager.c|h: Added functions to check for class and method
17572 2005-02-17 Zoltan Varga <vargaz@freemail.hu>
17574 * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
17575 and has_finalize in dynamic types as well.
17577 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
17579 * culture-info-table.h : fixed currency format for en-GB (and so on).
17581 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
17583 * gc.c: ensure the GC handles never have 0 as a value.
17585 2005-02-16 Zoltan Varga <vargaz@freemail.hu>
17587 * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
17588 a pointer to a struct to unmanaged code. Fixes #72625.
17590 2005-02-16 Martin Baulig <martin@ximian.com>
17592 * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
17594 2005-02-16 Zoltan Varga <vargaz@freemail.hu>
17596 * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
17598 2005-02-15 Zoltan Varga <vargaz@freemail.hu>
17600 * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
17602 * marshal.c (mono_ftnptr_to_delegate): If the delegate has the
17603 UnmanagedFunctionPointerAttribute, use it for determining calling convention
17606 * reflection.c (mono_custom_attrs_get_attr): New helper function.
17608 * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
17610 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
17612 * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
17613 changes to make the current context a field in MonoThread.
17615 2005-02-15 Zoltan Varga <vargaz@freemail.hu>
17617 * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
17620 * marshal.c (mono_marshal_emit_native_wrapper): New helper function
17621 extracted from mono_marshal_get_native_wrapper.
17623 * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
17624 to create wrappers around native functions.
17626 * marshal.c (mono_ftnptr_to_delegate): Add support for creating
17627 delegates for arbitrary function pointers. Fixes #71472.
17629 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
17631 * threads.c: cleaned up the code a little.
17633 2005-02-15 Martin Baulig <martin@ximian.com>
17635 * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
17638 * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
17639 allocate larger chunks if needed.
17641 2005-02-14 Zoltan Varga <vargaz@freemail.hu>
17643 * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
17646 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
17648 * domain.c: keep the domains in an array and ensure the domain ids
17649 are kept small, so they can be used as indexes to domain-specific data
17650 with a small memory overhead.
17652 2005-02-14 Zoltan Varga <vargaz@freemail.hu>
17654 * icall.c: Handle byref types in Type icalls. Fixes #72544.
17656 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
17658 * Makefile.am: remove libmetadata: we build just libmonoruntime now.
17660 2005-02-13 Zoltan Varga <vargaz@freemail.hu>
17662 * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
17664 * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
17667 * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
17669 2005-02-12 Ben Maurer <bmaurer@ximian.com>
17671 * domain-internals.h: add the hashtable here.
17673 * class-internals.h: Remove `info' from MonoMethod
17675 * domain.c: Add a new hashtable, jit_trampoline_hash
17677 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
17679 * object.c: don't set the value of static fields
17682 2005-02-11 Martin Baulig <martin@ximian.com>
17684 * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
17685 (mono_debug_add_method): Silently ignore the method if it's too big.
17686 (mono_debug_add_type): Likewise.
17688 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
17690 * threads.c, appdomain.c: remove #ifdefs from the code.
17692 2005-02-10 Sebastien Pouliot <sebastien@ximian.com>
17694 * metadata-internals.h: Added flags to MonoAssembly to cache the most
17695 common security informations. This allows us to stay in unmanaged code
17696 when doing LinkDemand and it's special cases (except for the first
17697 time for initialization). The flags a very much used with --security.
17698 * reflection.c|h: Added code to get declarative security attributes
17699 for LinkDemand and InheritanceDemand. This required to refactor the
17700 existing code for Demand.
17701 * security-manager.c|h: Added new method fields for the special cases
17704 2005-02-10 Martin Baulig <martin@ximian.com>
17706 * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
17707 (ves_icall_MonoDebugger_GetTypeToken): New interncall.
17709 2005-02-10 Martin Baulig <martin@ximian.com>
17711 * mono-debug.c, mono-debug-debugger.c: Completely reworked the
17712 debugging code; this is almost a complete rewrite.
17714 * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
17716 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
17718 * domain.c, object.h: expose mono_string_equal () and
17719 mono_string_hash ().
17720 * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
17721 it's implemented in managed code.
17723 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
17725 * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
17726 lo leak objects between appdomains.
17728 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
17730 * assembly.c: old compilers compilation fix from
17731 robertj@gmx.net (Robert Jordan).
17733 2005-02-09 Ben Maurer <bmaurer@ximian.com>
17735 * class-internals.h: Little reminder for the future.
17737 * debug-helpers.c: Fix up wrapper_type_names
17739 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
17741 * image.c, metadata-internals.h: when loading an image from a file,
17742 mmap all of it and use the same codepaths as when using a
17743 in-memory image: the code is simpler and we use less memory
17744 (both writable and readonly).
17746 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
17748 * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
17749 API to alloc runtime data structures that need to be tracked by the
17750 GC and contain pointers.
17751 * appdomain.c, threads.c, object.c, gc.c: use the above changes to
17752 make the code more readable and eventually use a different GC.
17754 2005-02-09 Zoltan Varga <vargaz@freemail.hu>
17756 * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
17759 2005-02-09 Lluis Sanchez Gual <lluis@novell.com>
17761 * object.c: In release_type_locks(), don't release the cctor lock
17762 if it has already been released. This fixes a crash in the
17765 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
17767 * gc.c, marshal.c, icall.c: register a delegate for finalization
17768 only when the native function pointer has been allocated for it.
17770 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
17772 * object.c: cleaned up some code, allocate objects that are
17773 pointer free with the atomic malloc variant. Allocate memory
17774 for static data from the mempool if it's pointer-free.
17775 Allocate the bounds array at the end of the array data, when needed.
17776 * object-internals.h, object.h: move a private function in a private
17778 * class.c: handle missing case in tracking references in fields.
17780 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
17782 * class.c, class-internals.h: keep track if a type has
17783 reference fields in either the instance or static fields.
17785 2005-02-07 Lluis Sanchez Gual <lluis@novell.com>
17787 * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
17788 and renamed to MonoRuntimeInfo. Added fields to store the expected
17789 framework assembly version. Changed mono_get_framework_version and
17790 mono_get_runtime_version for a single mono_get_runtime_info method.
17792 * assembly.c: Added method to remap system assembly versions to the
17793 current executing runtime version. Removed old mapping code.
17794 Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
17796 * icall.c, reflection.c: Track api changes.
17798 2005-02-06 Miguel de Icaza <miguel@novell.com>
17800 * loader.c (method_from_memberref): Improve error reporting,
17801 produce the class name instead of the typeref/typedef index.
17803 2005-02-07 Zoltan Varga <vargaz@freemail.hu>
17805 * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
17807 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
17809 * loader.c (mono_lookup_pinvoke_call): Allow for combination of
17810 stdcall and charset name mangling. Reorganize the code and add
17811 some tracing stuff.
17813 2005-02-05 Ben Maurer <bmaurer@ximian.com>
17815 * monodiet.c: More iters!
17817 * marshal.c: Iter usage.
17819 * icall.c: Iter usage.
17821 * object.c: Use iters.
17823 * debug-helpers.c: More iters
17825 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
17827 * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
17830 2005-02-05 Ben Maurer <bmaurer@ximian.com>
17832 * mono-debug-debugger.c: use iters
17834 * class.c, class-internals.h: mono_class_setup_events is static
17837 * All callers: use iters
17839 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
17841 * class.c string-icalls.c marshal.c reflection.c: Applied patch from
17842 Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
17844 2005-02-04 Zoltan Varga <vargaz@freemail.hu>
17846 * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
17848 * marshal.h: Add prototypes for ldfld/stfld_remote.
17850 * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
17851 this is called during startup.
17853 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
17855 * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
17856 MonoThreadsSync struct private in monitor.c. Changed the way
17857 MonoThreadsSync is allocated so it's faster and there is no
17858 need to keep track of it with a finalizer and it uses less memory.
17859 This also finally allows us to allocate mono objects as ptrfree when
17860 there are no reference fields.
17862 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
17864 * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
17865 disappearing link to the GC interface and use them to simplify
17866 the gchandles code.
17868 2005-02-04 Zoltan Varga <vargaz@freemail.hu>
17870 * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
17871 stfld_remote which call mono_load/store_field_new. This allows methods
17872 calling ldfld/stfld wrappers to be AOTed.
17874 * console-io.c: Include sys/filio.h under solaris.
17876 * console-io.c: Include curses.h if needed correctly.
17878 2005-02-03 Zoltan Varga <vargaz@freemail.hu>
17880 * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
17881 method->klass as well.
17883 * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
17885 * class.c (mono_class_init): Switch on lazy initialization of
17888 * class.c (mono_class_get_finalizer): Handle the case when the
17889 finalizer is inherited.
17891 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17893 * console-io.c: <curses.h> is needed by term.h on solaris.
17895 2005-02-03 Ben Maurer <bmaurer@ximian.com>
17897 * icall.c, class-internals.h, monodiet.c, class.c: Remove
17898 mono_class_setup_properties where possible. Remove this ftn from
17899 the header file, and make it static.
17901 2005-02-03 Zoltan Varga <vargaz@freemail.hu>
17903 * loader.c: Add missing setup_... call.
17905 * class.c: Add missing setup_... calls.
17907 * class.c (mono_class_init): Switch on lazy initialization of
17908 the generic vtable.
17910 * class.c (mono_class_init): Fix generics broken by the recent changes.
17912 * monodiet.c (handle_type): Add missing setup_... calls.
17914 * class.c: Back out garbage in previous patch.
17916 * class.c: Add missing setup_... calls.
17918 * class.c (mono_class_get_method_from_name_flags): Avoid calling
17919 mono_class_setup_methods () if possible.
17921 * class-internals.h (MonoClass): Add 'has_cctor' flag.
17923 * class-internals.h (MonoCachedClassInfo): New structure.
17925 * class.c: Initialize properties and events fields of MonoClass lazily.
17927 * class.c: Add infrastructure for lazily initializing the methods and
17928 vtable fields of MonoClass. Not yet used.
17930 * class.c (mono_class_get_finalizer): New helper function.
17932 * class.c: Add infrastructure for loading some class related data from
17935 * object.c: Add infrastructure for initializing the vtable from data
17938 * gc.c (run_finalize): Use mono_class_get_finalizer ().
17940 * class.c loader.c object.c icall.c gc.c reflection.c: Call the
17941 appropriate initialization function before accessing parts of the
17942 MonoClass structure.
17944 * marshal.c: Fix warnings.
17946 * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
17948 * mono-debug-debugger.c (get_exception_message): Use
17949 mono_class_get_method_from_name_flags ().
17951 2005-02-02 Ben Maurer <bmaurer@ximian.com>
17953 * reflection.c, appdomain.c: Replace a few manual searches that
17954 Zoltan missed. (Paolo approved this part of my initial patch).
17956 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
17958 * profiler.c: disable recording statistical events at report time.
17960 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
17962 * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
17963 to byteswap arrays of enum values, too (bug #72080).
17965 2005-02-02 Zoltan Varga <vargaz@freemail.hu>
17967 * appdomain.c (set_domain_search_path): Allow this to be called if
17968 domain->setup is not yet set.
17970 * loader.c (mono_method_get_index): New helper function.
17972 * loader.c reflection.c: Use mono_method_get_index ().
17974 * class.c (mono_class_get_method_from_name_flags): New helper method.
17976 * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
17979 * class.c (mono_class_get_cctor): New helper method.
17981 * string-icalls.c object.c class.c marshal.c reflection.c: Use
17982 mono_class_get_method () to look up methods.
17984 2005-02-01 Miguel de Icaza <miguel@novell.com>
17986 * console-io.c: Fix the build, this should work on Windows.
17988 2005-01-31 Ben Maurer <bmaurer@ximian.com>
17990 * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
17991 be set to null to keep things valid
17993 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17995 * icall.c: added Console 2.0 icalls.
17996 * Makefile.am: added console-io.[ch]
17997 * console-io.[ch]: internal calls for Console 2.0 API.
17999 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
18001 * class.c: make sure we consider all the interfaces
18002 when calculating max_interface_id (bug found by
18003 Jeroen Frijters running ikvm).
18005 2005-01-31 Zoltan Varga <vargaz@freemail.hu>
18007 * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
18008 valuetype fields to null.
18010 * object.c (set_value): Ditto. Fixes #71669.
18012 2005-01-31 Martin Baulig <martin@ximian.com>
18014 * metadata.c (mono_metadata_has_generic_params): New public
18015 function; checks whether something is a generic method.
18017 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
18019 * appdomain.c: fix infinite recursion when adding assemblies.
18021 2005-01-30 Sebastien Pouliot <sebastien@ximian.com>
18023 * object.c: Fix small typo to return all items for Environment.
18024 GetCommandLineArgs.
18026 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
18028 * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
18029 reflection.c: more domain and assembly-unload related fixes
18030 and memory leaks plugs.
18032 2005-01-30 Zoltan Varga <vargaz@freemail.hu>
18034 * class.c loader.c security.c loader.h process.c threads.c mono-debug-debugger.c profiler.c marshal.c rand.cpedump.c: Fix 64 bit warnings.
18036 2005-01-29 Ben Maurer <bmaurer@ximian.com>
18038 * loader.c (mono_method_signature): Make this method lazy
18039 (mono_get_method_from_token): Don't computate the signature here.
18041 Doing this saves quite a bit of memory. I got 90 kb on starting up
18042 monodoc. It should also save some disk reads on startup.
18044 * *: MonoMethod->signature might be NULL now. You *MUST* use
18045 mono_method_signature.
18047 2005-01-29 Zoltan Varga <vargaz@freemail.hu>
18049 * object.c (mono_runtime_get_main_args): Return an array from the
18050 current domain here. Fixes #71938.
18052 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
18054 * monitor.c: formatting changes to comply with the
18055 mono coding style and remove #ifdefs from the code.
18057 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
18059 * metadata.c, private.h: remove some unneeded data
18060 and use a more compact representation for table schemas.
18062 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
18064 * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
18065 to get a better distribution in hash tables.
18066 * *.c: use mono_aligned_addr_hash() where appropriate.
18067 * assembly.c: make var static.
18069 2005-01-28 Zoltan Varga <vargaz@freemail.hu>
18071 * domain-internals.h: Put MonoJitInfo on a diet.
18073 * domain.c: Fix a warning.
18075 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
18077 * gc.c: rework the gc handles code to reuse handles
18080 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
18082 * domain.c: fixed long standing bug in mono_string_equal() which
18083 was brought to light with the ldstr changes.
18085 2005-01-26 Sebastien Pouliot <sebastien@ximian.com>
18087 * reflection.c: Remove warning by adding missing include for marshal.h
18089 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
18091 * domain.c, object.c: change the ldstr_table to hold
18092 MonoString* as keys: makes the runtime isinterned lookup
18093 faster and simplifies memory management.
18095 2005-01-25 Sebastien Pouliot <sebastien@ximian.com>
18097 * icall.c: Renamed GetEnvironmentVariable so internal* so it was
18098 possible to add imperative security checks before calling the icall.
18099 * reflection.c: Return security attributes on the original MonoMethod
18100 (and not the wrapped one). This fix permissions on icalls.
18102 2005-01-25 Dick Porter <dick@ximian.com>
18104 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
18105 the check for mktime() support actually test the mktime() return
18106 value. "Fixes" bug 71682, though the output is still different to
18109 2005-01-25 Martin Baulig <martin@ximian.com>
18111 * class.c (mono_class_is_assignable_from): Make this work for
18114 2005-01-24 Ben Maurer <bmaurer@ximian.com>
18116 * marshal.c (mono_string_utf8_to_builder)
18117 (mono_string_builder_to_utf16): We might not have ownership of the
18118 string. In thise case, we need to create a new buffer.
18120 * object-internals.h (mono_stringbuilder_capacity): sb->str might
18121 be null, in which case, use the default capacity.
18123 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
18125 * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
18126 GC events to the profiler.
18128 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
18130 * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
18131 if you don't want the GC to run.
18133 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
18135 * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
18136 start providing a GC API and keeping different implementations in
18138 * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
18140 2005-01-22 Ben Maurer <bmaurer@ximian.com>
18142 * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
18143 mmap rather than allocating a huge buffer.
18144 (mono_debug_close_mono_symbol_file): Free the buffer allocated
18147 2005-01-22 Sebastien Pouliot <sebastien@ximian.com>
18149 * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
18150 and CheckExecutionRights.
18151 * reflection.c|h: Keep the index of the declarative security to be
18152 used, instead of the pointer, when AOT compiler is used. Also add
18153 class initialization when requesting demands.
18154 * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
18155 CheckExecutionRights. Both properties are now FALSE by default, and
18156 unmodifiable, unless the --security option is used.
18158 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
18160 * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
18161 reflection.c: properly refcount images and assemblies, many leaks fixed.
18163 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18165 * threadpool.c: increase the timeout for threads in the thread pool to
18166 10s. Fixes bug #67159.
18168 2005-01-20 Bernie Solomon <bernard@ugsolutions.com>
18170 * class-internals.h: Sun's compiler insists on explicit
18171 signed on bit fields to handle then correctly.
18173 2005-01-19 Miguel de Icaza <miguel@ximian.com>
18175 * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
18176 Make the size of the array fit only the number of invalid path
18177 chars that we have.
18179 * class.c (_mono_class_get): Improve the error reporting when a
18180 class referenced is not found, to assist debugging.
18182 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
18184 * threads.c: fix off-by-one error.
18185 * domain.c: free data allocated in the domain.
18187 2005-01-19 Zoltan Varga <vargaz@freemail.hu>
18189 * reflection.c (mono_method_body_get_object): Fill out exception info
18192 * object-internals.h: Add MonoReflectionExceptionHandlingClause
18195 2005-01-19 Martin Baulig <martin@ximian.com>
18197 * loader.c (mono_get_method_constrained): Make this work again.
18199 2005-01-19 Zoltan Varga <vargaz@freemail.hu>
18201 * object-internals.h (_MonoReflectionMethodBody): Make local_index a
18202 guint16 to match the managed side.
18204 * reflection.c (mono_reflection_body_get_object): Fill out local
18207 * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
18210 * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
18211 'local_var_sig_token'.
18213 2005-01-18 Zoltan Varga <vargaz@freemail.hu>
18215 * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks
18218 * reflection.c (mono_method_body_get_object): Handle abstract and
18221 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
18223 * marshal.c, loader.c, class-internals.h, reflection.c:
18224 store the emthod data for a wrapper in an array instead of a list.
18226 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
18228 * marshal.c: change the code to allocate memory more
18229 conservatively for method wrappers.
18231 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
18233 * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
18234 fields from MonoClass to the marshal info structure where they belong.
18236 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
18238 * class.c, object.c, class-internals.h, marshal.c: rearrange
18239 some fields and tweak some types to lower memory usage.
18241 2005-01-17 Zoltan Varga <vargaz@freemail.hu>
18243 * threads.c (signal_thread_state_change): Handle the case when the
18244 target thread is the current thread.
18246 * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
18248 * marshal.c: Rename emit_ptr_to_str_conv and its pair to
18249 emit_ptr_to_object_conv.
18251 * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
18252 marshalling. Fixes #71352.
18254 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
18256 * metadata.h, blob.h: move table enum to blob.h so it can be included
18258 * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
18259 cut the size of MonoImage/MonoDynamicImage.
18261 2005-01-16 Zoltan Varga <vargaz@freemail.hu>
18263 * profiler.c (mono_profiler_install_simple): Fix default arguments.
18265 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
18267 * reflection.c, reflection.h, icall.c: add a function to check
18268 if an attribute type is defined for a metadata object.
18270 2005-01-14 Lluis Sanchez Gual <lluis@novell.com>
18272 * object-internals.h: Added some needed fields from StringBuilder class.
18273 * marshal.c: Set the maxCapacity when creating a StringBuilder.
18275 2005-01-13 Zoltan Varga <vargaz@freemail.hu>
18277 * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
18278 threads before shutting down the runtime.
18280 * threads.c (mono_thread_suspend_all_other_threads): New helper function.
18282 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
18284 * object-internal.h, threads.c: implement stacksize and
18285 parameterized thread start functionality (requires
18286 matching corlib). Marked broken code for later removal.
18288 2005-01-12 Martin Baulig <martin@ximian.com>
18290 * class-internals.h (MonoGenericClass): Moved the `initialized'
18291 flag to MonoDynamicGenericClass, removed `init_pending'.
18292 (MonoGenericInst): Added `is_reference' flag.
18294 2005-01-12 Zoltan Varga <vargaz@freemail.hu>
18296 * reflection.c (mono_image_create_pefile): Only set the pe_offset
18297 inside the MSDOS header. Fixes #71201.
18299 * gc.c (mono_gc_cleanup): Handle the case when this is called from the
18301 (mono_domain_finalize): Ditto.
18303 2005-01-12 Martin Baulig <martin@ximian.com>
18305 * class.c (mono_get_shared_generic_class): Use the cache for
18306 non-dynamic generic classes.
18308 * class-internals.h (mono_class_create_generic_2): Removed
18309 function prototype, this function is now static inside class.c.
18311 * class.c (mono_class_create_generic_2): Made this static, only
18312 call it from mono_class_init() and mono_class_setup_parent().
18313 (collect_implemented_interfaces_aux): Call mono_class_init() on
18314 the interfaces we collect.
18315 (mono_class_setup_vtable): Call mono_class_init (class->parent).
18317 2005-01-11 Zoltan Varga <vargaz@freemail.hu>
18319 * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
18320 it a real thread handle.
18322 * domain-internals.h: Move exvar_offset from MonoJitInfo to
18323 MonoJitExceptionInfo, since each catch clause needs its own variable.
18325 2005-01-11 Dick Porter <dick@ximian.com>
18327 * image.c (mono_pe_file_open): New variant on mono_image_open()
18328 that does not set up the CLI metadata; used for FileVersionInfo so
18329 it can get the data for windows binaries too.
18331 * process.c (process_read_string_block): Don't read off the end of
18332 the StringTable block.
18334 These both fix bug 70766.
18336 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
18338 * gc.c: set some fields to NULL at GC cleanup time.
18339 * threads.c: if we quit the main thread, call exit ().
18341 2005-01-11 Zoltan Varga <vargaz@freemail.hu>
18343 * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
18345 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
18347 * threads.h, threads.c, object.c: added accessor and settor for
18348 main_thread. Handle it specially when exiting from it: wait
18349 for other foreground threads to exit.
18351 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
18353 * process.c, verify.c: remove some bloat.
18355 2005-01-09 Zoltan Varga <vargaz@freemail.hu>
18357 * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
18358 the calling convention to cdecl under win32.
18360 2005-01-08 Ben Maurer <bmaurer@ximian.com>
18362 * object.c (mono_object_get_size): New function to get the size of
18363 an object instance.
18365 * profiler.c (simple_allocation): Use above.
18367 2005-01-08 Sebastien Pouliot <sebastien@ximian.com>
18369 * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
18370 ves_icall_System_AppDomain_getRootDomain (as it's not required to
18371 get an appdomain by it's id and we can't assume the root's id is 0).
18372 * domain-internals.h: Change the function prototype to match.
18373 * icall.c: Change the icall table for AppDomain.
18375 2005-01-08 Miguel de Icaza <miguel@ximian.com>
18377 * locales.c (string_invariant_compare_char): Only compute
18378 GUnicodeTypes in the case where we need them. Test for ordinality
18379 first and return if so.
18384 * FIXME: here we must use the information from c1type and c2type
18385 * to find out the proper collation, even on the InvariantCulture, the
18386 * sorting is not done by computing the unicode values, but their
18387 * actual sort order.
18390 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
18392 * loader.c: for P/Invoke methods, allow the "Internal" shared
18393 library name to refer to the calling process symbol namespace.
18395 2005-01-07 Sebastien Pouliot <sebastien@ximian.com>
18397 * Makefile.am: Add the security manager to the build.
18398 * security-manager.c|h: New. Initialization of the security manager.
18400 2005-01-07 Dick Porter <dick@ximian.com>
18403 * monitor.c: Update thread state during Monitor and WaitHandle
18404 waits. Fixes bug 71031.
18406 2005-01-07 Zoltan Varga <vargaz@freemail.hu>
18408 * reflection.c (property_encode_signature): Correctly handle when the
18409 property has no methods.
18411 2005-01-06 Zoltan Varga <vargaz@freemail.hu>
18413 * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
18415 * reflection.c (reflection_methodbuilder_from_method_builder): Copy
18416 fields from mb, not rmb. Fixes #71017.
18418 * marshal.c (emit_ptr_to_str_conv): Add support for
18419 ByValTStr -> string conversion. Fixes #71015.
18421 * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
18423 * mempool.c (mono_mempool_contains_addr): New helper function.
18425 2005-01-05 Zoltan Varga <vargaz@freemail.hu>
18427 * metadata.c (mono_metadata_compute_size): Fix size calculation of
18428 HasSematics encoded fields.
18430 * metadata.c (mono_type_to_unmanaged): Improve error message for
18431 invalid string marshalling.
18433 * metadata.c: Fix warnings.
18435 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
18437 * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
18440 2005-01-05 Zoltan Varga <vargaz@freemail.hu>
18442 * domain.c object.c domain-internals.h: Revert part of r38077 since the
18443 keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
18446 2005-01-03 Zoltan Varga <vargaz@freemail.hu>
18448 * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
18449 so methods containing these can be AOTed.
18451 2005-01-03 Martin Baulig <martin@ximian.com>
18453 * loader.c (find_method): Removed the hack for generic instances.
18454 (method_from_memberref): If our parent is a generic instance, pass
18455 its generic type definition to find_method() and then inflate the
18457 (mono_get_method_constrained): Pass the generic type definition to
18458 find_method() and inflate the method later.
18460 * class-internals.h (MonoStats): Added `generic_class_count'.
18462 * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
18463 Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
18465 * reflection.c (mono_custom_attrs_from_params): Don't ignore
18466 generic type definitions.
18468 2004-12-30 Zoltan Varga <vargaz@freemail.hu>
18470 * loader.c icall.c: Fix warnings.
18472 2004-12-29 Zoltan Varga <vargaz@freemail.hu>
18474 * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
18475 blittable types. Fixes #70864.
18477 2004-12-29 Martin Baulig <martin@ximian.com>
18480 (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
18482 * reflection.c (mono_method_get_object): Create a
18483 "System.Reflection.MonoGenericMethod" for inflated methods; don't
18484 call mono_get_inflated_method().
18486 * class-internals.h (MonoStats): Added `inflated_method_count_2'.
18488 2004-12-27 Martin Baulig <martin@ximian.com>
18490 * class-internals.h (MonoMethod): Added `is_inflated' flag.
18491 (MonoMethodInflated): Added `inflated' field.
18493 * class.c (mono_class_inflate_generic_method): Don't really
18494 inflate the method here; just set the `is_inflated' flag in the
18496 (mono_class_get_inflated_method): Actually inflate the method here
18497 if it's not already inflated; we use the MonoMethodInflated's new
18498 `inflated' field as a cache.
18500 2004-12-26 Martin Baulig <martin@ximian.com>
18503 (inflate_generic_class): Moved some code out of inflate_generic_type().
18504 (mono_class_inflate_generic_method): If we're already inflated,
18505 inflate the context and use the declaring method; ie. make sure
18506 the declaring method of an inflated method is always the generic
18508 (mono_class_create_from_typedef): Create
18509 `class->generic_container->context->gclass'.
18511 2004-12-24 Ben Maurer <bmaurer@ximian.com>
18513 * metadata-internals.h, marshal.c, reflection.c: More
18514 MonoGHashTable->GHashTable.
18516 * domain-internals.h, class.c: Change MonoGHashTable's into
18517 GHashTables for some cases where no gc stuff is used
18519 All users: update apis
18521 2004-12-23 Ben Maurer <bmaurer@ximian.com>
18523 * metadata.c (builtin_types): Make this `const'. Makes this get
18524 put into the shareable section.
18525 (mono_metadata_init): Casts to make gcc happy.
18527 2004-12-22 Zoltan Varga <vargaz@freemail.hu>
18529 * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
18531 2004-12-21 Sebastien Pouliot <sebastien@ximian.com>
18533 * icall.c: Added an internal call to retrieve the position and length
18534 of assembly-level declarative security attributes (RequestMinimum,
18535 RequestOptional and RequestRefuse). This is used by the Assembly class
18536 to re-create the corresponding permission sets.
18538 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
18540 * marshal.c: fix the stelemref wrapper to be type correct
18543 2004-12-20 Ben Maurer <bmaurer@ximian.com>
18545 * icall.c (ves_icall_System_Object_GetHashCode): There was no need
18546 to do key & 0x7fffffff. Hashtable already does this. It just
18547 results in longer code.
18549 2004-12-20 Sebastien Pouliot <sebastien@ximian.com>
18551 * appdomain.c: Bump corlib version.
18552 * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
18553 * domain.c: Add RuntimeSecurityFrame to mono_defaults.
18554 * reflection.c|h: Add functions to get declarative security infos
18555 (blob position and length) for assemblies, classes and methods.
18557 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
18559 * reflection.c: sort the constant table (bug #70693).
18561 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
18563 * object-internals.h, threads.c, domain.c: add accessors for
18564 the MonoThread and MonoDomain tls keys.
18566 2004-12-18 Martin Baulig <martin@ximian.com>
18568 * class.c (inflate_generic_type): If we're inflating a generic
18569 instance, set `ngclass->context->container = context->container';
18570 ie. the container we inflated into.
18572 * metadata.c (mono_metadata_parse_generic_param): Reflect above
18573 inflate_generic_type() changes.
18575 2004-12-17 Martin Baulig <martin@ximian.com>
18577 * class-internals.h
18578 (MonoGenericClass): Replaced `MonoType *generic_type' with
18579 `MonoClass *generic_class'. Removed `dynamic_info'; if
18580 `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
18581 (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
18583 2004-12-16 Zoltan Varga <vargaz@freemail.hu>
18585 * exception.c (mono_exception_from_token): New helper function.
18587 2004-12-15 Zoltan Varga <vargaz@freemail.hu>
18589 * assembly.c (mono_assembly_load_with_partial_name): Call
18590 mono_assembly_loaded before invoking the preload hooks. Fixes
18593 * object-internals.h (MonoThread): Change culture_info and
18594 ui_culture_info into an array.
18596 * threads.c: Cache culture info objects from more than one appdomain.
18598 * threads.c threads-types.h icall.c: Add icalls for manipulating the
18599 current UI culture.
18601 2004-12-14 Zoltan Varga <vargaz@freemail.hu>
18603 * threads.h threads.c appdomain.c: Clear the culture_info field of
18604 all threads during unloading if they point to an object in the dying
18607 2004-12-13 Ben Maurer <bmaurer@ximian.com>
18609 * culture-info.h (TextInfoEntry): New struct
18610 * object-internals.h: sync with managed
18611 * locales.c: fill the `text_info_data' field
18612 * culture-info-tables.h: update
18614 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
18616 * Makefile.am, monodiet.c: add monodiet, an IL code garbage
18619 2004-12-12 Ben Maurer <bmaurer@ximian.com>
18621 * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
18622 (ves_icall_ModuleBuilder_getMethodToken): Ditto
18624 2004-12-12 Martin Baulig <martin@ximian.com>
18626 * mono-debug-debugger.c (write_type): If we're an enum and the
18627 builtin types have already been initialized, call mono_class_init().
18629 2004-12-11 Martin Baulig <martin@ximian.com>
18631 * metadata.c (mono_metadata_load_generic_params): Added
18632 `MonoGenericContainer *parent_container' argument; automatically
18633 compute `container->is_method'; pass the correct owner to
18636 * reflection.c (compare_genericparam): Sort the GenericParam table
18637 according to increasing owners.
18639 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
18641 * profiler.c: allow disabling the default profiler.
18643 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
18645 * decimal.c, icall.c: allow disabling System.Decimal support.
18647 2004-12-09 Marek Safar <marek.safar@seznam.cz>
18649 * reflection.c: Add support for null attribute arguments.
18651 2004-12-09 Martin Baulig <martin@ximian.com>
18653 * metadata.h, loader.h: Use `idx' instead of `index' in parameter
18654 names to get rid of compiler warnings.
18656 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
18658 * marshal.c (mono_marshal_get_struct_to_ptr): Call
18659 mono_marshal_load_type_info (). Fixes #69625.
18660 (mono_marshal_get_ptr_to_struct): Likewise.
18662 2004-12-08 Martin Baulig <martin@ximian.com>
18664 * mono-debug.h: Bumped version number to 47.
18666 * mono-debug-debugger.c
18667 (mono_debugger_event_handler, mono_debugger_event): Take two
18668 guint64 arguments insteed of a gpointer and a guint32.
18670 2004-12-08 Martin Baulig <martin@ximian.com>
18672 * debug-mono-symfile.h
18673 (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
18674 `address' to `native_offset'.
18676 2004-12-08 Martin Baulig <martin@ximian.com>
18678 * class.c (mono_class_create_from_typespec): Only inflate if we
18679 either have `context->gclass' or `context->gmethod'.
18681 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
18683 * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
18685 * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
18687 * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
18689 * reflection.c (mono_assembly_get_object): Remove the workaround put
18690 in for the release.
18692 * appdomain.c: Use the corlib_internal field from MonoAssembly.
18694 * appdomain.c: Bump corlib version.
18696 * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
18697 be visible in other appdomains.
18699 2004-12-07 Ben Maurer <bmaurer@ximian.com>
18701 * threads.c: Interlocked inc and dec for longs were messed up,
18702 use a KISS based impl for this. Fixes 70234
18704 2004-12-07 Zoltan Varga <vargaz@freemail.hu>
18706 * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
18708 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
18710 * icall.c: fix to follow policy not to allow struct
18711 arguments in icalls.
18713 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18715 * process.c: make the patch that handles spaces in file paths work
18716 on mono/windows too.
18718 2004-12-06 Martin Baulig <martin@ximian.com>
18720 * class.c (mono_class_create_generic): Call
18721 mono_class_setup_supertypes() if we're dynamic.
18722 (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
18724 2004-12-06 Zoltan Varga <vargaz@freemail.hu>
18726 * object-internals.h: Add new fields to MonoThread.
18728 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
18730 * icall.c threads-types.h threads.c: Add new icalls.
18732 * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
18734 * object-internals.h (MonoReflectionAssembly): Sync object layout with
18737 * appdomain.c: Bump corlib version.
18739 * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
18740 internal assemblies. Fixes #69181.
18742 2004-12-05 Martin Baulig <martin@ximian.com>
18744 * class.c (mono_class_inflate_generic_signature): Make this a
18745 no-op if `context' is NULL or we don't have any type parameters;
18746 also copy `sentinelpos'.
18748 2004-12-04 Zoltan Varga <vargaz@freemail.hu>
18750 * image.c: Add unbox_wrapper_cache.
18752 * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
18754 * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
18755 function generator.
18757 * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
18760 * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
18762 2004-12-04 Martin Baulig <martin@ximian.com>
18764 * loader.c (mono_method_get_signature_full): New public function;
18765 like mono_method_get_signature(), but with an additional
18766 `MonoGenericContext *' argument.
18768 * class.c (mono_class_inflate_generic_signature): Formerly known
18769 as inflate_generic_signature(); make this public.
18771 2004-12-04 Martin Baulig <martin@ximian.com>
18774 (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
18775 instead of a `MonoGenericContainer *'.
18776 (mono_metadata_parse_array_full): Likewise.
18777 (mono_metadata_parse_signature_full): Likewise.
18778 (mono_metadata_parse_method_signature_full): Likewise.
18779 (mono_metadata_parse_generic_inst): Likewise.
18780 (mono_metadata_parse_generic_param): Likewise.
18781 (mono_metadata_parse_mh_full): Likewise.
18782 (mono_type_create_from_typespec_full): Likewise.
18784 2004-12-03 Martin Baulig <martin@ximian.com>
18786 * class-internals.h (MonoGenericContainer): Replaced the
18787 `MonoGenericContext * pointer with a `MonoGenericContext'
18788 structure and made it the first element.
18790 2004-12-03 Martin Baulig <martin@ximian.com>
18793 (inflate_generic_type): Set the `context->container' when creating
18794 a new MonoGenericContext.
18795 (mono_class_inflate_generic_method): Likewise.
18796 (mono_class_create_from_typespec): Just use `context->container'
18797 to get the container.
18799 * loader.c (method_from_methodspec): Set `context->parent' from
18800 `context->container' - and if that's a method container, use its
18801 parent. Also set the `context->container' when creating a new
18802 MonoGenericContext.
18803 (mono_get_method_from_token): Use just `context->container' to get
18806 * metadata.c (do_mono_metadata_parse_generic_class): Also set
18807 `gclass->context->container'.
18809 * reflection.c (do_mono_reflection_bind_generic_parameters): Set
18810 the `context->container' when creating a new MonoGenericContext.
18812 2004-12-03 Zoltan Varga <vargaz@freemail.hu>
18814 * reflection.c (compare_genericparam): Sort params with identical
18815 owner by their number. Fixes gen-111 on sparc.
18817 2004-12-02 Zoltan Varga <vargaz@freemail.hu>
18819 * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
18820 around the domain changes.
18822 * appdomain.c (mono_domain_unload): Handle the case when the thread
18823 calling Unload is itself being aborted during unloading. Fixes #70022.
18825 * appdomain.h: Add prototype for mono_install_runtime_cleanup.
18827 * marshal.c (emit_thread_interrupt_checkpoint_call): Call
18828 checkpoint_func as an icall so it gets a wrapper.
18829 (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
18830 in the cross-appdomain wrappers too.
18832 * threads.c (mono_thread_has_appdomain_ref): Make this public.
18834 * assembly.c (mono_assembly_open_from_bundle): Fix warning.
18836 * reflection.c: Fix some memory leaks.
18838 2004-12-02 Martin Baulig <martin@ximian.com>
18840 * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
18842 * metadata.c (generic_class_cache): New static hashtable.
18843 (mono_metadata_lookup_generic_class): New public method.
18845 2004-12-02 Martin Baulig <martin@ximian.com>
18847 * class.c (mono_class_create_from_typedef): Call
18848 mono_class_setup_parent() and mono_class_create_mono_type() before
18849 parsing the interfaces.
18851 2004-12-02 Martin Baulig <martin@ximian.com>
18853 * metadata.c (generic_inst_cache): New static hashtable.
18854 (mono_metadata_lookup_generic_inst): New public function.
18855 (mono_metadata_inflate_generic_inst): New public function.
18856 (mono_metadata_parse_generic_inst): New public function.
18857 (do_mono_metadata_parse_generic_class): Use the new
18858 mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
18859 since this'll also use the cache.
18861 * reflection.c (mono_reflection_bind_generic_method_parameters):
18862 Use mono_metadata_lookup_generic_inst() to use the new cache.
18864 * class.c (inflate_mono_type): Use
18865 mono_metadata_inflate_generic_inst() to inflate a generic
18866 instance; this'll also use the new cache.
18868 * loader.c (method_from_methodspec): Use
18869 mono_metadata_parse_generic_inst() and
18870 mono_metadata_inflate_generic_inst() rather than parsing it
18871 manually, so we can use the new cache.
18873 2004-12-02 Zoltan Varga <vargaz@freemail.hu>
18875 * threads.c (wait_for_tids): Do not incorrectly free threads when
18876 the wait times out.
18878 2004-12-01 Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
18880 * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
18881 iter->args based on whether parameters are passed in registers (i.e.
18882 MONO_ARCH_REGPARMS is defined)
18884 2004-12-01 Zoltan Varga <vargaz@freemail.hu>
18886 * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
18887 the exception message. Fixes #70070.
18888 (method_from_methodspec): Fix warnings.
18890 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18892 * process.c: (complete_path) return the path quoted
18894 2004-12-01 Martin Baulig <martin@ximian.com>
18896 * class-internals.h (MonoGenericInst): New structure.
18897 (MonoGenericClass): Replaced `type_argc', `type_argv' and
18898 `is_open' with `MonoGenericInst *inst'.
18899 (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
18900 `is_open' with `MonoGenericInst *inst'.
18902 2004-11-30 Martin Baulig <martin@ximian.com>
18904 Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
18906 * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
18907 to `generic_class_cache'.
18910 (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
18911 (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
18912 (mono_generic_inst_is_valuetype): Renamed to
18913 mono_generic_class_is_valuetype().
18915 * class-internals.h
18916 (MonoGenericInst): Renamed to MonoGenericClass.
18917 (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
18918 (MonoClass): Renamed `generic_inst' to `generic_class'.
18919 (MonoGenericContext): Renamed `ginst' to `gclass'.
18921 * object-internals.h
18922 (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
18924 * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
18925 mono_reflection_generic_class_initialize().
18927 * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
18928 now known as "System.Reflection.MonoGenericClass".
18929 (monogenericinst_icalls): Renamed to monogenericclass_icalls.
18931 2004-11-29 Sebastien Pouliot <sebastien@ximian.com>
18933 * class-internals.h: Added a flag field to MonoClass to cache the
18934 declarative security attributes actions associated with the class.
18935 * domain-internals.h: Added booleans to MonoJitInfo to cache the
18936 (class or method level) stack modifiers (Assert, Deny and PermitOnly)
18937 applicable to the JITted method.
18938 * reflection.c|h: Added functions to extract (as flags) which security
18939 actions are available (declaratively) for a method, class or assembly.
18940 * metadata.c|h: Added functions to search the declarative security
18941 table in the metadata.
18943 2004-11-29 Ben Maurer <bmaurer@ximian.com>
18945 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
18946 EXPORTEDTYPES are already in the class name cache, so there is no
18947 need to add extra code here to look at them. Just removes a bit of
18950 (ves_icall_System_Environment_get_TickCount): No need for #if
18951 WINDOWS. We already have the code in io-layer.
18953 2004-11-28 Martin Baulig <martin@ximian.com>
18956 (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
18959 2004-11-27 Miguel de Icaza <miguel@ximian.com>
18961 * assembly.c (do_mono_assembly_open): Instead of having a
18962 conditional WITH_BUNDLE, incorporate support for bundles here, by
18963 having a global `bundles' variable holding a pointer to the actual
18966 (mono_register_bundled_assemblies): New API call used by the
18969 See mkbundle.1 for details.
18971 2004-11-27 Martin Baulig <martin@ximian.com>
18973 * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
18974 the vtable for generic methods.
18976 2004-11-26 Martin Baulig <martin@ximian.com>
18979 (mono_metadata_generic_method_hash): New public function.
18980 (mono_metadata_generic_method_equal): Likewise.
18982 * class-internals.h
18983 (MonoGenericContainer): Added `GHashTable *method_hash'.
18985 * reflection.c (ReflectionMethodBuilder): Added
18986 `MonoGenericContainer *generic_container'.
18987 (reflection_methodbuilder_to_mono_method): Don't create a new
18988 MonoGenericContainer each time we're called.
18989 (mono_reflection_bind_generic_method_parameters): Use
18990 `container->method_hash' to cache the results so we don't create a
18991 different method if we're called several times with the same
18994 * loader.c (method_from_methodspec): Use the new
18995 `container->method_hash' here, too.
18997 2004-11-26 Martin Baulig <martin@ximian.com>
18999 * class.c (inflate_generic_signature): Correctly compute
19000 `res->has_type_parameters'.
19001 (mono_class_vtable): Use the `has_type_parameters' flag to
19002 determine whether we're a generic method.
19004 * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
19006 2004-11-25 Zoltan Varga <vargaz@freemail.hu>
19008 * object.c (mono_runtime_run_main): Fix a small memory leak.
19010 2004-11-25 Martin Baulig <martin@ximian.com>
19012 * class.c (set_generic_param_owner): Fixed the loop.
19014 2004-11-25 Martin Baulig <martin@ximian.com>
19016 * object.c (mono_class_vtable): Don't create any JIT wrappers for
19019 2004-11-24 Zoltan Varga <vargaz@freemail.hu>
19021 * reflection.c: Allow all kinds of whitespace, not just ' ' in type
19022 names. Fixes #69787.
19024 2004-11-24 Martin Baulig <martin@ximian.com>
19026 * class.c (mono_class_create_generic_2): If we don't have a
19027 `ginst->parent', inflate `gklass->parent' to get our parent.
19029 2004-11-24 Martin Baulig <martin@ximian.com>
19031 * reflection.c (compare_genericparam): Correctly sort the
19032 GenericParam table; fixes #69779.
19034 2004-11-23 Ben Maurer <bmaurer@ximian.com>
19036 * reflection.c: When writing a PE file, don't create a huge
19037 buffer in memory. Just write the arrays we have to the file.
19038 This reduces memory usage.
19040 * metadata-internals.h: MonoDynamicStream pefile is no longer used
19043 2004-11-17 Martin Baulig <martin@ximian.com>
19045 * class.c (mono_class_init): Don't setup `class->parent' for
19046 dynamic instances; moved this to mono_class_generic_2().
19047 (mono_class_create_generic): Also set `klass->inited' for dynamic
19049 (mono_class_create_generic_2): Don't do anything for dynamic
19050 generic instances. Set `klass->parent' here and also call
19051 mono_class_setup_parent() here.
19053 * reflection.c (do_mono_reflection_bind_generic_parameters): Added
19054 `MonoType *parent' argument; set `ginst->parent' before calling
19055 mono_class_create_generic_2(), so we set the correct parent.
19057 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
19059 * reflection.c: allow getting attributes from ModuleBuilder
19062 2004-11-17 Martin Baulig <martin@ximian.com>
19064 * class.c (mono_class_create_from_typedef): If a type parameter is
19065 inherited from an outer class, set its owner to that class.
19067 2004-11-17 Atsushi Enomoto <atsushi@ximian.com>
19069 * reflection.c: (mono_image_create_pefile): Don't use NULL argument
19070 for (int*) written size. This fixes bug #69592.
19072 2004-11-15 Sebastien Pouliot <sebastien@ximian.com>
19074 * icall.c: Added IsAuthenticodePresnet internal call.
19075 * image.c|h: New function that check a MonoImage for an Authenticode
19076 signature in the certificate PE data directory.
19077 * security.c|h: New internal call to ask the runtime if an
19078 Authenticode signature seems referenced in the PE header.
19080 2004-11-15 Zoltan Varga <vargaz@freemail.hu>
19082 * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
19084 * reflection.c (mono_image_create_pefile): Free the assembly streams
19085 after writing out the assembly file.
19087 * object.c (mono_runtime_run_main): Fix small memory leak.
19089 * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
19090 property access modifiers. Fixes #69389.
19092 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
19094 * domain.c, object.c, object-internals.h, domain-internals.h,
19095 object.h, marshal.c: keep dynamic code info per domain.
19097 2004-11-15 Martin Baulig <martin@ximian.com>
19099 * class.c (mono_type_get_name_recurse): Put type arguments in
19100 `[',`]' instead of in `<','>'. Thanks to Atsushi for the patch,
19103 2004-11-15 Martin Baulig <martin@ximian.com>
19105 * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
19106 (mono_class_setup_vtable): When computing `the_cname' for a
19107 generic instance, don't include the namespace since we'd otherwise
19110 2004-11-15 Martin Baulig <martin@ximian.com>
19112 * class.c (mono_class_create_generic): Changed return type to void.
19113 (mono_class_create_generic_2): New public function; setup
19114 `class->method', `class->field' and `class->interfaces' here
19115 instead of in mono_class_init().
19117 * class.h (mono_class_create_generic): Moved to class-internals.h.
19119 2004-11-14 Ben Maurer <bmaurer@ximian.com>
19121 * reflection.c (mono_image_create_pefile): take a file HANDLE.
19122 rather than writing to memory, write to this file. Right now,
19123 we are just writting into a buffer, and copying that. However
19124 we can avoid the buffer later.
19126 (mono_dynamic_stream_reset): new function
19128 * icall.c, object-internals.h: update for the above.
19130 2004-11-13 Ben Maurer <bmaurer@ximian.com>
19132 * reflection.c: Remove *_ATOMIC macros. We really shouldn't
19133 have been using gc'd memory. First it is slower, unlikely
19134 the comment in the source code said, secondly, it increases
19135 our footprint to do it in the gc.
19137 * icall.c (WriteToFile): rename of getDataChunk. Rewrite
19138 the method so that it does not have to copy to managed code.
19140 2004-11-12 Zoltan Varga <vargaz@freemail.hu>
19142 * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
19144 2004-11-12 Martin Baulig <martin@localhost>
19146 * reflection.c (mono_image_create_token): Allow generic method
19147 definitions here, since they may appear in an `.override'; see
19148 gen-98/gen-99 for an example.
19150 2004-11-11 Zoltan Varga <vargaz@freemail.hu>
19152 * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
19155 * marshal.c (mono_string_to_ansibstr): Make g_error messages more
19158 2004-11-11 Martin Baulig <martin@ximian.com>
19160 * class.c (mono_class_setup_vtable): In an explicit interface
19161 implementation, the method name now includes the arity.
19163 2004-11-10 Zoltan Varga <vargaz@freemail.hu>
19165 * object.c (mono_array_full_copy): Fix warning.
19167 2004-11-10 Lluis Sanchez Gual <lluis@novell.com>
19169 * appdomain.c: Removed look_for_method_by_name(). Use the new method
19170 mono_class_get_method_from_name() instead.
19172 * class-internals.h: Added two new types of wrappers.
19173 Added MonoRemotingTarget enum. Added new trampoline function type, which
19174 takes an additional MonoRemotingTarget value as parameter, so it is
19175 possible to request a trampoline for a specific target.
19177 * class.c: Added new mono_class_get_method_from_name() method.
19179 * class.h: In MonoRemoteClass, we can have now to vtables, one for
19180 general remoting sinks and one specific for cross domain calls.
19182 * debug-helpers.c: Added new wrapper names.
19184 * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
19187 * image.c: Porperly delete value objects form the remoting invoke hashtable.
19189 * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
19190 with several other methods (mono_marshal_get_xappdomain_dispatch,
19191 mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
19192 and others) can generate a fast remoting wrapper for cross domain calls.
19193 More information can be found in docs/remoting.
19194 Other changes: Removed mono_find_method_by_name, and used
19195 mono_class_get_method_from_name instead.
19196 Remoting wrappers are now stored in a MonoRemotingMethods struct, which
19197 is stored in the remoting invoke hashtable.
19199 * marshal.h: published the new method for getting the xdomain wrapper,
19200 and also added a method for getting the adequate wrapper for a given
19203 * object-internals.h, object.c: Added a couple of methods for capying and
19205 Modified mono_install_remoting_trampoline, which takes the new remoting
19206 trampoline that has a remoting target as parameter.
19207 mono_class_proxy_vtable now also takes a remoting target as parameter, and
19208 will return the most suitable vtable for the target.
19209 Added mono_remote_class_vtable, which returns the vtable of a remote class
19210 (which can be the normal remoting vtable or the xdomain vtable).
19212 * threads.c: the xdomain invoke and dispatch wrappers must also be
19213 protected against interruptions.
19215 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19217 * icall.c: use memmove in BlockCopyInternal when the source and
19218 destination arrays are the same.
19220 2004-11-09 Martin Baulig <martin@ximian.com>
19222 * class-internals.h (MonoGenericContainer): Removed `method' and
19223 `signature', replaced them with `is_method' and `is_signature'
19224 flags. Added `context'.
19226 * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
19227 instead of a `MonoGenericContainer *'.
19229 * metadata.c (mono_metadata_generic_param_equal): Removed the hack
19230 for dynamic type parameters.
19231 (mono_metadata_load_generic_params): Setup `container->context'.
19233 * reflection.c (mono_reflection_setup_generic_class): Setup
19234 `tb->generic_container->context'.
19235 (do_mono_reflection_bind_generic_parameters): Use
19236 mono_class_inflate_generic_type() to correctly inflate types,
19237 rather than using our own hack just for MONO_TYPE_VAR.
19239 2004-11-09 Martin Baulig <martin@ximian.com>
19241 * class.c (mono_class_inflate_generic_method): Small fix; don't
19245 (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
19246 (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
19247 (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
19248 (ves_icall_Type_BindGenericParameters): Likewise.
19249 (ves_icall_Type_get_IsGenericInstance): Likewise.
19250 (ves_icall_Type_GetGenericParameterPosition): Likewise.
19251 (ves_icall_MonoType_get_HasGenericArguments): Likewise.
19252 (ves_icall_MonoType_get_IsGenericParameter): Likewise.
19253 (ves_icall_MonoType_get_DeclaringMethod): Likewise.
19255 2004-11-09 Zoltan Varga <vargaz@freemail.hu>
19257 * assembly.c (mono_assembly_names_equal): Reenable the comparison of
19258 assembly versions and public key tokens. Fixes #69113.
19260 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
19262 * metadata.c: fix bug introduced with the type cache changes
19265 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
19267 * metadata.h, metadata.c, domain-internals.h, marshal.c: include
19268 the MonoClass pointer instead of the token in exception clauses.
19269 * reflection.c: updates for the above and make the code not depend
19270 on the structure of MonoExceptionClause.
19272 2004-11-08 Zoltan Varga <vargaz@freemail.hu>
19274 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
19275 Add support for dynamic assemblies. Fixes #69114.
19277 * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
19279 2004-11-07 Ben Maurer <bmaurer@ximian.com>
19281 * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
19282 since most only those methods use it. the code member of
19283 MonoMethodPInvoke was dead, so that can be removed too. Also,
19284 remove inline_count (again, not used), and move slot so that it
19285 can share bits with some other flags. This saves 8 bytes in the
19286 structure and gives us about 50 kb back for mcs helloworld.cs
19288 * *.[ch]: Do naming changes for the above.
19290 * loader.c (mono_method_get_header): Lazily init the header
19292 (mono_get_method_from_token): don't init the header here
19293 (mono_free_method): the header may never be allocated
19295 Overall, this saves 150 kb of unmanaged allocations
19296 for mcs helloworld.cs. That accounts for 10% of the unmanaged
19299 * loader.c, loader.h (mono_method_get_header): new accessor.
19301 * *.[ch]: use the above method. Prepares us to lazily load
19304 * *.[ch]: Clean up all the pesky warnings. gcc now only gives
19305 three warnings, which are actual bugs (see 69206).
19307 * class-internals.h (MonoMethod): Remove remoting_tramp. It is
19308 unused. Saves a cool 4 bytes / method.
19310 2004-11-06 Ben Maurer <bmaurer@ximian.com>
19312 * metadata.c (builtin_types): Add types for System.Object here.
19313 (mono_metadata_parse_type_full): Cache MonoType*'s that are
19314 for a class or valuetype from klass->this_arg or klass->byval_arg.
19316 On mcs for a hello world, this gets us down from 21836 MonoType's
19319 (mono_metadata_free_type): Account for the above change.
19321 2004-11-06 Zoltan Varga <vargaz@freemail.hu>
19323 * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an
19324 exception instead of asserting if name is null.
19325 (ves_icall_System_AppDomain_GetData): Ditto.
19327 2004-11-05 Zoltan Varga <vargaz@freemail.hu>
19329 (ves_icall_get_enum_info): Avoid crash when called on a non-finished
19332 * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly):
19333 Return NULL when the domain does not have entry_assembly set.
19335 * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal):
19336 Add a 'resource_modules' argument.
19337 (ves_icall_type_GetTypeCode): Fix typecode of byref types.
19339 * reflection.c (mono_reflection_create_runtime_class): Move setting
19340 of wastypebuilder here, so mono_get_type_object () returns a MonoType
19343 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
19344 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
19345 Throw an ArgumentNullException if 'ptr' is null.
19347 * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
19348 assemblies here. Fixes #69020.
19350 2004-11-05 Geoff Norton <gnorton@customerdna.com>
19352 * reflection.c (build_compressed_metadata): Fix the previous patch for
19353 big endian systems. GUINT32_FROM_LE isn't needed on strlen and was overwriting
19356 2004-11-04 Zoltan Varga <vargaz@freemail.hu>
19358 * assembly.c (mono_assembly_names_equal): Allow a match if one of
19359 the cultures is false. Fixes #69090.
19361 * reflection.c (build_compressed_metadata): Fix invalid memory read
19362 detected by valgrind.
19364 * reflection.c (mono_reflection_get_type): Avoid triggering a
19365 TypeResolve multiple times for the same type. Fixes #65577.
19367 2004-11-04 Ben Maurer <bmaurer@ximian.com>
19369 * marshal.c: Avoid using ldftn to call managed functions. It is
19370 much slower than just a call.
19372 * reflection.c (mono_module_get_object): free the basename we
19373 allocate here from glib.
19375 * reflection.c (ensure_runtime_vtable): make sure to free
19376 overrides. Also, we were allocating an array of MonoMethod not an
19377 array of MonoMethod*.
19379 * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
19381 * image.c (mono_image_close): free image->guid here.
19383 2004-11-02 Zoltan Varga <vargaz@freemail.hu>
19385 * reflection.c: Fix some spec conformance issues with the PE file
19386 structures so mcs compiled apps run on the Net 2.0 beta.
19388 2004-11-01 Zoltan Varga <vargaz@freemail.hu>
19390 * string-icalls.c (ves_icall_System_String_ctor_encoding):
19391 Implement this. Fixes #67264.
19393 * debug-helpers.h debug-helpers.c marshal.c: Move
19394 mono_find_method_by_name to debug-helpers.c.
19396 2004-10-31 Zoltan Varga <vargaz@freemail.hu>
19398 * object.c (mono_release_type_locks): type_initialization_hash is
19401 * reflection.c object.c object-internals.h: Fix warnings.
19403 * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
19404 without accessors. Fixes #61561.
19406 * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
19407 application base from the root domain if not set. Fixes #65641.
19408 (mono_runtime_init): Fix warning.
19410 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19412 * appdomain.c: call mono_thread_pool_init.
19413 * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
19414 of worker threads based on the number of CPUs and the environment
19415 variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
19416 for non-windows (windows) systems.
19418 2004-10-27 Chris Toshok <toshok@ximian.com>
19420 * mono-debug-debugger.c (write_class): don't call mono_class_init
19421 here, as even with the check for (!klass->init_pending), we get
19422 into a situation where we're hitting cycles in class
19423 initialization. Fixes #68816.
19425 2004-10-25 Zoltan Varga <vargaz@freemail.hu>
19427 * image.c: Avoid overwriting values in the loaded_images_hash when an
19428 assembly is loaded multiple times. Fixes #61152.
19430 * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
19431 so multiple satellite assemblies for the same name can be loaded.
19434 * mono_domain_assembly_preload: Actually return the loaded assembly,
19437 * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
19438 (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
19440 * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
19441 pending finalizers are not invoked after the appdomain has been
19442 unloaded. Fixes #67862.
19444 2004-10-22 Martin Baulig <martin@ximian.com>
19446 * mono-debug-debugger.c
19447 (mono_debugger_runtime_invoke): Don't box valuetypes.
19449 2004-10-22 Chris Toshok <toshok@ximian.com>
19451 * mono-debug-debugger.c (do_write_class): handle .cctors too, and
19452 don't hide private methods.
19454 2004-10-22 Sebastien Pouliot <sebastien@ximian.com>
19456 * icall.c: Allows the runtime to "share" (when known) the public key
19457 token of an assembly. This avoid the need to recalculate the token
19458 (from the public key) in managed code.
19460 2004-10-21 Chris Toshok <toshok@ximian.com>
19462 * debug-helpers.c (append_class_name): argh, revert last patch.
19464 2004-10-21 Chris Toshok <toshok@ximian.com>
19466 * debug-helpers.c (append_class_name): use '+' as the delimiter,
19467 not '/', so that it matches what the debugger uses to look up
19470 2004-10-21 Martin Baulig <martin@ximian.com>
19472 * mono-debug-debugger.c (mono_debugger_throw_exception): New
19473 public method; this is called each time an exception is thrown and
19474 allows the debugger to use exception catch points.
19476 2004-10-21 Martin Baulig <martin@ximian.com>
19478 * mono-debug-debugger.c (mono_debugger_handle_exception): Write
19479 the stack pointer and the exception object in some struct and pass
19480 that to the debugger.
19482 2004-10-21 Chris Toshok <toshok@ximian.com>
19484 * mono-debug-debugger.c (do_write_class): add instance/static
19485 event support. We don't expose "raise" or "other" yet.
19486 (event_is_static): new method.
19488 2004-10-20 Bernie Solomon <bernard@ugsolutions.com>
19490 * mono-debug-debugger.c
19491 (mono_debugger_handle_exception): Remove
19492 bogus return value for fussy compilers.
19494 2004-10-20 Martin Baulig <martin@ximian.com>
19496 * mono-debug-debugger.c
19497 (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
19498 (mono_debugger_handled_exception): Likewise.
19500 2004-10-20 Martin Baulig <martin@ximian.com>
19502 * mono-debug-debugger.h (MonoDebuggerEvent): Added
19503 MONO_DEBUGGER_EVENT_EXCEPTION.
19505 * mono-debug-debugger.c (mono_debugger_handle_exception): New
19506 public function to send the debugger a notification for an
19507 exception and inform it about a catch/finally clause.
19509 2004-10-19 Zoltan Varga <vargaz@freemail.hu>
19511 * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
19512 Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
19515 * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
19517 2004-10-18 Zoltan Varga <vargaz@freemail.hu>
19519 * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
19520 marshalled as [In,Out]. Fixes #58325.
19522 2004-10-14 Zoltan Varga <vargaz@freemail.hu>
19524 * reflection.c (mono_method_body_get_object): Implement some fields.
19526 2004-10-12 Martin Baulig <martin@ximian.com>
19528 * reflection.c (mono_reflection_bind_generic_parameters): Small
19529 fix, correctly retrieve our parent from a generic instance.
19531 2004-10-12 Martin Baulig <martin@ximian.com>
19533 * metadata.c (mono_metadata_generic_param_equal): We always have
19537 (mono_class_from_generic_parameter): We need to have an owner.
19538 (my_mono_class_from_generic_parameter): Likewise.
19540 * reflection.c (mono_reflection_setup_generic_class): Renamed to
19541 mono_reflection_create_generic_class() and added a new
19542 mono_reflection_setup_generic_class().
19543 (mono_reflection_initialize_generic_param): If we're a nested
19544 generic type and inherited from the containing class, set our
19545 owner to the outer class.
19547 2004-10-11 Zoltan Varga <vargaz@freemail.hu>
19549 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
19551 * reflection.c (mono_method_body_get_object): New function to create
19552 a MethodBody object.
19554 * object-internals.h object.h: Add MonoReflectionMethodBody structure.
19556 2004-10-11 Martin Baulig <martin@ximian.com>
19558 * metadata.c (_mono_metadata_type_equal): Renamed to
19559 do_mono_metadata_type_equal() and made static.
19561 2004-10-11 Martin Baulig <martin@ximian.com>
19563 * appdomain.c: Bump corlib version number to 28.
19565 2004-10-10 Martin Baulig <martin@ximian.com>
19567 * class-internals.h
19568 (MonoGenericInst): Added `MonoGenericContainer *container'.
19569 (MonoGenericMethod): Likewise.
19570 (MonoGenericContext): Likewise.
19571 (MonoGenericParam): Added `MonoGenericContainer *owner'.
19574 (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
19575 (do_mono_metadata_parse_generic_inst): Likewise.
19576 (mono_metadata_parse_type_full): New public method. This is the actual
19577 mono_metadata_parse_type() implementation - with an additional
19578 `MonoGenericContainer *' argument.
19579 (mono_metadata_parse_array_full): Likewise.
19580 (mono_metadata_parse_signature_full): Likewise.
19581 (mono_metadata_parse_method_signature_full): Likewise.
19582 (mono_metadata_parse_mh_full): Likewise.
19583 (mono_type_create_from_typespec): Likewise.
19584 (mono_metadata_interfaces_from_typedef_full): New public method;
19585 this is similar to the other _full() methods, but we take a
19586 `MonoGenericContext *' since we have to pass it to mono_class_get_full().
19587 (mono_metadata_parse_generic_param): Take an additional
19588 `MonoGenericContainer *' argument and lookup the MonoGenericParam
19589 from that container.
19590 (mono_metadata_generic_param_equal): New static method to compare
19591 two type parameters.
19592 (_mono_metadata_type_equal): New static method; takes an
19593 additional `gboolean signature_only' argument - if true, we don't
19594 compare the owners of generic parameters.
19595 (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
19596 with a TRUE argument - do a signature-only comparision.
19598 * loader.c: Use the new _full() methods and pass the
19599 MonoGenericContainer to them.
19601 * object-internals.h (MonoReflectionTypeBuilder): Added
19602 `MonoGenericContainer *generic_container' field.
19603 (MonoReflectionMethodBuilder): Likewise.
19605 2004-10-08 Zoltan Varga <vargaz@freemail.hu>
19607 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
19608 case initial images of dynamic assemblies.
19610 * reflection.c (mono_image_basic_init): Set 'initial_image' field.
19612 * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
19614 * reflection.c (mono_reflection_event_builder_get_event_info): Fix
19615 length of event->other array.
19616 (typebuilder_setup_events): Ditto.
19618 * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
19619 'assembly_by_name' and add an 'assemblies' list.
19621 * assembly.h assembly.c: Add a new search hook for determining whenever
19622 an assembly is already loaded. Use this instead of searching in the
19623 loaded_assemblies list.
19625 * domain.c appdomain.c: Implement the new search hook so loaded
19626 assemblies are now scoped by appdomain. Fixes #67727.
19628 2004-10-07 Zoltan Varga <vargaz@freemail.hu>
19630 * threads.c (mono_thread_attach): Initialize synch_lock field so
19631 mono_thread_detach works again.
19633 * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
19634 'lib' too. Fixes #63130.
19636 2004-10-06 Jackson Harper <jackson@ximian.com>
19638 * culture-info-tables.h: regenerated.
19640 2004-10-06 Zoltan Varga <vargaz@freemail.hu>
19642 * icall.c (ves_icall_Type_GetInterfaces): Include interfaces
19643 implemented by other interfaces in the result. Fixes #65764.
19645 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
19646 Handle unloadable modules without crashing.
19648 * image.c (load_modules): Revert the previous patch since modules must
19649 have a fixed index inside the array.
19651 * image.c (load_modules): Don't include native modules in the modules
19654 2004-10-05 Zoltan Varga <vargaz@freemail.hu>
19656 * reflection.h: Add param_defaults field.
19658 * reflection.c: Add support for parameter defaults in dynamic methods.
19661 * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
19662 an empty string when a type has no namespace. Fixes #64230.
19664 2004-10-04 Sebastien Pouliot <sebastien@ximian.com>
19666 * tabledefs.h: Added "internal" security actions to support non-CAS
19667 permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance.
19668 Note: they do not seems to be used anymore in 2.0 (new metadata format)
19670 2004-10-04 Zoltan Varga <vargaz@freemail.hu>
19672 * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
19673 constructor of abstract class. Fixes #61689.
19675 2004-10-04 Martin Baulig <martin@ximian.com>
19677 * class-internals.h (MonoGenericContainer): New type.
19678 (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
19679 `MonoGenericContainer *generic_container'.
19680 (MonoClass): Replaced `gen_params' and `num_gen_params' with
19681 `MonoGenericContainer *generic_container'.
19683 * metadata.c (mono_metadata_load_generic_params): Return a
19684 `MonoGenericContainer *' instead of a `MonoGenericParam *';
19685 removed the `num' argument.
19687 2004-10-03 Zoltan Varga <vargaz@freemail.hu>
19689 * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
19690 for dynamic images.
19692 * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
19695 * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
19697 * reflection.c: Save pe_kind and machine values into the generated
19700 * appdomain.c: Bump corlib version number.
19702 * object-internals.h: Reorganize layout of LocalBuilder.
19704 * class-internals.h class.c (mono_class_get_implemented_interfaces):
19705 New helper function.
19707 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
19708 created MonoType for dynamic types. Fixes #66180.
19710 2004-10-02 Ben Maurer <bmaurer@ximian.com>
19712 * threadpool.c: the ares hashtable needs a critical section around it.
19713 this prevents some nasty segfaults
19715 2004-10-02 Massimiliano Mantione <massi@ximian.com>
19717 * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
19718 on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
19721 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
19723 * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
19725 2004-09-30 Lluis Sanchez Gual <lluis@novell.com>
19727 * image.c: Always canonicalize image file names, to avoid loading
19728 the same assembly twice when referenced using a relative path.
19730 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
19732 * marshal.h marshal.c icall.c: Fix bugs in previous patch.
19734 * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
19736 * marshal.c: Fix warnings.
19738 2004-09-29 Geoff Norton <gnorton@customerdna.com>
19740 * marshal.c (mono_ftnptr_to_delegate): This method was improperly
19741 attempting to marshal the delegate_trampoline as the method_addr.
19742 This patch has a static hashtable of marshalled delegates so that
19743 we can map delegate_trampoline addresses back to delegates. This
19744 allows a delegate passed to managed code to be passed back into native
19747 2004-09-28 Zoltan Varga <vargaz@freemail.hu>
19749 * icall.c: Add GetFunctionPointerForDelegateInternal icall.
19751 * reflection.c (method_encode_code): Align method headers properly.
19754 2004-09-28 Lluis Sanchez Gual <lluis@novell.com>
19756 * marshal.c: In the runtime invoke wrapper, reset the abort
19757 exception if it is cached. This avoids the automatic rethrowal of
19758 the exception after the catch of the wrapper. Also check for pending
19759 interruptions before calling the managed method. This is done using
19760 the new method emit_thread_force_interrupt_checkpoint, since the
19761 normal checkpoint method is ignored when running the invoke wrapper.
19762 * object.c: If the abort exception is rethrown, set the abort_exc
19763 field of the thread, so it will be rethrown aftere every catch.
19764 * threadpool.c: Only run an interruption checkpoint if what has been
19765 requested is a stop of the thread (aborts will be ignored).
19766 * threads.c: By default, a thread will now never be interrumped while
19767 running the runtime invoke wrapper (this ensures that runtime_invoke
19768 will always return to the caller if an exception pointer is provided).
19769 There is a new special method mono_thread_force_interruption_checkpoint()
19770 to force an interruption checkpoint even if running a protected
19771 wrapper, which is used by the same runtime invoke wrapper to do a check
19774 2004-09-28 Lluis Sanchez Gual <lluis@novell.com>
19776 * object.c, object-internals.h: Implemented mono_release_type_locks,
19777 which releases the cctor locks held by a thread.
19778 * threads.c, threads.h: In thread_cleanup, release cctor locks held
19779 by a thread. Added mono_thread_exit() method to be used to safely stop
19782 2004-09-28 Raja R Harinath <rharinath@novell.com>
19784 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
19785 Move null check before dereference. Avoid indexing beyond the end
19786 of the 'modules' array.
19788 2004-09-28 Raja R Harinath <rharinath@novell.com>
19790 * metadata-internals.h (MonoImage): Add module_count field.
19791 * image.c (load_modules): Set image->module_count.
19792 (mono_image_load_file_for_image): Use image->module_count.
19793 * reflection.c (mono_image_load_module): Append to image->modules array
19794 of dynamic assembly.
19795 (mono_module_get_object): Fix loop to actually increment index.
19796 Use image->module_count.
19797 * assembly.c (mono_assembly_load_references): Use image->module_count.
19798 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
19801 2004-09-28 Zoltan Varga <vargaz@freemail.hu>
19803 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
19804 Avoid assert on generic types.
19806 2004-09-26 Zoltan Varga <vargaz@freemail.hu>
19808 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
19810 * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
19812 * reflection.c (mono_reflection_marshal_from_marshal_spec): New
19813 function to convert a MarshalSpec structure to its managed counterpart.
19815 * reflection.c: Fix warnings.
19817 * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
19820 * icall.c (mono_create_icall_signature): Fix build.
19822 2004-09-25 Zoltan Varga <vargaz@freemail.hu>
19824 * icall.c: Add MakePointType icall.
19826 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
19829 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19831 * threadpool.c: reuse allocated slots in the queue.
19833 2004-09-24 Zoltan Varga <vargaz@freemail.hu>
19835 * object-internals.h (MonoReflectionDllImportAttribute): New structure.
19837 * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
19839 * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
19842 * tabledefs.h: Add constants for pinvoke attributes BestFit and
19843 ThrowOnUnmappableChar.
19845 * icall.c (ves_icall_Type_GetPacking): New icall.
19847 2004-09-24 Martin Baulig <martin@ximian.com>
19849 * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
19851 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19854 (mono_domain_set): allow setting a domain that is being unloaded.
19855 (mono_domain_unload): invoke the DomainUnload callbacks in the domain
19858 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
19860 * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
19861 the GetCustomAttributes icall.
19863 2004-09-23 Martin Baulig <martin@ximian.com>
19865 * object-internals.h (MonoReflectionGenericParam): Replaced
19866 'has_ctor_constraint', `has_reference_type' and `has_value_type'
19867 with `guint32 attrs'.
19869 2004-09-23 Martin Baulig <martin@ximian.com>
19871 * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
19873 2004-09-23 Martin Baulig <martin@ximian.com>
19875 * object-internals.h (GenericParameterAttributes): New enum.
19877 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
19879 * object-internals.h (MonoEventInfo): Add 'other_methods' field.
19881 * class.c (init_events): Fill out event->other field.
19883 * class.c: Fix warnings.
19885 * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
19887 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
19889 * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
19890 walk which doesn't supply the IL offset.
19892 2004-09-22 Martin Baulig <martin@ximian.com>
19894 * reflection.c (mono_reflection_setup_internal_class): If we're
19895 System.ValueType, System.Object or System.Enum, set
19896 `klass->instance_size' and create the vtable.
19897 (mono_reflection_create_internal_class): If we're an enum type,
19898 get the base class from our current corlib.
19900 2004-09-22 Zoltan Varga <vargaz@freemail.hu>
19902 * reflection.h (MonoResolveTokenError): New type.
19904 * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
19907 * icall.c: Add an 'error' argument to the ResolveToken icalls.
19909 2004-09-22 Lluis Sanchez Gual <lluis@novell.com>
19911 * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
19912 Support also calling constructors, but only for already allocated objects.
19914 2004-09-17 Geoff Norton <gnorton@customerdna.com>
19916 * reflection.c (type_get_qualified_name): If the klass is null
19917 return the typename to avoid a NullRefEx.
19918 (encode_cattr_value): Get the qualified name of the boxed type,
19919 not the underlying enumtype. Fixes #62984.
19921 2004-09-21 Zoltan Varga <vargaz@freemail.hu>
19923 * marshal.c: Fix problems with previous checkin.
19925 2004-09-21 <vargaz@freemail.hu>
19927 * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
19928 existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
19930 * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
19932 2004-09-21 Geoff Norton <gnorton@customerdna.com>
19934 * icall.c (ves_icall_MonoType_GetElementType): GetElementType
19935 should only return a type for pointers, arrays, and passbyref types.
19938 2004-09-21 Martin Baulig <martin@ximian.com>
19940 * domain.c (mono_debugger_check_runtime_version): New public
19943 * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.
19945 2004-09-20 Sebastien Pouliot <sebastien@ximian.com>
19947 * reflection.c: Added missing sort to the declarative security
19948 attributes table. MS implementation stops seeing the attributes if the
19949 token number regress in the table (as shown by ildasm and permview).
19951 2004-09-20 Zoltan Varga <vargaz@freemail.hu>
19953 * object-internals.h (MonoReflectionModule): Add 'token' field.
19955 * reflection.c (mono_reflection_get_token): Add support for Module
19957 (mono_module_get_object): Set 'token' field.
19958 (mono_module_file_get_object): Set 'token' field.
19960 * icall.c: Add new Assembly and Module icalls.
19962 * appdomain.c: Bump corlib version.
19964 2004-09-19 Zoltan Varga <vargaz@freemail.hu>
19966 * loader.h loader.c class.h class.c: Add helper functions for obtaining
19967 tokens of metadata objects.
19969 * reflection.h reflection.c (mono_reflection_get_token): New function
19970 to obtain the token of a metadata object.
19972 * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
19974 2004-09-17 Zoltan Varga <vargaz@freemail.hu>
19976 * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
19978 * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
19980 2004-09-16 Sebastien Pouliot <sebastien@ximian.com>
19982 * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
19983 * object-internals.h: Added 3 MonoArray* members to MonoReflection
19984 AssemblyBuilder to access the permissions set in the class lib.
19985 * reflection.c: Added security attributes encoding step in
19986 mono_image_build_metadata.
19987 * tabledefs.h: Added new security actions defined in 2.0:
19988 LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
19990 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
19992 * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
19995 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
19997 * locales.c: nullify the ICU_collator member of CompareInfo when it is
19998 finalized. There where random SIGSEVs at program termination, when
19999 an object being finalized was trying to do a string comparison and
20000 the current culture was already finalized.
20002 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20004 * threads.c: call thread_cleanup before finishing the thread if we get
20007 2004-09-16 Zoltan Varga <vargaz@freemail.hu>
20009 * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
20010 assemblies from the parent. Fixes #65665.
20012 2004-09-15 Zoltan Varga <vargaz@freemail.hu>
20014 * metadata.c (mono_metadata_parse_type): Fix parsing of custom
20017 2004-09-14 Bernie Solomon <bernard@ugsolutions.com>
20019 * reflection.h: add prototype for mono_get_dbnull_object
20020 * reflection.c: add prototypes for get_default_param_value_blobs
20021 and mono_get_object_from_blob for fussier compilers
20023 2004-09-14 Lluis Sanchez Gual <lluis@novell.com>
20025 * object.c: Added a "done" flag to TypeInitializationLock. This avoids
20026 false deadlock checks in class initialization.
20028 2004-09-13 Zoltan Varga <vargaz@freemail.hu>
20030 * image.c (mono_image_addref): Fix comment.
20032 * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
20035 2004-09-12 Jambunathan K <kjambunathan@novell.com>
20037 * reflection.c (mono_param_get_objects): Modified to return
20038 ParameterInfo.DefaultValue object.
20040 (get_default_param_value_blobs):
20041 (mono_get_object_from_blob):
20042 (mono_get_dbnull_object): New helper routines.
20044 * object.c (mono_get_constant_value_from_blob): New helper routine
20045 carved out from get_default_field_value ()
20047 * object-internals.h (mono_get_constant_value_from_blob): Added
20048 function declaration.
20050 2004-09-11 Zoltan Varga <vargaz@freemail.hu>
20052 * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load
20053 referenced assemblies. Fixes #62135.
20055 * exception.h exception.c (mono_get_exception_file_not_found2): New
20058 2004-09-10 Zoltan Varga <vargaz@freemail.hu>
20060 * class.h class.c: Add mono_type_get_underlying_type ().
20062 2004-09-09 Geoff Norton <gnorton@customerndna.com>
20064 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
20065 Fix GetTypes() to support dynamically created assemblies.
20067 2004-09-09 Zoltan Varga <vargaz@freemail.hu>
20069 * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
20071 * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
20074 * reflection.h reflection.c loader.c: Allow dynamic construction of
20075 pinvoke methods. Fixes #65571.
20077 * reflection.c (mono_reflection_get_type): Revert previous change since
20078 it causes regressions.
20080 2004-09-08 Martin Baulig <martin@ximian.com>
20082 * class.c (class_compute_field_layout): Don't call
20083 mono_class_layout_fields() for open generic instances.
20085 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
20086 * threads.c appdomain.c: fix typo in GC macro
20088 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20090 * threads.c: don't call mono_thread_detach() in start_wrapper(),
20091 avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
20093 2004-09-08 Zoltan Varga <vargaz@freemail.hu>
20095 * image.c (mono_image_close): Applied patch from
20096 vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
20097 assembly is loaded multiple times from data.
20099 * image.c (mono_image_open): Fix warning.
20101 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
20103 * reflection.h reflection.c icall.c: Only call TypeResolve handlers
20104 once. Fixes #58334.
20106 * reflection.c (mono_reflection_create_runtime_class): Initialize
20107 klass->nested_classes. Fixes #61224.
20109 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
20111 * threads.c: sched_yield() on exit, to allow threads to quit.
20113 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
20115 * object.c (mono_unhandled_exception): Remove leftover debug code.
20117 2004-09-07 Atsushi Enomoto <atsushi@ximian.com>
20119 * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
20121 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
20123 * marshal.c (emit_marshal_array): Really null terminate string arrays.
20125 * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
20127 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
20129 * marshal.c (emit_marshal_array): Null terminate string arrays.
20131 * marshal.c (raise_auto_layout_exception): Fix warning.
20133 * reflection.c (mono_param_get_objects): Initialize the default value
20134 with DBNull.Value, not null. Fixes #62123.
20136 2004-09-01 Miguel de Icaza <miguel@ximian.com>
20138 * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
20139 throw an exception with a cute explanation.
20141 2004-09-06 Dick Porter <dick@ximian.com>
20143 * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
20144 Close the new process's thread handle, as we don't use it. The
20145 handle stays around forever otherwise.
20147 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
20149 * object.c (arith_overflow): Fix warning.
20151 * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
20152 calling conventions in method refs. Fixes #65352.
20154 * reflection.c: Fix warnings.
20156 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
20158 * icall.c: Add a new icall for Array.Clear
20160 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
20162 * object.c: When allocating an array, we have to throw
20163 an overflow exception if any of the lengths are < 0.
20165 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
20167 * marshal.h marshal.c: Free unmanaged memory allocated by managed code
20168 properly. Also move implementation of string array marshalling to
20169 managed code. Fixes #42316.
20171 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20173 * assembly.c: provide more information when loading an assembly fails.
20175 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20177 * filewatcher.c: don't expect the development fam package to be
20180 2004-09-03 Zoltan Varga <vargaz@freemail.hu>
20182 * marshal.c: Make a copy of the signature cookie since it will be
20183 freed by the caller.
20185 * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
20187 * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
20189 * metadata.c (mono_metadata_free_marshal_spec): New function to free
20192 * marshal.c: More refactoring.
20194 * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
20197 2004-09-03 Lluis Sanchez Gual <lluis@novell.com>
20199 * object.c: In mono_message_invoke, fill the output parameter array after
20200 calling the managed method (it was done before the call). This fixes
20203 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
20205 * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
20208 2004-09-02 Martin Baulig <martin@ximian.com>
20210 * class.c (mono_class_instance_size): Don't allow generic type
20211 definitions or open generic instances.
20212 (mono_class_array_element_size): If we're a value type, call
20213 mono_class_instance_size() on the original class.
20215 * metadata.c (mono_type_size, mono_type_stack_size): Correctly
20216 handle generic instances.
20218 * mono-debug-debugger.c (write_type): Handle generic instances
20221 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
20223 * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
20224 the allocation request fails. Fixes #65089.
20226 * object.c (mono_runtime_free_method): Do not call mono_free_method.
20228 * object.c (mono_runtime_free_method): New function to free a dynamic
20231 * marshal.c (mono_delegate_free_ftnptr): New function to free the
20232 delegate trampoline.
20234 * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
20235 with hasthis as dynamic,
20237 * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
20239 * domain.c (mono_jit_info_table_remove): New function to remove an
20240 entry from the jit info table.
20242 * class-internals.h (MonoMethod): Add 'dynamic' field.
20244 * loader.c: Fix warnings.
20246 2004-09-01 Martin Baulig <martin@ximian.com>
20248 * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
20249 instead of mono_debugger_lock() because the latter one is a no-op
20250 unless running in the debugger.
20252 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
20254 * class.c (class_compute_field_layout): Classes with auto-layout or
20255 reference fields are not blittable.
20257 2004-09-01 Dick Porter <dick@ximian.com>
20259 * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
20260 mono_image_get_filename() to get the assembly location.
20263 * metadata.h: Fix compile warnings
20265 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
20267 * class.c (class_compute_field_layout): System.Object is blittable.
20269 * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
20270 as in/out. Fixes #59909.
20272 2004-09-01 Martin Baulig <martin@ximian.com>
20274 * metadata.h (MONO_TYPE_ISREFERENCE): Call
20275 mono_metadata_generic_inst_is_valuetype() if we're a generic
20276 instance to check whether our underlying type is a reference type.
20278 2004-09-01 Martin Baulig <martin@ximian.com>
20280 * metadata.c (mono_type_size): If we're a generic instance, call
20281 mono_class_value_size() for value types.
20283 2004-08-31 Zoltan Varga <vargaz@freemail.hu>
20285 * marshal.c: Implement more custom marshalling functionality. Fixes
20288 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
20290 * mono-debug.c, debug-mono-symfile.c: add some locking love.
20292 2004-08-30 Zoltan Varga <vargaz@freemail.hu>
20294 * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
20296 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
20298 * icall.c: Fix some warnings.
20300 * threads.c (abort_appdomain_thread): Fix unref errors.
20301 (mono_thread_current): Fix THREAD_DEBUG define.
20303 2004-08-29 Zoltan Varga <vargaz@freemail.hu>
20305 * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
20307 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
20309 2004-08-28 Zoltan Varga <vargaz@freemail.hu>
20311 * marshal.c (mono_marshal_get_native_wrapper): Add support for byref
20314 2004-08-28 Martin Baulig <martin@ximian.com>
20317 (mono_metadata_generic_inst_is_valuetype): New public function.
20319 * metadata.h (MONO_TYPE_ISSTRUCT): Call
20320 mono_metadata_generic_inst_is_valuetype() if we're a generic
20321 instance to check whether our underlying type is a valuetype.
20323 2004-08-26 Zoltan Varga <vargaz@freemail.hu>
20325 * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
20328 2004-08-25 Martin Baulig <martin@ximian.com>
20330 * loader.c (mono_get_method_from_token): Abstract methods can also
20331 be generic and thus have type parameters.
20333 * metadata-internals.h
20334 (MonoDynamicImage): Added `GPtrArray *gen_params'.
20336 * reflection.c (mono_image_get_generic_param_info): Don't create a
20337 metadata row, just add an entry to the `gen_params' array.
20338 (build_compressed_metadata): Sort the `gen_params' array and then
20339 actually create the metadata.
20341 2004-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20343 * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
20345 2004-08-25 Zoltan Varga <vargaz@freemail.hu>
20347 * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
20349 2004-08-24 Martin Baulig <martin@ximian.com>
20351 * class.cs (mono_class_is_subclass_of): Like an interface, a
20352 generic instance also derives from System.Object.
20354 2004-08-23 Zoltan Varga <vargaz@freemail.hu>
20356 * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
20357 custom modifiers to be in any order. Fixes #61990.
20359 2004-08-20 Zoltan Varga <vargaz@freemail.hu>
20361 * object.c: Register mono_object_new_fast icall.
20363 * object.c (mono_class_get_allocation_ftn): Return to calling
20364 mono_object_new_fast, since it seems faster to compute the object
20365 size in unmanaged code than passing it as a parameter.
20367 * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
20369 * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
20370 this function with Boehm as the oom handler, so we don't have to check
20371 the result of GC_malloc.
20373 * object.c: Remove checks for oom.
20375 * object.h object.c (mono_class_get_allocation_ftn): New function to
20376 return the icall which can be used to allocate an instance of a given
20379 * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
20381 * class-internals.h: Add 'enabled' field.
20383 2004-08-19 Zoltan Varga <vargaz@freemail.hu>
20385 * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
20387 2004-08-18 Jambunathan K <kjambunathan@novell.com>
20388 * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
20391 2004-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
20393 * appdomain.c: use the Tls function for appdomain too,
20394 at Zoltan's request. Actually return in mono_context_get
20396 * appdomain.c, profiler.c, threads.c: use __thread
20398 2004-08-18 Zoltan Varga <vargaz@freemail.hu>
20400 * appdomain.c threads.c: Call GC_CreateThread on windows.
20402 * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
20403 multiple libraries since this don't work on windows.
20405 2004-08-18 Martin Baulig <martin@ximian.com>
20407 * class-internals.h
20408 (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
20411 * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
20412 MonoMethodNormal since we also need it for abstract and interface
20416 (build_compressed_metadata): Sort the GenericParam table.
20417 (mono_image_create_token): Added `gboolean create_methodspec'
20418 argument; this is false when generating a MethodImpl token.
20419 (reflection_methodbuilder_to_mono_method): Abstract and interface
20420 methods may also have generic parameters.
20422 2004-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
20424 * appdomain.c: thread local alloc
20426 2004-08-17 Martin Baulig <martin@ximian.com>
20428 * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
20431 (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
20434 * class.c (mono_type_get_full_name): New public function.
20435 (mono_type_get_name): Don't include the type arguments.
20437 2004-08-16 Zoltan Varga <vargaz@freemail.hu>
20439 * Makefile.am: Build static versions of libmetadata and libmonoruntime
20440 for inclusion into the mono executable.
20442 2004-08-16 Martin Baulig <martin@ximian.com>
20444 * metadata.c (do_mono_metadata_parse_generic_inst): Store the
20445 MonoGenericInst, not the MonoType in the `generic_inst_cache'.
20447 2004-08-14 Martin Baulig <martin@ximian.com>
20449 * class.c (dup_type): Also copy the `byref' field.
20451 2004-08-15 Zoltan Varga <vargaz@freemail.hu>
20453 * reflection.c (create_dynamic_mono_image): Revert the last change
20454 since it breaks bootstrap.
20456 2004-08-14 Zoltan Varga <vargaz@freemail.hu>
20458 * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
20460 * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
20461 not free them with g_free.
20463 2004-08-11 Martin Baulig <martin@ximian.com>
20465 * reflection.c (mono_reflection_setup_internal_class): Also call
20466 mono_class_setup_mono_type() if we already have a `tb->type.type'.
20468 2004-08-09 Sebastien Pouliot <sebastien@ximian.com>
20470 * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when
20471 called during default (first) AppDomain creation. Keep track of
20472 Evidence when loading assemblies.
20474 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
20476 * opcodes.c, opcodes.h: reduce runtime relocations.
20478 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
20480 * culture-info.h, locales.c: fixes and chages to sue the new
20481 optimized format of the locale data.
20482 * culture-info-tables.h: regenerated.
20484 2004-08-06 Geoff Norton <gnorton@customerdna.com>
20486 * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
20488 2004-08-05 Sebastien Pouliot <sebastien@ximian.com>
20490 * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
20491 ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
20492 * domain-internals.h: icall declaration.
20493 * icall.c: icall registration.
20494 * object-internals.h: New fields in MonoAssembly for CAS.
20496 2004-08-05 Duncan Mak <duncan@ximian.com>
20498 * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
20501 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
20503 * reflection.c: fix to deal with object[] arrays in custom ctors
20506 2004-08-05 Martin Baulig <martin@ximian.com>
20508 * class.c (mono_class_array_element_size): Added support for
20509 generic instances and correctly handle "recursive" types.
20511 2004-08-05 Zoltan Varga <vargaz@freemail.hu>
20513 * assembly.c: Fix warnings.
20515 2004-08-04 Martin Baulig <martin@ximian.com>
20518 (mono_type_get_name_recurse): Added `gboolean include_arity'
20519 argument specifying whether or not we should include the generic
20520 arity in the type name.
20521 (_mono_type_get_name): New static function.
20522 (mono_class_setup_vtable): If we're a generic instance, don't
20523 include the generic arity in the names of explicit method
20526 2004-08-03 Martin Baulig <martin@ximian.com>
20528 * class.c (mono_type_get_name_recurse): Enclose the generic type
20529 arguments in `<', '>'.
20531 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
20533 * gc.c: make GC warning messages use the trace API, they are just
20534 noise to most of the users.
20536 2004-08-03 Martin Baulig <martin@ximian.com>
20538 * debug-mono-symfile.c (read_string): Correctly read the string.
20540 2004-07-30 Zoltan Varga <vargaz@freemail.hu>
20542 * marshal.c (signature_dup_add_this): Fix bug in previous patch.
20544 * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
20546 (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
20548 2004-07-30 Martin Baulig <martin@ximian.com>
20550 * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
20551 Reflect latest symbol writer changes.
20553 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
20555 * object.c: always create an object if null is passed
20556 to Invoke() where a valuetype is expected.
20558 2004-07-29 Bernie Solomon <bernard@ugsolutions.com>
20560 * marshal.c (mono_marshal_init): make managed
20561 signatures match native ones better for 64bits.
20563 2004-07-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20565 * appdomain.c: hack to build correctly the private bin path on windows.
20568 2004-07-28 Lluis Sanchez Gual <lluis@novell.com>
20570 * assembly.c: Load mscorlib from the correct framework directory
20571 (mono/<version>/mscorlib.dll).
20572 * appdomain.h: Added prototypes for new functions.
20573 * internals.h: Added some prototypes.
20574 * domain.c: When initializing the runtime, get from the executable and
20575 the configuration files the runtime version that the app supports.
20576 Added support methods for reading app.exe.config. Added list of versions
20577 supported by the JIT. Added two new methods: mono_init_from_assembly,
20578 which initializes the runtime and determines the required version from
20579 the provided exe file, and mono_init_version, which initializes
20580 the runtime using the provided version.
20581 * icall.c: Get machine.config from version-specific directory.
20582 * reflection.c: When generating an image, embed the version number
20583 of the current runtime.
20585 2004-07-28 Dick Porter <dick@ximian.com>
20588 (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
20589 returned sockaddr size before creating the remote address object.
20590 Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
20593 2004-07-28 Dick Porter <dick@ximian.com>
20595 * locales.c (string_invariant_compare_char): Fix invariant char
20596 compares between upper and lower cases. Fixes bug 61458.
20598 2004-07-27 Ben Maurer <bmaurer@ximain.com>
20600 * marshal.c: actually cache stelem.ref wrappers.
20602 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
20604 * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image
20605 sections and remove the mono_cli_rva_map () function.
20607 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
20609 * debug-mono-symfile.c: fix one more endianess issue, from a patch
20610 by Geoff Norton (<gnorton@customerdna.com>).
20612 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
20614 * class.c: fix class loads for pointer types (typeof(int) !=
20617 2004-07-27 Martin Baulig <martin@ximian.com>
20619 * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
20620 reading the debugging information from an external ".mdb" file.
20622 2004-07-24 Martin Baulig <martin@ximian.com>
20624 * reflection.c (mono_image_get_type_info): Only write a class
20625 layout entry if we actually have a size or a packing size.
20627 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
20629 * reflection.c (type_get_fully_qualified_name):
20630 insert cast to get type checking of ?: with non-gcc compilers
20632 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
20634 * rand.c: use g_getenv for both lookups of
20637 2004-07-17 Martin Baulig <martin@ximian.com>
20639 * reflection.c (mono_reflection_bind_generic_method_parameters):
20640 Set `gmethod->reflection_info'.
20642 2004-07-17 Martin Baulig <martin@ximian.com>
20644 * class.c (mono_class_create_from_typedef): Insert the newly
20645 created class into the hash table before computing the interfaces
20646 since we could be called recursively.
20648 2004-07-16 Ben Maurer <bmaurer@ximain.com>
20650 * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
20651 function to implement stelem.ref in managed code
20652 * class-internals.h, debug-helpers.c: a new wrapper type
20655 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
20657 * gc.c: allow GC handles to work even when no GC is compiled in.
20658 Fix part of bug #61134 (GetAddrOfPinnedObject).
20660 2004-07-13 Peter Williams <peter@newton.cx>
20662 * process.c (complete_path): Make sure we don't attempt to execute
20665 2004-07-12 Geoff Norton <gnorton@customerdna.com>
20667 * DateTime.cs: Patch for bug #61112. Our DateTime wasn't roundtripping over timezone
20668 boundaries properly. This patch checkes ToLocalTime() to see if we're tripping over a boundary
20669 and will add/subtract the hour if needed
20671 2004-07-12 Martin Baulig <martin@ximian.com>
20673 * reflection.c (mono_field_get_object): If we have
20674 `field->generic_info', take the attributes from
20675 `field->generic_info->generic_type'.
20677 2004-07-12 Martin Baulig <martin@ximian.com>
20679 * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
20680 This function must be called before initializing the runtime.
20681 (mono_debug_init_1): New function; call this after initializing
20682 the runtime, but before loading the assembly. It tells the
20683 debugger to load corlib and the builtin types.
20685 * mono-debug-debugger.c: Did some larger changes in the debugging
20686 code; support recursive class declarations, make sure we actually
20689 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20691 * debug-helpers.c: undo my previous patch and fixed the real issue in
20692 ../mini/exceptions-x86.c
20694 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20696 * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
20697 when no HOME env. variable was set and a NullRef was thrown in a .cctor
20698 called from other .cctors.
20700 2004-07-09 Miguel de Icaza <miguel@ximian.com>
20702 * loader.c: Removed the mono_loader_wine_init hack now that we are
20703 doing a managed version of Windows.Forms.
20705 2004-07-09 Ben Maurer <bmaurer@ximian.com>
20707 * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
20708 threadpool.c, threads.c: remove static data from rootset.
20710 2004-07-09 Dick Porter <dick@ximian.com>
20712 * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
20713 Don't do any more processing if the matched length was 0. It was
20714 increasing the size of the string before. Fixes bug 61167.
20716 2004-07-09 Dick Porter <dick@ximian.com>
20720 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
20721 Add support for SO_PEERCRED if its available.
20723 2004-07-09 Peter Bartok <pbartok@novell.com>
20724 * loader.c: winelib.exe.so error message is now only displayed if
20725 MONO_DEBUG is set. To help us avoid questions when people are trying
20726 out the new Managed.Windows.Forms.
20728 2004-07-08 Zoltan Varga <vargaz@freemail.hu>
20730 * class-internals.h debug-helpers.c marshal.c: Add new wrapper types
20731 for isinst and castclass wrappers.
20733 * class-internals.h icall.c: Move registration and lookup of JIT icalls
20734 to libmetadata from the JIT, so they could be used by the marshalling
20735 code and the interpreter.
20737 * marshal.c: Register marshalling related JIT icalls here instead of
20738 in mini.c. Use CEE_MONO_ICALL instead of the family of
20739 CEE_MONO_PROC<x> opcodes to call marshalling functions.
20741 * metadata.h: Remove unneeded marshalling conversions.
20743 * opcodes.c: Update for new opcodes.
20745 2004-07-08 Martin Baulig <martin@ximian.com>
20747 * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
20748 (mono_debug_get_domain_data): Make this function static.
20750 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
20752 * gc.c, object.h: add nice GC handle API for embedders.
20754 2004-07-06 Ben Maurer <bmaurer@ximian.com>
20756 * reflection.c: more changes for the new api
20758 * object.c: When we reflect on a field w/ a constant value, it
20759 will not have a memory location, so we must access metadata. Also,
20760 allow easier reading of strings so that we can read them from
20763 * class.c (mono_class_layout_fields): no need for literal fields here.
20765 * class-internals.h: api changes for const fields
20767 * icall.c (ves_icall_get_enum_info): use new apis for const fields
20769 2004-07-06 Martin Baulig <martin@ximian.com>
20771 * mono-debug.h: Increment version number to 44.
20773 * mono-debug.c (mono_debug_add_wrapper): The second argument is
20774 now a gpointer, rewrote this whole method.
20776 * mono-debug-debugger.c (mono_debugger_add_wrapper): New
20777 function. Add information about the wrapper in a new "misc table".
20779 * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
20780 for the new misc table.
20782 2004-07-05 Zoltan Varga <vargaz@freemail.hu>
20784 * metadata-internals.h image.c: Add a cache for helper signatures.
20786 * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
20788 2004-07-03 Zoltan Varga <vargaz@freemail.hu>
20790 * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
20791 delegates from a delegate. Fixes #61033.
20793 * marshal.c: Fix managed->native stringbuilder marshalling. Implement
20794 marshalling of stringbuilder arrays. Fixes #59900.
20796 2004-07-02 Zoltan Varga <vargaz@freemail.hu>
20798 * icall.c: Add EnumBuilder:setup_enum_type icall.
20800 2004-06-30 Ben Maurer <bmaurer@ximian.com>
20802 * icall.c: Added a new icall for the property version of
20803 OffsetOfStringData.
20805 2004-06-30 Zoltan Varga <vargaz@freemail.hu>
20807 * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
20808 it has a constant size across platforms.
20810 * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
20813 2004-06-29 Martin Baulig <martin@ximian.com>
20815 * mono-debug.c (mono_debug_add_method): Protect the whole function
20816 in mono_debugger_lock(), not just parts of it.
20818 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
20820 * reflection.c: make sure padding bytes in heaps are zeroed.
20822 2004-06-24 David Waite <mass@akuma.org>
20824 * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
20825 image.c, loader.c, locales.c, marshal.c, metadata.c,
20826 mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
20827 string-icalls.c, threads.c: change to C90-style comments from C99 /
20830 2004-06-24 Dick Porter <dick@ximian.com>
20833 (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
20834 return createdNew. Fixes bug 60412.
20837 * icall.c: Add createdNew parameter to CreateMutex icall
20839 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
20841 * reflection.c, object-internals.h: save default value in params.
20843 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20845 * appdomain.c: for paths in PrivateBinPath that are absolute, there's
20846 no need to build a new path combining that with the application base.
20849 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
20851 * reflection.c: fixed minor standard compliance issues.
20853 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
20855 * reflection.c: fixed issue with encoding some custom attributes
20856 (arrays in properties and fields, bug #60411).
20858 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20860 * reflection.c: fix start address when copying the public key token.
20862 2004-06-23 Martin Baulig <martin@ximian.com>
20864 * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
20865 the `exc' object in a static object to put it into the GC's root set.
20867 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
20869 * reflection.c: make mono_reflection_setup_internal_class ()
20870 callable a second time to setup a new parent class.
20872 2004-06-23 Dick Porter <dick@ximian.com>
20874 * threads.c: Check for WAIT_IO_COMPLETION return values.
20876 2004-06-22 Sebastien Pouliot <sebastien@ximian.com>
20878 * appdomain.c: Removed the g_free on the public key token. Now copy
20879 the pk token string into the MonoAssemblyName buffer using g_strlcpy.
20880 * assembly.c: Added public key token string value when loading
20881 assemblies. Fix bug #60439.
20882 * icall.c: Added missing informations (like public key) in
20883 GetReferencedAssemblies. Fix #60519.
20884 * image.h: Changed definition for public key token from const char*
20885 public_tok_value to guchar public_key_token [17];
20886 * reflection.c: Updated for changes to public key token.
20888 2004-06-22 Lluis Sanchez Gual
20890 * icall.c: In ves_icall_InternalExecute, when setting a filed, also look
20891 for the field in base classes.
20893 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
20895 * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
20896 mark headers as not supported, they are installed only for use by the
20899 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
20901 * *.c, *.h: avoid namespace pollution in public headers.
20903 2004-06-21 Martin Baulig <martin@ximian.com>
20905 * exception.c (mono_get_exception_security): It's in
20906 "System.Security", not in "System".
20908 * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
20909 the exception classes.
20911 2004-06-21 Martin Baulig <martin@ximian.com>
20913 * mono-debug-debugger.c (mono_debugger_unhandled_exception):
20914 Protect the exception object from being finalized.
20916 2004-06-21 Martin Baulig <martin@ximian.com>
20918 * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
20921 2004-06-21 Sebastien Pouliot <sebastien@ximian.com>
20923 * reflection.c: Load the assembly in mono_reflection_type_from_name,
20924 if it was not loaded before. Fix parts of #60439.
20926 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
20928 * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
20929 code that was broken since Ben's change: wrappers are now
20930 dependent on the method signature only again.
20932 2004-06-21 Martin Baulig <martin@ximian.com>
20934 * mono-debug-debugger.c (write_class): Cleaned this up a bit and
20935 added interface support.
20937 2004-06-21 Martin Baulig <martin@ximian.com>
20939 * class.c (mono_vtable_get_static_field_data): New public method.
20941 2004-06-20 Atsushi Enomoto <atsushi@ximian.com>
20943 * filewatcher.c : Windows build fix to be compliant with API changes.
20945 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
20947 * class.h, class.c: more accessors.
20948 * metadata.h, metadata.c: prepare for hiding MonoType and
20949 MonoMethodSignature: people should use the accessors from now on
20950 outside of the tree.
20952 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
20954 * *.c, *.h: more API cleanups.
20956 2004-06-18 Jackson Harper <jackson@ximian.com>
20958 * assembly.c: Trace loading assemblies.
20959 * loader.c: Trace loading native libraries.
20960 * mono-config.c: Trace loading config files.
20962 2004-06-18 Dick Porter <dick@ximian.com>
20964 * locales.c: Tell ICU the lengths of strings, it can cope with
20965 embedded \0 then. Fixes bug 59274, and doesn't break bug 55822.
20967 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
20969 * image.c: swapped name/filename;
20971 2004-06-18 Martin Baulig <martin@ximian.com>
20973 * mono-debug-debugger.c (write_class): Write the parent class at
20974 the end of the header.
20976 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
20978 * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
20980 2004-06-17 Raja R Harinath <rharinath@novell.com>
20982 * Makefile.am (PLATFORM_LIB): New. Possibly refer to ../os/libmonoos.la.
20983 (bundle_obj): New conditional define.
20984 (BUILT_SOURCES): Remove.
20985 ($(bundle_srcs)): Make parallel-make safe.
20986 (libmonoruntime_la_LIBADD): Make unconditional.
20987 (libmetadata_la_LIBADD): Make unconditional. Refer to $(bundle_obj).
20988 (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
20990 2004-06-17 Atsushi Enomoto <atsushi@ximian.com>
20992 * culture-info-tables.h: It was inconsistent with the latest
20995 2004-06-17 Zoltan Varga <vargaz@freemail.hu>
20997 * assembly.c (mono_assembly_open): Fix crash when the assembly can't
21000 * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
21003 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
21005 * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
21006 cleaned up public header threads.h.
21008 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
21010 * Makefile.am, *.c, *.h: more API cleanups.
21012 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
21014 * Makefile.am: removed monosn from compilation.
21015 * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
21016 debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
21017 image.c, image.h, loader.c, marshal.c, metadata-internals.h,
21018 metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
21019 mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
21020 reflection.c, reflection.h, verify.c: more API cleanups and fixes.
21022 2004-06-15 Jackson Harper <jackson@ximian.com>
21024 * assembly.c: Make locales lower case when searching the GAC for
21025 assemblies. gacutil will always make locales lowercase when
21026 installing so this effectively makes them case insensitive.
21028 2004-06-15 Lluis Sanchez Gual <lluis@ximian.com>
21030 * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
21031 * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
21032 parameter which allows to choose whether the wait can be interrupted or
21033 not. Also added the method mono_monitor_enter(), which locks the monitor
21034 using an infinite wait and without allowing interruption.
21035 In the Monitor.Enter and Wait icalls, retry the lock if the wait is
21037 * object.h: Added new fields in MonoThread. suspend_event holds the event
21038 used to susped/resume the thread. synch_lock is the lock object to use for
21039 modifying the thread state.
21040 * threads.c: Use the new synch_lock object for locking, instead of "this",
21041 which can generate deadlocks.
21042 Moved thread state change in Thread.Sleep and Thread.Join from managed
21043 to unmanaged code. This avoids a deadlock when the thread was suspended
21044 just after acquiring the thread lock.
21045 In general, use mono_monitor_enter instead of mono_monitor_try_enter.
21046 Implemented Thread.Suspend using an event instead of ThreadSuspend,
21047 which is not fully implemented in the io-layer.
21048 * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
21050 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
21052 * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
21053 threads-types.h: more API cleanups.
21055 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
21057 * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
21058 domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
21059 threadpool.c, threads.c: first pass at the exported API cleanup.
21061 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
21063 * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
21065 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21067 * icall.c: added internalGetHome.
21069 2004-06-14 Dick Porter <dick@ximian.com>
21071 * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
21072 possible to return successfully when '.' or '..' were the only
21073 entries in a directory, but were skipped. The MonoIOStat was not
21074 filled in in that case. Now return ERROR_NO_MORE_FILES instead.
21077 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
21079 * reflection.c: make binaries run on .Net 1.1 by default.
21081 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
21083 * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
21085 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
21087 * marshal.c: keep track of struct size with explicit layout
21090 2004-06-12 Martin Baulig <martin@ximian.com>
21092 * mono-debug-debugger.c: Comment out a debugging g_message().
21094 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
21096 * reflection.c, reflection.h: do not free custom attrs that are cached.
21097 * icall.c: use braces to make code clearer.
21099 2004-06-11 Martin Baulig <martin@ximian.com>
21101 * class.h (MonoInflatedField): New type.
21102 (MonoClassField): Replaced `MonoType *generic_type' with
21103 `MonoInflatedField *generic_info'.
21106 (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
21108 2004-06-11 Martin Baulig <martin@ximian.com>
21110 * reflection.c (mono_image_create_method_token): Correctly encode
21113 2004-06-11 Martin Baulig <martin@ximian.com>
21115 * metadata.c (mono_metadata_parse_method_signature): When parsing
21116 a MethodDef which has VarArgs, also set sentinelpos if we don't
21117 have any parameters.
21119 2004-06-11 Martin Baulig <martin@ximian.com>
21121 * verify.c (mono_method_verify): In CEE_CALL, use
21122 mono_method_get_signature() to get the method's signature, unless
21123 we're a PInvoke method.
21125 2004-06-10 Jackson Harper <jackson@ximian.com>
21127 * assembly.c: Use <path>/lib/mono/gac for the extra paths
21128 lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
21129 logical name as the supplied path is just a prefix to the gac not
21130 the direct path to it.
21132 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
21134 * reflection.c: make the token for a created method match
21135 the token of the MethodBuilder it was created from
21136 (IKVM requires this behaviour now).
21138 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
21140 * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
21141 reflection.c, socket-io.c: leak fixes.
21143 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
21145 * icall.c: handle sentinel pos in vararg methods in position different
21148 2004-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21150 * culture-info-tables.h: freshly generated.
21152 2004-06-09 Martin Baulig <martin@ximian.com>
21154 * loader.c (mono_get_method_constrained): Call `mono_class_init
21155 (constrained_class)'.
21157 2004-06-08 Gert Driesen <drieseng@users.sourceforge.net>
21159 * icall.c (ves_icall_MonoType_GetEvent): Handle events without
21160 any methods. Fixes #59629.
21162 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
21164 * culture-info-tables.h: reflecting locale-builder updates.
21166 2004-06-08 Dick Porter <dick@ximian.com>
21169 * locales.c: Fixed compile warnings, including a real bug in
21170 CompareInfo_internal_compare.
21172 2004-06-08 Dick Porter <dick@ximian.com>
21175 (ves_icall_System_Globalization_CompareInfo_internal_index):
21176 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
21177 Double-check the resuls of usearches, because ICU currently
21178 ignores most of the collator settings here. Fixes bug 59720.
21180 2004-06-08 Dick Porter <dick@ximian.com>
21183 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
21184 Fix memory leak and segfault-causing typo. No idea how this one
21185 lasted so long without being noticed.
21187 2004-06-09 Zoltan Varga <vargaz@freemail.hu>
21189 * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
21190 any methods. Fixes #59629.
21192 2004-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21195 (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
21196 own the critical section before). Removed dead code (that's done
21197 in the preload hook).
21199 (mono_assembly_load_with_partial_name): call the preload hook.
21201 2004-06-08 Martin Baulig <martin@ximian.com>
21203 * metadata.c (mono_metadata_signature_alloc): Default
21204 `sentinelpos' to -1.
21206 * reflection.c (mono_image_get_array_token): Likewise.
21208 2004-06-08 Martin Baulig <martin@ximian.com>
21210 * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
21212 * metadata.c (mono_metadata_parse_method_signature): When parsing
21213 a MethodDef which has VarArgs, set sentinelpos.
21215 * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
21216 `gint16' since we're using -1 for non-varargs methods.
21219 (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
21220 (method_encode_signature): Added varargs support.
21221 (method_builder_encode_signature): Likewise.
21222 (mono_image_get_varargs_method_token): New static method.
21223 (mono_image_create_method_token): New public method; this is
21224 called via an icall instead of mono_image_create_token() when
21225 calling a varargs method.
21227 2004-06-08 Lluis Sanchez Gual <lluis@ximian.com>
21229 * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
21231 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
21233 * culture-info-tables.h : Reflecting the latest locale-builder that
21234 fixed empty array representation ({} to {0}).
21236 2004-06-07 Jackson Harper <jackson@ximian.com>
21238 * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
21239 looking up extra gac paths. This allows MONO_GAC_PATH to act
21240 exactly like a prefix.
21242 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
21244 * reflection.c (mono_reflection_type_from_name): Make a copy of the
21245 type name before modifying it. Fixes #59405.
21247 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
21249 * culture-info.h: added fields for "all datetime patterns".
21250 * locales.c: ( ves_icall_System_Globalization_CultureInfo
21251 _construct_datetime_format ()): fill xxx_patterns fields.
21252 * object.h: added fields for "all datetime patterns" to
21253 MonoDateTimeFormatInfo.
21254 * culture-info-tables.h: reflecting locale-builder updates.
21256 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
21258 * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
21259 the event has no add and remove methods. Fixes #59629.
21261 2004-06-05 Sebastien Pouliot <sebastien@ximian.com>
21263 * object.c: Fixed possible integer overflow when allocating large
21266 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
21268 * culture-info-tables.h: reflecting locale-builder updates.
21270 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
21272 * culture-info-tables.h: reflecting locale-builder updates.
21274 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
21276 * culture-info-tables.h: reflecting locale-builder updates.
21278 2004-06-03 Lluis Sanchez Gual <lluis@ximian.com>
21280 * threads.c: Made Thread.Sleep abortable.
21282 2004-06-02 Martin Baulig <martin@ximian.com>
21284 * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
21286 * debug-mono-symfile.h: Bumped symbol file version number to 37.
21288 2004-05-31 Zoltan Varga <vargaz@freemail.hu>
21290 * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
21292 2004-05-30 Jackson Harper <jackson@ximian.com>
21294 * reflection.c: Do not hardcode assembly versions or public key
21295 tokens anymore. All of this except the corlib section was dead
21298 2004-05-29 Zoltan Varga <vargaz@freemail.hu>
21300 * object.c (mono_runtime_invoke_array): Automatically create boxed
21301 objects for byref valuetypes if needed. Fixes #59300.
21303 * object.c (mono_method_return_message_restore): Handle
21304 MONO_TYPE_OBJECT as well.
21306 2004-05-28 Jackson Harper <jackson@ximian.com>
21308 * reflection.c: The modified type encoding was causing build
21309 problems. Reverted for now.
21311 2004-05-28 Jackson Harper <jackson@ximian.com>
21313 * reflection.c/h: Take an assembly ref so that we dont create
21314 fully qualified names when encoding types in the same assembly as
21315 the custom attribute being emitted.
21316 * appdomain.c: Increment version number.
21318 2004-05-26 Duncan Mak <duncan@ximian.com>
21321 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
21322 Set the full version number (major, minor, build, revision).
21324 2004-05-28 Vladimir Vukicevic <vladimir@pobox.com>
21326 * marshal.c (emit_struct_conv): increment src/dst after blit
21327 (mono_marshal_get_managed_wrapper,
21328 mono_marshal_get_native_wrapper): make sure we have marshalling
21329 info before marshalling params (info computation affects
21332 * class.c (class_compute_field_layout): correctly deal with
21334 (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
21335 value types (as per what windows dows by default)
21336 (mono_class_setup_mono_type): System.ValueType is blittable
21337 (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
21340 * marshal.c (mono_marshal_load_type_info): flag types as
21341 non-blittable if the native layout doesn't match the managed
21344 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21346 * appdomain.c: don't add stuff in the private search path that is
21347 above the application base. If application base is not set, there's
21348 no private search path.
21350 2004-05-28 Zoltan Varga <vargaz@freemail.hu>
21352 * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
21353 byref struct arguments in native->managed marshalling.
21355 2004-05-28 Patrik Torstensson <totte@hiddenpeaks.com>
21357 * marshal.c (mono_marshal_get_runtime_invoke): correctly
21358 cache methods using signature (special case for methods
21359 that are value type or string class)
21361 * image.c (mono_image_close): clean up allocated GSList's
21362 in runtime_invoke_cache.
21364 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21366 * mono-config.c: set the correct path for mono_cfg_dir on windows when
21367 there's no MONO_CFG_DIR environment variable defined.
21369 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21371 * threads.c: windows version must be >= 0x0500 to include OpenThread.
21373 2004-05-28 Lluis Sanchez Gual <lluis@ximian.com>
21375 * threadpool.c: Really wait for 500ms after the async call, even if the wait
21377 * threads.c: In mono_thread_manage, call OpenThread to ref each handle
21378 before waiting for it, and call CloseHandle after the wait to unref it.
21379 This will make sure that handles are not disposed too early.
21381 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21386 ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
21389 * object.c: se the application_base only for the domain that runs
21390 Main. Fixes bug #59216,
21392 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21395 * object.c: only the domain in which Main is run have
21396 SetupInformation.ConfigurationFile set, so moved a few lines from
21397 appdomain.c to object.c.
21399 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21401 * appdomain.c: we tried to load [name].(dll|exe), but according
21402 to bug #57710, we must also try [culture]/[name].(dll|exe) and
21403 [culture]/[name]/[name](dll|exe). This patch fixes the bug.
21404 There's a test case attached to bug #58922.
21406 2004-05-27 Dick Porter <dick@ximian.com>
21409 * file-io.c: Implemented icalls for locking and unlocking regions
21411 (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
21412 FALSE on error (fixes both compiler warning and real bug.)
21414 2004-05-27 Atsushi Enomoto <atsushi@ximian.com>
21416 * culture-info-tables.h: reflecting locale-builder updates.
21418 (Added missing ChangeLog entry for 05/26)
21420 2004-05-27 Jackson Harper <jackson@ximian.com>
21422 * locales.c: Fix some cut and paste errors.
21424 2004-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21426 * mono-config.c: set the correct path for config. directory on windows.
21428 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
21430 * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
21433 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
21435 * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
21436 from pinvoke functions.
21438 * marshal.c (mono_ftnptr_to_delegate): Implement this.
21440 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
21442 * culture-info-tables.h: reflecting locale-builder updates.
21444 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
21446 * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
21449 2004-05-26 Sebastien Pouliot <sebastien@ximian.com>
21451 * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
21452 * icall.c: Modified icalls for RNG.
21453 * rand.c|h: Changed RNG interface to allow thread-safe usage under
21454 Windows (CryptoAPI).
21456 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
21458 * locales.c: Fix build.
21460 2004-05-25 Atsushi Enomoto <atsushi@ximian.com>
21462 * culture-info-tables.h: reflecting locale-builder updates.
21464 2004-05-25 Jackson Harper <jackson@ximian.com>
21466 * locales.c: When creating the current culture use the $LANGs
21467 specific culture. So DateTimeFormat and NumberFormat entries are created.
21469 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
21471 * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
21472 a char array as parameter.
21474 2004-05-24 Lluis Sanchez Gual <lluis@ximian.com>
21476 * image.c: In mono_image_open(), always use an absolute path name to
21477 look for already loaded images.
21479 2004-05-24 Sebastien Pouliot <sebastien@ximian.com>
21481 * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
21482 missing in the windows build (like older cygwin include files).
21484 2004-05-23 Sebastien Pouliot <sebastien@ximian.com>
21486 * icall.c: Fixed check for possible integer overflow in Buffer_
21487 BlockCopy icall. Replaced comments style // by /* */.
21489 2004-05-22 Zoltan Varga <vargaz@freemail.hu>
21491 * marshal.c (mono_ftnptr_to_delegate): Fix warning.
21493 * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
21494 check after MONO_VTADDR. Fixes pinvoke2.exe.
21496 * marshal.h marshal.c metadata.h: Add beginnings of support for
21497 ftnptr -> delegate marshalling.
21499 2004-05-21 Zoltan Varga <vargaz@freemail.hu>
21501 * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
21502 * threads.c: Fix warnings.
21504 2004-05-20 Lluis Sanchez Gual <lluis@ximian.com>
21506 * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
21507 * icall.c: Registered icalls for Suspend and Resume.
21508 * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
21510 * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
21511 * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
21512 * process.c: Use WaitForSingleObjectEx.
21513 * threadpool.c: Use WaitForSingleObjectEx. Added some interruption
21515 * threads.c, threads.h: Make use of new Ex wait methods. Improved
21516 implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
21517 for Suspend and Resume. Added new mono_thread_stop, used for stoping
21518 background threads. Added basic support for Abort in Windows.
21519 Start new threads using a managed delegate invoke wrapper. This wrapper
21520 has an interruption checkpoint that is needed since an interruption
21521 can be requested before the thread leaves the unmanaged code that starts
21523 * marshal.c: Added interruption checkpoint after every native call, and
21524 also before managed calls for wrappers called from unmanaged code to
21525 go into managed code.
21526 * object.h: Added new field in MonoThread to keep track of interruption
21529 2004-05-20 Zoltan Varga <vargaz@freemail.hu>
21531 * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
21534 2004-05-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21541 * rand.c: getenv -> g_getenv (windows!)
21543 * process.c: complete_path is also used on non-windows platforms.
21545 2004-05-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21547 * icall.c: new signature for Process_Start.
21549 * process.[ch]: new signature for Process_Start. If we're on windows
21550 and UseShellExecute is false, we have to search for the program by
21551 ourselves if we don't get a full path.
21553 2004-05-18 Zoltan Varga <vargaz@freemail.hu>
21555 * marshal.c (mono_marshal_get_native_wrapper): Fix up custom
21556 marshalling and call CleanUpNativeData if needed. Fixes #58646.
21558 2004-05-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21560 * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
21563 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21565 * process.c: use double quotes to quote program name and arguments on
21566 windows. Fixes bug #58575.
21568 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21570 * file-io.c: don't return "." and ".." when using windows Find*File.
21572 2003-05-17 Patrik Torstensson <totte@hiddenpeaks.com>
21574 * marshal.c: Don't pass wrappers to message init because method
21575 addressed used to lookup metadata. part of remoting[2|3] fix.
21577 2004-05-15 Jackson Harper <jackson@ximian.com>
21579 * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
21580 path is essentially the same as MONO_PATH except that it points to
21581 GACs instead of lib directories.
21582 * loader.h: The user gac is gone so we dont need function to
21584 * mono-config.c: user gac option is now gone.
21586 2004-05-15 Jackson Harper <jackson@ximian.com>
21588 * culture-info.h: Make defines more consistent, add calendar data
21589 to the culture info table.
21590 * culture-info-tables.h: Add basic calendar data. Basically
21591 everyone gets default gregorian until all the data is
21593 * locales.c: Use the new consistent defines. Set calendar data for
21594 culture info objects.
21595 * object.h: add a field for calendar data to CultureInfo
21597 2004-05-14 Ben Maurer <bmaurer@users.sourceforge.net>
21599 * image.c: image->runtime_invoke_cache is keyed on signatures now.
21600 * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
21602 (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
21603 (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
21604 an extra param that is the pointer of the method to invoke. The IL for
21605 the invoke method is no longer specific to the method, but to the
21606 signature of the method. Thus, we can share the same code for multiple
21607 methods. This reduces the number of methods that have to be compiled.
21609 2004-05-14 Zoltan Varga <vargaz@freemail.hu>
21611 * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
21613 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
21615 * icall.c: Optimize Buffer.BlockCopy.
21617 2004-05-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21619 * culture-info-tables.h: seems like Spanish and Portuguese cultures had
21620 DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
21621 quote). Changed them to "MMMM yyyy".
21623 2004-05-12 Miguel de Icaza <miguel@ximian.com>
21626 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file.
21628 2004-05-13 Zoltan Varga <vargaz@freemail.hu>
21630 * reflection.h: Updated after changes to managed structures.
21632 * appdomain.c: Bump corlib version.
21634 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21636 * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
21639 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21641 * Makefile.am: link to ../os/libmonoos.la on windows.
21644 -If MONO_DEBUG, warn about non-existing directories in
21646 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
21647 compile time variable.
21648 -Removed init_default_path and call mono_set_rootdir from
21649 libmonoos.a instead (windows only).
21651 * assembly.h: declare mono_assembly_getrootdir().
21654 * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
21656 * loader.c: s/getenv/g_getenv/
21658 2004-05-11 Zoltan Varga <vargaz@freemail.hu>
21660 * marshal.{h,c}: Add support for UnmanagedType.AsAny.
21662 * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
21664 * metadata.h: Add new marshalling conversions.
21666 * metadata.h metadata.c (mono_metadata_signature_dup): New helper
21669 * reflection.c (mono_reflection_get_type): Lookup the type in all
21670 modules of a multi-module assembly. Fixes #58291.
21672 2004-05-11 Lluis Sanchez Gual <lluis@ximian.com>
21674 * threads.c: Before aborting a background, set the StopRequested
21675 state. This avoids throwing the Abort exception.
21676 In mono_thread_manage, don't continue with the shutdown until all
21677 aborted threads have actually stopped.
21679 2004-05-10 Jackson Harper <jackson@ximian.com>
21681 * locales.c: Remove the modifier from culture names.
21683 2004-05-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21685 * Makefile.am: monosn is not installed any more. It has been deprecated
21688 2004-05-07 Jackson Harper <jackson@ximian.com>
21691 (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
21692 Fix array construction, add bailout if the length is 0.
21694 2004-05-07 Dick Porter <dick@ximian.com>
21696 * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
21697 machine doesn't have a DNS entry. Patch by Urs Muff
21698 (umuff@quark.com), fixes bug 57928.
21700 2004-05-06 Jackson Harper <jackson@ximian.com>
21702 * reflection.c: Handle null PublicTokens properly. alloc mem for
21703 assembly names culture so we dont crash when freeing it.
21705 2004-05-06 Jackson Harper <jackson@ximian.com>
21707 * assembly.c: Check the usergac when loading with partial names.
21709 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
21711 * rand.c|h: Added new icall for (optionally) seeding the PRNG. This
21712 does nothing for now (not required for Linux/Windows) but the class
21713 library can call it (and a newer or modified runtime could need it).
21714 * icall.c: Registred icall.
21716 2004-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21718 * loader.c: prints a message on module loading error we set MONO_DEBUG
21719 environment variable.
21721 2004-05-05 Jackson Harper <jackson@ximian.com>
21723 * appdomain.c: Handle PublicKeyToken=null properly.
21725 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
21727 * environment.c|h: Added icall ves_icall_System_Environment_
21728 GetOSVersionString to get the current OS version as a string.
21729 * icall.c: Registred icall.
21731 2004-05-05 Lluis Sanchez Gual <lluis@ximian.com>
21733 * object.c: in mono_object_get_virtual_method(), take into account that
21734 non-virtual methods don't have a slot in the vtable. Check needed when
21735 the object is a proxy.
21737 2004-05-05 Zoltan Varga <vargaz@freemail.hu>
21739 * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
21740 (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
21742 * object.c (mono_class_compute_gc_descriptor): Fix warning.
21744 * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
21745 passed when a valuetype is expected.
21747 * object.c (mono_unhandled_exception): Only set the exit code if the
21748 exception happens in the main thread. Fixes thread5.exe.
21750 * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
21751 invalid names. Fixes #58047.
21753 2004-05-03 Jackson Harper <jackson@ximian.com>
21755 * assembly.c: This line was committed accidently and is unneeded.
21757 2004-05-03 Jackson Harper <jackson@ximian.com>
21759 * icall.c: Add new icall for Assembly::LoadWithPartialName
21760 * assembly.c/.h: new function that probes the GAC to load partial
21761 assembly names by Paolo Molaro.
21763 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21765 * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
21766 * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
21767 (type_get_fully_qualified_name): Added PublicKeyToken when building a
21770 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21772 * appdomain.c: fixed check for 'neutral' culture and removed warning.
21773 * reflection.c: fix bug when parsing a full type name and Version is not
21774 the last thing in the string.
21776 2004-05-03 Zoltan Varga <vargaz@freemail.hu>
21778 * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
21779 crashes when it is freed.
21781 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21783 * assembly.c: print the compat warning to stderr.
21785 2004-05-01 Miguel de Icaza <miguel@ximian.com>
21787 * assembly.c (mono_assembly_load_references): Add a compatibility
21788 hack to run old applications that might be still referencing the
21789 3300-based assemblies, only do this for System.xxx.
21791 2004-05-01 Jackson Harper <jackson@ximian.com>
21793 * appdomain.c: If the culture is neutral we set it to "".
21795 2004-04-29 Jackson Harper <jackson@ximian.com>
21797 * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
21799 2004-04-29 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
21801 * string-icalls.c: added low overhead function for copying chars
21802 * icall.c: added needed icall for the above function
21804 2004-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21806 * icall.c: fix return value of get_global_assembly_cache. Implemented
21807 Environment.GetLogicalDrives.
21809 2004-04-28 Bernie Solomon <bernard@ugsolutions.com>
21811 * rand.c: try and talk to egd or prngd
21812 for random bytes if opening devices fail.
21814 2004-04-28 Zoltan Varga <vargaz@freemail.hu>
21816 * marshal.c (mono_marshal_load_type_info): Calculate the minimum
21817 alignment for the type using the native alignment of its members
21818 instead of using klass->min_align.
21820 * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
21822 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21825 * socket-io.c: added check for sys/aio.h.
21827 2004-04-28 Dick Porter <dick@ximian.com>
21829 * threads.c: Don't abort a thread thats already aborting, when
21830 terminating everything.
21832 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21834 * icall.c: added 2 new async calls for Socket.
21836 * socket-io.[ch]: fixed some warnings. Added support for asynchronous
21837 IO on *nix systems.
21839 * threadpool.c: removed unused variable.
21841 2004-04-27 Zoltan Varga <vargaz@freemail.hu>
21843 * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
21845 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
21847 * locales.c: put back string_invariant_tolower () and
21848 string_invariant_toupper ().
21850 2004-04-26 David Waite <mass@akuma.org>
21855 * unicode.h: remove comma from end of enumeration declarations
21857 2004-04-26 David Waite <mass@akuma.org>
21859 * debug-mono-symfile.h:
21862 * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
21865 2004-04-26 Jackson Harper <jackson@ximian.com>
21867 * appdomain.c: Increment version number.
21869 2004-04-26 Jackson Harper <jackson@ximian.com>
21871 * appdomain.c: Set assembly references public token value when
21872 PublicKeyToken is specified, not the hash_value. Free public token
21873 values when free assembly name data. Previously the public key
21874 token was hex decoded, however we are using hex encoded public key
21875 tokens, so this is not neccasary.
21876 * assembly.c: Lookup assemblies in the gac if their public token
21877 value is set. Add function to allow enabling user gac
21878 lookups. Specify whether or not the assembly was loaded from the
21879 GAC. Compare full assembly names when checking the cache for
21880 assemblies (Temporarily disabled see comment in code). Remove
21881 mscorlib -> corlib mapping cruft. Add trace-loading. When a user
21882 specifies trace-loader they get extra info to stdout on the
21883 loading of assemblies.
21884 * image.h: Add a field for an assembly references public token
21885 value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
21886 whether an assembly has been loaded from the GAC.
21887 * image.c: Remove a corlib -> mscorlib name mapping.
21888 * loader.h: Add function to enable/disable the user gac.
21889 * mono-config.c: Check if the usergac is enabled in the config
21891 * icall.c: New icall to determine whether or not an assembly has
21892 been loaded from the GAC. Remove some mscorlib -> corlib mappings.
21893 * tabldefs.h: Add constant for assemblyref flag that specifies a
21894 full public key is used instead of a public token.
21895 * reflection.c: Remove mscorlib -> corlib mappings. Set
21896 PublicTokenValue instead of hash value. This value is a hex
21897 string so it does not need to be expanded.
21899 2004-04-26 Martin Baulig <martin@ximian.com>
21901 * mono-debug-debugger.c (mono_debugger_initialize): Set
21902 `mono_debugger_initialized' before calling mono_debug_lock().
21904 2004-04-42 Robert Shade <rshade@dvsconsulting.com>
21906 * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
21907 InternalToUpper/InternalToLower.
21908 * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
21909 removed invariant culture shortcut. This is now done in managed code.
21910 * locales.c: (string_invariant_toupper/tolower) removed.
21912 2004-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21914 * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
21915 Added Poll internal call.
21917 * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
21918 call for Poll. Select was too heavy for polling a single socket.
21920 * threadpool.[ch]: added mono_threadpool_cleanup.
21921 * threads.c: use it. Don't use Thread_Abort on windows.
21923 2004-04-23 Martin Baulig <martin@ximian.com>
21925 * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
21927 2004-04-23 Sebastien Pouliot <sebastien@ximian.com>
21929 * icall.c: Registred new icalls for key pair protection and added an
21930 icall for Environment.GetFolderPath on Windows.
21931 * security.c|h: Added new icalls for key pair protection.
21933 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21935 * socket-io.c: don't display the non-supported family warning for known
21936 families. Now this is not displayed on windows when checking support
21939 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21941 * class.c: don't display the layout warning for static fields.
21943 2004-04-21 Lluis Sanchez Gual <lluis@ximian.com>
21945 * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
21946 * locales.c, locales.h: Added new icalls for culture-specific
21947 Char.ToLower and Char.ToUpper.
21949 2004-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21951 * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
21954 2004-04-20 Martin Baulig <martin@ximian.com>
21956 * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
21957 of the type name before passing it to mono_reflection_type_from_name().
21959 2004-04-19 Zoltan Varga <vargaz@freemail.hu>
21961 * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
21962 encodings here. Fixes #56965.
21964 2004-04-18 Bernie Solomon <bernard@ugsolutions.com>
21966 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
21967 fix test on strstr result not that I can see anything that
21968 relies on the result.
21970 2004-04-18 Zoltan Varga <vargaz@freemail.hu>
21972 * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
21975 * marshal.c (mono_marshal_get_string_encoding): New helper function.
21977 * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
21978 function to determine which marshalling to use for strings. Fixes
21981 * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
21983 * reflection.c (encode_marshal_blob): Add support for LPARRAY.
21985 2004-04-15 Bernie Solomon <bernard@ugsolutions.com>
21987 * icall.c: #include mono-config.h
21989 2004-04-15 Jackson Harper <jackson@ximian.com>
21991 * culture-info-tables.h: Fix date formats for en-US culture.
21993 2004-04-15 Lluis Sanchez Gual <lluis@ximian.com>
21995 * icall.c: Registered icalls for ThreadPool.GetMinThreads and
21996 ThreadPool.SetMinThreads.
21997 * threadpool.c: Implemented ThreadPool.GetMinThreads and
21998 ThreadPool.SetMinThreads.
22000 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
22002 * mono-config.c: also load the .config file in the directory
22003 where the assembly was found.
22005 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
22007 * assembly.c: load per-assembly config files.
22008 * icall.c: decrapified code to get the config dir and moved to
22010 * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
22011 per-assembly config files. When doing a dll map lookup give precedence
22012 to the per-assembly data.
22014 2004-04-14 Martin Baulig <martin@ximian.com>
22016 * mono-debug-debugger.h (MonoDebuggerEvent): Removed
22017 MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
22018 and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
22020 * mono-debugger-debugger.c: While the debugger is locked, remember
22021 whether the symbol tables have changes and send one single
22022 MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
22024 2004-04-14 Zoltan Varga <vargaz@freemail.hu>
22026 * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
22028 * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New
22031 * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
22032 account when marshalling string arrays. Fixes #56965.
22034 2004-04-13 Sebastien Pouliot <sebastien@ximian.com>
22036 * icall.c: Add new icalls mapping for security.
22037 * security.c|h: Add internal calls for WindowsIdentity,
22038 WindowsImpersonationContext and WindowsPrincipal.
22040 2004-04-13 Gert Driesen (drieseng@users.sourceforge.net)
22042 * class.c: Added comment to ensure the System.MonoDummy class
22043 is removed when no longer necessary
22045 2004-04-13 Miguel de Icaza <miguel@ximian.com>
22047 * appdomain.c: Pass arguments to the bootstraping exceptions to
22048 minimize JITed methods at boot
22050 * metadata.c (mono_exception_from_name_two_strings): Allow for the
22051 second string to be null.
22053 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
22054 Change the protocol to minimize the JIT methods at startup. Now
22055 it Returns the internal codepage, if the value of "int_code_page"
22056 is 1 at entry, and we can not compute a suitable code page
22057 number, returns the code page as a string.
22059 2004-04-13 Jackson Harper <jackson@ximian.com>
22061 * culture-info-tables.h: Fix number of decimal digits for all
22064 2004-04-13 Jackson Harper <jackson@ximian.com>
22066 * icall.c: Clairfy out of sync error message. It is not always
22067 your corlib that is out of sync.
22069 2004-04-13 Zoltan Varga <vargaz@freemail.hu>
22071 * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
22072 properties when only the set accessor is overriden. Fixes #55874.
22074 2004-04-09 Zoltan Varga <vargaz@freemail.hu>
22076 * assembly.c (mono_assembly_load_references): Make this thread safe.
22079 2004-04-08 Zoltan Varga <vargaz@freemail.hu>
22081 * monosn.c: Add missing initialization calls.
22083 2004-04-08 Bernie Solomon <bernard@ugsolutions.com>
22086 ves_icall_System_Globalization_CultureInfo_construct_number_format
22087 Fix g_assert so it compiles on fussier compilers re int/ptr
22090 2004-04-08 Dick Porter <dick@ximian.com>
22093 * socket-io.c: Don't set SO_REUSEADDR on windows. Fixes bug
22094 53992. Also rearrange the code so that the internal calls return
22095 an error value and exceptions are thrown from managed code.
22097 * icall.c: Add type info to the socket icalls.
22099 2004-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22101 * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
22104 2004-04-07 Martin Baulig <martin@ximian.com>
22106 * class.c (mono_class_from_generic_parameter): Don't default
22107 `klass->parent' to `mono_defaults.object_type'.
22109 2004-04-07 Martin Baulig <martin@ximian.com>
22111 * reflection.c (mono_reflection_initialize_generic_parameter): Set
22112 `param->pklass->reflection_info'.
22114 2004-04-07 Jackson Harper <jackson@ximian.com>
22116 * culture-info-tables.h: Fix date separator symbol.
22118 2004-04-07 Martin Baulig <martin@ximian.com>
22120 * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
22121 from System.Type to System.MonoType.
22123 2004-04-07 Martin Baulig <martin@ximian.com>
22126 (MonoReflectionGenericParam): Added `has_reference_type' and
22127 `has_value_type' fields.
22129 * reflection.c (mono_image_get_generic_param_info): Encode the
22130 correct flags if we have the `class' or `struct' constraint.
22132 2004-04-07 Martin Baulig <martin@ximian.com>
22135 (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
22137 2004-04-07 Jackson Harper <jackson@ximian.com>
22139 * appdomain.c: Revert extra patches, just wanted to bump the
22142 2004-04-07 Jackson Harper <jackson@ximian.com>
22144 * Makefile.am: Add culture-info private headers.
22145 * icall.c: Add new icalls for contructing locales.
22146 * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
22147 * locales.h: Declare new culture info construction methods.
22148 * object.h: Add new fields used to avoid the CultureMap to
22150 * culture-info.h: Definition of structs used in the culture info
22152 * culture-info-tables.h: Autogenerated tables that contain culture
22153 info data. This file was generated with the locale-builder tool.
22154 * appdomain.c: Incement corlib version number.
22156 2004-04-07 Bernie Solomon <bernard@ugsolutions.com>
22158 * appdomain.c: (mono_runtime_init) move mono_thread_init
22159 to before mono_object_new calls so critical sections
22160 are initialized before use.
22162 2004-04-07 Martin Baulig <martin@ximian.com>
22165 (ves_icall_TypeBuilder_define_generic_parameter): Removed.
22166 (ves_icall_MethodBuilder_define_generic_parameter): Removed.
22167 (ves_icall_MonoGenericParam_initialize): Removed.
22168 (monogenericparam_icalls): Removed.
22169 (generictypeparambuilder_icalls): Added new table for
22170 System.Reflection.Emit.GenericTypeParameterBuilder.
22173 (mono_reflection_define_generic_parameter): Removed.
22174 (mono_reflection_initialize_generic_parameter): This is now called
22175 from GenericTypeParameterBuilder's .ctor.
22177 2004-04-06 Martin Baulig <martin@ximian.com>
22179 * class.c (mono_class_init): Don't inflate nested classes in a
22181 (mono_type_get_name_recurse): Include the generic arguments for
22182 generic instances and generic type declarations.
22183 (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
22184 (_mono_class_get_instantiation_name): Removed.
22185 (mono_class_create_generic): Always use `gklass->name' as our name.
22187 * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
22189 * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
22190 (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
22191 (ves_icall_MonoMethod_GetGenericParameters): Renamed to
22192 ves_icall_MonoMethod_GetGenericArguments() and correctly handle
22193 closed generic methods here.
22196 (mono_reflection_generic_inst_get_nested_types): Removed.
22197 (inflate_mono_method): Copy the generic parameters from the
22198 MonoMethodHeader into out MonoGenericMethod.
22200 2004-04-06 Martin Baulig <martin@ximian.com>
22203 (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
22205 * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
22207 * reflection.c (build_compressed_metadata): If we have any entries
22208 in the GenericParam, MethodSpec or GenericParamConstraint tables,
22209 set the header version to 1.1.
22211 2004-04-06 Martin Baulig <martin@ximian.com>
22213 * class.c (mono_class_init): If we're a generic instance,
22214 initialize our nested classes, too.
22215 (_mono_class_get_instantiation_name): Deal with the new `!%d'
22218 2004-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22220 * process.c: quote the argument passed to the shell on windows.
22222 2004-04-05 Zoltan Varga <vargaz@freemail.hu>
22224 * threads.c (mono_alloc_special_static_data): Allow this to be
22225 called during startup.
22227 2004-04-02 Martin Baulig <martin@ximian.com>
22230 (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
22232 2004-04-02 Zoltan Varga <vargaz@freemail.hu>
22234 * icall.c: Fix build.
22236 2004-04-02 Sebastien Pouliot <sebastien@ximian.com>
22238 * Makefile.am: Added security.c|h.
22239 * icall.c: Added icall for get_UserName;
22240 * security.c: New file for security related icalls. Added function
22241 get_UserName for System.Environment (fix #56144).
22242 * security.h: New. Header file for security.c
22244 2004-04-02 Dick Porter <dick@ximian.com>
22246 * icall.c: Deleted the icalls that were obsoleted some time ago
22247 by the ICU string code, and which were mixed into the icall
22248 rearranging. Fixes bug 55969.
22251 * string-icalls.c: Deleted the code that those icalls reference.
22253 2004-04-01 Martin Baulig <martin@ximian.com>
22255 * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
22257 * class.c (mono_class_from_generic_parameter): Don't set
22258 TYPE_ATTRIBUTE_INTERFACE.
22259 (my_mono_class_from_generic_parameter): Likewise.
22261 2004-04-01 Martin Baulig <martin@ximian.com>
22263 * loader.c (find_method): Added an optional `MonoClass *ic'
22264 argument to search in a specific interface.
22265 (mono_get_method_constrained): New public function.
22267 2004-04-01 Martin Baulig <martin@ximian.com>
22269 * reflection.c (mono_image_get_generic_field_token): Use the
22270 `handleref' cache here.
22272 2004-04-01 Martin Baulig <martin@ximian.com>
22274 * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
22276 * reflection.c (create_generic_typespec): Use the `typespec' hash
22277 here, not the `typeref' one.
22279 2004-04-01 Martin Baulig <martin@ximian.com>
22281 * class.c (mono_class_inflate_generic_type): Moved the
22282 functionality into a new static inflate_generic_type() which
22283 returns NULL if it didn't do anything. Only increment the
22284 `mono_stats.inflated_type_count' if we actually inflated
22286 (mono_class_get_full): Check the classes type to see whether we
22287 need to inflate it; also inflate MONO_TYPE_(M)VAR.
22289 2004-04-01 Jackson Harper <jackson@ximian.com>
22291 * reflection.c: Set culture for assembly references.
22293 2004-04-01 Ben Maurer <bmaurer@users.sourceforge.net>
22295 * reflection.[ch], icall.[ch], Fix support for pinning variables.
22297 2004-04-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22300 (do_mono_assembly_open): the critical section also covers
22301 mono_image_open and mono_image_open_from_data. Fixes bug #56327.
22303 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22306 (mono_manage_threads): abort the background threads when finishing.
22309 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22311 * gc.c: only close the done_event handle if there was no timeout.
22314 2004-03-30 Martin Baulig <martin@ximian.com>
22316 * icall.c (icall_entries): It's called "System.Activator", not
22317 "System.Activation".
22319 2004-03-30 Martin Baulig <martin@ximian.com>
22321 * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
22322 (mono_class_create_from_typespec): Likewise.
22324 2004-03-30 Martin Baulig <martin@ximian.com>
22326 * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
22327 `has_ctor_constraint' and `initialized'.
22329 2004-03-30 Martin Baulig <martin@ximian.com>
22331 * reflection.c (encode_new_constraint): New static function to add
22332 the constructor constraint attribute to a type parameter.
22333 (encode_constraints): Call encode_new_constraint() if necessary.
22336 (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
22338 * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
22340 2004-03-29 Ben Maurer <bmaurer@users.sourceforge.net>
22342 * reflection.c, icall.c: add support for pinning variables.
22344 2004-03-29 Bernie Solomon <bernard@ugsolutions.com>
22346 * marshal.c (mono_marshal_get_managed_wrapper):
22347 init bool local with zero rather than null.
22349 2004-03-29 Martin Baulig <martin@ximian.com>
22351 * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
22352 the "official" behavior here.
22353 (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
22355 2004-03-29 Martin Baulig <martin@ximian.com>
22357 * icall.c: Reflect latest API changes.
22359 2004-03-29 Martin Baulig <martin@ximian.com>
22361 * loader.c (mono_get_method_from_token): Also call
22362 mono_metadata_load_generic_params () for abstract and interface
22363 methods; replace the type arguments in the method signature with
22364 the ones which are loaded from the metadata.
22366 2004-03-29 Lluis Sanchez Gual <lluis@ximian.com>
22368 * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
22369 of the lock is not the current thread. MS.NET don't do it, in spite of
22370 what the documentation says. See bug #56157.
22372 2004-03-28 Martin Baulig <martin@ximian.com>
22374 * class.c (mono_class_init): Don't call init_properties() and
22375 init_events() for generic instances; set `prop->parent' when
22376 inflating properties.
22378 * reflection.c (mono_generic_inst_get_object): Call
22379 `mono_class_init (ginst->klass)'.
22380 (mono_type_get_object): Only create a MonoGenericInst if your
22381 generic type is a TypeBuilder.
22382 (do_mono_reflection_bind_generic_parameters): Only set
22383 `ginst->is_dynamic' if our generic type is a TypeBuilder.
22385 2004-03-28 Zoltan Varga <vargaz@freemail.hu>
22387 * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
22390 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22392 * icall.c: added Kill_internal icall.
22393 * process.[ch]: added Kill_internal icall.
22395 2004-03-25 Martin Baulig <martin@ximian.com>
22397 * class.h (MonoStats): Added `generic_instance_count',
22398 `inflated_method_count', `inflated_type_count' and
22399 `generics_metadata_size'.
22401 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22403 * reflection.c: no warnings now.
22405 2004-03-25 Martin Baulig <martin@ximian.com>
22407 * class.c (mono_class_get_full): New public function; does a
22408 mono_class_get(), but also takes a `MonoGenericContext *'.
22410 * loader.c (mono_field_from_memberref): Renamed to
22411 `field_from_memberref', made static and added `MonoGenericContext *'
22413 (mono_field_from_token): Added `MonoGenericInst *' argument.
22414 (method_from_memberef): Likewise.
22415 (mono_get_method_from_token): Likewise.
22416 (mono_get_method_full): New public function; does a
22417 mono_get_method(), but also takes a `MonoGenericContext *'.
22419 * verify.c (mono_method_verify): Get the method's generic context
22420 and pass it to mono_field_from_token(), mono_get_method_full() and
22421 mono_class_get_full().
22423 2004-03-25 Martin Baulig <martin@ximian.com>
22425 * class.c (mono_class_inflate_generic_type): Take a
22426 `MonoGenericContext *' instead of a `MonoGenericInst *' and a
22427 `MonoGenericMethod *'.
22429 2004-03-25 Martin Baulig <martin@ximian.com>
22431 * loader.h (MonoMethodInflated): Store the MonoGenericContext
22432 instead of the MonoGenericMethod here.
22434 2004-03-25 Martin Baulig <martin@ximian.com>
22436 * class.h (MonoGenericInst): Added `MonoGenericContext *context';
22437 each time we create a new MonoGenericInst, we also create a new
22438 context which points back to us.
22440 * class.c (inflate_method): Use `ginst->context' instead of
22441 creating a new context.
22443 * loader.c (method_from_memberref): Use
22444 `klass->generic_inst->context' instead of creating a new context.
22446 2004-03-25 Martin Baulig <martin@ximian.com>
22448 * class.h (MonoGenericContext): New struct.
22449 (MonoGenericMethod): Removed `generic_inst'.
22451 * class.c (mono_class_inflate_generic_method): Take a
22452 `MonoGenericContext *' instead of a `MonoGenericMethod *'.
22454 2004-03-25 Martin Baulig <martin@ximian.com>
22456 * loader.h (MonoMethodInflated): New typedef.
22458 * metadata.h (MonoMethodSignature): Removed `gen_method', make
22459 `generic_param_count' consume just 30 bits, added `is_inflated'
22460 and `has_type_parameters' flags (one bit each).
22462 * class.c (mono_class_inflate_generic_method): Create a
22463 MonoMethodInflated instead of a MonoMethodNormal and set
22464 `is_inflated' in the method signature.
22466 * class.h (MonoGenericMethod): Removed `generic_method'.
22468 2004-03-25 Lluis Sanchez Gual <lluis@ximian.com>
22470 * image.c: Make sure the name of a MonoImage is always an absolute path.
22471 This fixes bug #54415.
22473 2004-03-24 Martin Baulig <martin@ximian.com>
22475 * class.c (mono_class_setup_vtable): If we're a generic instance,
22476 use our generic type's vtable size.
22478 2004-03-24 Zoltan Varga <vargaz@freemail.hu>
22480 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
22481 MONO_NO_UNLOAD env var as a temporary workaround for unloading
22484 2004-03-23 Martin Baulig <martin@ximian.com>
22486 * class.h (MonoDynamicGenericInst): Added `int count_events' and
22487 `MonoEvent *events'.
22489 * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
22490 (typebuilder_icalls): Added "get_event_info"; calls
22491 mono_reflection_event_builder_get_event_info().
22493 * reflection.c (mono_reflection_generic_inst_initialize): Added
22494 `MonoArray *events'.
22495 (mono_reflection_event_builder_get_event_info): New function.
22497 2004-03-23 Bernie Solomon <bernard@ugsolutions.com>
22499 * object.h: add mono_type_initialization_init
22501 * object.c (mono_runtime_class_init):
22502 implement class constructor synchronization rules
22503 to cope with threading issues.
22504 add mono_type_initialization_init
22506 * appdomain.c (mono_runtime_init): call
22507 mono_type_initialization_init
22509 * class.h: removing initializing field from MonoVTable
22511 2004-03-23 Martin Baulig <martin@ximian.com>
22513 * class.c (my_mono_class_from_generic_parameter): Use
22514 `param->name' if it's not NULL.
22516 2004-03-22 Ben Maurer <bmaurer@users.sourceforge.net>
22518 * class.c: do not insert non-virtual methods in the vtable.
22519 * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
22520 that means the method is non-virtual. This never would have
22523 2004-03-22 Lluis Sanchez Gual <lluis@ximian.com>
22525 * profiler.c: Added lock for accessing coverage_hash.
22527 2004-03-22 Martin Baulig <martin@ximian.com>
22529 * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
22530 `method->method->signature->generic_param_count != 0' to make it
22531 work for interface methods.
22533 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22535 * process.c: quote the string passed to the shell using g_shell_quote.
22537 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22540 (mono_threads_manage): don't remove the finalizer thread and self
22541 from the threads hash table so that mono_thread_manage can be called
22544 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22546 * process.c: quote the arguments when UseShellExecute is true. Fixes
22549 2004-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22551 * threads.c: set mono_thread_detach as a cleanup routine for every
22552 thread. This way it's always executed upon thread termination, either
22553 aborted or finished normally. No more xsp hangs!
22555 2004-03-17 Martin Baulig <martin@ximian.com>
22557 * class.h (MonoGenericInst): Replaced the `GList *nested' with an
22558 `int count_nested' and a `MonoType **nested'.
22560 * reflection.c (mono_reflection_bind_generic_parameters): Moved
22561 most of the functionality into a new static
22562 do_mono_reflection_bind_generic_parameters() and don't take a
22563 `MonoType *nested_in' argument any more. Don't compute nested
22565 (mono_reflection_generic_inst_get_nested_types): New public method
22566 to get nested types.
22568 * class.c (mono_class_create_generic): Set `klass->nested_in' if
22569 we're a nested class.
22571 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
22572 mono_reflection_generic_inst_get_nested_types() to compute the
22575 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
22577 * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
22578 descriptive error message under windows.
22580 2004-03-17 Martin Baulig <martin@ximian.com>
22582 * class.c (dup_type): Added `const MonoType *original' argument;
22583 copy the attrs from the original type.
22585 2004-03-17 Martin Baulig <martin@ximian.com>
22587 * metadata.c (do_mono_metadata_parse_generic_inst): Use the
22588 `m->generic_inst_cache' here.
22590 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
22592 * exception.h exception.c: Add stack_overflow_exception.
22594 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22597 (overlapped_callback): call SetEvent *after* invoking the callback.
22598 No need to call CloseHandle.
22600 2004-03-16 Martin Baulig <martin@ximian.com>
22602 * reflection.c (mono_image_get_fieldref_token): Take a
22603 `MonoReflectionField *' instead of a `MonoClassField *' and a
22604 `MonoClass *'; store the `MonoReflectionField *' in the hash.
22606 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22608 * appdomain.c: don't add the culture to the filename we're looking for
22609 if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
22611 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22613 * locales.c: don't ignore symbols when doing case insensitive compares.
22614 Thanks Dick! Fixes bug #54046.
22616 * threads.c: surround 'threads' usage with enter/leave in
22617 mono_thread_manage.
22619 2004-03-16 Zoltan Varga <vargaz@freemail.hu>
22621 * marshal.c (mono_marshal_get_native_wrapper): Char arrays are
22622 implicitly marshalled as [Out]. Fixes #55450.
22624 (mono_marshal_get_runtime_invoke): Zero out the result if there is
22627 2004-03-16 Martin Baulig <martin@ximian.com>
22629 * class.c (mono_class_from_generic_parameter): Use the actual
22632 2004-03-16 Martin Baulig <martin@ximian.com>
22634 * reflection.c (type_get_signature_size): New static function.
22635 Compues the size of the type in a method signature.
22636 (method_get_signature_size): New static function; calls
22637 type_get_signature_size() to compute the actual size of the
22638 method's signature.
22639 (method_encode_signature): Use method_get_signature_size() to get
22640 the signature's size rather than using `nparams * 10'.
22642 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22644 * file-io.h: define here WapiOverlapped on windows. I don't want the
22645 regular OVERLAPPED one.
22648 * threadpool.c: somehow, BindIoCompletionCallback is not found.
22649 Disabling AIO on windows.
22651 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22653 * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
22656 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22658 * appdomain.c: upgraded corlib version.
22660 * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
22661 and BeginWrite. Allow opening files for asynchrnous operations.
22663 * file-io.h: new struct that maps FileStreamAsyncResult.
22664 * icall.c: added new icalls.
22665 * process.[ch]: support setting child process environment variables
22666 and use the SHELL or COMSPEC when UseShellExecute is true.
22668 * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
22669 callback for async. IO is here and also BindHandle.
22671 * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
22674 2004-03-14 Zoltan Varga <vargaz@freemail.hu>
22676 * reflection.c (create_custom_attr): Allow len == 0.
22678 * object.c (mono_class_compute_gc_descriptor): Fix descriptor
22679 computation on big-endian machines.
22681 2004-03-13 Martin Baulig <martin@ximian.com>
22683 * class.h (MonoGenericInst): Added `int count_ifaces'.
22685 * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
22686 `ginst->count_ifaces' instead `klass->interface_count' since we
22687 may get called before the vtable is created.
22689 * loader.c (mono_method_get_param_names): If we're a generic
22690 instance, return and don't initialize the class.
22692 * reflection.c (mono_reflection_setup_generic_class): Don't call
22693 ensure_runtime_vtable().
22694 (mono_reflection_bind_generic_parameters): Set
22695 `ginst->count_ifaces'.
22697 2004-03-11 Jackson Harper <jackson@ximian.com>
22701 * unicode.h: Remove unused System.Char icalls.
22703 2004-03-11 Miguel de Icaza <miguel@ximian.com>
22705 * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
22706 code when we P/Invoke the first library in Windows.Forms, instead
22707 of when we first open the assembly.
22709 * assembly.c: Drop the lookup from here.
22711 2004-03-10 Martin Baulig <martin@ximian.com>
22713 * reflection.c (mono_reflection_get_custom_attrs): Use the correct
22714 class for properties, fields and events. Finally fixes #54945.
22716 2004-03-10 Martin Baulig <martin@ximian.com>
22718 * metadata.c (mono_metadata_class_equal): New static function;
22719 checks whether two generic instances or two generic parameters are
22721 (mono_metadata_type_equal): Use mono_metadata_class_equal() to
22724 2004-03-10 Martin Baulig <martin@ximian.com>
22726 * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
22728 * reflection.c (inflate_mono_method): Added `MonoObject *obj'
22729 argument and write it into the `reflection_info' field.
22732 (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
22733 (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
22735 2004-03-09 Jackson Harper <jackson@ximian.com>
22737 * char-conversions.h: use 8 bits for numeric data its all we need
22738 * icall.c: numeric data is only 8 bits now.
22740 2004-03-09 Martin Baulig <martin@ximian.com>
22742 * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
22744 * class.c (init_properties, init_events): Initialize the new
22747 * reflection.c (typebuilder_setup_properties): Likewise.
22748 (typebuilder_setup_events): Likewise.
22750 * reflection.h (MonoEventInfo): Replaced `parent with
22751 `declaring_type' and `reflected_type'.
22753 * icall.c (ves_icall_get_property_info): Distinguish between
22754 declaring and reflected type.
22755 (ves_icall_get_event_info): Likewise.
22757 2004-03-09 Martin Baulig <martin@ximian.com>
22759 * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
22760 (ves_icall_Type_GetField): Correctly set field->klass.
22762 2004-03-09 Zoltan Varga <vargaz@freemail.hu>
22764 * loader.h: Fix warning.
22766 2004-03-08 Miguel de Icaza <miguel@ximian.com>
22768 * loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
22769 library routine if present. Notice that it will still continue
22770 executing even if its missing, for those working on the Gtk#
22771 edition of Windows.Forms.
22773 * assembly.c (do_mono_assembly_open): If loading the
22774 System.Windows.Forms call mono_loader_wini_init.
22776 2004-03-04 Lluis Sanchez Gual <lluis@ximian.com>
22778 * class.h: Added MonoRemoteClass struct.
22779 * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
22780 function for MonoStrings.
22781 * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
22782 Added internal call for getting the proxy type.
22783 * marshal.c: Get the type of transparent proxies from its remote_class.
22784 Added methods that generate the IL for type checks and casts:
22785 mono_marshal_get_isinst, mono_marshal_get_castclass,
22786 mono_marshal_get_proxy_cancast.
22787 * marshal.h: Declaration of the previous new methods.
22788 * object.c: Added new moethods for creating and updating MonoRemoteClass
22789 instances: mono_remote_class, mono_upgrade_remote_class,
22790 * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
22791 * verify.c: FIx transparent_proxy_fields layout.
22792 * appdomain.c: Bump corlib version.
22794 2004-03-04 Jackson Harper <jackson@ximian.com>
22796 * icall.c: Add icall to access char conversion tables.
22797 * char-conversions.h: Character conversion tables.
22798 * Makefile.am: Add char-conversions.h private header file.
22800 2004-03-04 Zoltan Varga <vargaz@freemail.hu>
22802 * appdomain.c (unload_thread_main): Increase unloading timeout to
22803 10 sec as a temporary workaround for Nant problems.
22805 2004-02-29 Zoltan Varga <vargaz@freemail.hu>
22807 * gc.c: Add checks for GC_enable and GC_disable.
22809 * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
22810 (jaak@zd.com.pl). Fix memory corruption in String.Replace
22813 2004-02-27 Martin Baulig <martin@ximian.com>
22815 * reflection.c (mono_reflection_bind_generic_parameters): Take a
22816 `MonoReflectionType *' instead of a `MonoType *'.
22818 2004-02-26 Zoltan Varga <vargaz@freemail.hu>
22820 * gc.c (run_finalize): Avoid finalizing the object representing the
22822 (finalizer_thread): Fix warning.
22824 2004-02-25 Martin Baulig <martin@ximian.com>
22826 * class.c (_mono_class_get_instantiation_name): Added `int offset'
22827 argument for nested types.
22828 (mono_class_create_generic): Added support for nested generictypes.
22830 * class.h (MonoGenericInst): Added `MonoType *nested_in' and
22833 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
22835 * reflection.c (method_encode_signature): Increase the minimum
22836 value of `size' from 10 to 11.
22837 (mono_reflection_bind_generic_parameters): Take `int type_argc'
22838 and `MonoType **types' arguments instead of the `MonoArray
22839 *types'; added `MonoType *nested_in'. Recursively instantiate
22842 2004-02-23 Zoltan Varga <vargaz@freemail.hu>
22844 * appdomain.h (MonoDomain): Add preallocated null_reference_ex and
22845 stack_overflow_ex members which are used by exception handling.
22847 * appdomain.c (mono_runtime_init): Initialize the new members.
22849 * gc.c (mono_gc_enable): New helper function.
22850 * gc.c (mono_gc_disable): New helper function.
22852 2004-02-23 Martin Baulig <martin@ximian.com>
22854 * icall.c: I must have been really stupid - make it actually work
22857 2004-02-23 Martin Baulig <martin@ximian.com>
22859 * loader.c (method_from_memberref): Only inflate the method if
22860 it's in another klass.
22862 2004-02-23 Martin Baulig <martin@ximian.com>
22864 * class.c (mono_class_inflate_generic_type): Fixed two bugs.
22865 (mono_class_init): If we're a generic instance and an interface,
22866 compute `class->interface_id'; also create `class->interfaces'
22867 here and inflate them.
22869 * metadata.c (do_mono_metadata_parse_generic_inst): Compute
22871 (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
22873 * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
22875 2004-02-15 Miguel de Icaza <miguel@ximian.com>
22877 * reflection.c (method_encode_code): Improved the error message
22878 generated by the exception.
22880 2004-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22882 * icall.c: Martin did not do what he said in the ChangeLog for
22883 2004-02-18, but put back the changes for properties and events.
22884 Commenting those changes out again and adding comment to bug #54518.
22886 * process.c: removed warning.
22888 2004-02-20 Zoltan Varga <vargaz@freemail.hu>
22890 * marshal.c (emit_struct_conv): Print an error message instead of
22891 asserting when a type does not have the StructLayout attribute.
22893 2004-02-20 Martin Baulig <martin@ximian.com>
22895 * reflection.c (mono_type_get_object): Also use the cache for
22897 (mono_reflection_bind_generic_parameters): Always compute
22900 2004-02-20 Martin Baulig <martin@ximian.com>
22902 * class.h (MonoGenericMethod): Removed `klass'.
22904 * class.c (mono_class_inflate_generic_method): Added `MonoClass
22907 2004-02-20 Martin Baulig <martin@ximian.com>
22909 * reflection.c (method_encode_methodspec): Actually use the
22910 uninflated signature for the memberref.
22912 2004-02-20 Martin Baulig <martin@ximian.com>
22914 * class.h (MonoGenericMethod): Removed `declaring'.
22916 * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
22917 is NULL, compute it here.
22919 2004-02-20 Martin Baulig <martin@ximian.com>
22921 * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
22923 * metadata.c (mono_metadata_generic_inst_hash): New method.
22924 (mono_metadata_generic_inst_equal): New method.
22926 * reflection.c (mono_reflection_bind_generic_parameters): Use the
22927 `klass->image->generic_inst_cache' cache to avoid creating
22928 duplicate MonoGenericInst's.
22930 * class.c (mono_class_inflate_generic_type): Use the cache.
22932 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
22934 * object.c: fixed gc descriptor calculation for embedded valuetypes.
22936 2004-02-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22938 * icall.c: added Socket.WSAIoctl icall.
22940 * socket-io.[ch]: implemented
22941 ves_icall_System_Net_Sockets_Socket_WSAIoctl.
22943 2004-02-19 Atsushi Enomoto <atsushi@ximian.com>
22945 * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
22947 2004-02-18 Urs C Muff <umuff@quark.com>
22949 * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
22950 this work on PPC and other big-endian architectures.
22952 * debug-mono-symfile.h: Prepended the names of all the `guint32'
22953 fields with an underscore to make sure they're only accessed by
22954 the read32() macro.
22956 2004-02-18 Martin Baulig <martin@ximian.com>
22958 * icall.c: Put the klass->refclass changes back for methods and
22959 fields, but not for properties and events. We're currently not
22960 distinguishing between DeclaringType and ReflectedType for
22961 properties and events, that's what caused the regressions.
22963 2004-02-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22966 (mono_async_result_new): the handle can be NULL.
22968 * threadpool.c: Use an event instead of a semaphore, don't initialize
22969 it until needed. This saves quite a few semaphores from being created
22970 when using the threadpool.
22972 2004-02-18 Zoltan Varga <vargaz@freemail.hu>
22974 * object.c (mono_string_is_interned_lookup): Fix interning of long
22975 strings. Fixes #54473.
22977 * domain.c (ldstr_equal): Optimize if the two strings are equal.
22979 * icall.c: Revert the klass->refclass changes since they introduce
22980 regressions (bug #54518).
22982 2004-02-18 Martin Baulig <martin@ximian.com>
22984 * class.c (mono_class_init): If we're a generic instance and don't
22985 come from a TypeBuilder, inflate our members here.
22986 (mono_class_from_generic): Removed; just use `ginst->klass' instead.
22987 (mono_class_create_generic): New public method.
22988 (mono_class_initialize_generic): Removed.
22989 (get_instantiation_name): Renamed to
22990 _mono_class_get_instantiation_name() and made it public.
22992 2004-02-18 Martin Baulig <martin@ximian.com>
22994 * class.c (mono_class_inflate_generic_type): Clear the new
22995 instance's `nginst->klass' when inflating a generic instance.
22996 (mono_class_is_subclass_of): Added (basic) support for generic
22999 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
23001 * appdomain.h, domain.c: use a MonoCodeManager instead of a
23002 MonoMempool to hold compiled native code.
23004 2004-02-17 Martin Baulig <martin@ximian.com>
23006 * class.h (MonoDynamicGenericInst): Added `count_properties' and
23009 * reflection.c (mono_reflection_generic_inst_initialize): Added
23010 `MonoArray *properties' argument.
23012 * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.
23014 2004-02-17 Martin Baulig <martin@ximian.com>
23016 * icall.c (ves_icall_Type_GetFields): Renamed to
23017 ves_icall_Type_GetFields_internal() and added a
23018 `MonoReflectionType *rtype' argument; pass it to
23019 mono_field_get_object() to set the field's "reflected" type.
23020 (ves_icall_Type_GetConstructors): Likewise.
23021 (ves_icall_Type_GetEvents): Likewise.
23022 (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
23023 argument; pass it to mono_method_get_object() to set the method's
23026 2004-02-17 Martin Baulig <martin@ximian.com>
23028 * class.h (MonoDynamicGenericInst): New type.
23029 (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
23031 * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
23032 (ves_icall_MonoGenericInst_GetConstructors): New interncall.
23033 (ves_icall_MonoGenericInst_GetFields): New interncall.
23035 * class.c (mono_class_from_generic): Don't call
23036 mono_class_initialize_generic() if this is a dynamic instance;
23037 ie. it's being created from a TypeBuilder.
23038 Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
23039 `class->byval_arg.type'.
23041 * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
23042 to `inflate_method' and made static.
23043 (mono_reflection_inflate_field): Removed.
23044 (mono_reflection_generic_inst_initialize): New public method.
23046 * reflection.h (MonoReflectionGenericInst): Removed `methods',
23047 `ctors' and `fields'; added `initialized'.
23049 2004-02-14 Zoltan Varga <vargaz@freemail.hu>
23051 * debug-helpers.c (mono_method_full_name): Fix output for empty
23054 2004-02-12 Martin Baulig <martin@ximian.com>
23056 * class.h (MonoClassField): Added `MonoType *generic_type'.
23058 * reflection.c (mono_image_get_fieldref_token): Added support for
23059 instantiated generic types.
23060 (field_encode_inflated_field): Removed.
23061 (mono_image_get_inflated_field_token): Removed.
23062 (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
23064 * reflection.h (MonoReflectionInflatedField): Removed.
23066 2004-02-12 Martin Baulig <martin@ximian.com>
23068 * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
23069 `gen_method' field from MonoMethodHeader to MonoMethodSignature.
23071 * reflection.c (mono_image_get_methodspec_token): Take a
23072 `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
23073 (mono_image_create_token): Check whether we have a
23074 `method->signature->gen_method' and call
23075 mono_image_get_methodspec_token() if appropriate.
23076 (inflated_method_get_object): Removed.
23077 (mono_reflection_bind_generic_method_parameters): Return a
23078 `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
23079 (mono_reflection_inflate_method_or_ctor): Likewise.
23081 * reflection.h (MonoReflectionInflatedMethod): Removed.
23083 2004-02-12 Zoltan Varga <vargaz@freemail.hu>
23085 * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
23086 for custom valuetype marshalling.
23088 * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
23090 2004-02-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23092 * icall.c: fixed WSAGetLastError_internal name.
23094 2004-02-11 Zoltan Varga <vargaz@freemail.hu>
23096 * threads.c (mono_thread_attach): Allow this to be called multiple
23097 times for a thread.
23099 * threads.c (build_wait_tids): Do not wait for ourselves.
23101 * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the
23102 appdomain list is empty.
23104 * marshal.c (mono_marshal_get_native_wrapper): Do not free the
23105 memory returned by mono_string_builder_to_utf16, since it points into
23106 managed memory. Thanks to Bernie Solomon for noticing this.
23108 * icall.c: Add AppDomainSetup icalls.
23110 * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
23112 * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
23115 * reflection.c (reflection_methodbuilder_to_mono_method): Save
23116 custom attributes to the method_aux struct. Also fix array indexes etc.
23118 * loader.c (mono_method_get_param_names): Make dynamic case work again.
23120 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
23122 * icall.c, loader.c: icall cleanup: we save quite a bit of memory
23123 (both static and runtime) and reduce startup time.
23125 2004-02-10 Zoltan Varga <vargaz@freemail.hu>
23127 * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
23128 AsAny marshalling conversion instead of crashing.
23130 * marshal.c: Fix warnings.
23132 2004-02-09 Martin Baulig <martin@ximian.com>
23134 * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
23136 * reflection.h (MonoReflectionInflatedMethod): Removed the
23137 `declaring' field, it's now in the unmanaged MonoGenericMethod.
23139 * reflection.c (method_encode_methodspec): Removed the `method'
23140 argument; we get it from `gmethod->declaring'.
23141 (inflated_method_get_object): Removed the `declaring' argument.
23143 2004-02-09 Martin Baulig <martin@ximian.com>
23145 * class.h (MonoGenericMethod): New type.
23146 (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
23149 * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
23150 a `MonoGenericMethod *gen_method' one.
23152 * class.c (mono_class_inflate_generic_type): Take an additional
23153 `MonoGenericMethod * argument. This is only non-NULL if we're
23154 inflating types for a generic method.
23155 (mono_class_inflate_generic_signature): Renamed to
23156 inflate_generic_signature() and made static; take a
23157 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
23158 (inflate_generic_header): Take a `MonoGenericMethod *' argument
23159 instead of a `MonoGenericInst *' one.
23160 (mono_class_inflate_generic_method): Likewise.
23162 * reflection.c (encode_generic_method_sig): Take a
23163 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
23164 (method_encode_methodspec): Likewise.
23165 (inflated_method_get_object): Likewise.
23167 * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
23168 field with a `MonoGenericMethod *gmethod' one.
23170 2004-02-08 Bernie Solomon <bernard@ugsolutions.com>
23172 * class.h (mono_class_has_parent): add parens to expansion
23175 2004-02-08 Martin Baulig <martin@ximian.com>
23177 * image.h (MonoImage): Removed `generics_cache'.
23179 * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
23180 instead of a `MonoType *' argument; removed the `inflate_methods'
23181 argument. Don't inflate methods here.
23183 * loader.c (find_method): If it's a generic instance, call
23184 mono_class_init() on the `sclass->generic_inst->generic_type'.
23186 * metadata.c (mono_type_size): Make this work on uninitialized
23187 generic instances; call it on the `ginst->generic_type's class.
23189 * reflection.c (mono_reflection_bind_generic_parameters): Call
23190 mono_class_from_generic() to create the `ginst->klass'.
23192 2004-02-08 Martin Baulig <martin@ximian.com>
23194 * class.h (MonoClass): Changed type of `generic_inst' from
23195 `MonoType *' to `MonoGenericInst *'.
23197 2004-02-08 Martin Baulig <martin@ximian.com>
23199 * icall.c (ves_icall_Type_BindGenericParameters): Just call
23200 mono_type_get_object(), this is now creating a `MonoGenericInst'
23201 for MONO_TYPE_GENERICINST.
23202 (ves_icall_MonoGenericInst_GetParentType): Likewise.
23203 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
23205 * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
23206 instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
23207 (inflated_method_get_object): Added `MonoClass *refclass' argument.
23208 (mono_reflection_inflate_method_or_ctor): Correctly set declaring
23209 and reflected type.
23211 * reflection.h (MonoReflectionInflatedMethod): Removed
23212 `declaring_type' and `reflected_type'.
23214 2004-02-08 Martin Baulig <martin@ximian.com>
23216 * class.h (MonoGenericInst): Added `MonoType *parent' and
23217 `MonoType **ifaces'.
23219 * reflection.h (MonoReflectionGenericInst): Removed `klass',
23220 `parent' and `interfaces'.
23222 * reflection.c (mono_reflection_bind_generic_parameters): Take a
23223 `MonoType *' argument and return a `MonoType *'.
23226 (ves_icall_MonoGenericInst_GetParentType): New interncall.
23227 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
23229 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
23231 * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
23232 valuetype marshalling.
23234 2004-02-06 Martin Baulig <martin@ximian.com>
23237 (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
23238 (my_mono_class_from_generic_parameter): Likewise.
23240 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
23242 * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
23243 contents of the symbol files lazily.
23245 * object.h (MonoThread): Add 'name' and 'name_len' fields.
23247 * threads.h threads.c icall.c: New icalls for getting and setting the
23250 2004-02-05 Zoltan Varga <vargaz@freemail.hu>
23252 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID):
23253 Raise an exception when the domain is not found.
23255 2004-02-03 Martin Baulig <martin@ximian.com>
23257 * reflection.c (mono_image_get_methodspec_token): Use the
23258 uninflated signature; fixes gen-33.
23260 2004-02-02 Zoltan Varga <vargaz@freemail.hu>
23262 * gc.c threads.c: Make the finalizer thread a normal managed thread so
23263 the finalizer code can use thread functionality.
23265 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for
23266 the finalizer thread.
23268 * threads.c: Make some functions more robust.
23270 * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
23272 * metadata.h: Add new marshalling conventions.
23274 * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
23275 stringbuilder marshalling. Fixes #53700.
23277 * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
23279 * reflection.c (mono_image_get_type_info): Save declarative security
23282 * reflection.c (mono_image_get_field_info): Handle uninitialized
23283 unmanaged fields as well.
23285 * appdomain.c: Bump corlib version.
23287 2004-02-01 Martin Baulig <martin@ximian.com>
23289 * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
23290 method type arguments.
23292 2004-01-30 Duncan Mak <duncan@ximian.com>
23294 * marshal.h: Add prototype for
23295 "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
23297 "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
23300 2004-01-30 Zoltan Varga <vargaz@freemail.hu>
23302 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
23303 (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
23305 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
23307 * marshal.c (mono_marshal_get_native_wrapper): Add support for
23308 custom marshalling of valuetypes.
23310 * marshal.c: Fix some warnings.
23312 2004-01-29 Martin Baulig <martin@ximian.com>
23314 * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
23315 for generic method parameters.
23317 * reflection.c (method_encode_methodspec): Write the uninflated
23318 signature into the methodspec table.
23319 (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
23320 is always the uninflated method.
23321 (reflection_methodbuilder_to_mono_method): Copy the generic
23322 parameters from the MethodBuilder into `header->gen_params'.
23324 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
23326 * class.c (mono_class_from_generic_parameter): Fix warning.
23328 2004-01-27 Martin Baulig <martin@ximian.com>
23330 * class.c (mono_class_from_generic_parameter): Don't create
23331 `klass->methods' here.
23333 2004-01-26 Zoltan Varga <vargaz@freemail.hu>
23335 * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
23336 extension since it does not work with libraries named lib<FOO>.dll.so.
23338 2004-01-25 Martin Baulig <martin@ximian.com>
23340 * class.c (mono_class_inflate_generic_type): Added support for
23341 MONO_TYPE_GENERICINST.
23343 * reflection.c (mono_reflection_inflate_method_or_ctor): Also
23344 inflate methods on open constructed types.
23346 2004-01-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23348 * object.c: fire ProcessExit event in the root AppDomain after running
23349 Main. Fixes bug #53299.
23351 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
23353 * socket-io.c: include the new socket-wrappers.h header.
23354 Use the wrappers instead of the unix socket functions to make the code
23357 2004-01-23 Zoltan Varga <vargaz@freemail.hu>
23359 * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
23361 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
23364 2004-01-22 Zoltan Varga <vargaz@freemail.hu>
23366 * reflection.c (mono_image_create_pefile): Handle the case when the
23367 entry point is not a MethodBuilder.
23369 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
23370 field to ReflectionMethod since it is not allways a builder.
23372 * reflection.c (type_get_fully_qualified_name): New helper function to
23373 return the fully qualified name of a type.
23375 * reflection.c (encode_marshal_blob): Always emit the fully qualified
23376 type name for custom marshallers.
23378 * reflection.c (mono_marshal_spec_from_builder): Ditto.
23380 * class.c (mono_class_setup_vtable): If a parent class already
23381 implements an interface, use the implementing methods from that class.
23384 2004-01-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23386 * threadpool.c: just return instead of ExitThread to allow for thread
23389 2004-01-21 Zoltan Varga <vargaz@freemail.hu>
23391 * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
23392 when closing resource modules.
23394 * reflection.c (mono_image_create_pefile): Handle the case when the
23395 entry point is not a MethodBuilder.
23397 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
23398 field to ReflectionMethod since it is not allways a builder.
23400 2004-01-20 Bernie Solomon <bernard@ugsolutions.com>
23402 * marshal.c (mono_marshal_get_managed_wrapper):
23403 mono_marshal_alloc takes native int so CONV_I
23404 the arg for 64bits.
23406 2004-01-20 Zoltan Varga <vargaz@freemail.hu>
23408 * reflection.c (fixup_cattrs): New function to fixup the methoddef
23409 tokens in the cattr table. Fixes #53108.
23411 2004-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23413 * loader.c: don't trim ".dll" before looking up in the config file.
23414 Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
23416 2004-01-19 Zoltan Varga <vargaz@freemail.hu>
23418 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
23419 Return the module which contains the resource as well.
23420 (ves_icall_System_Reflection_Module_Close): New icall.
23422 * appdomain.c: Bump corlib version number.
23424 * image.c (mono_image_addref): New public function.
23426 * assembly.c: Call mono_image_addref.
23428 * reflection.c (mono_module_get_object): Increase reference count of
23431 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
23434 * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
23435 Applied patch from Bernie Solomon <bernard@ugsolutions.com>. Throw
23436 proper exceptions on DllImport problems.
23438 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
23440 * class.c, metadata.c: eliminate CSIZE macro.
23442 2004-01-19 Lluis Sanchez Gual <lluis@ximian.com>
23444 * icall.c: Added ves_icall_type_IsInstanceOf internal call.
23445 * object.h: Added async_callback field in MonoAsyncResult.
23446 * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
23447 * verify.c: Added async_callback in MonoAsyncResult layout.
23449 2004-01-17 Zoltan Varga <vargaz@freemail.hu>
23451 * reflection.c (mono_reflection_get_custom_attrs): Add support
23454 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
23456 * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder
23458 (mono_marshal_method_from_wrapper): Add null pointer check.
23460 2004-01-16 Martin Baulig <martin@ximian.com>
23462 * debug-mono-symfile.h: Set version number to 36 and reflect
23463 latest symbol writer changes.
23465 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
23467 * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
23468 multi-dimensional arrays.
23469 (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
23470 (mono_class_from_mono_type): Use bounded_array_class_get.
23472 * class.c (mono_bounded_array_class_get): New function which takes
23473 a 'bounded' bool argument to distinguish vectors from one dimensional
23476 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call
23477 bounded_array_class_get if the array has bounds.
23479 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
23480 Search modules loaded using AssemblyBuilder:AddModule as well.
23482 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23484 * appdomain.c: increased corlib version.
23485 * filewatcher.c: removed g_print.
23487 (get_property_info): only allocate what is actually requested.
23488 (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
23490 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23492 * Makefile.am: added filewatcher.[ch]
23493 * filewatcher.[ch]: FileSystemWatcher runtime support.
23494 * icall.c: added new FSW icalls.
23496 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
23498 * string-icalls.c: fix stringbuilder regression as suggested by
23499 Iain McCoy <iain@mccoy.id.au>.
23501 2004-01-13 Zoltan Varga <vargaz@freemail.hu>
23503 * process.c (process_read_stringtable_block): Recognize '007f' as
23504 a language neutral stringtable block.
23506 2004-01-12 Patrik Torstensson
23508 * object.h (MonoStringBuilder) : Changed layout to support our
23509 new stringbuilder class.
23510 * marshal.c: Change marshalling to support the new layout of
23512 * appdomain.c: increased version number because new layout of
23515 2004-01-12 Zoltan Varga <vargaz@freemail.hu>
23517 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
23518 assembly name as an string instead of an AssemblyName, since it is
23519 easier to extract info from it.
23521 * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
23522 the culture subdirectories too. Fixes #52231.
23524 2004-01-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23526 * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
23527 It takes 2 new parameters with an optional name for the method to look
23528 for and case ignoring info.
23530 * threadpool.c: removed unused variable.
23532 2004-01-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23534 * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
23535 It takes 2 new parameters with an optional name for the property to look
23536 for and case ignoring info.
23539 2004-01-09 Zoltan Varga <vargaz@freemail.hu>
23541 * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
23544 2004-01-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23547 * assembly.c: escape the uri before passing it to g_filename_from_uri.
23550 2004-01-07 Zoltan Varga <vargaz@freemail.hu>
23552 * reflection.c: Add support for more than one unmanaged resource.
23554 * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
23555 in field->def_value, as done in all other cases.
23557 * reflection.c (mono_reflection_get_custom_attrs): Add support for
23560 * reflection.c (mono_reflection_create_runtime_class): Remove
23561 errorneous assignment to klass->element_class, since it is already
23562 done in mono_reflection_setup_internal_class.
23564 2004-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23566 * gc.c: added missing LeaveCriticalSection.
23567 * icall.c: indented a couple of lines.
23568 * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
23569 if we call EndInvoke inside a callback. Fixes bug #52601.
23571 2004-01-07 Martin Baulig <martin@ximian.com>
23573 * mono-debug-debugger.h
23574 (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
23576 2004-01-06 Miguel de Icaza <miguel@ximian.com>
23578 * appdomain.c: Use messages in NotImplementedException.
23580 * exception.c (mono_get_exception_not_implemented): Now this takes
23581 a message argument.
23583 * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
23584 exception instead of g_asserting an aborting when something is not
23587 Add some inline docs.
23589 2004-01-05 Zoltan Varga <vargaz@freemail.hu>
23591 * reflection.h: Update after changes to object layout.
23593 * reflection.c: Implement saving of unmanaged aka win32 resources.
23595 * appdomain.c: Bump version number.
23597 * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID):
23598 Handle missing domains gracefully.
23600 2004-01-05 Atsushi Enomoto <atsushi@ximian.com>
23602 * file-io.c : On Windows, there are much more invalid_path_chars.
23604 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
23606 * class.h, object.c: prepare for GetType () speedup.
23608 2003-12-24 Atsushi Enomoto <atsushi@ximian.com>
23610 * profiler.c: workaround for --profile null reference exception on
23611 cygwin. Patch by Patrik Torstensson.
23613 2003-12-22 Bernie Solomon <bernard@ugsolutions.com>
23615 * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
23616 make work for unaligned access.
23618 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
23620 * class.c: small cleanup (class->fields [i] -> field).
23621 * image.c: check address of metadata is valid.
23623 2003-12-22 Zoltan Varga <vargaz@freemail.hu>
23625 * assembly.h assembly.c (mono_assembly_loaded): New public function to
23626 search the list of loaded assemblies.
23628 * reflection.c (mono_reflection_type_from_name): Use
23629 mono_assembly_loaded instead of mono_image_loaded.
23631 * reflection.c: Fix warnings.
23633 2003-12-20 Zoltan Varga <vargaz@freemail.hu>
23635 * image.h (MonoImage): Add a new 'dynamic' field to denote that the image
23636 is dynamic. This is needed since an assembly can contain both dynamic and
23637 non-dynamic images.
23639 * class.c loader.c metadata.c object.c: Use image->dynamic instead of
23642 * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
23644 * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
23645 to store modules loaded using AddModule.
23647 * reflection.c (mono_image_fill_file_table): Generalize this so it works
23650 * reflection.c (mono_image_fill_export_table_from_class): New helper function.
23652 * reflection.c (mono_image_fill_export_table_from_module): New function to
23653 fill out the EXPORTEDTYPES table from a module.
23655 * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
23656 into a separate function. Also handle loaded non-dynamic modules.
23658 * reflection.c (mono_image_basic_init): Fix memory allocation.
23660 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
23662 * assembly.c (mono_assembly_load_references): Make this public.
23664 2003-12-19 Martin Baulig <martin@ximian.com>
23666 * class.c (mono_class_initialize_generic): Made this static, take
23667 a `MonoGenericInst *' instead of a `MonoClass *'.
23668 (mono_class_from_generic): Call mono_class_initialize_generic()
23669 unless we're already initialized or being called from
23670 do_mono_metadata_parse_generic_inst().
23672 * class.h (MonoGenericInst): Added `initialized' and
23673 `init_pending' flags.
23675 * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
23676 `mono_class_init (gklass)' or mono_class_initialize_generic()
23677 here; set `generic_inst->init_pending' while parsing the
23680 2003-12-19 Bernie Solomon <bernard@ugsolutions.com>
23682 * locales.c: include string.h for memxxx prototypes
23684 2003-12-19 Zoltan Varga <vargaz@freemail.hu>
23686 * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
23687 constructor when accessing literal fields.
23689 2003-12-17 Zoltan Varga <vargaz@freemail.hu>
23691 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
23693 * reflection.c (assembly_add_resource_manifest): New function to fill
23694 the MANIFESTRESOURCE table.
23696 * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
23698 * reflection.h: Update to changes in class layout.
23700 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted):
23701 Reenable call to mono_runtime_is_shutting_down ().
23703 * appdomain.c (mono_runtime_is_shutting_down): New helper function to
23704 determine if the runtime is shutting down.
23706 2003-12-16 Jackson Harper <jackson@ximian.com>
23708 * icall.c: comment out call to mono_runtime_is_shutting_down to
23711 2003-12-16 Zoltan Varga <vargaz@freemail.hu>
23713 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
23714 (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
23716 2003-12-15 Bernie Solomon <bernard@ugsolutions.com>
23718 * reflection.c: move definition of swap_with_size
23719 to before its first call
23721 2003-12-15 Zoltan Varga <vargaz@freemail.hu>
23723 * appdomain.c (mono_runtime_is_shutting_down): New public function.
23725 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
23728 * object.c: Fix warnings.
23730 * icall.c (ves_icall_Type_Get...): Only consider inherited static
23731 members if FlattenHierarchy is set.
23733 * reflection.c (mono_image_add_decl_security): New function to emit
23734 declarative security.
23736 * reflection.h reflection.c: Add support for declarative security.
23738 * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
23740 2003-12-13 Zoltan Varga <vargaz@freemail.hu>
23742 appdomain.c (MONO_CORLIB_VERSION): Bump version number.
23744 * appdomain.c verify.c: Moved corlib version checking into its own
23745 function in appdomain.c since it needs to create vtables etc.
23747 2003-12-13 Patrik Torstensson <p@rxc.se>
23749 * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this
23750 instead of unwrapped server.
23752 2003-12-12 Zoltan Varga <vargaz@freemail.hu>
23754 * verify.c (check_corlib): Fix field index.
23756 2003-12-10 Zoltan Varga <vargaz@freemail.hu>
23758 * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
23761 2003-12-10 Bernie Solomon <bernard@ugsolutions.com>
23763 * process.c: (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
23764 ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
23765 cope with sizeof(size_t) != sizeof(guint32).
23767 2003-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23769 * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
23770 in case of failure.
23772 2003-12-10 Mark Crichton <crichton@gimp.org>
23774 * icall.c: removed the GetNonZeroBytes. We now handle this case
23777 * rand.c, rand.h: Same here. Also cleaned up the clode slightly.
23779 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
23781 * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
23784 2003-12-09 Zoltan Varga <vargaz@freemail.hu>
23786 * verify.c (check_corlib): Handle the case when the version field is
23787 initialized by a static constructor.
23789 2003-12-08 Patrik Torstensson <p@rxc.se>
23791 * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
23793 2003-12-08 Martin Baulig <martin@ximian.com>
23795 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
23796 a MonoReflectionGenericParameter, also take the parameter index
23797 and name as arguments.
23798 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
23799 (ves_icall_MonoGenericParam_initialize): New interncall.
23800 (ves_icall_Type_make_byref_type): New interncall.
23802 * reflection.h (MonoReflectionGenericParam): Derive from
23803 MonoReflectionType, not just from MonoObject. Added `refobj' and
23806 * reflection.c (mono_reflection_define_generic_parameter): Create
23807 and return a new MonoReflectionGenericParam; don't initialize the
23809 (mono_reflection_initialize_generic_parameter): New public method;
23810 initializes the constraints and creates the `param->pklass'.
23812 2003-12-08 Zoltan Varga <vargaz@freemail.hu>
23814 * reflection.h reflection.c: Use the new fields 'num_types',
23815 'num_fields' and 'num_methods' to track the number of types etc.
23817 * verify.c (check_corlib): Check corlib version number.
23819 2003-12-07 Zoltan Varga <vargaz@freemail.hu>
23821 * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
23822 function works on all methods.
23824 2003-12-07 Lluis Sanchez Gual <lluis@ximian.com>
23826 * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
23827 * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
23828 the custom_type_info flag of the transparent proxy.
23829 * object.c: Added method mono_object_isinst_mbyref for casting mbyref
23830 objects that supports IRemotingTypeInfo.
23831 * object.h: Added custom_type_info field in transparent proxy.
23833 2003-12-06 Martin Baulig <martin@ximian.com>
23835 * class.c (mono_class_create_from_generic): Removed.
23836 (mono_class_from_generic): Check `ginst->klass' before doing
23837 anything else. This is important to fully support "recursive"
23840 * metadata.c (do_mono_metadata_parse_generic_inst): Create an
23841 empty `generic_inst->klass' before doing anything else.
23843 2003-12-06 Dick Porter <dick@ximian.com>
23848 * locales.c: Use C structs to access class fields. Don't do a
23849 conversion between MonoString and UChar because both are
23850 platform-endian UTF-16. Compare now takes startindex and count
23851 parameters. Add a char overload for IndexOf. Speed up the
23852 invariant string IndexOf.
23854 2003-12-05 Zoltan Varga <vargaz@freemail.hu>
23856 * Makefile.am (monosn_LDADD): Fix parallel build.
23858 2003-12-04 Martin Baulig <martin@ximian.com>
23861 (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
23862 (ves_icall_Type_make_array_type): New interncall.
23864 2003-12-04 Martin Baulig <martin@ximian.com>
23866 * locales.c: also change it in the !HAVE_ICU case.
23868 2003-12-04 Dick Porter <dick@ximian.com>
23871 * locales.c: construct_compareinfo is now in CompareInfo, not
23874 2003-12-04 Zoltan Varga <vargaz@freemail.hu>
23876 * image.c (mono_image_load_file_for_image): Cache loaded images in the
23877 image->files array.
23879 * image.c (load_class_name): Load class names from the EXPORTEDTYPES
23882 * assembly.c (mono_assembly_load_references): Only load references
23885 * class.c (mono_class_from_name): Avoid linear search of the
23886 EXPORTEDTYPE table.
23888 * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
23890 2003-12-03 Zoltan Varga <vargaz@freemail.hu>
23892 * image.h (MonoImage): Add 'field_cache' field.
23894 * loader.c (mono_field_from_token): Cache field lookups.
23896 * reflection.c (mono_module_get_object): Fix name property.
23898 * icall.c (ves_icall_get_enum_info): Update after changes to
23899 mono_metadata_get_constant_index ().
23901 * icall.c: Get rid of get_type_info icall, use a separate icall for
23902 each type property to avoid needless memory allocations. Fixes #51514.
23904 * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
23905 to avoid needless binary searches.
23907 * class.c (class_compute_field_layout): Move the initialization of
23908 field->def_value to mono_class_vtable ().
23910 * class.c (mono_class_layout_fields): Enable GC aware auto layout for
23913 * object.c (mono_object_allocate): Make it inline.
23915 * object.c (mono_object_allocate_spec): Make it inline.
23917 2003-12-02 Dick Porter <dick@ximian.com>
23919 * locales.c (create_NumberFormat): NumberFormatInfo construction.
23920 Patch by Mohammad DAMT (mdamt@cdl2000.com).
23922 2003-12-01 Dick Porter <dick@ximian.com>
23924 * threads.c: Fix signature and call in CreateMutex and
23927 2003-12-01 Dick Porter <dick@ximian.com>
23930 * locales.c: Implement string compares and searching
23932 * object.h: Add extra Thread field
23934 2003-11-30 Zoltan Varga <vargaz@freemail.hu>
23936 * reflection.c (fixup_method): Add support for MonoCMethod.
23938 2003-11-28 Zoltan Varga <vargaz@freemail.hu>
23940 * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
23942 * reflection.c (assembly_name_to_aname): Allow extra characters in
23943 assembly names. Fixes #51468.
23945 2003-11-26 Zoltan Varga <vargaz@freemail.hu>
23947 * exception.c (mono_exception_from_name_domain): New helper function.
23949 * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
23950 exception object in the correct domain.
23952 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix
23953 formatting + make a copy a the input data.
23955 * loader.c (mono_get_method_from_token): Methods which contain
23956 native code do not have entries in the ImplMap.
23958 (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
23959 Thanks to Gonzalo for spotting this.
23961 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
23962 patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
23964 * assembly.h (mono_assembly_load_from): Split the second part of
23965 assembly loading into a new public function.
23967 * exception.h (mono_get_exception_bad_image_format): New function.
23969 2003-11-24 Zoltan Varga <vargaz@freemail.hu>
23971 icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
23972 Enumerate all modules inside a dynamic assembly. Fixes #51293.
23974 * icall.c: Add new icall for creating dynamic methods.
23976 * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
23978 * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
23980 * reflection.c (mono_reflection_create_dynamic_method): New icall to
23981 create a dynamic method.
23983 * reflection.c (resolve_object): New helper function.
23985 * reflection.c: Generalize ReflectionMethodBuilder and the functions
23986 which manipulate it so they can also work on dynamic methods.
23988 * reflection.c (reflection_method_builder_to_mono_method): Avoid
23989 creating the MonoReflectionMethodAux structure if it is not needed.
23991 * reflection.h verify.c: Update after changes to object layout.
23993 * reflection.c (method_builder_encode_signature): Fix compilation on
23996 2003-11-21 Lluis Sanchez Gual <lluis@ximian.com>
23998 * appdomain.h: Added support for context static fields. Added static_data
23999 field to MonoAppContext and renamed thread_static_fields to a more
24000 generic special_static_fields in MonoAppDomain, since it can now contain
24001 context static fields.
24002 * domain.c: Updated hashtable name.
24003 * object.c: Replaced field_is_thread_static() for a more generic
24004 field_is_special_static() which also checks for context static attribute.
24005 In mono_class_vtable(), added support for static context fields.
24006 * threads.c: Changed methods that manage thread static fields to more
24007 generic methods so they can be reused both for thread and context static
24009 * threads.h: Declared some new methods.
24011 2003-11-21 Zoltan Varga <vargaz@freemail.hu>
24013 * reflection.h: Update after changes to the managed types.
24015 * reflection.c (encode_custom_modifiers): New helper function.
24017 * reflection.c (method_encode_signature): Emit custom modifiers.
24019 * reflection.c (field_encode_signature): Emit custom modifiers.
24021 2003-11-18 Zoltan Varga <vargaz@freemail.hu>
24023 * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
24025 * icall.c (ves_icall_System_ValueType_Equals): New optimized
24028 * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New
24031 * object.c (mono_field_get_value_object): New function.
24033 * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
24036 2003-11-17 Zoltan Varga <vargaz@freemail.hu>
24038 * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
24039 return a preallocated out-of-memory exception instance.
24041 * object.c (out_of_memory): Use the new function.
24043 * metadata.c (mono_metadata_parse_type): Handle the case when the byref
24044 flag is before the custom modifiers. Fixes #49802.
24046 2003-11-16 Martin Baulig <martin@ximian.com>
24048 * class.c (mono_class_is_open_constructed_type): Implemented the
24049 MONO_TYPE_GENERICINST case.
24051 2003-11-16 Zoltan Varga <vargaz@freemail.hu>
24053 * assembly.c (mono_assembly_fill_assembly_name): New function to
24054 fill out the MonoAssemblyName structure.
24055 (mono_assembly_open): Use the new function.
24057 * icall.c (fill_reflection_assembly_name): New helper function.
24059 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
24062 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
24064 2003-11-15 Martin Baulig <martin@ximian.com>
24066 * class.c (mono_class_is_open_constructed_type): New public
24067 function; checks whether a type is an open constructed type,
24068 ie. whether it still contains type parameters.
24069 (mono_class_inflate_generic_type): If we're a type parameter and
24070 the inflated type is also a MONO_TYPE_(M)VAR, return the original
24073 * class.h (MonoGenericInst): Added `guint32 is_open'.
24075 * loader.c (method_from_methodspec): Check whether we're an open
24076 or closed constructed type and set `ginst->is_open'.
24078 * reflection.c (mono_reflection_bind_generic_parameters): Check
24079 whether we're an open or closed constructed type and set
24081 (mono_reflection_inflate_method_or_ctor): Don't inflate methods
24082 from open constructed types.
24084 2003-11-15 Martin Baulig <martin@ximian.com>
24086 * reflection.c (mono_reflection_bind_generic_parameters): If we're
24087 a generic instance (instead of a generic type declaration) with
24088 unbound generic parameters, bind them to our actual types.
24090 2003-11-14 Martin Baulig <martin@ximian.com>
24092 * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
24094 * reflection.c (mono_reflection_bind_generic_parameters): If we're
24095 an interface type, populate `res->interfaces' with instantiated
24096 versions of all the interfaces we inherit.
24098 2003-11-13 Aleksey Demakov <avd@openlinksw.com>
24100 * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
24101 when MONO_PATH is set but doesn't contain the install dir.
24103 2003-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
24106 (ves_icall_Type_GetInterfaces): don't return an interface twice when
24107 it's also implemented in base classes. Fixes bug #50927.
24109 2003-11-13 Zoltan Varga <vargaz@freemail.hu>
24111 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
24112 if this method is called from a finalizer. Fixes #50913.
24114 2003-11-12 Miguel de Icaza <miguel@ximian.com>
24116 * threads.c: Implement VolatileRead/VolatileWrite
24118 * icall.c: Add new icalls for VolatileRead/VolatileWrite
24120 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
24122 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied
24123 patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
24126 * assembly.c (mono_assembly_open): Fix windows build. Applied patch
24127 from Peter Ross (pro@missioncriticalit.com).
24129 2003-11-12 Lluis Sanchez Gual <lluis@ximian.com>
24131 * icall.c: Added internal call for System.Environment::GetMachineConfigPath
24133 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
24135 * assembly.c (mono_assembly_load_references): Disable check because it
24136 triggers on older corlibs which lots of people have.
24138 2003-11-12 Jackson Harper <jackson@ximian.com>
24140 * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
24141 load corlib.dll if mscorlib.dll is not found.
24142 * assembly.h: Remove corlib name define.
24145 * image.c: Change corlib name to mscorlib.
24147 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
24149 * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
24151 2003-11-11 Miguel de Icaza <miguel@ximian.com>
24153 * appdomain.h: Added loader_optimization here to sync with the C#
24154 code, and add disallow_binding_redirects field.
24156 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
24158 * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
24160 * reflection.c (mono_image_build_metadata): Fix crash on modules
24163 * reflection.h (MonoMethodInfo): Track changes to the managed structure.
24165 * icall.c (ves_icall_get_method_info): Return callingConvention as
24168 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add
24169 namespaces from the EXPORTEDTYPE table as well.
24171 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
24172 from all modules inside the assembly.
24174 2003-11-11 Martin Baulig <martin@ximian.com>
24176 * reflection.c (mono_reflection_bind_generic_parameters): Make
24177 this work for interfaces.
24179 2003-11-11 Martin Baulig <martin@ximian.com>
24181 * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
24183 2003-11-11 Martin Baulig <martin@ximian.com>
24185 * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
24186 "MonoInflatedMethod" and "MonoInflatedCtor".
24188 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
24190 * reflection.c (resolution_scope_from_image): Use the assembly table
24191 from the manifest module, since other modules don't have it.
24193 * debug-helpers.c (mono_type_full_name): New helper function.
24195 * image.h (MonoAssembly): Change 'dynamic' to a boolean.
24197 * image.c (mono_image_load_file_for_image): New public function which
24198 is a replacement for the load_file_for_image in class.c.
24200 * assembly.c (mono_assembly_load_module): A wrapper for the function
24201 above which does assembly association and reference loading too.
24203 * class.c (mono_class_from_name): Call mono_assembly_load_module.
24205 2003-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
24207 * appdomain.c: not all of the attributes for the full assembly name
24208 are required and the order doesn't matter. Fixes bug #50787.
24210 2003-11-10 Dick Porter <dick@ximian.com>
24212 * locales.c: Use platform-endian UTF16
24214 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
24216 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
24218 2003-11-10 Martin Baulig <martin@ximian.com>
24221 (mono_metadata_load_generic_params): Make this actually work.
24223 * reflection.c (mono_reflection_bind_generic_parameters): If our
24224 parent is a generic instance, pass all the `types' to it, no
24225 matter whether it has the same number of type parameters or not.
24227 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
24229 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
24231 * assembly.c (mono_assembly_load_references): Move the image<->assembly
24232 assignment code to this function so it gets called recursively for all
24235 * image.c (load_modules): Remove the assembly assignment since it is
24236 now done by mono_assembly_load_references.
24238 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
24239 Add 'module' argument.
24240 (mono_module_get_types): New helper function.
24241 (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
24243 2003-11-08 Martin Baulig <martin@ximian.com>
24245 * class.c (mono_class_inflate_generic_method): Interface method
24246 don't have a header.
24248 * reflection.c (mono_image_get_methodspec_token): Take an
24249 additional `MonoGenericInst *' argument instead of reading it from
24250 the header; this is necessary to support interfaces.
24251 (mono_image_create_token): Pass the `MonoGenericInst *' from the
24252 MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
24253 (inflated_method_get_object): Take an additional `MonoGenericInst *'
24256 * reflection.h (MonoReflectionInflatedMethod): Added
24257 `MonoGenericInst *ginst'.
24259 2003-11-07 Zoltan Varga <vargaz@freemail.hu>
24261 * gc.c (mono_domain_finalize): Fix compilation for no GC case.
24263 2003-11-06 Zoltan Varga <zovarga@ws-zovarga2>
24265 * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
24267 2003-11-06 Zoltan Varga <vargaz@freemail.hu>
24270 (reflection_methodbuilder_from_method_builder):
24271 (reflection_methodbuilder_from_ctor_builder): New helper functions to
24272 initialize a ReflectionMethodBuilder structure.
24273 (mono_image_get_methodbuilder_token):
24274 (mono_image_get_ctorbuilder_token): New functions to emit memberref
24275 tokens which point to types in another module inside the same assembly.
24277 * reflection.c: Use the new helper functions.
24279 * reflection.c (mono_image_basic_init): Initialize basedir and culture.
24281 * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image
24282 instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
24284 * reflection.c (resolution_scope_from_image): Emit a moduleref if
24287 * reflection.c (mono_image_build_metadata): Emit metadata only for the
24288 current module. Emit the manifest only for the main module.
24290 * reflection.c (mono_image_create_token): Add assertion when a
24291 memberref needs to be created.
24293 * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
24295 * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a
24296 larger buffer for the custom attribute blob. Fixes #50637.
24298 2003-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
24300 * threadpool.c: notify listener on async processing handles after
24301 invoking the async callback. Thanks to Zoltan.
24303 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
24305 * reflection.c (create_dynamic_mono_image): Call mono_image_init to
24306 avoid code duplication.
24308 * reflection.h (MonoDynamicImage): New type which is currently unused,
24309 but will be used through the ref.emit code in place of
24310 MonoDynamicAssembly.
24312 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
24315 * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
24316 a MonoDynamicImage instead of just a MonoImage.
24318 * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
24319 icalls to ModuleBuilder but keep their semantics, so they will work
24320 with moduleb->assemblyb. This will change later.
24322 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
24324 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
24327 * reflection.c (mono_image_build_metadata): Avoid creation of a default
24328 main module, since it is now done by the managed code.
24330 2003-11-03 Martin Baulig <martin@ximian.com>
24332 * reflection.c (mono_reflection_inflate_method_or_ctor): Set
24333 `ginst->klass' here.
24334 (method_encode_methodspec): Don't use the `ginst->generic_method's
24335 klass if it's a generic instance, use `ginst->klass' in this case.
24337 2003-11-03 Martin Baulig <martin@ximian.com>
24339 * reflection.c (mono_image_get_generic_method_param_info):
24340 Removed, use mono_image_get_generic_param_info() instead.
24341 (mono_image_get_type_info): Write the GenericParam table before
24342 the Method table. This is neccessary because in the GenericParam
24343 table, type parameters of the class (ie. '!0' etc.) must come
24344 before the ones from its generic methods (ie. '!!0' etc).
24346 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
24348 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
24350 2003-11-02 Martin Baulig <martin@ximian.com>
24352 * reflection.c (create_generic_typespec): Take a
24353 `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
24354 the generic parameters from it.
24356 2003-11-02 Martin Baulig <martin@ximian.com>
24358 * reflection.c (fieldref_encode_signature): Take a `MonoType *'
24359 instead of a `MonoClassField *' since we just need the type.
24360 (create_generic_typespec): New static function. Creates a
24361 TypeSpec token for a generic type declaration.
24362 (mono_image_get_generic_field_token): New static function.
24363 (mono_image_create_token): If we're a FieldBuilder in a generic
24364 type declaration, call mono_image_get_generic_field_token() to get
24367 2003-11-02 Martin Baulig <martin@ximian.com>
24370 (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
24371 `MonoReflectionGenericInst *declaring_type' and
24372 `MonoReflectionGenericInst *reflected_type' fields.
24374 * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
24375 `MonoReflectionGenericInst *declaring_type' and a
24376 `MonoReflectionGenericInst *reflected_type' argument instead of a
24377 single `MonoReflectionGenericInst *type' one. Set
24378 `res->declaring_type' and `res->reflected_type' from them.
24379 (mono_reflection_inflate_field): Likewise.
24381 2003-11-02 Martin Baulig <martin@ximian.com>
24383 * class.c (mono_class_setup_vtable): Don't store generic methods
24386 2003-11-02 Martin Baulig <martin@ximian.com>
24388 * reflection.h (MonoReflectionGenericInst): Added
24389 `MonoReflectionType *declaring_type'.
24391 * reflection.c (mono_reflection_bind_generic_parameters): Use
24392 `if (tb->parent)' instead of `klass->parent'.
24394 2003-11-01 Zoltan Varga <vargaz@freemail.hu>
24396 * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
24397 with an empty ASSEMBLY table.
24399 * reflection.c (mono_image_build_metadata): Avoid using the same loop
24400 variable in the inner and outer loops.
24402 2003-10-31 Zoltan Varga <vargaz@freemail.hu>
24404 * metadata.h (mono_metadata_make_token): Put parentheses around macro
24407 * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
24409 * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain
24410 icalls. Instead, do everything in managed code. This is needed since
24411 it is hard to restore the original domain etc. in unmanaged code in the
24412 presence of undeniable exceptions.
24414 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef):
24415 New icalls to push and pop appdomain refs.
24417 2003-10-31 Martin Baulig <martin@ximian.com>
24419 * class.c (inflate_generic_type): Renamed to
24420 mono_class_inflate_generic_type() and made it public.
24422 * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
24425 * loader.c (mono_field_from_memberref): Also set the retklass for
24428 * fielder.c (mono_image_get_inflated_field_token): New static
24429 method; creates a metadata token for an inflated field.
24430 (mono_image_create_token, fixup_method): Added support for
24431 "MonoInflatedField".
24432 (fieldbuilder_to_mono_class_field): New static function.
24433 (mono_reflection_inflate_field): New public function.
24436 (MonoReflectionGenericInst): Added `MonoArray *fields'.
24437 (MonoReflectionInflatedField): New typedef.
24439 2003-10-30 Bernie Solomon <bernard@ugsolutions.com>
24441 * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
24442 for Solaris and other platforms without s6_addr16
24444 2003-10-30 Martin Baulig <martin@ximian.com>
24446 * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
24447 argument instead of two.
24448 (mono_class_inflate_generic_signature): Likewise.
24449 (inflate_generic_header): Likewise.
24450 (mono_class_inflate_generic_method): Likewise. In addition, if
24451 `ginst->klass' is set, it becomes the new `method->klass'.
24453 * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
24456 * reflection.c (encode_generic_method_sig): Write a 0xa as the
24457 first byte. [FIXME]
24458 (method_encode_methodspec): If we have generic parameters, create
24459 a MethodSpec instead of a MethodRef.
24460 (fixup_method): Added support for "MonoInflatedMethod" and
24461 "MonoInflatedCtor".
24462 (mono_image_create_token): Added support for "MonoInflatedMethod"
24463 and "MonoInflatedCtor".
24464 (inflated_method_get_object): New static function; returns a
24465 managed "System.Reflection.MonoInflatedMethod" object.
24466 (mono_reflection_bind_generic_method_parameters): Return a
24467 `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
24468 (mono_reflection_inflate_method_or_ctor): Likewise.
24469 (mono_image_get_generic_method_param_info): Initialize unused
24471 (mono_image_get_generic_param_info): Likewise.
24473 * reflection.h (MonoReflectionInflatedMethod): New public
24474 typedef. Corresponds to the managed "S.R.MonoInflatedMethod" and
24475 "S.R.MonoInflatedCtor" classes.
24477 * loader.c (method_from_memberref): If we're a TypeSpec and it
24478 resolves to a generic instance, inflate the method.
24480 2003-10-28 Dick Porter <dick@ximian.com>
24482 * object.c (mono_runtime_run_main): Convert command-line arguments
24483 into utf8, falling back to the user's locale encoding to do so.
24485 2003-10-27 Zoltan Varga <vargaz@freemail.hu>
24487 * loader.c (mono_get_method_from_token): Avoid looking up the icalls
24490 * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
24492 * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
24493 up icalls at method definition time. Partially fixes #33569.
24495 2003-10-25 Zoltan Varga <vargaz@freemail.hu>
24497 * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
24498 marshalling of arrays. Fixes #50116.
24500 * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
24502 * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
24503 points to a vtable in the dying appdomain.
24505 * appdomain.c (mono_domain_unload): Move the notification of OnUnload
24506 listeners into unmanaged code inside the lock.
24508 * object.c (mono_class_vtable): Turn off typed allocation in non-root
24509 domains and add some comments.
24511 2003-10-25 Martin Baulig <martin@ximian.com>
24513 * class.h (MonoGenericInst): Added `MonoClass *klass' field.
24515 * image.h (MonoImage): Added `GHashTable *typespec_cache'.
24517 * metadata.c (mono_metadata_parse_generic_inst): Renamed to
24518 `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
24519 currently parsing. Create the generic class and store it in
24520 `generic_inst->klass' before parsing the type arguments. This is
24521 required to support "recursive" definitions; see mcs/tests/gen-23.cs
24523 (mono_type_create_from_typespec): Use a new `image->typespec_cache'
24524 to support recursive typespec entries.
24526 * class.c (mono_class_setup_parent): If our parent is a generic
24527 instance, we may get called before it has its name set.
24528 (mono_class_from_generic): Splitted into
24529 mono_class_create_from_generic() and mono_class_initialize_generic().
24531 2003-10-25 Martin Baulig <martin@ximian.com>
24533 * icall.c (ves_icall_Type_BindGenericParameters): Return a
24534 `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
24535 ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
24536 ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
24538 * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
24539 (create_typespec): Likewise.
24540 (mono_reflection_bind_generic_parameters): Return a
24541 `MonoReflectionGenericInst *' instead of a `MonoClass *'.
24542 (mono_reflection_inflate_method_or_ctor): New public function.
24544 * reflection.h (MonoReflectionGenericInst): New typedef.
24546 2003-10-24 Zoltan Varga <vargaz@freemail.hu>
24548 * object.c (mono_class_proxy_vtable): Run the whole vtable construction
24549 inside the domain lock. Fixes #49993.
24551 * object.c (mono_class_vtable): When typed allocation is used,
24552 allocate vtables in the GC heap instead of in the mempool, since the
24553 vtables contain GC descriptors which are used by the collector even
24554 after the domain owning the mempool is unloaded.
24556 * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
24558 * domain.c (mono_domain_unload): Rename to mono_domain_free to better
24559 reflect what it does. Also invalidate mempools instead of freeing
24560 them if a define is set.
24562 * appdomain.h (MonoAppDomainState): New enumeration to hold the state
24565 * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
24566 hold the finalizable objects in this domain.
24568 * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
24571 * appdomain.c (mono_domain_set): New function to set the current
24572 appdomain, but only if it is not being unloaded.
24574 * appdomain.c threads.c threadpool.c object.c: Avoid entering an
24575 appdomain which is being unloaded.
24577 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
24578 unloading of the root appdomain.
24580 * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
24581 icall to execute a method in another appdomain. Intended as a
24582 replacement for InternalSetDomain, which can confuse the code
24583 generation in the JIT.
24585 * appdomain.c (mono_domain_is_unloading): New function to determine
24586 whenever an appdomain is unloading.
24588 * appdomain.c (mono_domain_unload): New function to correctly unload
24591 * assembly.c (mono_assembly_load_references): Check that an assembly
24592 does not references itself.
24594 * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
24595 domain manually, it asks the finalizer thread to do it, then waits for
24596 the result. Also added a timeout.
24598 * icall.c: Register the new icalls.
24600 * threads.h threads.c: Export the mono_gc_stop_world and
24601 mono_gc_start_world functions.
24603 * mempool.h mempool.c (mono_mempool_invalidate): New debugging
24604 function to fill out the mempool with 0x2a.
24606 2003-10-22 Zoltan Varga <vargaz@freemail.hu>
24608 * reflection.h (MonoReflectionMethodAux): New structure to store
24609 information which is rarely used, thus is not in the MonoMethod
24612 * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
24613 store the aux info.
24615 * reflection.c (mono_methodbuilder_to_mono_method): Store param names
24616 and marshalling info into the aux structure.
24618 * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
24619 from the aux structure.
24621 * loader.c (mono_method_get_param_names): Retrieve the param names from
24624 2003-10-21 Zoltan Varga <vargaz@freemail.hu>
24626 * exception.h exception.c: Add AppDomainUnloadedException && fix
24629 2003-10-21 Dick Porter <dick@ximian.com>
24632 (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
24633 patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
24635 2003-10-21 Martin Baulig <martin@ximian.com>
24637 * reflection.c (mono_reflection_bind_generic_parameters):
24638 `klass->parent' is NULL for interfaces.
24640 2003-10-21 Martin Baulig <martin@ximian.com>
24642 * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
24644 2003-10-20 Zoltan Varga <vargaz@freemail.hu>
24646 * exception.c (mono_exception_from_name_msg): New helper function for
24647 creating exceptions and initializing their message field.
24649 * exception.c: Simplify functions using the new helper.
24651 * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
24654 * object.h object.c: Remove G_GNUC_NORETURN from the signature of
24655 mono_raise_exception, since otherwise gcc doesn't generate the function
24656 epilog for raise_exception, confusing the stack unwinding in the JIT.
24659 * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
24660 PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
24663 2003-10-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
24665 * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
24668 2003-10-18 Lluis Sanchez Gual <lluis@ximian.com>
24670 * icall.c: Removed GetUninitializedObject method because
24671 AllocateUninitializedClassInstance does the same.
24673 2003-10-18 Martin Baulig <martin@ximian.com>
24675 * class.c (inflate_generic_signature): Renamed to
24676 mono_class_inflate_generic_signature() and made it public.
24677 (my_mono_class_from_generic_parameter): New static function; if we
24678 don't already have the generic parameter's MonoClass, create a
24679 very simple one which is just used internally in the runtime and
24680 not passed back to managed code.
24682 * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
24684 * metadata.h (MonoMethodSignature): Moved the
24685 `MonoGenericParam *gen_params' to the MonoMethodHeader.
24686 (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
24688 * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
24689 ves_icall_MonoMethod_GetGenericArguments(); this is now an
24690 interncall on the MonoMethod class, not on MethodInfo.
24691 (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
24692 calling mono_reflection_bind_generic_method_parameters() directly.
24694 * loader.c (mono_method_get_signature): If this is a MethodSpec;
24695 return the already computed `method->signature'.
24696 (method_from_methodspec): New static function to load a method
24697 from a MethodSpec entry.
24698 (mono_get_method_from_token): Call the new method_from_methodspec()
24699 for MethodSpec tokens.
24700 (mono_get_method_from_token): If we're a generic method, load the
24703 * reflection.c (mono_image_get_memberref_token): Allow
24704 MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
24706 (fixup_method): Added support for MONO_TABLE_METHODSPEC.
24707 (mono_image_create_token): First check whether it's a generic
24708 method (so we'd need to create a MethodSpec), then do the other
24710 (mono_reflection_bind_generic_method_parameters): Return a
24711 `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
24712 called directly from the interncall.
24714 2003-10-17 Zoltan Varga <vargaz@freemail.hu>
24716 * reflection.c (load_public_key): Move loading of the public key
24719 * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
24721 * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
24724 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
24725 culture, hash_alg and public_key. Fixes #49555.
24727 2003-10-17 Martin Baulig <martin@ximian.com>
24729 * class.h (MonoGenericInst): Moved this declaration here and added
24730 `MonoMethod *generic_method'.
24733 (ves_icall_MethodInfo_GetGenericArguments): New interncall.
24734 (ves_icall_MethodInfo_BindGenericParameters): New interncall.
24736 * metadata.c (mono_metadata_type_equal): Two types of
24737 MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
24738 index; ie. don't compare the address of the `MonoGenericParam'
24740 (mono_metadata_load_generic_params): Removed the `MonoMethod
24743 * metadata.h (MonoGenericInst): Moved declaration to class.h.
24744 (MonoMethodHeader): Added `MonoGenericInst *geninst'.
24746 * reflection.c (method_encode_signature): Encode the number of
24747 generic parameters.
24748 (encode_generic_method_sig): New static function.
24749 (method_encode_methodspec): New static function; creates an entry
24750 in the MethodSpec table for a generic method.
24751 (mono_image_get_methodspec_token): New static function.
24752 (mono_image_create_token): Call mono_image_get_methodspec_token()
24753 for generic methods.
24754 (mono_reflection_bind_generic_method_parameters): New public
24755 function. Instantiates a generic method.
24757 2003-10-16 Martin Baulig <martin@ximian.com>
24759 * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
24760 *gen_params' here from MonoMethodHeader.
24762 * metadata.c (mono_metadata_parse_method_signature): If we have
24763 generic parameters, initialize `method->gen_params' and then set
24764 the correct `type->data.generic_param' in all the parameters.
24766 2003-10-16 Zoltan Varga <vargaz@freemail.hu>
24768 * threads.c (mono_threads_get_default_stacksize): New function to
24769 return the default stacksize.
24771 * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
24772 termination of the finalizer thread, since the previous method had
24773 race conditions. Fixes #49628.
24775 * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
24776 as for the other managed threads.
24778 2003-10-16 Martin Baulig <martin@ximian.com>
24780 * class.c (inflate_generic_signature): Copy `generic_param_count'
24783 * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
24786 * metadata.c (mono_metadata_parse_method_signature): Actually set
24787 the `method->generic_param_count' here.
24788 (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
24790 2003-10-15 Zoltan Varga <vargaz@freemail.hu>
24792 * object.h: Add a new field to TypedRef to simplify the implementation
24793 of the REFANY opcodes in the JIT.
24795 * icall.c: Make use of the new field.
24797 * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
24800 2003-10-15 Martin Baulig <martin@ximian.com>
24802 * class.c (mono_class_from_gen_param): Renamed to
24803 mono_class_from_generic_parameter() and moved most of the
24804 functionality from mono_reflection_define_generic_parameter()
24805 here; ie. we create a "real" class here.
24806 (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
24807 MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
24808 previously been called.
24810 * class.h (MonoGenericParam): Moved the declaration of this struct
24811 here from metadata.h and added `MonoMethod *method'.
24813 * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
24816 * loader.c (mono_get_method_from_token): If we have any generic
24817 parameters, call mono_metadata_load_generic_params() to read them
24818 from the MONO_TABLE_GENERICPAR.
24820 * metadata.c (mono_metadata_load_generic_params): Added
24821 `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
24823 * metadata.h (MonoMethodSignature): Replaced
24824 `MonoGenericInst *geninst' with `guint16 generic_param_count'.
24825 (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
24827 * reflection.c (mono_reflection_define_generic_parameter): Moved
24828 most of the functionality into the new
24829 mono_class_from_generic_parameter(); set the `method' field if
24830 we're a method parameter.
24832 2003-10-13 Bernie Solomon <bernard@ugsolutions.com>
24834 * marshal.c (emit_struct_conv): if native size is 0
24837 2003-10-14 Martin Baulig <martin@ximian.com>
24839 * icall.c: The generics API has changed in the spec since it was
24840 added to System.Type; these modifications make it match the spec
24842 (ves_icall_Type_GetGenericParameters): Renamed to
24843 `ves_icall_Type_GetGenericArguments'.
24844 (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
24845 (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
24846 `ves_icall_MonoType_get_HasGenericArguments'.
24847 (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
24848 `ves_icall_MonoType_get_IsGenericParameter'.
24849 (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
24850 this is no interncall anymore.
24851 (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
24852 `ves_icall_TypeBuilder_get_IsGenericParameter'.
24854 2003-10-14 Martin Baulig <martin@ximian.com>
24856 * reflection.c (mono_reflection_bind_generic_parameters): Also
24857 inflate generic methods if we're reading the class from IL.
24859 2003-10-13 Martin Baulig <martin@ximian.com>
24861 * reflection.c (mono_reflection_define_generic_parameter): This
24862 method isn't called directly from the icall anymore; take a
24863 `MonoReflectionAssemblyBuilder *' so we can use this for type and
24864 method generic parameters.
24865 (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
24866 (method_builder_encode_signature): Encode generic parameters.
24867 (mono_image_get_method_info): Write generic params to the
24868 MONO_TABLE_GENERICPARAM table.
24870 * reflection.h (MonoReflectionMethodBuilder): Added
24871 `MonoArray *generic_params'.
24873 * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
24875 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
24876 wrapper for mono_reflection_define_generic_parameter().
24877 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
24879 2003-10-13 Zoltan Varga <vargaz@freemail.hu>
24881 * marshal.h: Add missing function to fix build.
24883 * marshal.c (mono_marshal_get_native_wrapper): Add support for
24884 the SetLastError pinvoke attribute.
24886 * marshal.c (mono_marshal_set_last_error): New helper function called
24887 by the generated code.
24889 * marshal.c (mono_mb_emit_branch): New helper function.
24891 * marshal.c (mono_mb_emit_exception): Added exception name parameter.
24893 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
24894 classes as parameters and return values of delegates. Fixes #29256.
24896 2003-10-12 Bernie Solomon <bernard@ugsolutions.com>
24898 * locales.c: use gint32 in non HAVE_ICU case
24900 2003-10-11 Martin Baulig <martin@ximian.com>
24902 * mono-debug.c (mono_debug_add_method): Added a workaround for
24905 2003-10-10 Zoltan Varga <vargaz@freemail.hu>
24907 * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
24908 delegates passed to native code must use the STDCALL calling
24909 convention. Fixes #35987.
24911 2003-10-10 Martin Baulig <martin@ximian.com>
24913 * class.c (inflate_generic_type): If we're inflating for a generic
24914 type instance (and not for a generic method), return
24915 MONO_TYPE_MVAR unchanged.
24917 2003-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
24919 * string-icalls.c: Join ignores null strings in the source array.
24920 * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
24921 * threads.c: GetAvailableTheads is slightly more accurate.
24923 2003-10-09 Bernie Solomon <bernard@ugsolutions.com>
24925 * threads.h threads.c : add mono_threads_set_default_stacksize
24926 and pass default to CreateThread calls.
24928 2003-10-09 Dick Porter <dick@ximian.com>
24932 * locales.c: Internal calls for constructing CultureInfo and
24933 related objects from libicu (if its available.)
24935 2003-10-09 Zoltan Varga <vargaz@freemail.hu>
24937 * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
24939 2003-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
24941 * threadpool.c: added an argument to async_invoke_thread that is the
24942 item to process, pass the MonoAsyncResult to the thread start function
24943 when creating a new thread. This way we don't need to acquire any lock
24944 when we're creating a new thread. Readded a semaphore for faster
24945 response times (instead of that Sleep i added).
24947 2003-10-08 Bernie Solomon <bernard@ugsolutions.com>
24949 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
24950 get daylight change dates better on Windows, fix handling
24951 of platforms without tm_gmtoff.
24953 2003-10-06 Martin Baulig <martin@ximian.com>
24955 * class.c (inflate_generic_method): Renamed to
24956 mono_class_inflate_generic_method() and made public.
24957 (mono_class_init): Don't inflate the generic methods here.
24958 (mono_class_from_generic): Added `gboolean inflate_methods'
24959 argument. Inflate the methods here.
24961 * loader.c (mono_method_get_param_names): Ignore instances of
24962 generic types for the moment.
24964 * reflection.c (fixup_method): Added support for inflated methods.
24965 (mono_image_create_token): Use mono_image_get_methodref_token()
24966 for inflated methods.
24967 (mono_custom_attrs_from_param): Ignore instances of generic types
24969 (mono_reflection_bind_generic_parameters): New public function.
24970 Moved all the functionality from
24971 ves_icall_Type_BindGenericParameters() here and added support for
24973 (mono_reflection_define_generic_parameter): Initialize
24974 `klass->methods' here.
24976 * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
24977 functionality into mono_reflection_define_generic_parameter().
24978 (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
24979 TypeBuilder, return that TypeBuilder.
24981 2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
24983 * appdomain.c: removed mono_delegate_semaphore.
24986 (mono_thread_pool_add): moved hash table creation inside and the thread
24987 creation outside of the critical region.
24988 (mono_thread_pool_finish): removed obsolete code.
24989 (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
24990 continue or exit the thread depending on the queue.
24992 2003-10-07 Bernie Solomon <bernard@ugsolutions.com>
24994 * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
24995 marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
24996 handle more bool marshalling options
24998 2003-10-07 Zoltan Varga <vargaz@freemail.hu>
25000 * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
25001 arrays of structs. Also add a more descriptive error message when
25002 a structure member is marshalled as LPArray.
25004 2003-10-06 Zoltan Varga <vargaz@freemail.hu>
25006 * marshal.c (mono_marshal_get_native_wrapper): Add support for
25007 marshalling arrays of complex types. Fixes #29098. Also remove an
25008 usused and incomplete function.
25010 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
25012 * gc.c: report heap_size - free_bytes as total memory allocated
25015 2003-10-05 Zoltan Varga <vargaz@freemail.hu>
25017 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally
25018 fix timezone handling problems on Windows.
25020 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
25021 asserts when the year is outside the range handled by ms the functions.
25023 * class.c (setup_interface_offsets): If the class is an interface,
25024 fill out its interface_offsets slot.
25026 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25028 * threadpool.c: mark threadpool threads as background.
25030 2003-10-03 Bernie Solomon <bernard@ugsolutions.com>
25032 * decimal.c - define DECINLINE to nothing if not using GCC
25034 2003-10-03 Zoltan Varga <vargaz@freemail.hu>
25036 * assembly.c: More refcount fixes.
25038 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25040 * string-icalls.c: if we're not trimming, return the same string.
25041 When not splitting, don't create a new string.
25043 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25046 (mono_image_open): increment the ref_count inside the critical section.
25048 2003-10-02 Zoltan Varga <vargaz@freemail.hu>
25050 * image.c (mono_image_open): Fix reference counting bug.
25052 2003-09-30 Bernie Solomon <bernard@ugsolutions.com>
25054 * marshal.c (mono_marshal_type_size) struct alignment changed for
25055 64bit machines. (emit_ptr_to_str_conv) Fix bool conversions for
25056 64bits. Avoid leak in mono_marshal_get_native_wrapper when
25057 mono_lookup_pinvoke_call throws.
25059 2003-09-30 Zoltan Varga <vargaz@freemail.hu>
25061 * reflection.c (mono_reflection_parse_type): Fix #49114.
25063 * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
25064 temporary workaround for cygwin header problem.
25066 * object.c (mono_object_isinst): Synchronize this with the code
25067 generated by the JIT for casts.
25069 2003-09-29 Zoltan Varga <vargaz@freemail.hu>
25071 * reflection.c (encode_type): Fix #38332.
25073 2003-09-26 Zoltan Varga <vargaz@freemail.hu>
25075 * marshal.c (mono_marshal_method_from_wrapper): New function to return
25076 the original method from the wrapper method.
25078 2003-09-25 Martin Baulig <martin@ximian.com>
25080 * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
25081 interncall since it was identical to `Type.GetGenericTypeDefinition()'.
25082 (ves_icall_Type_get_IsGenericInstance): New interncall.
25084 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
25086 * object.c: fix cast warning in big endian code.
25088 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
25090 * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
25092 2003-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25094 * assembly.c: don't call check_env from mono_assembly_load. It's
25095 already done once in mono_assemblies_init and may cause headaches when
25096 multiple threads are loading assemblies.
25098 2003-09-19 Martin Baulig <martin@ximian.com>
25100 * reflection.c (mono_reflection_define_generic_parameter): Don't
25101 allocate `klass->methods', set `klass->flags' to
25102 TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
25104 2003-09-18 Martin Baulig <martin@ximian.com>
25106 * class.c (mono_class_init): Don't create `class->methods' if it's
25107 already initialized.
25109 * metadata.c (mono_metadata_load_generic_params): Make this
25112 * reflection.c (mono_reflection_define_generic_parameter): Set
25113 parent class and interfaces from the constraints.
25115 * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
25116 to keep this struct in sync with the declaration in TypeBuilder.cs.
25118 2003-09-17 Martin Baulig <martin@ximian.com>
25120 * metadata.h (MonoType): Replaced the data's `int type_param'
25121 field with `MonoGenericParam *generic_param'.
25122 (MonoGenericParam): Added `MonoClass *klass'.
25124 * class.c (mono_class_from_gen_param): Removed the
25125 `MonoImage *image' and `int type_num' arguments.
25127 * metadata.c (mono_metadata_parse_generic_param): New static
25128 method; creates a MonoGenericParam which just contains the index.
25129 (do_mono_metadata_parse_type): Call
25130 mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
25133 * reflection.c (mono_image_typedef_or_ref): Generic type
25134 parameters may be in the same assembly, but never use a typedef
25136 (mono_reflection_define_generic_parameter): We're now creating a
25137 "real" class for the type parameter; it's now safe to call
25138 mono_class_from_mono_type() on the class'es type, it'll do the
25141 2003-09-16 Martin Baulig <martin@ximian.com>
25143 * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
25144 `symfile->range_entry_size' and `symfile->class_entry_size' here;
25145 the `symfile' data structure must be fully initialized before it
25146 gets added to the table.
25148 2003-09-15 Zoltan Varga <vargaz@freemail.hu>
25150 * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
25152 * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
25153 class init trampolines.
25155 2003-09-11 Zoltan Varga <vargaz@freemail.hu>
25157 * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
25158 to the built-in profiler to turn off time and allocation profiling
25161 2003-09-10 Zoltan Varga <vargaz@freemail.hu>
25163 * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
25166 * debug-helpers.c (mono_method_full_name): Print the wrapper type
25167 in human readable form.
25169 2003-09-08 Zoltan Varga <vargaz@freemail.hu>
25171 * reflection.c icall.c: Fixed warnings.
25173 * image.c (load_class_names): Use a temporary hash table to hold the
25174 namespaces in order to avoid doing many string comparisons.
25176 * image.h: Fix typo.
25178 * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
25179 Pass NULL instead of g_direct_equal to the GHashTable constructor
25180 since the NULL case is short-circuited inside g_hash_table_lookup,
25181 leading to better performance.
25183 * metadata.c (mono_metadata_custom_attrs_from_index): New function to
25184 obtain the first custom attribute for a given index. Depends on the
25185 CustomAttribute table being sorted by the parent field.
25187 * reflection.c (mono_custom_attrs_from_index): Use the new function
25188 for better performance.
25190 2003-09-07 Martin Baulig <martin@ximian.com>
25192 * class.c (mono_class_init): If we're a generic instance, inflate
25193 all our methods instead of loading them from the image.
25194 (mono_class_from_generic): Set `class->methods = gklass->methods'.
25196 2003-09-07 Martin Baulig <martin@ximian.com>
25198 * mono-debug-debugger.c: Added support for constructors.
25200 2003-09-06 Martin Baulig <martin@ximian.com>
25202 * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
25205 * reflection.c (mono_reflection_setup_generic_class): Call
25206 ensure_runtime_vtable() to create the vtable.
25208 2003-09-05 Martin Baulig <martin@ximian.com>
25210 * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
25213 2003-09-04 Martin Baulig <martin@ximian.com>
25215 * reflection.c (mono_reflection_define_generic_parameter): Generic
25216 parameters start with zero.
25218 2003-09-04 Martin Baulig <martin@ximian.com>
25220 * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
25222 * reflection.h (MonoReflectionGenericParam): New typedef.
25223 (MonoReflectionTypeBuilder): Added `generic_params' fields to get
25224 the generic parameters from the managed TypeBuilder.
25226 * reflection.c (mono_reflection_define_generic_parameter): New function.
25227 (mono_reflection_create_runtime_class): Encode generic parameters.
25228 (mono_reflection_setup_generic_class): New function; this is
25229 called after adding adding all generic params to the TypeBuilder.
25230 (encode_type): Added MONO_TYPE_VAR.
25232 2003-09-04 Zoltan Varga <vargaz@freemail.hu>
25234 * class.h class.c (mono_class_needs_cctor_run): Moved this method
25237 * assembly.h assembly.c: Moved the AOT loading code into an assembly
25240 2003-09-03 Zoltan Varga <vargaz@freemail.hu>
25242 * reflection.h reflection.c class.h class.c: Delete duplicate
25243 definition of mono_type_get_name () from reflection.c and export the
25246 * class.c: Class loading fixes from Bernie Solomon
25247 (bernard@ugsolutions.com).
25249 * reflection.c: Endianness fixes from Bernie Solomon
25250 (bernard@ugsolutions.com).
25252 2003-09-01 Zoltan Varga <vargaz@freemail.hu>
25254 * assembly.h assembly.c: Define a file format version for AOT
25257 * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
25259 * appdomain.h (MonoJitInfo): New field to determine whenever the
25260 code is domain neutral.
25262 2003-08-31 Miguel de Icaza <miguel@ximian.com>
25264 * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
25266 2003-08-30 Zoltan Varga <vargaz@freemail.hu>
25268 * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir):
25269 (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
25270 Avoid caching the result since strings must be domain specific. Fixes
25273 2003-08-29 Zoltan Varga <vargaz@freemail.hu>
25275 * marshal.c (mono_marshal_init): Make this callable multiple times
25276 since it is hard to find a correct place to call it.
25278 * object.c (mono_runtime_class_init): Execute static constructors in
25279 the correct appdomain.
25281 * image.c (build_guid_table): Handle the case when multiple images have
25284 2003-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25286 * icall.c: added a couple of icalls for System.Web.
25288 2003-08-28 Martin Baulig <martin@ximian.com>
25290 * icall.c (ves_icall_Type_BindGenericParameters): Use
25291 `klass->generic_inst' instead of `&klass->byval_arg' in the
25292 mono_type_get_object() call. The returned type must be
25293 MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
25295 2003-08-27 Zoltan Varga <vargaz@freemail.hu>
25299 * object.c (mono_class_proxy_vtable): Make it thread safe.
25301 * pedump.c: Fix warning.
25303 * object.c appdomain.h: Get rid of metadata_section.
25304 It is no longer needed and it was causing deadlocks with domain->lock.
25306 * appdomain.c (add_assemblies_to_domain): Make it thread safe.
25308 2003-08-26 Martin Baulig <martin@ximian.com>
25310 * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
25312 2003-08-26 Martin Baulig <martin@ximian.com>
25314 * pedump.c (main): Call mono_metadata_init(),
25315 mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
25316 and mono_loader_init().
25318 2003-08-26 Zoltan Varga <vargaz@freemail.hu>
25320 * loader.h: Add missing include to fix build.
25322 * image.h: mono_image_load_references is no more.
25324 * assembly.c: Reworked assembly loading to make it really thread safe.
25325 After these changes, the assembly returned by mono_assembly_open is
25326 fully initialized, i.e. all its references assemblies are loaded.
25328 * assembly.c (mono_image_load_references): Renamed to
25329 mono_assembly_load_references, and made private, since clients no
25330 longer need to call it.
25332 * class.c: Removed calls to mono_assembly_load_references, since it was
25333 a source of deadlocks.
25335 * loader.h loader.c class.h class.c: Protect data structures using a
25336 new lock, the loader lock.
25338 * class.c (mono_class_setup_vtable): Create temporary hash tables and
25339 GPtrArrays only when needed.
25341 * class.c (mono_class_layout_fields): Ignore the dummy field inserted
25342 into empty structures by mcs. Fixes pinvoke7.cs.
25344 * domain.c (mono_init): Call a new initialization function.
25346 * appdomain.c (mono_runtime_init): Call the new initializer function
25347 of the marshal module.
25349 * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
25350 inserted into empty structures by mcs. Fixes pinvoke7.cs.
25352 * marshal.h marshal.c: Added locks around the wrapper caches to make
25353 this module thread safe.
25355 * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
25356 this argument. Fixes pinvoke1.exe.
25358 2003-08-25 Lluis Sanchez <lluis@ximian.com>
25360 * object.h: Added call_type field to MonoMethodMessage and the corresponding
25361 enumeration of values. Removed fields to store remote call output values in
25362 MonoAsyncResult. Not needed any more.
25363 * object.c: Initialize call_type and async_result fields in mono_message_init.
25364 * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
25365 dispatching the message.
25366 mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
25367 async call to finish. To do it use a message with EndInvoke call type.
25369 2003-08-25 Zoltan Varga <vargaz@freemail.hu>
25371 * loader.h loader.c (mono_method_hash_marhal_info): New function which
25372 determines whenever a method has marshalling info.
25374 2003-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25376 * assembly.c: fix the build on windows.
25378 2003-08-22 Lluis Sanchez <lluis@ximian.com>
25380 * object.cs: Fixed bug #47785.
25382 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
25384 * string-icalls.c (StringReplace): If their are no occurances of
25385 the old string found return a reference to the supplied
25386 string. This saves some memory and matches MS behavoir.
25388 2003-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25390 * socket-io.c: fixed compilation for systems that define AF_INET6
25391 and don't define SOL_IP/SOL_IPV6.
25393 2003-08-21 Zoltan Varga <vargaz@freemail.hu>
25395 * object.c (mono_object_isinst): Fix casts to TransparentProxy in
25396 the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
25398 * rawbuffer.c rawbuffer.h: Make this module thread safe.
25400 * domain.c: Make this module thread safe.
25402 * domain.c (mono_init): Call new initialization function.
25404 * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
25405 reference types too. Fixes #38812.
25407 * image.c (mono_image_init): Fixed warnings.
25409 * class.c (mono_class_from_typeref): Handle assembly load failure
25412 * appdomain.c (add_assemblies_to_domain): Handle the case when
25413 the references of an assembly are not yet loaded.
25415 * metadata.c image.c assembly.c: Moved initialization of global
25416 variables to a separate function called at startup since lazy
25417 initialization of these variables is not thread safe.
25419 * image.c assembly.c: Made this module thread safe by adding locks in
25420 the appropriate places.
25422 * domain.c (mono_init): Call the new initialization functions of the
25425 2003-08-20 Lluis Sanchez Gual <lluis@ximian.com>
25427 * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
25428 make a direct call. It is proxy's work to make the call asynchronous.
25429 mono_delegate_end_invoke(): If the targe is a proxy, just collect
25431 * object.cs: mono_method_call_message_new(): read AsyncResult and
25432 state object from parameters list, if this info is requested.
25433 * object.h: Added fields to store remote call output values in
25434 MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
25436 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
25438 * object.h: add needed fields to MonoThread.
25439 * threads.c, threads.h: allow registering a function to cleanup data
25440 allocated per thread by the JIT.
25442 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
25444 * loader.h: portability fix by Bernie Solomon
25445 * <bernard@ugsolutions.com>.
25447 2003-08-16 Zoltan Varga <vargaz@freemail.hu>
25449 * reflection.h reflection.c (mono_param_get_objects): Changed this to
25450 return a MonoArray. This simplifies the code and also ensures that
25451 the cache allways contains an object reference as a value.
25453 * icall.c (ves_icall_get_parameter_info): Simplified using the new
25456 2003-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25458 * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
25459 fixes a problem with byte ordering when getting the address family for
25462 2003-08-15 Zoltan Varga <vargaz@freemail.hu>
25464 * .cvsignore: Added monosn.
25466 * reflection.h reflection.c loader.c: Added support for parameter
25467 marshalling to dynamically created types. Fixes #47295.
25469 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
25471 * rand.c: remove useless warnings.
25473 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
25475 * class.c: implemented ldtoken for methods and fieldrefs.
25477 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25479 * threadpool.c: when mono_async_invoke was called, no one took care of
25480 monitoring the queue. So if the method invoked took some time and we
25481 got new async invoke requests after 500 ms (the thread created waited
25482 that long in WaitForSingleObject), the new async invoke was not called
25483 until the previous one finished.
25485 This is fixed now. Thanks to Totte for helping with it.
25487 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25489 * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
25491 2003-08-11 Martin Baulig <martin@ximian.com>
25493 * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
25495 2003-08-06 Martin Baulig <martin@ximian.com>
25497 * mono-debug-debugger.c: Added support for static fields,
25498 properties and methods.
25500 2003-08-06 Martin Baulig <martin@ximian.com>
25502 * mono-debug-debugger.c: Don't store the MonoString's vtable to
25503 make this work for applications with multiple application domains.
25505 2003-08-04 Martin Baulig <martin@ximian.com>
25507 * mono-debug-debugger.c: Completely reworked the type support; the
25508 most important thing is that we're now just using one single
25509 `MonoType' instance per type.
25511 Sat Aug 2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
25513 * mono-endian.h, mono-endian.c, icall.c: Added icall
25514 ves_icall_System_Double_AssertEndianity to assert double word endianity
25515 on ARM (FPA). The icall uses a macro defined in mono-endian.h.
25517 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
25519 * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
25520 support, icalls and fixes.
25522 2003-07-31 Miguel de Icaza <miguel@ximian.com>
25524 * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
25525 classes that are a punctuation character in .NET is not the same a
25528 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
25530 * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
25532 2003-07-29 Miguel de Icaza <miguel@ximian.com>
25534 * icall.c: Add new MemCopy internalcall.
25535 (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
25536 Simplified code; It is not necessary to handle all the cases here,
25537 as the C# code takes care of it. Only handle the case of the name
25538 resource embedded into the assembly.
25540 Changed signature to return the data pointer and the size of the
25543 2003-07-26 Miguel de Icaza <miguel@ximian.com>
25545 * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
25546 encoded. (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
25548 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
25550 * socket-io.c: ignore EINTR error in select.
25552 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
25554 * class.h, class.c: removed unused subclasses field in MonoClass.
25556 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
25558 * icall.c: improve fix of get_base_definition(). If the parent class
25559 doesn't have the mehod, look at the parent of the parent.
25560 * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
25561 to check if a parameter is an in or out parameter
25562 (PARAM_ATTRIBUTE_IN is not set by default).
25563 mono_method_return_message_restore(): Use mono_class_value_size to
25564 get the size of a value type. mono_type_stack_size (parameterType)
25565 does not return the correct value if parameterType is byRef.
25566 mono_load_remote_field(), mono_load_remote_field_new(),
25567 mono_store_remote_field(), mono_store_remote_field_new():
25568 raise exception if the remote call returns an exception.
25570 2003-07-28 Martin Baulig <martin@ximian.com>
25572 * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
25573 method. This is a wrapper around mono_runtime_invoke() which
25574 boxes the instance object if neccessary.
25576 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
25578 * class.c, class.h, image.c, image.h, loader.c, metadata.c,
25579 metadata.h, row-indexes.h, verify.c: first cut of generics support.
25581 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
25583 * icall.c: disable mcs bug workaround.
25585 2003-07-21 Miguel de Icaza <miguel@ximian.com>
25587 * object.c (mono_runtime_class_init): Take the metadata_section
25588 mutex before obtaining the domain mutex.
25590 * appdomain.h: Added definition of metadata_section mutex here.
25592 * object.c: define metadata_mutex here.
25594 2003-07-24 Ravi Pratap <ravi@ximian.com>
25596 * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
25599 2003-07-24 Lluis Sanchez Gual <lluis@ximian.com>
25601 * reflection.c: Fix bug #46669
25603 2003-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25608 * object.h: fill in the type name for TypeLoadException.
25610 2003-07-23 Ravi Pratap <ravi@ximian.com>
25612 * class.c: Fixes from Paolo in response to bug #45415 (Subclass
25613 relationship between TypeBuilders while compiling corlib) and bug
25614 45993 (Array types returned from the runtime while compiling
25615 corlib were from the loaded corlib).
25617 2003-07-22 Martin Baulig <martin@ximian.com>
25619 * mono-debug-debugger.c: Reworked the type support a bit more;
25620 distinguish between types and classes.
25622 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
25624 * icall.c: add IsArrayImpl icall.
25626 2003-07-22 Zoltan Varga <vargaz@freemail.hu>
25628 * class.c (mono_class_layout_fields): Fix gc aware auto layout by
25629 initializing real_size only once. Also fix bug #46602.
25631 2003-07-21 Jerome Laban <jlaban@wanadoo.fr>
25633 * object.c: Renamed mono_metadata_section to metadata_section.
25635 2003-07-21 Lluis Sanchez Gual <lluis@ximian.com>
25637 * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
25638 empty array if the type is an array. Fixed.
25639 ves_icall_MonoMethod_get_base_definition: if the base method
25640 is abstract, get the MethodInfo from the list of methods of
25642 * reflection.c: ParameterInfo.PositionImpl should be zero-based
25643 and it was 1-based. Fixed in mono_param_get_objects.
25645 2003-07-20 Martin Baulig <martin@ximian.com>
25647 * mono-debug.h: Set version number to 31.
25648 (mono_debug_init): Added `MonoDomain *' argument.
25650 * mono-debug-debugger.c: Reworked the type support; explicitly
25651 tell the debugger about builtin types; pass the `klass' address to
25654 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
25656 * image.c: Allow new metadata tables to be loaded without a
25657 warning. Also update the warning message to give the new constant value.
25659 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
25661 * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
25662 metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c:
25663 array type representation changes.
25665 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
25667 * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
25668 on Environment.Exit () call.
25670 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
25672 * icall.c, reflection.h, reflection.c, verify.c: cleanups,
25673 requires a matching corlib.
25675 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
25677 * Changelog: My editor decided to add a CR to each line. Sorry about that.
25678 Committed again without the CRs.
25680 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
25682 * socket-io.c: Get system_assembly using mono_image_loaded(), instead
25683 getting it from the "this" socket instance. Did not work
25684 if the socket is a subclass of Socket.
25685 Also fixed bug #35371.
25687 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
25689 * metadata.c: fixed size for TypedByRef.
25690 * loader.c: when searching for a method, consider the vararg amrker.
25691 * unicode.c, decimal.c: constify some arrays.
25693 2003-07-15 Dick Porter <dick@ximian.com>
25695 * socket-io.c: Fixed compilation for gcc < 3.2.
25697 Fixed compilation for machines that don't have AF_INET6 (thanks to
25698 Bernie Solomon <bernard@ugsolutions.com> for that part.)
25700 Fixed compile warnings.
25702 Fixed formatting and line endings.
25704 2003-07-14 Jerome Laban <jlaban@wanadoo.fr>
25707 * socket-io.c: Added IPv6 support.
25709 2003-07-13 Zoltan Varga <vargaz@freemail.hu>
25711 * class.c (mono_class_is_assignable_from): New function to implement
25712 the is_assignable_from logic. Used by mono_object_isinst,
25713 Type::IsAssignableFrom () and the interpreter.
25715 * class.c (mono_class_is_subclass_of): Make all classes a subclass of
25716 Object, even interfaces.
25718 * object.c (mono_object_isinst): Implement in terms of
25719 is_assignable_from.
25721 * icall.c (ves_icall_type_is_assignable_from): New icall.
25723 2003-07-11 Zoltan Varga <vargaz@freemail.hu>
25725 * domain.c (foreach_domain): fix compiler warning.
25727 2003-07-11 Dietmar Maurer <dietmar@ximian.com>
25729 * image.c (load_metadata_ptrs): use g_strndup because strndup is
25730 not available on all plattforms
25732 2003-07-10 Zoltan Varga <vargaz@freemail.hu>
25734 * image.h image.c: Store the metadata version string in MonoImage.
25735 * icall.c: New icall to retrieve the image version.
25736 * reflection.c (create_dynamic_image): Fill in the image version field
25737 * reflection.c (build_compressed_metadata): Use the image version
25738 from the image structure.
25740 2003-07-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25742 * appdomain.c: modified comment.
25743 * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
25744 That will be its last iteration when mono_gc_cleanup is called from
25745 mono_runtime_cleanup and before the domain is unloaded.
25749 2003-07-04 Dietmar Maurer <dietmar@ximian.com>
25751 * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
25754 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
25756 * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
25757 rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
25758 Bernie Solomon <bernard@ugsolutions.com>.
25760 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
25762 * object.c, object.h: provide mono_object_new_fast() for faster
25763 allocation in some special cases.
25765 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
25767 * object.h, reflection.h, verify.c: fixes for some 64bit issues,
25768 mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
25770 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
25772 * threadpool.c: fix leaks.
25774 2003-07-01 Dick Porter <dick@ximian.com>
25776 * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
25777 using MonoGHashTables. Fixes threadpool bug posted to list.
25779 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
25781 * image.h, image.c: added support to load an assembly from a byte array.
25782 * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added
25783 assembly bundle support.
25785 2003-06-27 Dietmar Maurer <dietmar@ximian.com>
25787 * threadpool.c (mono_thread_pool_add): keep a reference to the
25788 AsyncResult to prevent GC
25790 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
25792 * class.c: leak fix.
25794 2003-06-25 Dick Porter <dick@ximian.com>
25796 * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
25797 for the async object, the WaitHandle object will close the handle.
25800 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
25802 * class.c: in mono_array_class_get (), lookup from the hash with the
25803 same type we insert: this works around a bug in
25804 mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
25805 lluis. The real fix will have to wait for after the release.
25807 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
25809 * icall.c: fix memory leak when getting type members.
25811 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
25813 * reflection.c: added more pubtoken special cases.
25815 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
25817 * class.c: handle field offset correctly when class size
25818 is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
25820 2003-06-20 Martin Baulig <martin@ximian.com>
25822 * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
25825 2003-06-20 Martin Baulig <martin@ximian.com>
25827 * image.h, mono-debug-debugger.h: Fixed compiler warnings.
25829 2003-06-20 Martin Baulig <martin@ximian.com>
25831 * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed. We
25832 just distinguish between variables in registers and variables at
25833 an offset relative to a register.
25835 2003-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25837 * icall.c: #ifdef out latest changes until mcs is fixed.
25839 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
25841 * icall.c: return members in metadata order.
25843 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
25845 * icall.c: avoid infinite loop in GetTimeZoneData.
25847 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
25849 * icall.c: added Marshal.Prelink/All icalls.
25851 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
25853 * object.c, object.h: fix warnings and do some overflow checking
25854 when creating arrays.
25856 2003-06-17 Dick Porter <dick@ximian.com>
25859 * file-io.c: File attributes need to be tweaked slightly when
25860 passed from the managed to the w32 world.
25862 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
25863 * profiler.h profiler-private.h profiler.c: Rework last patch
25864 based on suggestion by Paolo.
25866 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
25868 * profiler.h profiler-private.h profiler.c: Added infrastructure for
25869 instruction level coverage data collection.
25870 * profiler.h profiler.c (: Added new callback function which can be
25871 used by the profiler to limit which functions should have coverage
25873 * profiler.c (mono_profiler_load): Call g_module_build_path to
25874 generate the file name of the profiler library.
25876 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
25878 * profiler.c, profiler.h, profiler-private.h: added basic block
25879 coverage profiling API.
25881 2003-06-15 Zoltan Varga <vargaz@freemail.hu>
25883 * reflection.c (mono_reflection_create_runtime_class): Add support
25884 for events in dynamically generated code.
25886 * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
25889 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
25891 * icall.c: when getting timezone info, return reasonable values if we
25892 can't get the actual data.
25894 2003-06-14 Dick Porter <dick@ximian.com>
25896 * threads.c (start_wrapper): Remove the reference to the thread
25897 object in the TLS data, so the thread object can be finalized.
25898 This won't be reached if the thread threw an uncaught exception,
25899 so those thread handles will stay referenced :-( (This is due to
25900 missing support for scanning thread-specific data in the Boehm GC
25901 - the io-layer keeps a GC-visible hash of pointers to TLS data.)
25903 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
25905 * reflection.c: ensure streams and tables are first allocated with
25906 ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
25908 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
25910 * icall.c: fixed GetElementType for byrefs (bug# 44792).
25912 2003-06-13 Zoltan Varga <vargaz@freemail.hu>
25914 * reflection.c (mono_reflection_create_runtime_class): Add support for
25915 properties to dynamically created classes.
25916 * reflection.c: Fix a few places where non-MonoObjects were inserted
25917 into the tokens hashtable.
25919 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
25921 * object.c: some support to handle out of memory exceptions.
25923 2003-06-12 Dietmar Maurer <dietmar@ximian.com>
25925 * marshal.c (mono_marshal_get_native_wrapper): support reference
25928 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
25930 * object.h, object.c: more portability stuff from Bernie Solomon.
25931 Unexport mono_object_allocate(). Added mono_object_unbox ().
25932 Set exitcode when an unhandled exception is thrown.
25934 2003-06-11 Dietmar Maurer <dietmar@ximian.com>
25936 * marshal.c (mono_marshal_get_native_wrapper): use custom
25937 marshaler for return types.
25939 2003-06-10 Dick Porter <dick@ximian.com>
25941 * socket-io.c: Don't assume that one of struct ip_mreqn or struct
25942 ip_mreq is available
25944 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
25946 * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
25947 mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
25948 by Bernie Solomon <bernard@ugsolutions.com>.
25950 2003-06-10 Zoltan Varga <vargaz@freemail.hu>
25952 * gc.c (mono_gc_init): Avoid error message on shutdown when
25953 GC_DONT_GC=1 is used.
25955 * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal):
25956 New icall to return the GUID of a module.
25958 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
25960 * class.c: ensure instance size always includes the parent's size
25961 even whem class size is set explicitly (fixes bug#44294).
25963 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
25965 * profiler.h, profiler.c: made the simple profiler thread-safe,
25966 get more accurate timing info. Allow the loading of an
25967 externally-developed profiler module.
25969 2003-06-05 Dietmar Maurer <dietmar@ximian.com>
25971 * marshal.c (mono_marshal_get_native_wrapper): improved
25972 class/byref arguments.
25973 (mono_marshal_get_native_wrapper): better string marshaling support.
25975 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
25977 * class.c: ensure .pack and .size are handled correctly and
25978 simplified layout of static fields.
25980 2003-06-04 Dietmar Maurer <dietmar@ximian.com>
25983 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
25985 * loader.c (mono_lookup_pinvoke_call): look for modules in the
25986 current directory (fix bug 44008)
25988 2003-06-03 Dietmar Maurer <dietmar@ximian.com>
25990 * marshal.c (mono_marshal_get_native_wrapper): started support for
25992 (mono_delegate_to_ftnptr): consider marshalling specifications
25994 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
25996 * reflection.c, reflection.h: emit custom marshal info.
25998 2003-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26000 * object.c: free the GError.
26001 * icall.c: added CloseEvent_internal.
26003 (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
26006 2003-06-01 Zoltan Varga <vargaz@freemail.hu>
26008 * loader.c (mono_method_get_signature): Add support for dynamic
26011 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
26013 * reflection.c: fixed bug #43905.
26015 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
26017 * class.c, domain.c, icall.c, metadata.h, object.h: support for
26018 handling TypedReference and ArgIterator.
26019 * loader.c, loader.h: added function to get signature at call site.
26021 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
26023 * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more
26024 data readonly. Buglets and warning fixes. Some MethodSpec support.
26026 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
26028 * class.h, class.c, object.c: remove relative numbering support.
26030 2003-05-26 Miguel de Icaza <miguel@ximian.com>
26032 * marshal.c (mono_marshal_get_native_wrapper): For now, do not
26033 free the string, until we get a chance to fix Gtk#
26035 2003-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26037 * marshal.c: revert last patch.
26039 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
26041 * icall.c: updates for new mono_class_vtable() not calling
26042 the type constructor anymore.
26044 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
26046 * object.h, object.c: separate vtable creation from type
26047 initialization. Make running the .cctor thread safe.
26049 2003-05-26 Dietmar Maurer <dietmar@ximian.com>
26051 * marshal.c (mono_marshal_get_native_wrapper): free string return values.
26053 2003-05-21 Dietmar Maurer <dietmar@ximian.com>
26055 * loader.c (mono_get_method): consider calling convention
26057 2003-05-21 Zoltan Varga <vargaz@freemail.hu>
26059 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
26060 to return the invisible global type for a module.
26062 * reflection.c (mono_image_build_metadata): Emit global fields too.
26064 2003-05-20 Peter Williams <peterw@ximian.com>
26066 * loader.c (mono_lookup_internal_call): Add a few newlines.
26068 2003-05-20 Zoltan Varga <vargaz@freemail.hu>
26070 * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
26073 * appdomain.c (set_domain_search_path): Recalculate search path when
26074 AppDomainSetup.PrivateBinPath changes.
26076 * object.c (mono_class_compute_gc_descriptor): It turns out some
26077 parts of the class libs (like System.Thread) holds pointers to
26078 GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
26079 to treat native int a pointer type here.
26081 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
26083 * appdomain.h, domain.c: add hashtable for jump target resolution.
26085 2003-05-19 Zoltan Varga <vargaz@freemail.hu>
26087 * reflection.h reflection.c icall.c: Added new icalls
26088 GetManifestResourceInfoInternal, GetModulesInternal and support
26091 2003-05-16 Dick Porter <dick@ximian.com>
26095 * file-io.c: Implement System.IO.MonoIO::GetTempPath
26097 2003-05-14 Lluis Sanchez Gual <lluis@ideary.com>
26099 * object.c: mono_store_remote_field: little fix to previous patch.
26101 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
26103 * class.c: add constructors to array classes.
26104 * icall.c: special case array construction for InternalInvoke (),
26106 2003-05-14 Zoltan Varga <vargaz@freemail.hu>
26108 * class.h class.c reflection.c object.c: Added support for field
26109 defaults in dynamically generated classes.
26111 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
26113 * reflection.c: properly encode charset for ddlimport.
26115 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
26117 * threads.c: allow compiling without GC.
26119 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
26121 * appdomain.h, object.c, object.h, threads.c, threads.h: added
26122 handling of thread static data.
26124 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
26126 * reflection.h, reflection.c: added mono_custom_attrs_free ().
26128 2003-05-13 Dietmar Maurer <dietmar@ximian.com>
26130 * class.c (mono_array_class_get): always set the serializable flags
26131 (mono_array_class_get): always set the SEALED attribute for array types
26133 2003-05-12 Dietmar Maurer <dietmar@ximian.com>
26135 * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
26136 attributes (fix for bug 42021).
26138 2003-05-12 Dick Porter <dick@ximian.com>
26140 * gc.c: Don't run finalizers when the finalizer thread is
26141 finishing up, because the default domain has already been
26144 2003-05-11 Miguel de Icaza <miguel@ximian.com>
26146 * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
26147 value is null, we should throw an exception. This is slightly
26148 different than the other conventions used for the constructor.
26150 2003-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26152 * socket-io.c: fixed windows build.
26154 2003-05-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26156 * socket-io.c: patch by Jerome Laban that fixes bug #42393.
26158 2003-05-10 Zoltan Varga <vargaz@freemail.hu>
26160 * object.c (mono_string_new_wrapper): Compatibility fix for MS
26163 2003-05-09 Zoltan Varga <vargaz@freemail.hu>
26165 * class.c (mono_class_layout_fields): Add experimental GC aware
26166 auto layout facility. Requires class library changes to work correctly.
26168 (mono_class_setup_vtable): Avoid overriding explicit interface
26169 method implementations. Fixes iface3.exe test.
26171 * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
26173 (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
26174 (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
26176 * metadata.h: Add new type classification macro which determines
26177 whenever the type holds an object reference.
26179 2003-05-08 Dietmar Maurer <dietmar@ximian.com>
26181 * marshal.c (mono_marshal_get_native_wrapper): cleanups
26183 2003-05-07 Zoltan Varga <vargaz@freemail.hu>
26185 * gc.c (finalizer_thread): Work around a GC bug.
26187 2003-05-07 Dietmar Maurer <dietmar@ximian.com>
26189 * marshal.c (emit_struct_conv): allow unions
26191 * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
26193 2003-05-06 Dietmar Maurer <dietmar@ximian.com>
26195 * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
26197 2003-05-06 Martin Baulig <martin@ximian.com>
26199 * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
26201 2003-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26204 (Select_internal): allow NULLs, don't create arrays if not needed.
26205 Coupled with Socket.cs changes.
26208 (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
26209 register a finalizer for it that will close the semaphore handle. This
26210 fixes the leak and make Lupus' test run with > 4080 loops.
26212 2003-05-05 Dietmar Maurer <dietmar@ximian.com>
26214 * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
26215 Jerome Laban (bug #42287)
26217 2003-05-02 Martin Baulig <martin@ximian.com>
26219 * debug-mono-symfile.h
26220 (MonoSymbolFile): Moved declaration into mono-debug.h.
26221 (MonoDebugMethodJitInfo): Likewise.
26222 (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
26224 (_mono_debug_address_from_il_offset): Take a
26225 MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
26228 (MonoDebugDomainData): New struct.
26229 (mono_debug_get_domain_data): New function.
26230 (mono_debug_add_method): Take an additional `MonoDomain *'
26232 (mono_debug_source_location_from_address): Likewise.
26233 (mono_debug_il_offset_from_address): Likewise.
26234 (mono_debug_address_from_il_offset): Likewise.
26236 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
26238 * reflection.c: one more check for null type in custom attrs.
26240 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26242 * reflection.c: avoid warning (comparison is always false due to limited
26243 range of data type).
26245 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26247 * icall.c: throw an exception in Type.GetField if the argument 'name'
26250 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
26252 * reflection.c: fixed handling of enums in named arguments to custom
26253 attributes (bug #42123).
26255 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
26257 * reflection.c: use the right array element type and handle
26258 a null for a Type argument, too.
26260 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
26262 * reflection.c: handle arrays as arguments to custom attributes.
26264 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
26266 * reflection.c: handle a string value in a custom attr
26267 ctor that takes an object.
26269 2003-04-29 Dietmar Maurer <dietmar@ximian.com>
26271 * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
26274 2003-04-28 Zoltan Varga <vargaz@freemail.hu>
26276 * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
26278 2003-04-27 Martin Baulig <martin@ximian.com>
26280 * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
26281 MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
26282 MONO_DEBUGGER_EVENT_BREAKPOINT.
26283 (mono_breakpoint_trampoline_code): Removed.
26284 (mono_debugger_event_handler): The last argument is now a
26286 (mono_debugger_insert_breakpoint_full): Removed the
26287 `use_trampoline' argument.
26288 (mono_debugger_method_has_breakpoint): Likewise.
26289 (mono_debugger_trampoline_breakpoint_callback): Renamed to
26290 mono_debugger_breakpoint_callback(); take the method and
26291 breakpoint number as arguments.
26293 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
26295 * metadata.c: fix off by one when loading parameters attributes.
26297 2003-04-24 Martin Baulig <martin@ximian.com>
26299 * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
26301 2003-04-24 Martin Baulig <martin@ximian.com>
26303 * mono-debug-debugger.c: Moved all code which interacts with the
26304 Mono Debugger here.
26306 * debug-mono-symfile.c: This code now just deals with the symbol
26307 file itself, the debugger code is now in mono-debug-debugger.c.
26309 2003-04-23 Martin Baulig <martin@ximian.com>
26311 * mono-debug.c (mono_debug_source_location_from_il_offset):
26312 New method; like mono_debug_source_location_from_address(), but
26313 takes an IL offset instead of a machine address.
26315 2003-04-23 Martin Baulig <martin@ximian.com>
26317 * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
26318 `line' field; this is now computed by the debugger.
26320 2003-04-23 Martin Baulig <martin@ximian.com>
26322 * mono-debug.[ch]: New files. This is the new debugging interface.
26324 * mono-debug-debugger.[ch]: New files. Moved all code which
26325 interacts with the Mono Debugger here.
26327 2003-04-22 Dietmar Maurer <dietmar@ximian.com>
26329 * domain.c (mono_init): initialize mono_defaults.monitor_class
26331 2003-04-21 Miguel de Icaza <miguel@ximian.com>
26333 * reflection.c (method_encode_code): Add a spicy exception to help
26334 future compiler authors.
26336 2003-04-21 Martin Baulig <martin@ximian.com>
26339 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
26340 Make this work with relative pathnames; g_filename_to_uri() needs
26341 an absolute filename.
26343 2003-04-18 Zoltan Varga <vargaz@freemail.hu>
26345 * icall.c: Track name changes in Object and ValueType.
26347 2003-04-18 Dietmar Maurer <dietmar@ximian.com>
26349 * metadata.c (mono_type_stack_size): size should be a multiple of
26352 2003-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26355 (internal_domain_finalize): moved into mono_domain_finalize. No need
26356 to create another thread because the finalizers will be run in the
26359 (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
26360 (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
26361 to be run (MS does this too).
26363 2003-04-17 Zoltan Varga <vargaz@freemail.hu>
26365 * object.c (mono_class_compute_gc_descriptor): Update comment.
26367 * loader.h marshal.h marshal.c: Added synchronized method wrappers.
26369 * image.h: Add synchronized wrapper cache.
26371 * image.c (do_mono_image_open): Initialize cache.
26373 * reflection.c (create_dynamic_mono_image): Initialize cache.
26375 2003-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26377 * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
26378 ves_icall_System_Buffer_ByteLengthInternal.
26380 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
26382 * reflection.c: setup klass->nested_in earlier. Allow
26383 a dash in the assembly name.
26385 2003-04-15 Dietmar Maurer <dietmar@ximian.com>
26387 * metadata.c (mono_type_to_unmanaged): dont access
26388 type->data.klass for MONO_TYPE_OBJECT
26389 (mono_type_to_unmanaged): consider System.Delegate class
26391 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
26393 * class.c: just setup supertypes in the proper place instead of
26394 initializing the full element class for arrays.
26396 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
26398 * class.c: ensure the element class of arrays is initialized.
26399 Setup the supertype info for array classes, too.
26401 2003-04-14 Miguel de Icaza <miguel@ximian.com>
26403 * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
26405 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26407 * Makefile.am: re-added -m option when running cygpath. This way,
26408 MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
26410 * mono-config.c: same codepath for locating mono config file for WIN32
26412 * assembly.c: if mono_assembly_setrootdir is called, don't override
26415 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26417 * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
26418 MONO_ASSEMBLIES variable.
26420 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
26422 * icall.c: added Assembly::GetNamespaces() icall.
26424 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26426 * reflection.c: fix from Jaak <jaak@zd.com.pl>.
26428 2003-04-10 Lluis Sanchez Gual <lluis@ideary.com>
26430 * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
26431 * object.c: fixed bug in the construction of vtable for proxies
26433 2003-04-10 Zoltan Varga <vargaz@freemail.hu>
26435 * object.c (mono_array_new): Mark mono_array_new as an icall.
26437 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26439 * class.c: fixed test for public method when overriding interfaces.
26442 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
26444 * appdomain.h, domain.c: added mono_domain_foreach() to
26445 be able to access the currently loaded appdomains.
26446 * object.c: make string interning work across sppdomains.
26447 Mark some functions for use as icalls.
26449 2003-04-09 Zoltan Varga <vargaz@freemail.hu>
26451 * class.c reflection.c: Fix memory leaks reported by ccmalloc.
26453 * reflection.h reflection.c: Allocate long living data using
26454 GC_MALLOC_ATOMIC so the collector does not need to scan it.
26456 * reflection.c: Double the allocation size in streams instead of
26457 increasing it, to prevent unneccesary copying on large assemblies.
26459 * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
26460 creation if the assembly does not have the Run flag set.
26462 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
26464 * class.h: avoid the C++ keywords in header files (Jerome Laban
26465 spotted and fixed this).
26467 2003-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26470 (mono_unhandled_exception): fill in the arguments for the
26471 UnhandledException event. Only trigger that event for the default
26472 domain (as MS does).
26474 2003-04-04 Zoltan Varga <vargaz@freemail.hu>
26476 * object.c: Improve typed allocation stuff based on suggestions from
26477 Paolo. Also turn it on if the GC library supports it.
26479 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
26481 * object.c object.h class.h: Added experimental typed allocation
26482 facility using the interfaces in gc_gcj.h.
26484 * os/gc_wrapper.h: Added new include files.
26486 2003-04-03 Martin Baulig <martin@ximian.com>
26488 All the following changes are conditional to `WITH_INCLUDED_LIBGC'
26489 which is not yet enabled by default.
26491 * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
26493 (mono_gc_lock, mono_gc_unlock): New static functions.
26495 * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
26496 functions; stop/start the world for the garbage collector. This
26497 is using the windows API; we need to complete the SuspendThread()/
26498 ResumeThread() implementation in the io-layer to make this work on Unix.
26499 (mono_gc_push_all_stacks): New public function; tells the garbage
26500 collector about the stack pointers from all managed threads.
26502 2003-04-03 Martin Baulig <martin@ximian.com>
26504 * object.h (MonoThread): Added `gpointer stack_ptr'.
26506 * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
26508 2003-04-03 Martin Baulig <martin@ximian.com>
26510 * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
26512 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
26514 * reflection.c (typebuilder_setup_fields): Initialize field.first and
26517 2003-04-02 Miguel de Icaza <miguel@ximian.com>
26519 * loader.c (mono_lookup_internal_call): Report the corlib that is
26522 2003-03-05 Aleksey Demakov <avd@openlinksw.com>
26524 * icall.c (ves_icall_type_GetTypeCode): fixed check for
26525 System.DBNull (it's class not valuetype).
26527 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
26529 * reflection.c: set table_idx in MonoReflectionArrayMethod object even
26530 if the array method was already assigned a token (fixes bug#40646).
26532 2003-04-02 Zoltan Varga <vargaz@freemail.hu>
26534 * reflection.c (mono_reflection_get_type): Attempt type resolve even
26535 if no assembly is given.
26537 2003-04-01 Miguel de Icaza <miguel@ximian.com>
26539 * metadata.h: Added the new tables.
26541 * row-indexes.h: Added definitions for new tables.
26543 * metadata.c: Add schemas for new tables, and add support for
26544 computing the sizes of them.
26546 * class.c: Update for handling the new type cases.
26548 2003-04-01 Dietmar Maurer <dietmar@ximian.com>
26550 * metadata.h (MONO_TYPE_IS_VOID): new macro
26552 2003-03-31 Martin Baulig <martin@ximian.com>
26554 * threads.h (MonoThreadCallbacks): Added `thread_created'.
26556 * threads.c (mono_thread_new_init): Call `thread_created' in the
26557 mono_thread_callbacks.
26559 2003-03-31 Lluis Sanchez Gual <lluis@ideary.com>
26561 * loader.h: added marshalbyrefobject_class to mono_defaults
26562 * domain.c: added initialization of mono_defaults.marshalbyrefobject_class
26563 * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
26564 generation of output parameters.
26565 ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
26566 * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
26567 contextbound and the target object belongs to the context of the caller.
26568 * object.h: added context and unwrapped_server variables in MonoRealProxy.
26569 * object.c: Implemented support for interfaces and abstract classes
26570 in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
26571 proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
26573 2003-03-30 Zoltan Varga <vargaz@freemail.hu>
26575 * class.h class.c (mono_class_is_subclass_of): New function.
26577 * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
26578 routines for most common case (calls from ArrayList::ToArray).
26580 * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown
26581 routine so programs which call Environment::Exit() can be profiled.
26583 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
26584 Added MONO_ARCH_SAVE_REGS.
26586 * icall.c (ves_icall_type_is_subtype_of): Use new function.
26588 2003-03-29 Miguel de Icaza <miguel@ximian.com>
26590 * blob.h: Add a couple of new MonoType types definitions.
26592 * tabledefs.h: Add a couple of new call convs.
26594 2003-03-27 Zoltan Varga <vargaz@freemail.h>
26596 * reflection.h (MonoReflectionDynamicAssembly): track changes in
26597 the layout of the class.
26599 * reflection.c (alloc_table): double the size on overflow to avoid
26600 unnecessary copying.
26602 * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
26603 avoid filling out metadata tables and blobs. Also set mb->ilgen to
26604 null so it can be garbage collected.
26606 2003-03-27 Zoltan Varga <vargaz@freemail.hu>
26608 * reflection.c (mono_reflection_get_type): Return the resolved type
26609 only if it is in the assembly we searched.
26611 * reflection.c (ensure_runtime_vtable): Initialize method slots.
26613 * class.c (mono_class_setup_vtable): Set the slot of the overriding
26616 2003-03-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26619 (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
26620 the right one is 'file:///blah', but MS allows it.
26622 (mono_assembly_open): allow 'file://blah'
26624 Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
26626 2003-03-26 Aleksey Demakov <avd@openlinksw.com>
26628 * socket-io.c: fixes bug #40310.
26630 2003-03-25 Zoltan Varga <vargaz@freemail.hu>
26632 * reflection.c (mono_reflection_parse_type): handle deeply nested
26635 * reflection.c (mono_image_create_token): Use unique token values
26636 since they will be put into a hash table.
26638 * class.c (mono_class_setup_vtable): If a method occurs in more than
26639 one place in the vtable, and it gets overriden, then change the
26640 other occurances too.
26642 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
26643 object as return type.
26645 2003-03-22 Pedro Mart?nez Juli? <yoros@wanadoo.es>
26647 * icall.c: Deleted "ToString" implementation for double and float
26648 because they are full implemented in managed code.
26650 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
26652 * reflection.c, reflection.h: implemented and exported functions
26653 to retrieve info about custom attributes.
26655 2003-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26657 * appdomain.c: moved Uri handling to assembly.c
26658 * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
26659 work when using a file Uri in *nix and windows.
26661 * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
26662 GetReferencedAssemblies.
26664 2003-03-18 Dick Porter <dick@ximian.com>
26666 * icall.c: Rename a couple of internal calls
26668 * threads.c: Set the thread state to Stopped when a thread exits.
26671 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
26673 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
26676 * object.c (mono_class_vtable): fix warning.
26678 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
26680 * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
26682 * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
26684 (method_encode_clauses): Create exception info structures in the right
26686 (mono_reflection_setup_internal_class): Initialize supertypes field.
26688 * class.c object.c: Handle interfaces which implement other interfaces
26691 * class.h class.c: Move the supertypes array initialization code into
26692 a separate function so it can be used for dynamic types too. Also call
26693 it earlier, in mono_class_init(), since it can be used before the
26694 type is initialized.
26696 2003-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26700 * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
26705 * object.c: remove warnings.
26707 2003-03-13 Martin Baulig <martin@ximian.com>
26709 * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
26710 (MonoDebugLexicalBlockEntry): New types.
26712 * debug-mono-symfile.c
26713 (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
26715 2003-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26717 * process.c: ret can be any non-zero value accroding to MS doc.
26719 2003-03-07 Miguel de Icaza <miguel@ximian.com>
26721 * class.c (mono_marshal_load_type_info): Fix buglet: Noticed when
26722 fixing a warning for a miss-used prototype, would have cause
26723 random memory corruption.
26725 2003-03-07 Martin Baulig <martin@ximian.com>
26727 * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
26728 getting really annoying ....
26730 2003-03-07 Zoltan Varga <vargaz@freemail.hu>
26732 * reflection.c (fixup_method): added support for array methods.
26734 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
26736 * socket-io.c: handle case when AF_INET6 and AF_IPX are not defined
26737 (pointed out by Michael Adams).
26739 2003-03-04 Dick Porter <dick@ximian.com>
26741 * icall.c: Temporarily reverted the Double and Single ToString()
26742 change, because it broke nunit.
26744 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
26746 * object.h, threads.h: make include files compatible with C++
26747 (patch by Jerome Laban <jlaban@wanadoo.fr>).
26749 2003-03-04 Pedro Mart?nez Juli? <yoros@wanadoo.es>
26751 * icall.c: Erased ToString helper functions for Double and Single.
26752 Now, that implementations ar all in managed code (Double and Single
26755 2003-03-03 Lluis Sanchez Gual <lluis@ideary.com>
26757 * appdomain.c: Added method for initializing the default context of
26758 a domain. Added internal call for getting the default context.
26759 * appdomain.h: Added context variable in MonoDomain struct.
26760 * domain.c: mono_domain_set also sets the default context of the domain
26761 * icall.c: Mapped internal method InternalGetDefaultContext.
26762 * object.c: mono_object_get_virtual_method returns always a remoting
26763 wrapper if the object is a transparent proxy.
26764 mono_runtime_invoke_array: when creating an object by calling the
26765 constructor, if the created object is a proxy, then the constructor should
26766 be called using the a remoting wrapper.
26768 2003-03-03 Dick Porter <dick@ximian.com>
26770 * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
26771 variable so it compiles on solaris. Problem spotted by
26772 Christopher Taylor <ct@cs.clemson.edu>
26774 2003-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26777 (get_info_from_assembly_name): don't leak value.
26780 (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
26783 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
26785 * assembly.c: export mono_image_load_references ().
26786 * class.c: handle function pointers. mono_class_from_name() now
26787 supports nested type names directly.
26789 2003-02-28 Zoltan Varga <vargaz@freemail.hu>
26791 * reflection.h reflection.c: Encode already created dynamic methods
26792 and fields correctly as a DEF instead of a REF.
26794 * reflection.c: Get rid of the force_ref argument to
26795 mono_image_typedef_or_ref since it was wrong in the first place.
26797 * string-icalls.c: add error checking to string constructors according
26800 * reflection.c: Emit types in the order their TypeBuilders were
26801 created. Previously, a new table index was assigned to each type before
26802 the tables were emitted. This was wrong because the signature blob
26803 might already refer to a type by its original table index.
26805 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
26807 * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
26810 2003-02-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26812 * Makefile.am: make assemblies dir have \ instead of / on windows.
26814 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
26816 * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
26817 iterate over the NESTEDCLASS table using a linear search since the
26818 table is not guaranteed to be sorted by the secondary key.
26820 * class.c (mono_class_create_from_typedef): fixed up call to
26821 mono_metadata_nesting_typedef.
26823 2003-02-27 Dietmar Maurer <dietmar@ximian.com>
26825 * marshal.c (mono_string_to_byvalstr): clear the memory as
26826 suggested by Jerome Laban <jlaban@wanadoo.fr>
26828 2003-02-26 Dick Porter <dick@ximian.com>
26830 * process.c: Cope with padding in .rsrc blocks
26832 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
26834 * metadata.h: reverted the filter_len change, it breaks reflection
26836 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
26838 * metadata.h: added a new field to store the filter_len
26841 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
26843 * reflection.c: handle custom attributes for types and members
26844 created with Reflection.Emit (bug#38422).
26846 2003-02-22 Zoltan Varga <vargaz@freemail.hu>
26848 * reflection.c: define RTSpecialName automatically for constructors for
26849 compatibility with MS.NET.
26851 * reflection.c (mono_reflection_create_runtime_class): initialize
26852 nested_in field of dynamically created classes.
26854 2003-02-22 Martin Baulig <martin@ximian.com>
26856 * debug-mono-symfile.h: Incremented version number.
26858 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
26860 * object.h icall.c process.c: fix warnings.
26862 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
26864 * appdomain.h appdomain.c:
26865 (mono_domain_try_type_resolve): split the
26866 name_or_tb argument into a name and a tb argument.
26867 (mono_domain_has_type_resolve): new function to check whenever the
26868 application has registered a TypeResolve event handler.
26870 * icall.c reflection.h reflection.c: move the type resolve logic into
26871 mono_reflection_get_type () so it will be invoked when
26872 Assembly::GetType () is called.
26875 (mono_reflection_get_type): renamed to get_type_internal.
26876 (mono_reflection_get_type): fixed type name generation so it works
26877 for nested types too.
26878 (mono_reflection_get_type): call has_type_resolve () to avoid the
26879 costly type name generation if there is no resolve event handler.
26881 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
26883 * class.c, image.c: load exported types from file references.
26885 2003-02-19 Lluis Sanchez Gual <lluis@ideary.com>
26887 * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
26888 used to cache the managed methods used to create proxies and make
26889 remote invocation of methods.
26890 * class.h: Added in MonoVTable a flag to indicate that a class needs
26891 to be remotely created.
26892 * object.c: Modified the method mono_class_vtable(). It now initializes
26893 the remote flag of the vtable. Modified mono_object_new_specific(),
26894 so now it checks the remote flag.
26895 * icall.c: Added a couple of internal methods, one for enabling instance
26896 creation interception for a type, and one for creating objects bypassing
26899 2003-02-18 Martin Baulig <martin@ximian.com>
26901 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
26902 New interncall to get a method's metadata token.
26904 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
26905 New interncall for the debugger.
26907 2003-02-18 Dietmar Maurer <dietmar@ximian.com>
26909 * class.c (mono_class_setup_vtable): allocate supertype array
26911 2003-02-18 Martin Baulig <martin@ximian.com>
26913 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
26915 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26918 (assembly_name_to_aname): jump over unknown properties (i've found
26919 something like: 'type, assembly, version=xxx, custom=null, public...',
26920 so now will ignore custom=null and still get the rest of the values).
26922 2003-02-17 Dick Porter <dick@ximian.com>
26924 * threads.c: Have Thread.Start() wait for a semaphore to signal
26925 that the thread has set up all its local data. This fixes bug
26926 34323, where Abort() raced the new thread's TLS data.
26928 Also removes the handle_store() call from start_wrapper, because
26929 threads are now always created suspended and there is no longer a
26930 race between the parent and child threads to store the info.
26932 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
26934 * image.c: explain the #- heap issue in a message, hopefully
26935 avoiding FAQs on mono-list.
26937 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26940 (GetEntryAssembly): if the domain has not invoked
26941 AppDomain.ExecuteAssembly yet, return the assembly of the default
26944 2003-02-16 Zoltan Varga <vargaz@freemail.hu>
26946 * class.c (mono_ldtoken): make it work in dynamic assemblies.
26948 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
26950 * metadata.c, reflection.c: simple speedup to type hash
26953 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
26955 * image.c, image.h, class.c, assembly.c: move module loading
26956 to MonoImage. When loading metadata, consider alignemnet from
26957 the start of metadata, not from the metadata address in memory.
26959 2003-02-13 Zoltan Varga <vargaz@freemail.hu>
26961 * reflection.c (mono_reflection_get_custom_attrs): Added support for
26962 AssemblyBuilder objects. Factored out custom attribute creation into
26963 a separate function.
26964 (create_custom_attr): new function to create custom attributes.
26966 2003-02-12 Miguel de Icaza <miguel@ximian.com>
26968 * Makefile.am: Got tired of typing the full pathname to pedump.
26969 Until there is another option, am installing this.
26971 2003-02-12 Dietmar Maurer <dietmar@ximian.com>
26973 * class.c (class_compute_field_layout): always set field->parent
26974 (mono_ldtoken): use mono_defaults.fieldhandle_class;
26976 2003-02-11 Dick Porter <dick@ximian.com>
26979 * monitor.c: Rewrote Monitor, making lock much faster and
26980 Pulse/Wait work as specified. Also uses much fewer handles, and only
26981 creates them as needed.
26983 * exception.c: Added SynchronizationLockException
26985 * threads.c: Deleted old Monitor implementation. The new one is
26988 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
26990 * class.c: handled TypedReference type code. Set the correct size for
26991 class data. Setup interface_offsets for interface classes, too.
26993 2003-02-09 Martin Baulig <martin@ximian.com>
26995 * debug-mono-symfile.h: Reflect latest symbol writer changes.
26997 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
26999 * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
27000 * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
27001 * object.c: fixed mono_object_get_virtual_method () for interfaces.
27002 * verify.c: check for code that runs after the end of the method.
27004 2003-02-08 Pedro Mart?nez Juli? <yoros@wanadoo.es>
27006 * icall.c: Added "System.Math::Floor", "System.Math::Round" and
27007 "System.Math::Round2".
27008 * sysmath.h: Added Floor, Round and Round2 definitions.
27009 * sysmath.c: Modified certain functions that were not 100% compliant
27010 with MS.NET (math precision) and added the implementation of Floor,
27013 2003-02-07 Martin Baulig <martin@ximian.com>
27015 * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
27017 2003-02-07 Martin Baulig <martin@ximian.com>
27019 * debug-mono-symfile.c: Reflected latest symwriter changes.
27020 (mono_debug_create_mono_symbol_file): Removed.
27021 (mono_debug_open_mono_symbol_file): Take an argument which
27022 specifies whether to create a dynamic symbol file.
27024 2003-02-07 Dietmar Maurer <dietmar@ximian.com>
27026 * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
27028 2003-02-05 Martin Baulig <martin@ximian.com>
27030 * reflection.c (mono_image_build_metadata): Make this public,
27031 protect it against being called multiple times, don't create
27032 resources and don't build the compressed metadata here.
27033 (mono_image_create_pefile): Do this here.
27036 ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
27038 2003-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27040 * socket-io.c: fixed bug #36322.
27042 2003-02-06 Piers Haken <piersh@friskit.com>
27046 * debug-mono-symfile.c:
27052 * socket-io.c: warning cleanups
27054 2003-02-06 Dietmar Maurer <dietmar@ximian.com>
27056 * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
27057 function. works like remoting invoke, but does a check for the Proxy first.
27059 2003-02-05 Miguel de Icaza <miguel@ximian.com>
27061 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
27063 2003-02-05 Dietmar Maurer <dietmar@ximian.com>
27065 * marshal.c (mono_marshal_get_native_wrapper): only allocate an
27067 (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
27068 (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
27070 * object.c (mono_store_remote_field_new): used by the new jit
27071 instead of mono_store_remote_field
27072 (mono_load_remote_field_new): used by the new jit
27073 instead of mono_load_remote_field
27075 2003-02-05 Patrik Torstensson
27077 * appdomain.c: changed unload to take the domain id instead
27080 * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
27083 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27085 * appdomain.c: don't look for assemblies in ApplicationBase if
27086 PrivateBinPathProbe is set.
27088 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27090 * object.c: make the first argument in main_args contain the absolute
27091 path to the assembly. Fixes bug #37511.
27093 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27095 * icall.c: get correct UTC offset for countries not using daylight
27096 time saving. Fixes bug #30030.
27098 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27100 * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
27101 and 1 are the family).
27103 2003-02-04 Dietmar Maurer <dietmar@ximian.com>
27105 * icall.c (ves_icall_InternalExecute): removed wrong assertion
27107 * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
27109 2003-02-04 Zoltan Varga <vargaz@freemail.hu>
27111 * reflection.c: added support for SignatureHelper tokens, which is
27112 needed by the Calli opcode.
27114 * reflection.h: track changes to SignatureHelper class.
27116 * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
27118 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27120 * appdomain.c: fixed loading assemblies from PrivateBinPath.
27122 2003-02-03 Patrik Torstensson
27123 * appdomain.[c|h], domain.c :
27124 - Added support for getting a domain via domain id
27125 - Support for setting and getting domain from System.AppDomain
27126 (used in cross appdomain channel)
27127 - Added support for get/set for a MonoAppContext on a thread
27128 (Context class in System.Runtime.Remoting.Contexts),
27129 - Removed hack in Get/SetData and ExecuteAssembly.
27131 * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
27132 the managed world to get control when a proxy is created.
27134 * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
27136 2003-02-03 Miguel de Icaza <miguel@ximian.com>
27139 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
27140 Populate the codebase field as well.
27142 2003-02-02 Martin Baulig <martin@ximian.com>
27144 * debug-mono-symfile.c
27145 (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
27146 (mono_debug_symfile_add_method): Allow interncalls.
27148 2003-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27150 * icall.c: throw parse exception if strtod fails or the string is empty.
27152 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
27154 * marshal.c: handle object type separately from defined
27157 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
27159 * marshal.c: handle NATIVE_LPSTR for strings when it's
27160 explicitly specified.
27162 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
27164 * reflection.c, reflection.h, icall.c: setup the reflection
27165 handle cache for ModuleBuilders and AssemblyBuilders.
27167 2003-01-30 Dietmar Maurer <dietmar@ximian.com>
27169 * reflection.c (reflection_methodbuilder_to_mono_method): set
27172 2003-01-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27174 * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
27176 2003-01-29 Dick Porter <dick@ximian.com>
27178 * threads.c: No need for the fake_thread kludge now that Thread
27179 doesn't run a class constructor
27181 2003-01-29 Dick Porter <dick@ximian.com>
27183 * threads.c: Use g_direct_hash instead of the rather bogus
27186 2003-01-29 Dietmar Maurer <dietmar@ximian.com>
27188 * marshal.c (mono_marshal_get_native_wrapper): add check for null
27189 (fix pinvoke12.exe)
27190 (mono_marshal_get_struct_to_ptr): generate valid IL code
27191 (mono_marshal_get_ptr_to_struct): generate valid IL code
27192 (*): correctly set sig->pinvoke, we need to memdup the signature
27195 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
27197 * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
27198 to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
27200 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
27202 * profiler.c: provide more callers information.
27204 2003-01-28 Dietmar Maurer <dietmar@ximian.com>
27206 * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
27208 * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
27210 * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
27212 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
27214 * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
27215 exception instead of going into an infinite loop on dates which it
27218 * string-icalls.c (ves_icall_System_String_get_Chars): raise
27219 out-of-range exception if needed.
27221 * class.c (mono_class_setup_vtable): allow a virtual method to provide
27222 an implementation for an interface method and to override an inherited
27223 method at the same time.
27224 Imagine a scenario when a virtual method is used to override a
27225 virtual abstract method in a parent class, and this same method
27226 provides an implementation for an method inherited from an interface.
27227 In this case, the interface resolution code will set im->slot, which
27228 means that the virtual method override pass will skip this method
27229 which means a pointer to the abstract method inherited from the parent
27230 will remain in the vtable of this non-abstract class.
27232 * class.c: (mono_class_setup_vtable): continue search for a real
27233 method if only an abstract method is found.
27235 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
27237 * reflection.c: add size to encoding for ByValStr and ByValArray
27238 marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
27240 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
27242 * class.c (mono_class_setup_vtable): pass the override info as an
27245 * class.c (mono_class_setup_vtable): set the slot of overriding methods
27248 * reflection.c (ensure_runtime_vtable); add support for method
27251 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
27253 * reflection.c (resolution_scope_from_image): Hack to work to work with
27254 dynamic assemblies.
27256 * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and
27257 added a 'force_ref' argument to force this function to allways return
27258 a TypeRef. This is needed by mono_image_get_memberref_token ().
27260 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
27262 * reflection.c (mono_image_get_type_info): interfaces really don't have
27265 * reflection.c (mono_image_basic_init): fill out missing fields of
27268 * reflection.c (mono_image_basic_init): Invoke assembly load hooks for
27269 dynamic assemblies. This is required so dynamic assemblies show up in
27270 AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
27271 Type::GetType() etc. This is consistent with MS behaviour.
27273 * image.c image.h reflection.c: add newly created classes to the name
27274 cache so mono_class_get () will find them.
27276 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
27278 First part of changes to get IKVM.NET running under mono.
27280 * appdomain.h, appdomain.c: added new function
27281 mono_domain_try_type_resolve() which will emit TypeResolve events.
27282 This function will call AppDomain::DoTypeResolve to do the actual work.
27284 * class.h, class.c, loader.c, object.c, reflection.h, reflection.c:
27285 moved existing code dealing with dynamic tokens to a new function
27286 called mono_reflection_lookup_dynamic_token (). This function will
27287 raise TypeResolve events when appropriate. Since reflection.c is not
27288 part of libmetadata, a new hook function called
27289 mono_lookup_dynamic_token() is added to class.c which will call this.
27291 * assembly.h assembly.c: make the invoke_load_hook function public,
27292 so it can be called for dynamic assemblies.
27294 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
27296 * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the
27299 * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a
27300 MonoGHashTable, since it contains pointers to objects which the GC
27303 * assembly.c (search_loaded): remove unused variable.
27305 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
27307 * object.c: fixed issue exposed by gcc-generated IL programs
27308 that use RVA data for pointers.
27310 2003-01-25 Martin Baulig <martin@ximian.com>
27312 * threads.c (start_wrapper): Moved the initialization of
27313 `start_func' above the mono_new_thread_init() call to which we
27314 pass it as argument.
27316 2003-01-24 Martin Baulig <martin@ximian.com>
27318 * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
27319 the MonoThread pointer.
27321 2003-01-21 Miguel de Icaza <miguel@ximian.com>
27323 * icall.c: Rename `PowImpl' to Pow.
27325 2003-01-23 Dick Porter <dick@ximian.com>
27327 * threads.c (start_wrapper): Create a Thread object if needed, so
27328 the Main() thread can do the class initialisation in a subthread
27329 that has been set up to allow managed code execution.
27331 Pass the thread ID instead of the MonoThread pointer to the thread
27332 start and attach callbacks. This change is required, because the
27333 jit thread start callback must be called _before_ the Thread
27334 object can be created.
27336 (mono_thread_init): Removed much object creation code that is no
27337 longer needed. No managed code is called from here now.
27339 * object.c (mono_runtime_exec_managed_code): Create a subthread
27340 for Main, and call back to the runtime to use it.
27341 Set the exit code when Main exits.
27343 * gc.c: Make sure domain finalisation happens in a subthread.
27344 Re-enable threaded GC, fixing bug 31333 (again).
27346 * environment.c: System.Environment internall calls (so far just
27347 ExitCode is here, the others are still in icall.c)
27349 * appdomain.c (mono_runtime_cleanup): All threads running managed
27350 code should have finished before mono_runtime_cleanup() is
27351 reached, so no need to clean up threads.
27353 2003-01-22 Martin Baulig <martin@ximian.com>
27355 * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
27356 `gpointer func' arguments.
27357 (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
27358 but added `MonoThread *thread' argument.
27359 (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
27361 * threads.c (mono_new_thread_init): Added `gpointer func' argument
27362 and pass it to the mono_thread_start_cb callback.
27363 (mono_install_thread_callbacks): New public function to install a
27364 set of callbacks which are set by the debugger.
27365 (mono_thread_init): The last argument is now a MonoThreadAttachCB.
27367 2003-01-22 Martin Baulig <martin@ximian.com>
27369 * Makefile.am: Install debug-mono-symfile.h.
27371 2003-01-21 Aleksey Demakov <avd@openlinksw.com>
27373 * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
27375 2003-01-21 Dietmar Maurer <dietmar@ximian.com>
27377 * added the following fix from Jackson Harper <jackson@latitudegeo.com>
27378 * class.c (mono_ptr_class_get): correctly set access levels of pointers
27379 (mono_array_class_get): correctly set access levels of arrays
27381 2003-01-20 Patrik Torstensson
27382 * image.h (MonoAssemblyName): changed major, minor, build, revision
27383 from signed to unsigned.
27385 2003-01-20 sean kasun <skasun@azstarnet.com>
27387 * reflection.c (load_cattr_value): Now this handles
27388 MONO_TYPE_SZARRAY. Fixes bug #35629
27390 2003-01-20 Miguel de Icaza <miguel@ximian.com>
27392 * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
27395 2003-01-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27397 * decimal.c: fixed bug #26056.
27399 2003-01-17 Martin Baulig <martin@ximian.com>
27401 * gc.c: Raise an ExecutionEngineException instead of using g_error().
27403 2003-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27406 (mono_get_exception_type_initialization): new function.
27408 * object.c: throw a TypeInitializationException when an exception is
27409 thrown invoking the class constructor.
27411 2003-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27413 * reflection.c: fixed attribute reading.
27415 2003-01-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27418 (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
27419 provided, look for the type in the calling assembly and then in
27420 mscorlib; if the assembly name is provided, only try that one.
27422 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
27424 * object.c: register the vtable before there is a chance it's
27425 queried again recursively.
27427 2003-01-13 Duncan Mak <duncan@ximian.com>
27429 * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
27432 2003-01-12 Patrik Torstensson <totte@race-x-change.com>
27434 * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
27436 2003-01-11 Martin Baulig <martin@ximian.com>
27438 * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
27439 this to 20 for the release.
27441 2003-01-10 Dietmar Maurer <dietmar@ximian.com>
27443 * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
27445 * loader.c (mono_method_get_marshal_info): bug fix
27447 * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
27448 structures with explicit layout
27450 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
27452 * profiler.c: made the output more readable (and sorted).
27453 Added caller information for the allocation profiler.
27455 2003-01-09 Sebastien Pouliot <spouliot@videotron.ca>
27457 * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
27459 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27461 * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
27462 to get value types.
27464 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
27466 * object.c, profiler.h, profiler.c, profiler-private.h:
27467 Added object allocation profiler.
27469 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
27471 * reflection.h, reflection.c: handle global methods.
27472 Compress blob entries.
27474 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
27476 * marshal.c: fix compilation.
27478 2003-01-09 Dietmar Maurer <dietmar@ximian.com>
27480 * loader.c (mono_method_get_marshal_info): impl.
27482 * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
27484 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27486 * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
27487 for reference types.
27489 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
27491 * loader.c: fixed off by one error in loaded parameter names.
27493 2003-01-08 Dietmar Maurer <dietmar@ximian.com>
27495 * marshal.c (mono_marshal_get_icall_wrapper): like
27496 mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
27497 instead of a MonoMethod.
27499 2003-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27501 * decimal.c: fixed bug #36537.
27503 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
27505 * marshal.c: throw a missing method exception if a
27506 P/Invoke method is not found.
27508 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
27510 * icall.c: allow a null this for constructors.
27512 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
27514 * icall.c: raise the proper exceptions if the arguments to the
27515 internal Invoke are incorrect.
27517 2003-01-03 Dietmar Maurer <dietmar@ximian.com>
27519 * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
27521 2003-01-03 Martin Baulig <martin@ximian.com>
27523 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
27525 2002-12-31 Martin Baulig <martin@ximian.com>
27527 * debug-mono-symfile.c: Completely rewrote the type section.
27528 Instead of using individual malloc()ed fields, we use one big
27529 continuous memory area and offsets into this area.
27530 See the comments in the source code for details.
27532 2002-12-30 Martin Baulig <martin@ximian.com>
27534 * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
27536 2002-12-30 Martin Baulig <martin@ximian.com>
27538 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
27539 line number table in this data blob instead of using an external
27542 2002-12-28 Martin Baulig <martin@ximian.com>
27544 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
27546 2002-12-22 Rachel Hestilow <hestilow@ximian.com>
27548 * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
27549 as a boxed return type.
27551 2002-12-21 Miguel de Icaza <miguel@ximian.com>
27554 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
27555 g_build_filename to properly get separators on the filename created.
27557 * object.h: Small change, introduce MonoMarshalByRefObject to
27558 track the layout of that structure in the C# universe as we make
27561 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
27563 * object.c: removed assert to allow static fields on interfaces.
27564 * loader.c: a TypeSpec may be used for any type, not just arrays.
27566 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
27568 * class.c, class.h: added mono_class_array_element_size ().
27569 Ignore static methods in interfaces.
27571 2002-12-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27573 * threads.c: fixed the build under cygwin.
27575 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
27577 * reflection.c: handle nullref constants. Allocate keys for
27578 reflection handles with the GC.
27580 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
27582 * threads.c, threads.h: added mono_thread_get_abort_signal()
27583 to get a suitable signal for thread abort.
27585 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
27587 * metadata.c: fix handling of ExportedType table.
27589 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27591 * icall.c: added WriteWindowsDebugString internal call.
27593 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27595 * reflection.h: added fields to match C# implementation.
27597 2002-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27599 * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
27601 2002-12-12 Juli Mallett <jmallett@FreeBSD.org>
27603 * gc.h, gc-internal.h: Rename header for GC internal calls to
27604 gc-internal.h from gc.h as to not clash with Boehm GC having its
27605 header installed as <gc.h> in outside include paths.
27606 * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
27607 * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
27609 2002-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27611 * icall.c: assign minor, build and revision in FillName.
27613 2002-12-11 Zoltan Varga <vargaz@freemail.hu>
27615 * image.h reflection.h reflection.c class.h class.c loader.c object.c:
27616 Added support for running code generated by Reflection.Emit.
27618 2002-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27620 * appdomain.c: check for NULL argument in LoadFrom.
27622 2002-12-10 Dick Porter <dick@ximian.com>
27624 * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
27626 2002-12-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27628 * appdomain.c: fix buglet when building exe file name. Handle full
27629 assembly name (needed after latest changes to AssemblyName).
27631 (mono_image_close): free some hashtables.
27633 2002-12-05 Dietmar Maurer <dietmar@ximian.com>
27635 * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN
27636 instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation
27637 on some systems (redhat 7.3)
27639 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
27641 * threads.c: delete the critical section of a sync block,
27642 spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
27644 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
27646 * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
27648 2002-12-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27650 * appdomain.[ch]: handle the assembly preload event to try loading the
27651 assemblies using the paths we have in the current domain.
27653 * assembly.[ch]: created an assembly preload hook that is called to try
27654 loading the assembly by other means that the ones provided here.
27656 * domain.c: initialize the domain search path.
27658 From now on, assemblies (TODO: except corlib and System) are loaded
27659 according to these rules when using mono_assembly_load ():
27661 1. It tries to load the assembly from the ApplicationBase
27662 of the current domain appending .dll and .exe (TODO: have to
27663 try loading from name/name.dll and name/name.exe).
27665 2. It tries the search path specified in PrivateBinPath for the
27666 current domain (if any).
27668 3. Previous behavior.
27670 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
27672 * icall.c: implemented GetInterfaceMap() related icall.
27673 * domain.c, loader.h: load MethodInfo in mono_defaults.
27675 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
27677 * gc.c: disable the finalizer thread for now, untill all the issues
27678 with it are resolved.
27680 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
27682 * string-icalls.c: handle embedded nulls in string ctor when the
27683 length is specified.
27685 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
27687 * class.c: look for explicit interface implementation in parent
27690 2002-12-03 Dietmar Maurer <dietmar@ximian.com>
27692 * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3)
27694 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
27696 * gc.c: protect handles with a critical section.
27698 2002-12-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27701 (ves_icall_type_from_name): it now has throwOnError and ignoreCase
27702 parameters. If no assembly specified, try getting the type from all
27703 the assemblies in the current domain, else, load the assembly and get
27706 2002-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27708 * marshal.c: applied patch from Aleksey Demakov that fixes
27709 ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
27711 2002-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27713 * icall.c: fixed get_location.
27715 2002-11-28 Dietmar Maurer <dietmar@ximian.com>
27717 * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
27718 declarations to make it work with older gcc.
27720 * loader.c (mono_get_method): set signature->pinvoke for native calls
27722 2002-11-20 Dick Porter <dick@ximian.com>
27724 * threads.c (mono_thread_init): Set the main thread's handle
27726 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
27728 * gc.c: allow compilation without GC support. Changed to match the
27731 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
27733 * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
27735 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
27737 * reflection.c: set a public key token on the core assemblies.
27739 2002-11-18 Dick Porter <dick@ximian.com>
27741 * threads.c: Split out some thread initialisation so that other
27742 files can set the start callback function.
27744 * gc.c: Run finalisers in a separate thread, to avoid stack
27745 overflow. Fixes bug 31333.
27747 * appdomain.c: Set up GC finalisation thread.
27751 * domain.c: Use gc.h macros for GC_malloc
27753 2002-11-15 Dick Porter <dick@ximian.com>
27757 * appdomain.c: Removed mono_runtime_init_with_attach(),
27758 mono_thread_create_arg(), and mono_thread_init_with_attach(), by
27759 merging the extra parameter with the existing function. Removed
27760 unneeded code in mono_thread_attach().
27762 2002-11-14 Dietmar Maurer <dietmar@ximian.com>
27764 * image.c (mono_image_loaded_by_guid): a method to get loaded
27766 (load_metadata_ptrs): we store the guid as string.
27768 2002-11-11 Dietmar Maurer <dietmar@ximian.com>
27770 * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
27772 * metadata.c (mono_guid_to_string): imported method form Zoltan
27773 Varga (slightly modified)
27775 * assembly.c (mono_assembly_open): load precompiled code
27777 * loader.h (MonoMethod): we store the method token for use in the
27780 2002-11-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27782 * appdomain.c: insert the loaded assemblies in the domain->assemblies in
27783 the hook function called when an assembly is loaded.
27785 * domain.c: Modified file.
27786 (mono_domain_assembly_load): removed hash table insertion of assemblies.
27790 2002-11-07 Miguel de Icaza <miguel@ximian.com>
27792 * reflection.c: Map PEFileKind to the value expected by the WinNT
27795 2002-11-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27797 * rand.c: use /dev/urandom. If it fails to open, use the previous one.
27798 Read until the buffer is filled completely.
27800 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27802 * icall.c: implemented MonoType.InternalGetEvent ().
27804 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27806 * appdomain.c: implemented InitAppDomainSetup. Delayed
27807 AppDomain.SetupInformation until mono_runtime_exec_main, where we get
27808 the entry_assembly.
27810 * assembly.c: base_dir is now an absolute path ending with
27813 * icall.c: modified get_location according to the above changes.
27815 * object.c: init AppDomain.SetupInformation for the default domain after
27816 we have the entry assembly.
27818 * domain.c: when unloading a domain, setup = NULL.
27820 2002-11-04 Dietmar Maurer <dietmar@ximian.com>
27822 * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
27824 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
27826 * object.h, object.c: introduced mono_object_get_virtual_method ()
27827 to lookup the method invoked on an object when a callvirt is done on
27829 * icall.c: make MethodInfo::Invoke() always do a virtual call.
27831 2002-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27833 * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
27834 current domain when loaded an assembly and failed to load it.
27836 * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
27838 2002-10-31 Dick Porter <dick@ximian.com>
27842 * file-io.c: Return the error status in a parameter, as the
27843 GetLastError() value has long since been blown away if we try and
27844 look it up in a subsequent internal call invocation. Delete the
27845 GetLastError() internal call, because it's useless.
27847 2002-10-31 Dietmar Maurer <dietmar@ximian.com>
27849 * class.[ch]: added cast_class to fix bug 29517
27851 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
27853 * marshal.c: create valid IL code in the filter clause:
27854 the new JIT is less forgiving:-)
27856 2002-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27858 * icall.c: removed get_property internal call.
27860 2002-10-25 Zoltan Varga <vargaz@freemail.hu>
27862 * appdomain.h domain.c: Added an ID to appdomains.
27864 * threads.c threads.h icall.c: Implement icall
27865 Thread:GetDomainID(), and remove unused icall
27866 CurrentThreadDomain_internal.
27868 2002-10-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27870 * icall.c: Don't recurse through the base types in GetConstructor.
27873 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
27875 * mempool.h, mempool.c: added mono_mempool_empty() and
27876 mono_mempool_stats().
27878 2002-10-23 Dick Porter <dick@ximian.com>
27882 * icall.c: Added MonoIO.GetFileType internal call
27884 2002-10-17 Dick Porter <dick@ximian.com>
27886 * appdomain.c (mono_runtime_cleanup): Don't signal the async
27887 delegate semaphore before waiting for all threads to finish,
27888 because new threads can also call async delegates. Fixes bug
27891 * threadpool.c (async_invoke_thread): Only wait for 500ms instead
27892 of 3 seconds, in case another async job is queued. (This part is
27893 needed because the bug fix reintroduced the 3s exit lag.) This
27894 makes the mono_runtime_shutdown flag superfluous.
27896 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
27898 * reflection.c: include ehader size in method section headers.
27899 Really check for suplicated modules entries.
27901 2002-10-17 Martin Baulig <martin@gnome.org>
27903 * debug-mono-symfile.c: Added back support for locals.
27905 2002-10-14 Martin Baulig <martin@gnome.org>
27907 * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
27910 2002-10-14 Martin Baulig <martin@gnome.org>
27912 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
27913 mono_class_get() instead of looking in the class cache.
27915 2002-10-13 Martin Baulig <martin@gnome.org>
27917 * debug-mono-symfile.c: Set version number to 28, include the
27918 signature in method names.
27920 2002-10-13 Martin Baulig <martin@gnome.org>
27922 * debug-mono-symfile.h: Set version number to 27.
27924 2002-10-11 Martin Baulig <martin@gnome.org>
27926 * gc.c: Don't register/unregister NULL pointers as disappearing links.
27928 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
27930 * metadata.c, metadata.h: added helper function to allocate signatures.
27932 2002-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27934 * icall.c: added internal call to get the location of machine.config.
27936 2002-10-08 Martin Baulig <martin@gnome.org>
27938 * debug-mono-symfile.c: Ignore classes with a pending init for the
27941 2002-10-03 Dick Porter <dick@ximian.com>
27943 * threads.c: Freebsd pthread_t is a pointer
27945 2002-10-03 Dick Porter <dick@ximian.com>
27947 * socket-io.c: Implemented GetHostName_internal
27949 2002-10-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27952 (mono_config_parse_file): don't leak the text.
27954 2002-10-02 Martin Baulig <martin@gnome.org>
27956 * debug-mono-symfile.c: Added support for methods.
27958 2002-10-01 Martin Baulig <martin@gnome.org>
27960 * debug-mono-symfile.c: Don't emit methods and line numbers for
27961 the dynamic symbol file, just write the type table. We can easily
27962 have an external helper program which creates a symbol file for an
27965 2002-10-01 Dick Porter <dick@ximian.com>
27967 * threads.c (ves_icall_System_Threading_Thread_Start_internal):
27968 Only add the handle to the cleanup array when we're about to
27969 launch the thread. Bug 31425 deadlocked when the test was run on
27972 2002-10-01 Martin Baulig <martin@gnome.org>
27974 * debug-mono-symfile.c: Added support for properties.
27976 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
27978 * reflection.c: unaligned store fix from Mark Crichton
27979 <crichton@gimp.org>.
27981 2002-09-27 Martin Baulig <martin@gnome.org>
27983 * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
27986 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
27988 * assembly.h, assembly.c: use a sane API to hook into the assembly
27989 loading process instead of a useless special-purpouse hack
27990 (ngen needs a hook, too, for example).
27992 2002-09-27 Dick Porter <dick@ximian.com>
27994 * threads.c (mono_thread_init): Call GetCurrentProcess() so
27995 io-layer can set up some process handle info. Not needed on w32,
27996 but doesn't hurt either.
27998 * process.c: Pass the program name in the second parameter to
27999 CreateProcess, so the path is searched. Include the working
28000 directory. Implemented process name, process enumeration, and some
28001 process detail internal calls.
28003 * icall.c: Added internal calls for process lookup, and some
28006 2002-09-26 Martin Baulig <martin@gnome.org>
28008 * assembly.c (mono_install_open_assembly_hook): New global
28009 function to install a function to be invoked each time a new
28010 assembly is loaded.
28011 (mono_assembly_open): Run this callback function if set.
28013 * debug-mono-symfile.c: Put back line numbers for the dynamic
28014 symbol file and also record the .il file as source file. This
28015 allows us to install the temporary symbol file as `file.dbg' just
28016 like a compiler-generated one.
28018 2002-09-26 Nick Zigarovich <nick@chemlab.org>
28020 * Corrected typo in gc.c (BOHEM vs BOEHM).
28022 2002-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28024 * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
28025 GetProperties. Also avoid calling g_slist_length in GetProperties and
28028 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
28030 * reflection.c: avoid unaligned stores (bug spotted by
28031 Mark Crichton <crichton@gimp.org>).
28033 2002-09-25 Martin Baulig <martin@gnome.org>
28035 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
28036 instead of guint64 for addresses and added prologue/epilogue info.
28038 2002-09-25 Martin Baulig <martin@gnome.org>
28040 * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
28041 store line number info. For the dynamic symbol file, we only need
28042 to provide the JIT generated dynamic line number info for the dynamic
28045 2002-09-25 Martin Baulig <martin@gnome.org>
28047 * debug-mono-symfile.h: Incremented version number.
28049 2002-09-24 Martin Baulig <martin@gnome.org>
28051 * class.c (mono_debugger_class_init_func): New global function
28053 (mono_class_init): If mono_debugger_class_init_func is non-NULL,
28056 * debug-mono-symfile.c (mono_debug_symfile_add_type): New
28057 function. This is called via the mono_debugger_class_init_func
28058 hook to add all types to the dynamic type table.
28059 (ves_icall_MonoDebugger_GetType): New interncall to get a class
28060 from its metadata token.
28062 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
28063 New interncall for the debugger.
28065 2002-09-24 Nick Drochak <ndrochak@gol.com>
28067 * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
28068 before using it in case it is null.
28070 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
28072 * metadata.c: allow custom modifiers in local var signatures
28073 (bug spotted by Zoltan Varga).
28075 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
28077 * class.c: deal with the <Module> class that may have a NULL vtable.
28078 Eliminate warnings.
28080 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
28082 * image.c, image.h: more strong name helpers.
28083 * monosn.c: more work: convert pem keys to cryptoapi format.
28085 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
28087 * string-icalls.c: speedup IndexOf.
28089 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
28091 * icall.c: updates from Zoltan.2.Varga@nokia.com.
28093 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
28095 * icall.c: cleanup: use mono_object_domain ().
28097 2002-09-23 Martin Baulig <martin@gnome.org>
28099 * debug-mono-symfile.c: Improved type support.
28101 2002-09-22 Martin Baulig <martin@gnome.org>
28103 * debug-mono-symfile.c: Added support for reference types and strings.
28105 2002-09-22 Martin Baulig <martin@gnome.org>
28107 * debug-mono-symfile.c: Started to work on the type table.
28109 2002-09-21 Martin Baulig <martin@gnome.org>
28111 * debug-mono-symfile.c: Largely reworked the symbol table format.
28112 The symbol table is now incrementally updated each time a new
28113 method is added. We're now also using our own magic and version
28114 so that you don't need to recompile all your classes if the
28115 dynamic table changes.
28116 (mono_debug_update_mono_symbol_file): Removed.
28117 (mono_debug_symfile_add_method): New function to add a method.
28119 2002-09-21 Martin Baulig <martin@gnome.org>
28122 ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
28125 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
28126 New interncall to get a method from its metadata token.
28128 2002-09-21 Martin Baulig <martin@gnome.org>
28130 * debug-mono-symfile.c: Create type table.
28132 2002-09-20 Martin Baulig <martin@gnome.org>
28134 * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
28136 2002-09-20 Martin Baulig <martin@gnome.org>
28138 * debug-mono-symfile.c: Provide information about params and locals.
28140 2002-09-20 Martin Baulig <martin@gnome.org>
28142 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
28145 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
28146 interncall to get a method from its metadata token.
28148 2002-09-20 Martin Baulig <martin@gnome.org>
28150 * debug-mono-symfile.c: Added a few checks for method->header
28151 being non-NULL. This should never happen, but for the moment
28152 let's use a g_warning() rather than a g_assert().
28154 2002-09-19 Mark Crichton <crichton@gimp.org>
28156 * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
28157 even if support for it isn't present. Added an #ifdef to fix this.
28159 * socket-io.c: Added checks back for Solaris support.
28161 2002-09-19 Martin Baulig <martin@gnome.org>
28163 * debug-mono-symfile.c (read_string, write_string): Reflect latest
28164 changes in the symbol file format.
28166 2002-09-18 Martin Baulig <martin@gnome.org>
28168 * debug-mono-symfile.c: Set version number to 21.
28170 2002-09-18 Dick Porter <dick@ximian.com>
28172 * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
28173 on netbsd. Fixes bug 30051.
28175 2002-09-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28178 (set_version_from_string): little fix.
28180 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
28182 * monosn.c, Makefile.am: added strong name utility.
28183 * reflection.h, reflection.c: implemented delayed signing,
28184 locale, version and hash id assembly attributes.
28186 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
28188 * loader.c, metadata.c: load param attributes in signatures.
28190 2002-09-16 Martin Baulig <martin@gnome.org>
28192 * debug-mono-symfile.c: Added string table with all method names.
28194 2002-09-14 Martin Baulig <martin@gnome.org>
28196 * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
28197 fast method lookup.
28199 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
28201 * reflection.c: record the public key token of referenced assemblies.
28203 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
28205 * image.c, image.h: added functions to get the strong name and the
28206 public key of an assembly.
28207 * pedump.c: use them.
28209 2002-09-12 Dietmar Maurer <dietmar@ximian.com>
28211 * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
28213 2002-09-12 Miguel de Icaza <miguel@ximian.com>
28215 * marshal.c (mono_marshal_get_managed_wrapper): Added
28218 2002-09-11 Martin Baulig <martin@gnome.org>
28220 * gc.c: Call GC_unregister_disappearing_link() on all links when
28221 finalizing them, this is necessary to aviod a crash in boehm's
28224 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
28226 * gc.c: handle GetTarget for finalized objects spotted and fixed by
28229 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
28231 * icall.c: implemented MonoType::Module.
28232 * reflection.c, reflection.h: mono_module_get_object () from
28233 Tomi Pakarinen <tomi.pakarinen@welho.com>.
28235 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
28237 * icall.c: ignore overridden methods in GetMethods ().
28238 Fix for FieldInfo::SetValue().
28239 * object.c: handle float/double in runtime invoke.
28241 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
28243 * object.c: allow a constructor to be called again on an object.
28245 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
28247 * class.h, class.c: move field layout code to it's own function and
28248 export it. Get an interface id earlier. Move fields in MonoClass
28249 so they are more cache friendly and align the bitfields.
28250 * loader.c: temporary handle get_param_names() for a runtime method.
28251 * reflection.c, reflection.h: more code to handle runtime creation of
28254 2002-09-09 Martin Baulig <martin@gnome.org>
28256 * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
28257 signature with the pinvoke field being set for the actual call.
28259 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
28261 * icall.c: removed some unused icalls. Start of map of glib charsets
28262 to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
28264 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
28266 * debug-helpers.c: break infinite loop (found and fixed by
28267 Holger Arnold <harnold@gmx.de>).
28269 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
28271 * icall.c: target may be null in create_delegate.
28273 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
28275 * marshal.c: handle a boolean return type.
28277 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
28279 * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
28281 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
28283 * gc.c: fix weakreferences.
28285 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
28287 * icall.c: added icall to get default codepage.
28289 2002-09-03 Dick Porter <dick@ximian.com>
28292 * threads.c: Use MonoThread instead of MonoObject where
28295 Store running thread objects in a hash table, so that we have all
28296 the info to hand when waiting for them to finish
28297 (means we don't need OpenThread() any more, so mingw builds should
28298 be fully functional again.)
28301 * object.h: Added thread ID to MonoThread
28303 2002-09-03 Martin Baulig <martin@gnome.org>
28305 * icall.c (System.Reflection.Assembly::get_location): New interncall.
28307 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28309 * icall.c: fixed leak in get_temp_path. Thanks lupus.
28311 2002-09-03 Martin Baulig <martin@gnome.org>
28313 * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
28314 argument to store the end address of the disassembled instruction.
28316 * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
28317 here from debug-symfile.h.
28318 (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
28319 JIT into this struct.
28320 (MonoSymbolFile): Added `char *image_file' field.
28321 (MonoDebugGetMethodFunc): Removed.
28322 (mono_debug_update_mono_symbol_file): Removed the hash table argument.
28323 (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
28324 (mono_debug_find_method): New method.
28326 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
28327 create a full symbol file.
28328 (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
28329 and static symbol files.
28330 (mono_debug_find_method): The symbol file keeps an internal method hash,
28331 call this to get a MonoDebugMethodInfo from a MonoMethod.
28333 * debug-symfile.[ch]: Removed.
28335 2002-08-29 Miguel de Icaza <miguel@ximian.com>
28337 * image.c (do_mono_image_open): Remove linker version check.
28339 2002-08-29 Dietmar Maurer <dietmar@ximian.com>
28341 * marshal.c (mono_marshal_get_managed_wrapper): don't cache
28342 wrappers for instance methods.
28344 2002-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28346 * icall.c: added ves_icall_System_IO_Path_get_temp_path.
28348 2002-08-28 Dick Porter <dick@ximian.com>
28350 * Makefile.am: Export HOST_CC for w32 builds
28352 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
28354 * file-io.c process.c: MonoString are null terminated, no
28355 need for mono_string_to_utf16() anymore.
28357 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
28359 * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
28361 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
28363 * icall.c, reflection.h: speedup System.MonoType.
28365 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
28367 * reflection.c: allow null as the value of a string argument in
28368 custom attributes constructors.
28370 2002-08-27 Martin Baulig <martin@gnome.org>
28372 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
28373 `trampoline_address' field.
28375 2002-08-27 Dietmar Maurer <dietmar@ximian.com>
28377 * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
28378 check (fixes bug #29486)
28380 2002-08-27 Martin Baulig <martin@gnome.org>
28382 * debug-mono-symfile.c: Changed the file format in a way that allows us
28383 open it read-only and to use a specially malloced area for all the
28384 dynamic data. We can now also generate a symbol file on-the-fly if we're
28385 debugging IL code and there is no MCS generated symbol file for it.
28387 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
28389 * object.c: added a define for a good string and array
28390 creation speedup (not enabled by default because we need to deal with
28393 2002-08-26 Martin Baulig <martin@gnome.org>
28395 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
28396 function to create a dynamic symbol file. This is used by the
28397 debugger to create a symbol file for IL code on-the-fly.
28399 2002-08-26 Martin Baulig <martin@gnome.org>
28401 * loader.c (mono_lookup_pinvoke_call): Include the error message
28402 from g_module_error() in the error message.
28404 2002-08-24 Martin Baulig <martin@gnome.org>
28406 * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
28407 function to update the symbol file. The symbol file is mmap()ed
28408 writable, but private. This allows us to install the symbol file
28409 together with the assembly.
28411 2002-08-24 Martin Baulig <martin@gnome.org>
28413 * debug-mono-symfile.[ch]: New files. Similar to debug-symfile.[ch]
28414 but they can read the new symbol file format which mcs is now creating.
28416 * debug-symfile.c (mono_debug_find_source_location): Moved to
28417 debug-mono-symfile.c; this is now operating on the new symbol file.
28419 2002-08-23 Martin Baulig <martin@gnome.org>
28421 * debug-helpers.c (mono_method_desc_from_method): New function to get
28422 a MonoMethodDesc from a MonoMethod.
28424 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
28426 * object.c: fixes assertion failure caused by multiple ExecuteAssembly
28427 calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
28429 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
28431 * string-icalls.[ch]: make helper methods static.
28433 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28435 * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
28436 types to it and to SetValueInternal.
28438 * object.c: Moved handle_enum label to its proper place. This was the
28441 This time i compiled mcs and gtk-sharp and they both work.
28443 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28445 * icall.c: reverted partially my previous patch until
28446 object.c:set_value handles enums correcly.
28448 2002-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28451 (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
28452 (ves_icall_System_Environment_get_MachineName): removed warning when
28453 compiling under cygwin.
28455 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
28457 * object.c: fixed field_get_value() for reference types.
28459 2002-08-22 Dick Porter <dick@ximian.com>
28461 * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
28462 Don't free a buffer while it's still needed. Patch from Jonathan
28463 Liger <Jonathan.liger@wanadoo.fr>
28465 2002-08-21 Miguel de Icaza <miguel@ximian.com>
28467 * icall.c (ves_icall_System_Environment_get_Platform): Add new
28470 2002-08-21 Dietmar Maurer <dietmar@ximian.com>
28472 * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
28473 (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
28475 * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
28476 we call unmanaged code which throws exceptions.
28478 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
28480 * appdomain.h: added per-domain entry_assembly.
28481 * appdomain.c: ensure mono_runtime_exec_main () gets non-null
28483 * icall.c: Assembly::GetEntryAssembly icall.
28484 * object.c: set domain->entry_assembly in mono_runtime_exec_main().
28485 Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
28487 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
28489 * appdomain.h, gc.c: added mono_domain_finalize ().
28491 2002-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28494 (mono_print_unhandled_exception): changed g_warning by g_printerr
28495 because g_log has a 1024 characters limit (yeah, i got a big stack
28496 trace). Don't print exception name, that should be in ToString
28499 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28501 * icall.c: added ves_icall_FieldInfo_SetValueInternal.
28502 * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
28504 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28507 (mono_print_unhandled_exception): after previous commit, i realized
28508 that MS calls ToString on the exception. I changed this function to
28509 do that. This way we get stack_trace for free.
28511 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28514 (mono_print_unhandled_exception): invoke Message property instead of
28515 getting 'message' field from Exception. Don't allocate memory for
28516 'trace' and 'message' if not needed.
28518 2002-08-18 Dick Porter <dick@ximian.com>
28520 * unicode.c: Fix asserts to match Encoder.cs checks
28522 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
28524 * marshal.c: fix unaligned store issue and a few wrong
28525 opcode argument types.
28527 2002-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28529 * icall.c: added GetUninitializedObjectInternal internal call.
28531 2002-08-16 Dietmar Maurer <dietmar@ximian.com>
28533 * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
28534 to the right domain.
28536 2002-08-14 Dietmar Maurer <dietmar@ximian.com>
28538 * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
28540 * class.c (class_compute_field_layout): set blittable to false for Strings
28542 * appdomain.c (mono_domain_transfer_object): added support for ISerializable
28544 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
28546 * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
28547 first chunk of code to create types at runtime. Code to
28548 handle ReflectedType/DeclaringType. Make reflection handles
28551 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
28553 * class.c: set correct name in arrays.
28555 2002-08-13 Dietmar Maurer <dietmar@ximian.com>
28557 * appdomain.c (mono_domain_transfer_object): make it work with
28558 valuetypes. bug fixes.
28560 2002-08-12 Dick Porter <dick@ximian.com>
28562 * object.h: Rename some parameters to avoid c++ keywords (Patch
28563 from Joseph Wenninger <kde@jowenn.at>)
28565 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
28567 * icall.c: added icall to implement Assembly.GetFile*.
28569 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
28571 * reflection.h, reflection.c: code to embed managed resources.
28573 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
28575 * class.c: move all the type size stuff into
28576 class_compute_field_layout().
28578 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
28580 * class.c: ensure enums have always the correct instance size.
28581 * unicode.c: remove wrong assert.
28583 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
28585 * assembly.c: fix mem corruption issue.
28586 * image.h, image.c: added mono_image_get_resource () to access
28588 * icall.c: implemented Assembly.EntryPoint property and some
28589 Managed Resources related internalcalls.
28592 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
28594 * image.c, image.h: impemented mono_image_get_entry_point ().
28595 * appdomain.c: use mono_image_get_entry_point.
28597 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
28599 * reflection.c: support the object type argument when loading
28602 2002-08-05 Dietmar Maurer <dietmar@ximian.com>
28604 * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
28605 String as return type.
28607 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
28609 * reflection.c: fix encoding of named args for custom attrs to match
28610 the ms implementation. Read them back when instantiating custom
28613 2002-08-02 Radek Doulik <rodo@ximian.com>
28615 * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
28616 by Dietmar as quick fix
28617 (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
28618 16 as stack size, used on more places as quick fix before Dietmar
28619 will fix it properly
28621 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
28623 * object.h, object.c: added accessors for fields and properties.
28625 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
28627 * class.c, class.h: made mono_class_get_field_from_name ()
28628 loop on parent types.
28629 Added mono_class_get_property_from_name ().
28631 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
28633 * class.c, class.h: move the code to setup the type vtable in its own
28634 function so that it can be reused also for types created at runtime.
28635 Eliminate the "class" identifier from the header file.
28636 * reflection.c: setup the vtable for enums so that we can create
28637 objects for use in SetConstant ().
28639 2002-08-02 Dietmar Maurer <dietmar@ximian.com>
28641 * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
28642 instead of the delegate itself as this pointer (bug #28383)
28644 2002-08-01 Dietmar Maurer <dietmar@ximian.com>
28646 * marshal.c (mono_marshal_get_managed_wrapper): added return type
28649 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
28651 * loader.c: don't set the pinvoke bit on icalls.
28653 2002-07-31 Dietmar Maurer <dietmar@ximian.com>
28655 * debug-helpers.c (mono_method_full_name): only print a number to
28656 indicate wrapper type (so that the output is more readable in traces).
28658 2002-07-30 Dietmar Maurer <dietmar@ximian.com>
28660 * class.c (mono_class_init): include method override patch from Paolo
28662 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
28664 * icall.c: fixed GetTypeCode().
28666 2002-07-29 Dietmar Maurer <dietmar@ximian.com>
28668 * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
28669 use real delegate invoke function to make it work with multicast
28670 delegates (fix bug# 28291).
28672 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
28674 * object.c: load constant strings.
28676 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
28678 * reflection.c: no magic numbers.
28679 * tabledefs.h: security action enum.
28681 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
28683 * assembly.c: fix possible memory corruption.
28685 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
28687 * reflection.h, reflection.c: added support for linking resources.
28688 * verify.c: check we have an updated corlib.
28690 2002-07-25 Dietmar Maurer <dietmar@ximian.com>
28692 * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
28694 (mono_marshal_string_array): null terminate unmanaged string arrays.
28695 (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
28697 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
28699 * icall.c: Type.GetType () can now return also types from the
28702 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
28704 * loader.h, loader.c: stack walking support.
28705 * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
28706 GetCallingAssembly.
28708 2002-07-24 Dietmar Maurer <dietmar@ximian.com>
28710 * marshal.c: added optimisations for blittable types
28712 * class.c (mono_array_class_get): do not set blittable attribute on arrays
28713 (mono_class_setup_mono_type): set blittable attribute for single
28716 * marshal.c (mono_string_utf8_to_builder): impl.
28717 (mono_string_builder_to_utf8): impl.
28718 (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
28720 2002-07-23 Dietmar Maurer <dietmar@ximian.com>
28722 * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
28723 (mono_marshal_get_managed_wrapper): impl. byref types
28725 2002-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28728 (search_method): don't display debug message.
28730 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
28732 * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
28734 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
28736 * appdomain.c: set the missing filename when throwing exception.
28738 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
28740 * metadata.c (mono_type_size): code cleanup
28741 (mono_type_stack_size): removed some test code
28743 2002-07-21 Miguel de Icaza <miguel@ximian.com>
28745 * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
28746 mono_get_exception_file_not_found now.
28748 * exception.c (mono_exception_from_name_two_strings): New version
28749 that will call a constructor with two string arguments.
28750 (mono_get_exception_file_not_found): New helper routine, used to
28751 report file-not-found errors.
28753 2002-07-20 Dick Porter <dick@ximian.com>
28756 * process.c: Pass file handles to CreateProcess
28760 * file-io.c: Implemented CreatePipe
28762 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
28764 * metadata.c (mono_get_param_info): set alignment for value types
28766 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
28768 * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
28769 Constify mono_domain_assembly_open().
28770 * loader.c: handle null namespace in icalls.
28772 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
28774 * marshal.c (emit_ptr_to_str_conv): marshal object as structs
28775 (emit_str_to_ptr_conv): marshal object as structs
28777 * metadata.c (mono_type_to_unmanaged): marshal object as structs
28779 * marshal.c (mono_marshal_get_runtime_invoke): support value types
28781 2002-07-18 Dietmar Maurer <dietmar@ximian.com>
28783 * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
28784 (mono_marshal_get_native_wrapper): we an now return value types
28786 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
28788 * verify.c: more checks implemented.
28790 2002-07-17 Dietmar Maurer <dietmar@ximian.com>
28792 * marshal.c (mono_delegate_to_ftnptr): invoke the right method
28794 (mono_marshal_get_native_wrapper): allow byref arguments
28795 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
28796 impl. PtrToStringXXX methods
28797 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
28798 (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
28799 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
28800 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
28801 (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
28803 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
28805 * reflection.c: fix buglet in parsing an assembly name.
28807 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
28809 * marshal.c (emit_ptr_to_str_conv): first impl.
28811 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
28813 * object.c, class.h: cache the vtable in the class as suggested by
28814 vargaz@freemail.hu (Zoltan Varga).
28816 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
28818 * class.h, loader.c: added mono_field_from_token().
28819 * verify.c: first cut of type checking code.
28821 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
28823 * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
28825 2002-07-15 Dietmar Maurer <dietmar@ximian.com>
28827 * marshal.c (mono_marshal_get_native_wrapper): handle enum types
28829 (mono_marshal_get_remoting_invoke): impl.
28830 (mono_delegate_begin_invoke): impl.
28831 (mono_mb_emit_save_args): impl.
28832 (mono_delegate_end_invoke): impl.
28833 (mono_marshal_get_delegate_begin_invoke):
28834 (mono_marshal_get_delegate_end_invoke):
28835 (mono_marshal_get_delegate_invoke): generate a special name for
28836 those methods (including the signature) and associate them whith
28837 the delegate class.
28839 2002-07-13 Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
28842 (mono_reflection_type_from_name): now it has a MonoImage parameter
28843 which is used as the default image to search the type in. If the image
28844 is NULL or getting the type from it fails, it defaults to corlib.
28846 * icall.c: changed 1 call to mono_reflection_type_from_name to match
28849 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
28851 * reflection.c: update the parameter table index.
28853 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
28855 * domain.c: don't include the mark byte in the string hash.
28857 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
28859 * icall.cs: icall for Type.GetTypeCode ().
28860 * verify: a couple of fixes and disabled local initialization checks.
28862 2002-07-12 Dietmar Maurer <dietmar@ximian.com>
28864 * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
28866 * debug-helpers.c (mono_method_full_name): print the type of the
28869 * metadata.c (mono_signature_hash): a hash function for signatures
28870 (mono_signature_hash): better hash algorithm
28872 * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
28874 * debug-helpers.c (mono_method_full_name): this can now generate
28875 method names with signatures
28877 * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
28878 method dont have this pointers.
28880 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
28882 * reflection.c: fixup typebuilder tokens.
28883 * image.c: fix buglet.
28884 * marshal.h: remove whitespace.
28885 * metadata.h, metadata.c: reinstate code that was removed.
28886 * verify.c: handle catch directives and fix another couple of bugs.
28888 2002-07-11 Dietmar Maurer <dietmar@ximian.com>
28890 * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
28891 (mono_marshal_get_native_wrapper): make it comp. with the old code
28892 (mono_marshal_get_native_wrapper): support boolean
28893 (mono_marshal_get_managed_wrapper): support more types
28895 2002-06-25 Dietmar Maurer <dietmar@ximian.com>
28897 * class.c (class_compute_field_layout): compute class->blittable attribute.
28899 2002-07-09 Dick Porter <dick@ximian.com>
28901 * threads.c: Make the thread cleaning up cope with threads that
28904 2002-07-08 Radek Doulik <rodo@ximian.com>
28906 * reflection.c (method_encode_code): use non-translated values to
28907 compute finally_start, this fixes exception handling on ppc, yay!
28909 * decimal.h (struct signscale): fix endianess
28911 2002-07-07 Radek Doulik <rodo@ximian.com>
28913 * reflection.c: swap box_val and not val
28915 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
28917 * reflection.c, reflection.h: handle full assembly info in type name.
28918 Handle Type arguments when loading custom attributes.
28919 * icall.c: updated to use new mono_reflection_type_from_name () method.
28921 2002-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28924 (method_from_memberref): also print assembly name when method not found.
28926 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28929 (ves_icall_TypeGetProperties): fixed bug #27473.
28931 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28933 * reflection.c: display image name and token when cannot find the
28934 .ctor for an attribute.
28936 2002-07-05 Martin Baulig <martin@gnome.org>
28938 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
28940 2002-07-04 Dick Porter <dick@ximian.com>
28942 * threads.c (mono_thread_cleanup): Nasty kludge to get this to
28943 compile on mingw. This will cause mingw builds to not wait for
28944 subthreads to terminate after the main thread does. I've lodged a
28945 bug with the mingw developers for them to wrap OpenThread().
28947 2002-07-03 Dick Porter <dick@ximian.com>
28949 * threads.c: Store thread IDs instead of handles, because
28950 GetCurrentThread() returns a pseudohandle and therefore stores
28951 useless values. mono_thread_cleanup() continues checking the
28952 array of threads until it is empty, to cope with subthreads
28953 spawning new threads after the main thread has finished.
28957 * profiler-private.h: Pass the thread ID to thread profiler
28958 functions, instead of a handle
28960 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
28962 * verify.c: fixes to make it more usable.
28963 * pedump.c: added --verify code to verify IL code in an assembly.
28965 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
28967 * reflection.c: turn errors into warnings to allow compiling corlib.
28969 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
28971 * reflection.c: add special cases to compile corlib.
28973 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
28975 * reflection.c: handle properties with only a set method.
28977 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
28979 * opcodes.h: add enum with opcodes in opval order.
28981 2002-07-01 Dick Porter <dick@ximian.com>
28984 * object.c (mono_runtime_run_main): Removed unneeded argument
28986 2002-06-28 Martin Baulig <martin@gnome.org>
28988 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
28990 2002-06-27 Dick Porter <dick@ximian.com>
28992 * threads.c: Store the handle in both the parent thread and in the
28993 subthread, to minimise the time between starting a new thread and
28996 2002-06-26 Dick Porter <dick@ximian.com>
28998 * appdomain.c (mono_runtime_cleanup): Close the socket library
28999 after all the threads have finished, not before
29001 2002-06-26 Martin Baulig <martin@gnome.org>
29003 * debug-symfile.c (mono_debug_find_source_location): Added
29004 `guint32 *line_number' argument. If it's not NULL, store the line number
29005 there and return the file name without the line number.
29007 2002-06-25 Dick Porter <dick@ximian.com>
29011 * process.c: Process forking and other support functions
29013 2002-06-25 Dick Porter <dick@ximian.com>
29015 * image.c (do_mono_image_open): Set ref_count to 1, so that bad
29016 things dont happen when the image is closed.
29017 (mono_image_lookup_resource): Walk the resource section looking
29018 for a particular entry
29020 * cil-coff.h: PE resource section decoding
29022 2002-06-25 Dick Porter <dick@ximian.com>
29026 (mono_assembly_foreach): Accessor functions to walk the list of
29028 (mono_assembly_set_main):
29029 (mono_assembly_get_main): Process methods need to know which
29030 assembly is the "main" one
29032 * object.c (mono_runtime_run_main): Record the main assembly
29034 * debug-helpers.c: Fix typo
29036 2002-06-24 Dietmar Maurer <dietmar@ximian.com>
29038 * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
29039 (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
29041 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
29043 * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
29045 2002-06-21 Miguel de Icaza <miguel@ximian.com>
29047 * image.c (do_mono_image_open): Initialize reference count,
29048 otherwise we leak the MonoImage.
29050 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
29052 * reflection.c: small tweak to handle self-hosting.
29054 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
29056 * reflection.c: fix type name parse code.
29058 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
29060 * reflection.c: break out of the loop.
29061 * image.c: special case corlib.
29063 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
29065 * reflection.c: add all the custom attrs at the end to ensure the
29066 ctors have been properly initialized when the attributes are defined
29067 in the current assembly.
29069 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
29071 * reflection.c: handle correctly multiple-nested types.
29073 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
29075 * row-indexes.h: fix typos.
29076 * reflection.c: adjust for typos and fix method_def_or_ref
29077 encoding in MethodImpl table.
29079 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
29081 * reflection.c: fix entry point patching (thanks Serge!).
29083 2002-06-18 Dietmar Maurer <dietmar@ximian.com>
29085 * verify.c: add check for System.Exception
29087 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
29089 * image.c, class.c: minifix for code just c&p'ed.
29090 * reflection.c: warning fix.
29091 * object.h, loader.h, domain.c: load also StringBuilder.
29093 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
29095 * marshal.h, marshal.c: some support code to handle complex marshaling.
29097 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29099 * class.h, class.c, reflection.c: handle ignorecase in GetType ().
29100 Better signatures with vtable error dump.
29102 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
29104 * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
29106 2002-06-17 Dietmar Maurer <dietmar@ximian.com>
29108 * icall.c (ves_icall_Type_GetField): impl.
29110 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29112 * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
29113 to retrieve a marshal description blob for a field or param.
29115 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
29117 * reflection.h, reflection.c: change order of nested type emission
29118 to avoid table corruption. The NestedTypes table is sorted.
29119 * icall.c: change order of GetConstructor results to workaround mcs bug.
29121 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
29123 * reflection.h, reflection.c: handle field and param marshal
29126 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
29128 * icall.c, marshal.c marshal.h: more Marshal class implementation.
29130 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
29132 * reflection.c: fix call convention.
29134 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
29136 * reflection.h, reflection.c: mono_image_get_memberref_token()
29137 takes a type instead of a class, now. Added
29138 mono_image_get_array_token() to create tokens for the special
29139 multi-dim array methods.
29141 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
29143 * assembly.c: handle modules (no assembly table). Split
29144 loading references in its own function.
29145 * class.c: handle moduleref resolution scope.
29146 * image.c, image.h: cache module name in image.
29148 2002-06-07 Martin Baulig <martin@gnome.org>
29150 * reflection.c (mono_image_get_type_info): Only add a class layout entry
29151 if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
29153 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
29155 * icall.c: more signature fixes that used uint instead of int.
29157 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29159 * reflection.c: fixed signature of field refs.
29161 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
29163 * class.c, reflection.c: handle typerefs of nested types
29164 (both on read and when writing files).
29166 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
29168 * icall.c: fix method signatures that tried to workaround the previous
29171 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
29173 * debug-helpers.c: fix typo.
29175 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
29177 * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
29178 rewrote the PE/COFF writing code (our programs are understood by the
29181 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
29183 * gc.c, gc.h, icall.c: weakreference support.
29185 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
29187 * Makefile.am, mono-config.c: use $(sysconfdir).
29189 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
29191 * icall.c: changed default precision of Double.ToString() to 15.
29192 Fixed memory leak. Unified with Single.ToString.
29194 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
29196 * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
29198 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
29200 * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
29201 gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
29202 warnings and compilation fixes from Dennis Haney (davh@davh.dk)
29205 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
29207 * debug-symfile.c, sysmath.c: yet more compilation fixes.
29209 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29211 * reflection.c, socket-io.c: more compilation fixes.
29213 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
29215 * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
29216 domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
29217 unicode.c: warning and compiler compatibility fixes.
29219 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
29221 * class.h, metadata.c: fixed warnings/compilation errors.
29223 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
29225 * Makefile.am, mono-config.c, mono-config.h: configuration file
29227 * loader.c, loader.h: make Dll mapping configurable at runtime in the
29228 config file. Export methods to insert and lookup mappings.
29230 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
29232 * reflection.c: handle types and boxed objects in custom attr
29235 2002-05-30 Martin Baulig <martin@gnome.org>
29238 (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
29240 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
29242 * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
29243 to lookup the implmap row for a P/Invoke method.
29244 * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
29245 P/Invoke method from the runtime on an as needed basis.
29247 2002-05-28 Dietmar Maurer <dietmar@ximian.com>
29249 * metadata.c (mono_metadata_parse_signature): impl.
29251 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
29253 * class.c: handle .pack directive.
29255 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
29257 * object.c: initialize static fields with RVA data.
29259 2002-05-25 Martin Baulig <martin@gnome.org>
29262 (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
29264 2002-05-24 Martin Baulig <martin@gnome.org>
29267 (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
29268 (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
29269 `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
29271 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
29273 * object.c: special case string ctros in invoke.
29274 * gc.c: silly whitespace changes.
29276 2002-05-23 Dietmar Maurer <dietmar@ximian.com>
29278 * threadpool.[ch]: impl. a threadpool that can
29279 be used by mint and mono.
29281 2002-05-22 Martin Baulig <martin@gnome.org>
29283 * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
29284 The first argument is now a `MonoReflectionModuleBuilder *', the return
29285 value is a `MonoReflectionModuleBuilder *'. Use the AssemblyBuilder's
29286 `methods' field to get the method builder. The `token' argument is the
29289 * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
29290 invalid characters instead of g_assert_not_reached()ing. This seems
29291 to be the behaviour of mscorlib.
29293 2002-05-22 Dietmar Maurer <dietmar@ximian.com>
29295 * object.c (mono_runtime_invoke_array): applied patch from Rachel
29296 Hestilow to fix bug #25104
29298 2002-05-21 Martin Baulig <martin@gnome.org>
29300 * debug-symfile.c (mono_debug_find_source_location): New function.
29301 Looks up an IL offset in the line number table and returns the source
29302 location as a string.
29304 2002-05-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
29307 (mono_double_ToStringImpl): changed %f by %g until we have something
29310 2002-05-21 Nick Drochak <ndrochak@gol.com>
29312 * icall.c : Use different name for Math.Pow's icall. Needed to check
29313 parameters first in C#.
29315 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
29317 * icall.c, reflection.h: added icall to get info about an event.
29319 2002-05-20 Radek Doulik <rodo@ximian.com>
29321 * object.c (mono_value_box): don't use memcpy for boxing on BIG
29323 (mono_value_box): don't use memcpy for small sizes on
29324 architectures with unaligned access
29326 2002-05-20 Martin Baulig <martin@gnome.org>
29328 * reflection.c (mono_reflection_setup_internal_class): Don't crash
29329 if `tb->parent == NULL'.
29330 (mono_reflection_create_internal_class): New function. This is
29331 called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
29334 * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
29337 2002-05-19 Martin Baulig <martin@gnome.org>
29339 * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
29340 argument to get the length, don't default to the array length.
29342 2002-05-18 Miguel de Icaza <miguel@ximian.com>
29344 * assembly.c (mono_assembly_setrootdir): New function used to
29345 override the MONO_ASSEMBLIES directory.
29347 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
29349 * icall.c: ValueType_GetHashCode() initialize local var.
29351 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
29353 * reflection.c: sort custom attributes table.
29355 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
29357 * reflection.c: support named args in custom attributes (write support).
29359 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
29361 * reflection.c: fix finally position calculation.
29363 2002-05-15 Radek Doulik <rodo@ximian.com>
29365 * reflection.c: fixed endianess at many places
29367 * icall.c (ves_icall_InitializeArray): comment out debug msg
29369 2002-05-15 Dietmar Maurer <dietmar@ximian.com>
29371 * object.c (mono_unhandled_exception): new function to handle
29372 unhandled exceptions.
29373 (mono_unhandled_exception): call the UnhandledException event.
29374 (mono_runtime_delegate_invoke): impl.
29376 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
29378 * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
29379 returns the RVA, not the direct pointer to the data. Handle the case
29380 when the class size is fixed.
29382 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
29384 * reflection.c: fix some endianess issues.
29386 2002-05-14 Dietmar Maurer <dietmar@ximian.com>
29388 * object.c (mono_runtime_invoke): is now able to catch exceptions.
29390 * threads.c (mono_thread_init): added a callback which is invoked
29393 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
29395 * icall.c: make GetHashCode return non-negative values.
29397 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
29399 * object.c, icall.c, gc.c: revert to address-based hashcode.
29401 2002-05-13 Miguel de Icaza <miguel@ximian.com>
29403 * icall.c (mono_double_ParseImpl): Added ParseImpl method.
29405 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
29407 * icall.c, class.c: special case <Module>.
29409 2002-05-13 Dan Lewis <dihlewis@yahoo.co.uk>
29411 * icall.c: fix bug in GetNow().
29413 2002-05-11 Dietmar Maurer <dietmar@ximian.com>
29415 * object.c (mono_runtime_class_init): make sure that we call all
29416 static class constructors.
29418 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
29420 * reflection.c: sort methodsemantics table.
29422 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
29424 * reflection.h, reflection.c: honour init locals setting.
29426 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
29428 * icall.c: copied Double ToStringImpl for Single ToStringImpl
29430 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
29432 * reflection.c: support ContructorBuilders in attribute blob creation.
29434 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
29436 * reflection.c: some changes to build a binary that can be run
29437 directly in windows.
29439 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
29441 * loader.c: print a big message when an icall can't be found.
29443 2002-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
29445 * string-icalls.c: fix bug 24248.
29447 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
29449 * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
29450 icall.c, reflection.h: separate assembly loading by pathname and by
29451 assembly name. Use the MONO_PATH env var to search for assemblies.
29453 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
29455 * assembly.c, image.h: add some support for assemblies
29456 with multiple modules.
29457 * class.c, class.h: export mono_class_from_typeref().
29458 * loader.c: remove duplicated code and use mono_class_from_typeref(),
29461 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
29463 * unicode.c: Char.IsNumber doesn't include hex digits as the ms
29464 documentation says (the ECMA one is correct).
29466 2002-05-02 Dick Porter <dick@ximian.com>
29468 * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
29469 Don't name the synchronisation mutex.
29471 2002-04-30 Jeffrey Stedfast <fejj@ximian.com>
29474 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
29475 Make the prototypes match.
29476 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
29480 (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
29481 systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
29482 all systems have tm.tm_zone, so use strftime() with %Z to print
29483 the timezone abreviation into a temp string.
29485 * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
29486 rather than mono_array_addr() on a MonoString on Big Endian
29489 2002-04-30 Dietmar Maurer <dietmar@ximian.com>
29491 * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
29494 2002-04-30 Dick Porter <dick@ximian.com>
29496 * socket-io.c: Cope with SOCKET being an integer rather than a
29499 * threads.c: Added Thread_free_internal, to deal with thread
29500 handle cleanup. Moved calls to handle_store() and handle_remove()
29501 to start_wrapper(), so each can only be called once. Allocate
29502 synchronisation blocks with GC_malloc(), and use GC finalisation
29503 to close the handles.
29505 * icall.c: added System.Threading.Thread::Thread_free_internal
29507 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
29509 * icall.c: support Environment.Exit, CommandLineArgs().
29511 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
29513 * object.c, object.h: added mono_runtime_run_main () and
29514 mono_runtime_get_main_args () for use in System.Environment.
29516 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
29518 * gc.c: fix thinko, enable actual finalization since the jit is now
29521 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
29523 * gc.c, object.c: take into account that an object may be offset wrt the address
29524 returned by GC_malloc().
29526 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
29528 * image.c: handle files without entries in the assembly table (modules).
29530 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
29532 * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow
29533 mcs selfhosting again (build breaker) and did move the check to class instead. parent is
29534 allowed to be null when it's System.Object class setup.
29536 2002-04-27 Martin Baulig <martin@gnome.org>
29538 * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
29539 if `tb->parent == NULL' rather than crashing.
29541 2002-04-28 Nick Drochak <ndrochak@gol.com>
29543 * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error. Was
29544 calling acos() where asin() should have been called.
29546 2002-04-26 Martin Baulig <martin@gnome.org>
29548 * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
29549 instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
29550 there's a subdirectory called `System', but we don't want to read that
29551 subdirectory as an assembly.
29553 2002-04-25 Martin Baulig <martin@gnome.org>
29555 * debug-symfile.c: Reflect latest MonoString changes.
29557 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
29559 * rand.c, rand.h: instance method icalls need to have an explicit
29560 this pointer as first argument in the C implementation.
29562 2002-04-25 Nick Drochak <ndrochak@gol.com>
29564 * icall.c: Fix typo in map for GetNonZeroBytes
29566 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
29568 * string-icalls.c : String does now passes unit tests without any
29569 errors, the following changes has been made:
29571 Implemented replace methods.
29572 Renaming of methods to (try) follow the standard.
29573 Fixed compare ordinal
29574 Made all memory allocated directly to function instead of via icall function.
29575 Small performance fix in is_in_array function
29577 (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
29579 c (mono_string_Internal_ctor_charp_int_int):
29580 (mono_string_Internal_ctor_sbytep_int_int): Removed check for
29581 sindex < 0, throw ArgumentOutOfRangeException instead of
29582 ArgumentNullException.
29584 Added new check for length == 0, however
29585 I need to make it return String.Empty from the C code.
29587 (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
29588 that calculate the length for us here.
29590 (mono_string_Internal_ctor_sbytep_int_int): Replaced
29591 mono_string_new_utf16 with mono_string_new, since value is utf8.
29593 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
29595 * object.c: register the object for finalization if needed.
29596 Allocate one more char in the string for the terminating 0 char.
29598 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
29600 * class.c, class.h, image.c: check if a type implemenst a destructor.
29601 Use the proper key for array class lookups.
29602 * icall.c: register the icalls in the System.GC class.
29603 * gc.c, gc.h: GC-related functions and icalls.
29605 2002-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
29609 * unicode.c: free some strings gotten from mono_string_to_utf8 and
29610 changed a couple of free () by g_free ().
29612 * decimal.c: one-liner in the comments for decimal2string ().
29614 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
29616 * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
29618 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
29620 * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
29621 * object.c (mono_runtime_invoke_array) : handle null in params
29623 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
29625 * string-icalls.c: fixed bug in split (one off bug)
29627 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
29629 * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
29630 * icalls.c: added String::Equals as internal method
29632 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
29634 * threads.c: fixed bug in the double interlocked functions
29636 2002-04-22 Patrik Torstensson <patrik.torstensson@labs2.com>
29638 * threads.c: implemented all of the new interlocked icalls.
29639 * string-icalls.c: fix a bug in insert.
29640 * icalls.c: added the icalls for interlocked, removed old string functions.
29642 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
29644 * loader.c: fix off-by-one error when reading argument names.
29646 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
29648 * profiler.c: win32 counter implementation (untested).
29649 * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
29650 (the latter needs testing and more complete impl. from win32 folks).
29652 2002-04-21 Dan Lewis <dihlewis@yahoo.co.uk>
29654 * object.c: mono_array_new_full workaround mono_array_class_get
29657 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
29659 * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
29660 * object.h (mono_string_chars): Changed casting type.
29662 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
29664 * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
29665 method signatures to use gunichar2 instead of gint16.
29667 2002-04-20 Dan Lewis <dihlewis@yahoo.co.uk>
29669 * object.h, object.c: domain-specific versions of mono_object_new and
29672 2002-04-20 Dietmar Maurer <dietmar@ximian.com>
29674 * object.c: changed String layout
29676 * string-icalls.c (mono_string_Internal_ctor_chara): added
29677 internal string constructors.
29679 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
29681 * threads.c: pass 'this' to the thread start routine.
29683 2002-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
29685 * string-icalls.c: fix IndexOf and LastIndexOf. Now
29686 InternalCompareStr don't call twice mono_string_cmp_char for the last
29687 character. Improved performance in mono_string_cmp_char.
29689 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
29691 * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
29692 code into its own library: libmonoruntime.
29694 2002-04-19 Dan Lewis <dihlewis@yahoo.co.uk>
29696 * object.h, object.c: changed array format so that szarrays do not
29697 require a bounds structure.
29698 * icall.c, appdomain.c: support for new szarray format.
29700 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
29702 * metadata.c: compare also the retuns type when comparing signatures:
29703 we didn't do this as an optimization since really overloaded methods
29704 must differ also in the arguments, but this doesn't work with
29705 low-level IL code (or when using explicit conversion operators: see
29706 bug#23498 for an example).
29708 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
29710 * loader.c: SZARRAY types can be saved as TYPESPEC, too.
29712 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
29714 * icall.c: make MonoType::GetElementType its own icall.
29716 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
29718 * icall.c: remove MonoMethod_get_Name().
29719 * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
29722 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
29724 * string-icalls.c: optimized a few methods.
29726 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
29728 * icall.c: added all new string internal calls
29729 * string-icalls.c: added, new string internal call implementation.
29730 * object.c: added mono_string_new_size for allocating a string a size
29732 2002-04-17 Dietmar Maurer <dietmar@ximian.com>
29734 * object.c (mono_object_isinst): use the same code as in the
29735 optimized x86 version.
29737 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
29739 * profiler.c: TSC-based timer code (faster and more accurate).
29740 Not hooked up in configure, yet (set USE_X86TSC to 1).
29742 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
29744 * profiler.c, profiler.h: track time spent compiling methods.
29745 * threads.c: track thread creation/destruction.
29747 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
29749 * profiler.c, profiler.h, profiler-private.h: profiling interface
29750 and sample implementation. Moved here so that it can be used also by
29753 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
29755 * reflection.c, reflection.h: keep types and other handles separate in
29756 the hash tables for referred tokens. Add guid for modules.
29758 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
29760 * assembly.c: fix bugs found with valgrind.
29761 * metadata.h, metadata.c: added mono_metadata_guid_heap().
29763 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
29765 * threads: added icall support for getting current domain for
29768 2002-04-13 Martin Baulig <martin@gnome.org>
29770 * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
29771 (MonoDebugVarInfo): Added `index' field for register based addresses.
29772 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
29773 (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
29774 `MonoDebugVarInfo *params' and `guint32 this_offset' with
29775 `MonoDebugVarInfo *this_var'.
29777 * debug-symfile.c (relocate_variable): New static function to write
29778 a location description for a local variable or method parameter.
29780 2002-04-12 Martin Baulig <martin@gnome.org>
29782 * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
29783 stack offset and begin/end scope address of a local variable.
29784 (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
29785 'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
29786 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
29788 * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
29789 Added new relocation types for start/end scope of a local variable.
29791 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
29793 * object.h: add mono_object_domain() macro.
29794 * reflection.c: handle typespecs.
29795 * icall.c: MonoMethod::get_Name() implementation.
29797 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
29799 * icall.c: String::GetHashCode() icall implementation.
29801 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29803 * icall.c: String::IndexOfAny icall.
29804 * object.c, object.h: make array->max_length more useful.
29805 Intrduced mono_object_class() and mono_string_length() macros.
29807 2002-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
29809 * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
29810 instead of g_unichar_isdigit.
29812 2002-04-11 Nick Drochak <ndrochak@gol.com>
29814 * icall.c: Implement a simple Double.ToString().
29816 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
29818 * appdomain.h: only io-layer.h is supposed to be included.
29819 * icall.c: explicitly import environ. Fix warning.
29821 2002-04-10 Nick Drochak <ndrochak@gol.com>
29823 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
29824 return true even if it's not Daylight Savings time.
29825 Only return false for the case where the function isn't
29826 implemented for a plaform (read Windows).
29828 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29830 * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
29833 2002-04-09 Dietmar Maurer <dietmar@ximian.com>
29835 * mempool.c (mono_mempool_alloc): only use g_malloc when
29836 absolutely necessary.
29838 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
29840 * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
29842 * class.c (mono_class_vtable): use domain mempool to allocate vtable
29843 (mono_class_proxy_vtable): use domain mempool
29845 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
29847 * appdomain.h, appdomain.c: split initialization that requires the
29848 execution engine support into mono_runtime_init().
29850 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
29852 * class.c (mono_class_init): don't include vtable inside MonoClass
29853 to save some memory, gather some statistics.
29854 (mono_class_vtable): use g_malloc instead of GC_malloc when possible
29856 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
29858 * icall.c: internalcall implementation for ValueType.Equals().
29860 2002-04-06 Dietmar Maurer <dietmar@ximian.com>
29862 * object.c (mono_message_init): moved
29863 (mono_runtime_exec_main): new arch. independent impl.
29864 (mono_runtime_invoke_array): new method - like
29865 mono_runtime_invoke, but you can pass an array of objects.
29866 (mono_remoting_invoke): new arch. independent impl.
29867 (mono_message_invoke): new arch. independent impl.
29868 (mono_runtime_class_init): new arch. independent impl.
29869 (mono_runtime_object_init): new arch. independent impl.
29871 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
29873 * metadata.c, object.c, reflection.c: documented the exported
29876 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
29878 * icall.c: simpler code to pass the assembly builder data to corlib.
29879 Implement GetNestedTypes() internalcall.
29881 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
29883 * class.c: warn if a type can't be loaded.
29885 2002-04-04 Dietmar Maurer <dietmar@ximian.com>
29887 * image.h: typedef MonoImageOpenStatus
29888 * types.h: removed unused file
29890 2002-04-04 Dan Lewis <dihlewis@yahoo.co.uk>
29892 * icall.c: Enum_ToObject accepts enum value arguments.
29894 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
29896 * class.c: move initialization of properties, events and nested
29897 classes, so that they happen for interfaces, too.
29899 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
29901 * icall.c: cleanup some ugly casts in Array_SetValue*.
29903 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
29905 * icall.c: the values array fro enums is of the correct type, now.
29906 Implement (correctly) getFullName instead of assQualifiedName for
29908 * reflection.h, reflection.c: added mono_type_get_name ().
29910 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
29912 * assembly.c, image.h: for each MonoImage, record from wich assembly
29914 * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
29915 Make Type.Assembly work.
29917 2002-04-03 Dietmar Maurer <dietmar@ximian.com>
29919 * debug-symfile.h: use char* instead of gpointer to avoid
29922 * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
29924 * icall.c (ves_icall_InternalExecute): impl. FielSetter
29925 (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
29927 2002-03-30 Dietmar Maurer <dietmar@ximian.com>
29929 * icall.c (mono_message_init): impl. (code cleanup)
29930 (ves_icall_InternalExecute): impl. FieldGetter
29932 * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
29933 defined we call all (non-static)methods through the vtable.
29935 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
29937 * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
29938 finalizer even though the memory is still referenced (and the chunk of
29939 memory is not freed).
29941 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
29943 * assembly.c: fix brokeness.
29945 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
29947 * class.c: kill some warnings. Check explicit interface method
29948 implementation also without considering the namespace.
29949 Load also literal strings in static class data.
29951 2002-03-29 Miguel de Icaza <miguel@ximian.com>
29953 * assembly.c (default_assembly_name_resolver): Kill memory leak.
29954 (default_assembly_name_resolver): Make the resolver take the
29955 "base" directory where the assembly was originally defined, so we
29956 can load DLLs that are in the same directory as the assembly that
29957 is being referenced.
29959 2002-03-28 Dick Porter <dick@ximian.com>
29965 * unicode.c: Warning cleanups
29967 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
29969 * object.h, reflection.h: use the correct type instead of MonoObject.
29971 2002-03-28 Martin Baulig <martin@gnome.org>
29973 * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
29974 (mono_debug_update_symbol_file): Initialize classes if necessary.
29976 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
29978 * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
29979 rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
29981 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
29983 * assembly.h: fix function prototype.
29984 * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
29985 * mono-endian.h: use const cast.
29987 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
29989 * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
29991 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
29993 * loader.c: don't assert when a typeref can't be loaded, give
29994 a chance to the runtime to trow an exception instead.
29995 * loader.h: fix warning.
29997 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
29999 * class.c (mono_class_proxy_vtable): added proxy support
30001 2002-03-27 Dan Lewis <dihlewis@yahoo.co.uk>
30003 * icall.c: removed last of PAL calls, added System.Environment
30004 * file-io.h, file-io.c: MonoIO implementation
30005 * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
30007 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
30009 * appdomain.c: do not use the byte marker in ldstr table lookup.
30010 * debug-helpers.c: allow two ':' to separate class and method name.
30011 * object.c: allocate arrays bounds with the GC, too.
30012 * verify: add a few more checks.
30014 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
30016 * reflection.c: output also literal strings. Allocate parameter data
30017 with GC_malloc() (thanks, Martin, for catching this!).
30019 2002-03-26 Martin Baulig <martin@gnome.org>
30021 * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
30022 include the `this' offset in the `param_offsets'.
30024 2002-03-25 Martin Baulig <martin@gnome.org>
30026 * debug-symfile.c (mono_debug_update_symbol_file): Use a new
30027 mono_debug_get_class() function to get the classes. Added new
30028 relocation types for arrays and strings.
30029 (mono_debug_get_class): New static function to search in all
30030 referenced assemblies for a metadata token.
30032 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
30034 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
30036 * reflection.h, reflection.c: use a gc-safe hash for hash tables that
30037 hold gc-allocated objects. Make the string heap a stream like the
30038 others. Removed duplicated code when writing stream info.
30039 Added asserts to catch possible buffer overflows. Set the sorted map
30040 for tables that need sorting. Added some documentation.
30042 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
30044 * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table
30045 for interned strings and vtables.
30047 2002-03-24 Martin Baulig <martin@gnome.org>
30049 * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
30050 it in the array since it was created with g_slist_prepend().
30052 2002-03-24 Martin Baulig <martin@gnome.org>
30054 * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
30055 to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
30056 (mono_debug_method_from_token): Renamed to
30057 ves_icall_Debugger_MonoSymbolWriter_method_from_token().
30058 (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
30060 * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
30063 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
30065 2002-03-24 Martin Baulig <martin@gnome.org>
30067 * debug-symfile.c (mono_debug_local_type_from_signature): New func.
30068 (mono_debug_method_from_token): New func.
30070 * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
30071 New interncall, calls mono_debug_local_type_from_signature().
30072 (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
30073 calls mono_debug_method_from_token().
30075 2002-03-23 Martin Baulig <martin@gnome.org>
30077 * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
30078 specifies the number of bytes to be converted, not the array size.
30079 Return the number of chars, not the number of bytes.
30080 (ves_icall_iconv_get_chars): The `byteCount' argument
30081 specifies the number of bytes to be converted, not the array size.
30083 2002-03-23 Martin Baulig <martin@gnome.org>
30085 * reflection.h (MonoReflectionSigHelper): New type.
30087 * reflection.c (mono_reflection_sighelper_get_signature_local),
30088 (mono_reflection_sighelper_get_signature_local): New functions.
30090 * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
30091 (System.Reflection.Emit.SignatureHelper::get_signature_field): New
30094 2002-03-23 Martin Baulig <martin@gnome.org>
30096 * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
30097 is_writeable is set.
30098 (mono_raw_buffer_update): New function to write the modified map
30101 * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
30103 * debug-symfile.c (mono_debug_update_symbol_file): Call
30104 mono_raw_buffer_update() when done writing.
30106 2002-03-23 Martin Baulig <martin@gnome.org>
30108 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
30110 * debug-symfile.c: Added support for arguments and local variables.
30112 2002-03-23 Dick Porter <dick@ximian.com>
30114 * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
30115 protected by ifdefs, hence breaking the w32 build.
30117 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
30119 * object.c: implement is_interned() the right way.
30121 2002-03-21 Martin Baulig <martin@gnome.org>
30123 * debug-symfile.[ch]: New files to handle debugging information
30124 files. There's also support to dynamically update these symbol
30125 files to include machine dependent information.
30127 2002-03-20 Dietmar Maurer <dietmar@ximian.com>
30129 * threads.c (mono_thread_create): new function to create thread
30132 2002-03-20 Martin Baulig <martin@gnome.org>
30134 * icall.c (ves_icall_InternalInvoke): Create a new object if the
30135 method is a constructor.
30136 (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
30137 points to ves_icall_InternalInvoke().
30139 2002-03-20 Dan Lewis <dihlewis@yahoo.co.uk>
30141 * file-io.c: Flush shouldn't throw exceptions.
30143 2002-03-19 Dan Lewis <dihlewis@yahoo.co.uk>
30145 * file-io.c: FileStream flush support; FileSetLength now
30146 restores file pointer.
30148 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
30150 * class.c: set image for pointer classes.
30152 2002/03/19 Nick Drochak <ndrochak@gol.com>
30154 * sysmath.c: Forgot one.
30156 2002-03-18 Miguel de Icaza <miguel@ximian.com>
30158 * sysmath.c: Avoid redefining existing names.
30160 2002-03-18 Dan Lewis <dihlewis@yahoo.co.uk>
30162 * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
30163 handled by runtime as icall rather than dllimport from libm.so
30164 * file-io.c, file-io.h: fixed handle argument type.
30166 2002-03-18 Dick Porter <dick@ximian.com>
30168 * reflection.c (mono_image_get_type_info): rename interface to
30169 iface, because of "#define interface struct" on windows.
30171 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
30173 * class.c, class.h: rename and export mono_ptr_class_get().
30174 * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
30175 * reflection.c, reflection.h, icall.c: better/saner type name
30176 parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
30179 2002-03-14 Dietmar Maurer <dietmar@ximian.com>
30181 * class.c (mono_class_init): removed hardcoded GHC_SLOT
30183 * icall.c (ves_icall_InternalInvoke): impl.
30185 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
30187 * reflection.c: output the interface map table, too.
30189 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
30191 * class.c (class_compute_field_layout): separate computation of
30192 static field layout
30194 2002-03-12 Dan Lewis <dihlewis@yahoo.co.uk>
30196 * icall.c: added System.Buffer support.
30197 * file-io.c: moved file icalls from PAL to FileStream.
30199 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
30201 * icall.c (ves_icall_System_Object_GetHashCode): impl.
30203 2002-03-11 Dietmar Maurer <dietmar@ximian.com>
30205 * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
30207 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
30209 * verify.c, verify.h: moved here the corlib/runtime consistency checks.
30211 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
30213 * debug-helpers.{c,h}: moved here from monograph some useful functions
30214 to locate a method by name/signature in a class or image. Included
30215 also a small and flexible IL disassembler.
30217 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
30219 * reflection.c: fixup tokens in methods with small header size, too.
30221 2002-03-08 Dietmar Maurer <dietmar@ximian.com>
30223 * object.c (mono_string_to_utf8): remove assert(!error), instead
30226 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
30228 * icall.c: update to the new mono_Array_class_get interface.
30230 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
30232 * appdomain.c, object.c: Boehm-GC enable.
30233 * icall.c: make get_data_chunk() support split data requests.
30234 Ensure a class is initialized in more cases. Return only the first
30235 property found in GetProperties() or the compiler gets confused.
30236 Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
30237 * reflection.h, reflection.c: add fixup mechanism for field and method
30238 tokens. Initialize assembly->typeref in a single place. Output
30239 properties after events. Support custom attributes for events, too.
30240 Typo fix for paramter custom attrs.
30242 2002-03-07 Martin Baulig <martin@gnome.org>
30244 * icall.c (ves_icall_System_Array_FastCopy): Small fix.
30246 2002-03-07 Dietmar Maurer <dietmar@ximian.com>
30248 * class.c (mono_array_class_get): fix. for multi. dim. arrays
30250 2002-03-06 Martin Baulig <martin@gnome.org>
30252 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
30253 non-zero lower bounds. See testcases #F10-#F13.
30255 2002-03-05 Martin Baulig <martin@gnome.org>
30257 * exception.c (mono_get_exception_argument_out_of_range): New exception.
30259 * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
30260 ves_icall_System_Array_GetValue(), only calculate the absolute array position
30262 (ves_icall_System_Array_SetValue): Likewise.
30263 (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
30264 as argument and does the actual work. This function is used when copying a
30265 multi-dimensional array.
30266 (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
30267 now do all the widening conversions of value types.
30268 (ves_icall_System_Array_CreateInstanceImpl): Implemented.
30270 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
30272 * class.c: remove some magic numbers and use the smbolic names,
30273 instead. Added init_events() to load event info at class init time.
30274 * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
30275 and mono_metadata_methods_from_event().
30276 * reflection.h, reflection.c: added support for writing out the evnets
30277 related information.
30279 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
30281 * reflection.h, icall.c: use a different method (GetInterfaces)
30282 to gather interface info and add isbyref, isprimitive and
30283 ispointer to the ves_icall_get_type_info() return value.
30285 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
30287 * class.h: stared adding support for events.
30288 * icall.c: split find_members implementation. Added debug icall to get
30289 the address of an object.
30290 * reflection.c: handle TypeBuilders in mono_type_get_object().
30292 2002-03-01 Martin Baulig <martin@gnome.org>
30294 * icall.c (ves_icall_System_Array_GetLength): This must throw an
30295 ArgumentOutOfRangeException(), not an ArgumentException().
30296 (ves_icall_System_Array_GetLowerBound): Likewise.
30297 (ves_icall_System_Array_GetValue): Improved argument checking.
30298 (ves_icall_System_Array_SetValue): Improved argument checking.
30300 2002-03-01 Martin Baulig <martin@gnome.org>
30302 * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
30303 called with invalid arguments rather than just dying with g_assert().
30304 (ves_icall_System_Array_SetValue): Likewise.
30305 (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
30306 raise a NotImplementedException instead.
30307 (ves_icall_System_Array_GetLength): Added argument checking.
30308 (ves_icall_System_Array_GetLowerBound): Added argument checking.
30310 2002-03-01 Dietmar Maurer <dietmar@ximian.com>
30312 * object.h (mono_assert): new macros mono_assert and
30313 mono_assert_not_reached
30315 2002-02-28 Martin Baulig <martin@gnome.org>
30317 * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
30318 and "System::String::IsInterned" to "System::String::_IsInterned".
30320 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
30322 * icall.c: remove hacks for typebuilder. Added icall to create a
30323 modified type from a tybebuilder.
30324 * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
30325 in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
30326 to create a backing MonoClass for a TypeBuilder.
30328 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
30330 * class.c, class.h: more refactoring of class init.
30331 Export mono_class_setup_mono_type() and mono_class_setup_parent().
30333 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
30335 * marshal.c, marshal.h: start of marshaling interface.
30337 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
30339 * icall.c: fix order in assembly qualified name icall.
30341 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
30343 * class.c: do not free str, since we store it in the hash table.
30344 * reflection.h: add label field to MonoILExceptionInfo.
30345 * reflection.c: handle references to more than one assembly. Handle
30346 case when there isn't a module created in the assembly.
30348 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
30350 * class.c: Fix typo. Start refactoring of class init code.
30352 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
30354 * appdomain.c: exit with 1 on error.
30355 * class.c: we already have the name in MonoClassField.
30356 * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
30357 MonoStreamHeader instead of an offset of image->raw_metadata.
30359 2002-02-26 Miguel de Icaza <miguel@ximian.com>
30361 * appdomain.c (mono_init): Be even more descriptive about the error.
30363 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
30365 * appdomain.c: give the user an informative message when corlib can't
30368 2002-02-26 Martin Baulig <martin@gnome.org>
30370 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
30371 New icall to get the time zone data.
30373 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
30375 * reflection.c: set virtual and raw size of section correctly.
30376 * threads.c: transfer domain information to newly created threads.
30378 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
30380 * class.c: when instancing a class in a domain, load the default
30381 vaules for static fields from the constant table. Fix System.Enum to
30383 * icall.c: implement Object::GetType() internalcall. Implemented
30384 MonoField::GetValue() internalcall. Avoid SEGV in search_method().
30385 Fixed checking of binding flags in find_members().
30386 * metadata.c, metadata.h: introduce mono_metadata_type_hash().
30387 * reflection.c: handle enumerations when writing to the constant
30388 table. Use a different object cache for types.
30391 2002-02-22 Dietmar Maurer <dietmar@ximian.com>
30393 * object.c (mono_object_isinst): fix for arrays
30395 * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
30397 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
30399 * object.c: don't use mprotect () and fix intern pool hash table
30400 lookup for big endian systems.
30402 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
30404 * icall.c: change type_is_subtype_of () signature.
30406 2002-02-21 Mark Crichton <crichton@gimp.org>
30408 * rand.c, rand.h: Added random number generator for
30409 System.Security.Cryptography classes.
30411 * exception.c, exception.h: Added mono_get_exception_not_implemeted.
30413 * icall.c: Added System.Security.Cryptography calls.
30415 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
30417 * class.c, icall.c, metadata.c: better support for pointer types.
30418 Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
30419 * reflection.c: Add support for getting custom attrs for properties
30420 and simplify some code.
30422 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
30424 * icall.c: change getToken () and add custom attribute GetBlob()helper
30426 * reflection.h: add custom attrs array to the reflection builder structures.
30427 * reflection.c: encode and emit custom attributes for all the relevant
30428 reflection objects. Cache fieldref and methodref tokens. Change
30429 mono_image_create_token() interface to take a MonoDynamicAssembly.
30430 More complete custom attributes decoder. Load custom attributes for
30431 Assembly, Field, Method and Constructor objects, too. Make the
30432 returned array an Attribute[] one, not object[]. Added
30433 mono_reflection_get_custom_attrs_blob() to encode the arguments of a
30434 custom attribute constructor.
30436 2002-02-20 Dick Porter <dick@ximian.com>
30440 * socket-io.c: Windows portability fixes (sometimes just ifdeffing
30441 problem code out for now).
30443 2002-02-19 Radek Doulik <rodo@ximian.com>
30445 * object.c (mono_ldstr): use hash table to avoid multiple swapping
30447 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
30449 * icall.c: register the GetCustomAttributes method.
30450 * object.c, object.h: add mono_string_new_len ().
30451 * reflection.h, reflection.c: added mono_runtime_invoke(),
30452 mono_install_runtime_invoke(). Added
30453 mono_reflection_get_custom_attrs () to load custom attributes and
30454 create the attribute objects.
30456 2002-02-19 Dick Porter <dick@ximian.com>
30457 * threads-dummy-types.c:
30458 * threads-dummy-types.h:
30461 * threads-pthread-types.c:
30462 * threads-pthread-types.h:
30463 * threads-pthread.c:
30464 * threads-pthread.h: Deleted obsolete files
30466 2002-02-19 Dietmar Maurer <dietmar@ximian.com>
30468 * class.c (mono_class_vtable): runtime init the class when we
30469 allocate static class data.
30471 * icall.c (ves_icall_System_Array_SetValue): check for null values.
30473 * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
30474 and String - but we will need generic marshalling support in the
30476 (mono_init): set the domain name in a ms compatible way
30478 * object.c (mono_string_new_utf16): bug fix: use char[] instead of
30481 2002-02-18 Dietmar Maurer <dietmar@ximian.com>
30483 * object.c (mono_array_clone): use alloca() instead of g_malloc
30486 * appdomain.c (mono_domain_unload): impl.
30488 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
30490 * appdomain.c, object.c: fix intern pool implementation.
30491 * class.c: fix alignment code.
30493 2002-02-16 Radek Doulik <rodo@ximian.com>
30495 * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
30496 and s2 > s1, just copy lower bytes to be compatible with little
30497 endian (i.e. 64bit value & 0xffffffff --> 32bit value)
30498 (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
30500 * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
30501 force big_endian to be 1 for big endian machines
30502 (ves_icall_iconv_new_decoder): ditto
30504 2002-02-16 Jeffrey Stedfast <fejj@ximian.com>
30506 * socket-io.c (convert_sockopt_level_and_name): If the system
30507 doesn't define SOL_IP or SOL_TCP, get them by hand using
30508 getprotobyname() and caching the values (because this could be a
30510 (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
30511 Use the appropriate struct when the system does support it. Ie,
30512 not all systems have struct ip_mreqn so use struct ip_mreq when
30515 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
30517 * reflection.c: handle finally clauses.
30519 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
30521 * socket-io.c: use g_snprintf() instead of snprintf.
30523 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
30525 * reflection.c (mono_param_get_objects): Cast second argument to
30526 mono_method_get_param_names to a const char** to silence the
30529 * appdomain.c (mono_domain_assembly_open): Put parens around the
30530 truth statement in the for-loop.
30532 * unicode.c (iconv_convert): Got rid of a compiler warning about
30533 int i being unused when the system has a new iconv.
30534 (iconv_get_length): Same.
30536 * image.c (load_class_names): Cast the second argument to
30537 g_hash_table_insert() to char* to hush compiler warnings about the
30539 (mono_image_open): Same here.
30541 * socket-io.c: Don't conditionally include sys/filio.h or
30542 sys/sockio.h here anymore since we now get them from
30543 io-layer/io-layer.h
30544 (inet_pton): If the system doesn't support inet_aton, implement
30545 using inet_addr and also #define INADDR_NONE if it isn't defined
30548 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
30550 * metadata.c, metadata.h: added function to get packing and size info
30552 * reflection.h, reflection.c: handle field RVA data. Save info about
30553 the table layout if needed. Assign typedef indexes to all the types
30554 before dumping the info about them to avoid forward reference problems.
30556 2002-02-14 Dietmar Maurer <dietmar@ximian.com>
30558 * socket-io.c (convert_sockopt_level_and_name): ifdef
30559 SO_ACCEPTCONN because it is not defined on my system (old debian)
30561 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
30563 * opcode.c: use stddef.h to get NULL.
30565 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
30567 * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
30568 for FIONBIO, FIONREAD and SIOCATMARK.
30569 (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
30570 define INADDR_NONE and besides, inet_addr() is deprecated and
30571 should not be used. Use inet_pton() instead - it also has the
30572 added bonus that it can easily handle IPv6 addresses as well.
30573 (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
30575 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
30577 * decimal.c: remove _MSC_VER conditional.
30579 2002-02-13 Dick Porter <dick@ximian.com>
30582 * icall.c: Internal calls for Blocking, Select, Shutdown,
30583 GetSocketOption and SetSocketOption
30585 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
30587 * assembly.cs: better resolver: use it instead of some kludgy
30590 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
30592 * reflection.c: the best way to speed-up the compiler is to avoid
30595 2002-02-13 Dietmar Maurer <dietmar@ximian.com>
30597 * class.c (mono_class_vtable): changed the object layout
30598 (obj->vtable->class).
30599 (mono_class_create_from_typespec): consider MONO_TYPE_PTR
30601 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
30603 * assembly.c: look for assemblies in the assembly dir, too.
30605 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
30607 * class.c: fix thinko in mono_class_from_type().
30609 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
30611 * exception.h, exception.c: added TypeLoadException.
30612 * object.h, object.c: added mono_array_clone ().
30613 * icall.c: handle throwOnError in AssemblyGetType().
30614 Added Array.Clone().
30615 * opcode.h, opcode.c: use a single value for the opcode val.
30616 Compile fix for non-gcc compilers.
30618 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
30620 * opcodes.c, opcodes.h: export interesting info about opcodes.
30622 2002-02-05 Dietmar Maurer <dietmar@ximian.com>
30624 * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
30627 * class.c (class_compute_field_layout): set element_class for enums
30628 (mono_class_create_from_typedef): set element_class for normal classes
30630 * icall.c (ves_icall_System_Enum_get_value): impl.
30632 * class.c (mono_class_create_from_typedef): do not set valuetype
30633 flag for System.ValueType and System.Enum
30635 2002-02-04 Dietmar Maurer <dietmar@ximian.com>
30637 * unicode.c (iconv_convert): fix big endian problem.
30639 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
30641 * class.c: add asserts if we are ever going to scribble over memory.
30642 * socket-io.c: not all systems have AF_IRDA defined.
30644 2002-01-31 Dietmar Maurer <dietmar@ximian.com>
30646 * class.c (class_compute_field_layout): do not consider static
30647 fields to compute alignment
30649 2002-01-25 Dietmar Maurer <dietmar@ximian.com>
30651 * appdomain.c (mono_appdomain_get): impl.
30652 (ves_icall_System_AppDomain_ExecuteAssembly): impl.
30654 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
30656 * icall.c: ignore "file://" prefix when loading an assembly.
30658 2002-01-23 Dick Porter <dick@ximian.com>
30662 * Makefile.am: Added socket support
30664 2002-01-23 Miguel de Icaza <miguel@ximian.com>
30666 * icall.c (ves_icall_appdomain_get_default_assemblies): put this
30667 code back. This should return the assemblies that are loaded by
30668 the runtime on behalf of an application domain.
30670 The current implementation is still broken, it just returns every
30671 assembly loaded, but until we get real applications domain this
30674 2002-01-23 Dietmar Maurer <dietmar@ximian.com>
30676 * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
30679 2002-01-23 Miguel de Icaza <miguel@ximian.com>
30681 * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
30682 the mono_class_from_name lookup.
30683 (ves_icall_get_parameter_info): ditto.
30684 (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
30686 (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
30688 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
30690 * class.c: load also nested classes on class init.
30691 System.ValueType instance methods gets passed boxed
30692 values, unless methods in derived classed that get a pointer to the
30694 * icall.c: use better name parsing code in GetType().
30695 * image.c, image.h: add mono_image_loaded ().
30696 * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
30697 * reflection.c, reflection.h: added mono_reflection_parse_type().
30699 2002-01-22 Veronica De Santis <veron78@interfree.it>
30701 * icall.c : Added mapping of internal calls for Manual and Auto reset events
30702 * threads.c : Added the implementation of internal calls for events
30703 * threads.h : Added prototypes of internal calls for events
30705 2002-01-21 Radek Doulik <rodo@ximian.com>
30707 * icall.c (ves_icall_InitializeArray): swap bytes on big endians
30709 2002-01-21 Dietmar Maurer <dietmar@ximian.com>
30711 * class.c (mono_class_init): set min_align to 1 (instead of 0)
30712 (mono_class_value_size): use min_align
30714 2002-01-20 Dick Porter <dick@ximian.com>
30717 * threads.c: Replaced all instances of WapiHandle * with HANDLE,
30718 so it compiles on w32.
30720 2002-01-17 Dietmar Maurer <dietmar@ximian.com>
30722 * metadata.c (mono_type_stack_size): impl.
30724 * class.c (mono_class_get_field): impl. memberref token
30726 2002-01-16 Veronica De Santis <veron78@@interfree.it>
30728 * icall.h : Added the internal calls mapping for CreateMutex_internal
30729 and ReleaseMutex_internal.
30730 * threads.h : Added the prototype of mutexes internal calls.
30731 * threads.c : Added the implementations of mutexes internal calls.
30733 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
30735 * metaparse.h: removed unused file.
30736 * reflection.c, reflection.h: added stream_data_align () function
30737 to align data in streams and keep stream aligned. Add support for
30738 exception support in method headers.
30740 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
30742 * unicode.c: make iconv_convert () return the number of bytess written
30743 in the output buffer.
30745 2002-01-15 Dick Porter <dick@ximian.com>
30746 * threads.c: Make the runtime's idea of infinite timeouts coincide
30747 with the class library's
30749 Fix a particularly egregious bug in mono_thread_cleanup(). That
30750 code was so utterly bogus it must have been written on a Monday.
30752 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
30754 * reflection.h: add subtypes field to TypeBuilder.
30755 * reflection.c: encode constants for literal fields.
30756 Handle subtypes. Fix user string token (and add a zero byte)
30759 2002-01-14 Dietmar Maurer <dietmar@ximian.com>
30761 * class.c (mono_class_init): bug fix: assign slot numbers for
30764 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
30766 * reflection.c: don't try to output a code RVA for abstract methods.
30767 Small fixes for method header format. Output parameter info to the
30768 ParamDef table. Save method overriding info to MethodImpl table.
30769 Fix property support. Allow typedef.extends to be a type in the
30771 * verify.c: fix off-by-one error.
30773 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
30775 * class.c: fix mono_class_from_mono_type () for szarray types.
30776 Remove unused cache check in mono_class_from_type_spec().
30777 * icall.c: *type_from_name () functions handle simple arrays and byref.
30778 * reflection.c: handle byref and szarray types. Handle methods without
30779 body (gets P/Invoke compilation working). Handle types and fields in
30781 * reflection.h: add rank to MonoTypeInfo.
30783 2002-01-10 Dick Porter <dick@ximian.com>
30785 * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
30788 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
30790 * icall.c: initialize class in type_from_handle ().
30791 Loop also in parent classes for get_method ().
30792 * reflection.c: properly encode class and valuetype types.
30793 Start on encoding TypeBuilder types. Handle fieldrefs.
30794 Use correct length when registering a user string.
30795 Handle ConstructorBuilder and MonoMethod in get_token ().
30796 Make mono_type_get_object () aware of cached types.
30797 * object.c: back out change to mono_string_new ().
30799 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
30800 * object.c: mono_string_new should return a NULL when the string
30801 passed in is NULL -- not try to deference it.
30803 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
30805 * icall.c: hack to make IsSubType work for TypeBuilders.
30806 * reflection.c: emit constructors before methods.
30807 Retrieve param names in mono_param_get_objects().
30809 2002/01/05 Nick Drochak <ndrochak@gol.com>
30811 * Makefile.am: fix list of headers and sources so automake 1.5
30812 doesn't complain. Removed \# at end of list.
30814 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
30816 * reflection.c: get token for a method ref. Set return type of
30817 constructor to void.
30818 * loader.c: debug message.
30819 * class.c: typo fix.
30821 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
30823 * icall.c: fix array init with rank > 1. FindMembers
30824 loops in parent class as well.
30825 * image.c: do not insert nested types in name cache.
30826 * reflection.c: warning fix.
30827 * reflection.h: add override method (for interface impl).
30829 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
30831 * metadata.c: fix customattr decoding.
30833 2001-12-21 Miguel de Icaza <miguel@ximian.com>
30835 * rawbuffer.cs: Added native Win32 implementation, avoids using
30836 mmap on Cygwin. This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
30838 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
30840 * class.c: make the low-level routines handle the cache.
30842 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
30844 * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
30846 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
30848 * class.c: fix mono_array_element_size() for objects.
30849 * class.h, class.c: add properties to MonoClass and load them
30851 * icall.c: check with isinst() when assigning a value to an array
30852 instead of requiring the classes to match exactly.
30853 Implemented icall for System.Type::GetType().
30854 Implemented icalls to get ParameterInfo, ProprtyInfo and info about
30855 enums. Handle bindingflags when looking for methods and fields.
30856 * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
30857 and mono_metadata_methods_from_property().
30858 * reflection.h, reflection.c: added structures for propreties,
30859 parameters and enums. Implemented mono_property_get_object() and
30860 mono_param_get_objects().
30862 2001-12-18 Dick Porter <dick@ximian.com>
30864 * file-io.c: Use mono_string_to_utf16() instead of
30865 mono_string_chars()
30867 * object.c: Added mono_string_to_utf16(), which copies the non
30868 NULL-terminated MonoString into a new double-null-terminated
30871 2001-12-17 Dietmar Maurer <dietmar@ximian.com>
30873 * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
30875 2001-12-16 Dietmar Maurer <dietmar@ximian.com>
30877 * file-io.c: raise exceptions if handle is invalid.
30879 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
30881 * assembly.c: yet another check for mscorlib.
30882 * class.c, class.h: load nesting info for classes.
30883 * icall.c: many new functions to support the Reflection classes.
30884 * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
30885 * reflection.h, reflection.c: mono_image_create_token(),
30886 mono_assembly_get_object(), mono_type_get_object(),
30887 mono_method_get_object(), mono_field_get_object(): methods to return
30888 objects that parallel the C representation of assemblies, types,
30891 2001-12-11 Dick Porter <dick@ximian.com>
30894 * file-io.c: Internal calls for file IO.
30896 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
30898 * tabledefs.h: missing FileAttributes.
30899 * verify.h, verify.c: use is_valid_string () to simplify and check for
30900 valid strings more correctly. Fix warnings and speeling.
30901 Check more tables: Filed, File, ModuleRef, StandAloneSig.
30902 Check code: branches, maxstack, method calls.
30904 2001-12-04 Dietmar Maurer <dietmar@ximian.com>
30906 * object.c (mono_object_allocate): removed static, so that the jit
30907 can allocate value types.
30909 * icall.c (ves_icall_System_DateTime_GetNow): impl.
30911 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
30913 * class.c: init enum types right away and register the
30914 token->MonoClass map in mono_class_create_from_typedef ().
30915 * verify.h, verify.c: first cut of the verifier.
30916 * pedump.c: add --verify switch to verify metadata tables.
30917 * tabledefs.h: add some missing enums.
30919 2001-11-30 Dietmar Maurer <dietmar@ximian.com>
30921 * class.c (mono_install_runtime_class_init): impl.
30922 (mono_class_init): renamed mono_class_metadata_init to
30923 mono_class_init, also removed the metadata_inited flag
30925 * object.c (mono_object_isinst): use faster algorithm
30927 2001-11-30 Radek Doulik <rodo@ximian.com>
30929 * mono-endian.h: reverted last change
30930 added function prototypes
30932 * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
30933 add mono-endian.c back
30935 * mono-endian.c: returned back, as Paolo pointed out, it's needed
30936 for unaligned access, I've mistaked it with endianess. I am
30938 (mono_read16): fix reverted endianess
30939 (mono_read64): ditto
30940 (mono_read32): ditto
30942 2001-11-30 Dick Porter <dick@ximian.com>
30944 * exception.c: Implement mono_exception_from_name()
30946 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
30948 * metadata.h, metadata.c: remove params_size and locals_size and their
30949 calculation from the metadata code: they are only usefult to the
30952 2001-11-29 Radek Doulik <rodo@ximian.com>
30954 * object.c (mono_ldstr): swap bytes here, it's probably not the
30955 best place, but works for me now, I'll redo it once I know mono
30956 better, also note that I add PROT_WRITE and don't reset back, also
30957 note that it's only affects big endians, so x86 should be OK
30959 * mono-endian.h (read16): use just glib macros for both endians
30961 * mono-endian.c: removed as glib macros are used in in
30962 mono-endian.h so we don't need to care about endianess for read
30963 macros as glib does that for us already
30965 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
30967 * class.h, class.h: take minimum alignment into consideration so
30968 that the fields of a class remain aligned also when in an array.
30970 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
30972 * loader.h, loader.c: add mono_method_get_param_names().
30973 * class.c: 0-init class fields.
30975 2001-11-26 Dick Porter <dick@ximian.com>
30979 * threads.c: New file that handles System.Threading on all platforms
30982 * object.h: Remove the synchronisation struct from MonoObject,
30983 replace it with a pointer that gets initialised on demand
30985 * Makefile.am: Replace all the system-specific threading code with
30986 a single file that uses the new wrapper library
30988 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
30990 * class.c, class.h: add mono_install_trampoline() so that the runtime
30991 can register a function to create a trampoline: removes the ugly
30992 requirement that a runtime needed to export arch_create_jit_trampoline.
30993 * object.h, object.c: added mono_install_handler() so that the runtime
30994 can install an handler for exceptions generated in C code (with
30995 mono_raise_exception()). Added C struct for System.Delegate.
30996 * pedump.c: removed arch_create_jit_trampoline.
30997 * reflection.c: some cleanups to allow registering user strings and
30998 later getting a token for methodrefs and fieldrefs before the assembly
31000 * row-indexes.h: updates and fixes from the new ECMA specs.
31002 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
31004 * class.h, class.c: add enum_basetype field to MonoClass.
31005 * metadata.h, metadata.c: add mono_metadata_get_constant_index()
31006 to get index in the constant table reated to a field, param or
31008 * reflection.h, reflection.c: handle constructors. Set public-key and
31009 version number of the built assembly to 0.
31010 * row-indexes.h: update from new ECMA spec.
31012 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
31014 * class.h, class.c: add a max_interface_id to MonoClass.
31015 * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
31016 since it's used to do that. Added mono_type_type_from_obj().
31017 Make GetType() return NULL instead of segfaulting if the type was not
31018 found. Handle simple arrays in assQualifiedName.
31019 * object.h: add a struct to represent an Exception.
31020 * reflection.c: output call convention in method signature.
31021 Add code to support P/Invoke methods and fixed offsets for fields.
31023 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
31025 * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
31027 * icall.c: use mono_array_addr instead of array->vector: fixes the
31028 reflection image writing.
31029 * reflection.c: init call convention byte to 0 in method signature.
31030 Encode the property signature. Don't output property-related methods
31031 twice. Really process the properties for a type (don't cast a field to
31032 a property, my mom always told me that).
31033 Fix 64 bit issues in pointer alignment in a different and more
31036 2001-11-10 Sean MacIsaac <macisaac@ximian.com>
31038 * loader.h: Removed type class from MonoDefaults, added monotype
31040 * loader.c: Loaded MonoType, removed loading of Type
31042 * icall.c (my_mono_new_object): Now returns a System.MonoType,
31043 and fills in System.Type._impl with a RuntimeTypeHandle rather
31044 than the actual MonoClass *
31046 (ves_icall_type_from_handle): change from type_class to
31049 (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
31052 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
31055 (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
31057 (ves_icall_System_Reflection_Assembly_GetType): implemented
31059 (ves_icall_System_MonoType_assQualifiedName): implemented
31061 (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
31063 2001-11-09 Miguel de Icaza <miguel@ximian.com>
31065 * assembly.c (mono_assembly_open): Implement a cache for the
31068 (mono_assembly_close): only destroy the assembly when the last
31071 2001-11-09 Dick Porter <dick@ximian.com>
31073 * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
31075 2001-11-09 Dietmar Maurer <dietmar@ximian.com>
31077 * class.c (mono_class_metadata_init): bug fix: compute the right slot
31079 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
31081 * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
31082 from Martin Weindel.
31083 * object.h: add mono_string_chars ().
31085 2001-11-07 Miguel de Icaza <miguel@ximian.com>
31087 * reflection.c (build_compressed_metadata): Eliminates warnings
31088 and uses 64-bit clean code.
31090 * metadata.c (mono_type_hash): Change signature to eliminate warnings.
31091 (mono_type_equal): Change signature to eliminate warnings.
31093 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
31095 * icall.c, loader.c: remove the internalcall array constructors.
31096 Changes to match the new MonoArray structure.
31097 * object.h, object.c: an array object doesn't allocate an extra
31098 vector. Add mono_array_new_full () to create jagged arrays easily.
31100 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
31102 * metadata.h, metadata.c: add mono_metadata_field_info () to
31103 retreive all the info about a field from vairous tables.
31104 * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
31105 * class.h, class.c: augment MonoClassField with more info.
31106 Implemented mono_ldtoken for fields. Implemented ExplicitLayout
31107 policy and load a field's RVA if needed.
31109 2001-11-05 Dietmar Maurer <dietmar@ximian.com>
31111 * class.c (mono_class_metadata_init): create a trampoline for all
31112 virtual functions instead of actually compiling them.
31114 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
31116 * class.h, class.c: include name in MonoClassField.
31117 * class.c: fix fundamental type of System.Object and System.String.
31118 Set the right fundamental type for SZARRAY, too. Handle TypeSpec
31120 * icall.c: remove internalcalls for the Reflection stuff that is now
31122 * loader.c: mono_field_from_memberref () implementation.
31123 * mono-endian.c: thinko (s/struct/union/g).
31124 * object.c, object.h: make the mono_string_* prototypes actually use
31125 MonoString instead of MonoObject.
31126 * reflection.c, reflection.h: updates for changes in the reflection
31127 code in corlib: we use C structures that map to the actual C# classes.
31128 Handle SZARRAYs when encoding types. Handle locals in methods. Use a
31129 fat method header if needed and use the info from the ILGenerator for
31130 methods. Handle fields in types. Misc fixes.
31132 2001-10-17 Dietmar Maurer <dietmar@ximian.com>
31134 * class.c (mono_class_metadata_init): bug fix: always allocate
31135 space for static class data
31137 2001-10-25 Dietmar Maurer <dietmar@ximian.com>
31139 * class.c (mono_compute_relative_numbering): use relative
31140 numbering to support fast runtime type checks.
31142 2001-10-17 Sean MacIsaac <macisaac@ximian.com>
31144 * class.c (mono_class_create_from_typeref): added debugging output
31145 to print class name when MonoDummy is returned instead of real class
31147 2001-10-15 Dietmar Maurer <dietmar@ximian.com>
31149 * class.c (mono_class_metadata_init): interface offset table now
31150 contains pointers into the vtable - this is more efficient for the jit
31152 2001-10-12 Dietmar Maurer <dietmar@ximian.com>
31154 * class.c (mono_class_metadata_init): use a temporary vtable (the
31155 old algorithm only worked for the interpreter, but not for the jit)
31157 2001-10-11 Dietmar Maurer <dietmar@ximian.com>
31159 * loader.c (method_from_memberref): use mono_class_get to get the
31160 class of an array instead of using System.Array directly.
31161 (mono_get_method): also add MEMBERREF methods to the method cache
31162 which usefull for arrays.
31164 2001-10-10 Dietmar Maurer <dietmar@ximian.com>
31166 * pedump.c (arch_compile_method): added to compute vtable entry
31168 * metadata.c (mono_metadata_interfaces_from_typedef): also return the
31169 number of interfaces.
31171 * class.h: merged MonoArrayClass into MonoClass
31173 * class.c (mono_class_create_from_typedef): compute the vtable size and
31174 allocate space to include the vtable inside MonoClass
31175 (mono_class_metadata_init): initialize the vtable
31177 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
31179 * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
31180 Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
31181 * image.c: endian fixes by Laurent Rioux.
31182 * object.h, object.c: rename MonoStringObject to MonoString and
31183 MonoArrayObject to MonoArray. Change some function names to conform to
31184 the style mono_<object>_<action>. mono_string_new_utf16 () takes a
31185 guint16* as first argument, so don't use char*.
31186 Provide macros to do the interesting things on arrays in a portable way.
31187 * threads-pthread.c: updates for the API changes and #include <sched.h>
31188 (required for sched_yield()).
31189 * icall.c: updates for the API changes above.
31190 * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
31191 platforms that need them.
31193 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
31195 * class.c: set the correct type for all the fundamental
31196 type when loading the class.
31198 2001-10-05 Dick Porter <dick@ximian.com>
31200 * threads-pthread.c (pthread_mutex_timedlock): Simple
31201 compatibility version for C libraries that lack this call.
31203 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
31205 * class.c: MonoTypes stored in MonoClass are stored as
31206 fundamental MonoTypes when the class represents a
31207 fundamental type (System.Int32, ...).
31208 The TypeHandle return by ldtoken is a MonoType*.
31209 * icall.c: ves_icall_get_data_chunk () write out all the
31210 PE/COFF stuff. Implement ves_icall_define_method (),
31211 ves_icall_set_method_body (), ves_icall_type_from_handle ().
31212 * image.c: properly skip unknown streams.
31213 * loader.h, loader.c: add type_class to mono_defaults.
31214 * metadata.c, metadata.h: export compute_size () as
31215 mono_metadata_compute_size () with a better interface.
31216 Typo and C&P fixes.
31217 * pedump.c: don't try to print the entry point RVA if there is no entry point.
31218 * reflection.c, reflection.h: many cleanups, fixes, output method
31219 signatures and headers, typedef and typeref info, compress the metadata
31220 tables, output all the heap streams, cli header etc.
31221 * row-indexes.h: typo fixes.
31223 2001-10-04 Dick Porter <dick@ximian.com>
31225 * object.h: Add a synchronisation mutex struct to MonoObject
31227 * object.c (mono_new_object): Initialise the object
31228 synchronisation mutexes
31230 * icall.c: System.Threading.Monitor internal calls
31232 * threads-pthread.h:
31233 * threads-pthread.c: System.Threading.Monitor internal calls
31235 * threads-types.h: New file, includes the system-specific thread
31238 * threads-pthread-types.h:
31239 * threads-pthread-types.c: New files, handle pthread-specific
31240 synchronisation types
31242 * threads-dummy-types.h:
31243 * threads-dummy-types.c: New files of dummy support for
31244 thread-specific types
31248 * pedump.c: include mono-endian.h not endian.h
31250 * Makefile.am: More threads files.
31251 Name mono-endian.h not endian.h
31253 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
31255 * Makefile.am, reflection.h, reflection.c: move here the reflection related
31256 stuff and implement a few more bits.
31257 * icall.c: a field needs to be dereferenced twice. Do not use the same
31258 name for two variables in the same scope.
31259 * image.c, image.h: cleanups.
31261 2001-10-02 Dietmar Maurer <dietmar@ximian.com>
31263 * class.c (mono_class_metadata_init): bug fix: compute the right size
31265 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
31267 * icall.c: implemented some of the Reflection internalcalls.
31268 * image.c, image.h: start writing out the PE/COFF image.
31269 * metadata.h, metadata.c: implement mono_metadata_encode_value ()
31270 that does the reverse than decode_blob_size ().
31271 * object.c: use mono_metadata_encode_value (). Move here
31272 temporary implementation of mono_string_to_utf8 ().
31273 * rawbuffer.c: make malloc_map static.
31275 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
31277 * metadata.c: fix type comparison for arrays.
31278 * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
31279 Added a couple of new classes to monodefaults.
31280 * icall.c: added a couple of Reflection-related internalcalls.
31281 * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
31282 Added a byval_arg MonoType to MonoClass.
31284 2001-09-28 Dick Porter <dick@ximian.com>
31287 * threads-pthread.h:
31288 * threads-pthread.c: Implemented internal calls for
31289 LocalDataStoreSlot operations. Applied mutexes around all shared
31290 data. Reworked the thread creation and Start() operations to
31291 avoid a race condition.
31294 * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
31296 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
31298 * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
31300 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
31302 * class.c, loader.c: warn and return NULL instead of erroring out.
31303 * icall.c: added System.AppDomain::getCurDomain().
31304 * loader.c: we don't need to lookup the typedef again for p/invoke calls.
31306 2001-09-25 Dick Porter <dick@ximian.com>
31308 * threads-pthread.h:
31309 * threads-pthread.c: Implemented timed thread joining and added
31310 System.Threading.Thread::Join_internal internal call
31312 * icall.c: Added System.Threading.Thread::Join_internal internal call
31315 * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
31317 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
31319 * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
31320 mono_string_intern () to implement the semantics of the ldstr opcode
31321 and the interning of System.Strings.
31322 * icall.c: provide hooks to make String::IsIntern and String::Intern
31325 2001-09-23 Dick Porter <dick@ximian.com>
31328 * threads-dummy.h: New files of dummy threading routines
31330 * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
31331 support code based on system specifics
31333 Rename PTHREAD_LIBS to THREAD_LIBS
31335 2001-09-23 Dick Porter <dick@ximian.com>
31337 * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
31338 Schedule (called when asked to Sleep for 0 ms) and CurrentThread
31340 (mono_thread_init): Set up a Thread object instance to return when
31341 the main thread calls Thread.CurrentThread
31342 (mono_thread_cleanup): Wait for all subthreads to exit
31344 * icall.c: New internal calls for System.Threading.Thread::Sleep
31345 (including Schedule) and CurrentThread
31347 * threads.h: New file, to insulate thread-specific stuff from the
31350 2001-09-21 Dick Porter <dick@ximian.com>
31352 * threads-pthread.h:
31353 * threads-pthread.c: New file, for handling pthreads-style
31354 threading support. Start() now starts a new thread and executes
31355 the ThreadStart delegate instance.
31357 * icall.c: Added the internalcall for
31358 System.Threading.Thread::Start_internal
31360 * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
31362 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
31364 * loader.c: work around the different signatures for delegates
31365 constructors csc generates in compiled code vs the ones compiled in mscorlib.
31367 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
31369 * class.h, class.c: add mono_class_get_field_from_name ().
31370 * *: Fix C comments and other ANSI C issues.
31372 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
31374 * endian.h, assembly.c: fix some endianness issues.
31376 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
31378 * loader.h, load.c: add delegate_class to mono_defaults.
31379 Handle runtime provided methods in mono_get_method ().
31381 2001-08-29 Dietmar Maurer <dietmar@ximian.com>
31383 * loader.c (mono_get_method): use pinvoke for internal call
31385 * icall.c: use pinvoke for internal call
31387 * loader.c (method_from_memberref): set the method name
31389 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
31391 * metadata.c: help the compiler generate better code for
31392 mono_class_from_mono_type ().
31394 2001-08-28 Dietmar Maurer <dietmar@ximian.com>
31396 * class.c (mono_class_metadata_init): delayed computing of the
31397 class size to mono_class_metadata_init ()
31399 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
31401 * class.c, class.h: add an interfaces member to MonoClass.
31402 * image.c, image.h: add assembly_name field to MonoImage
31403 from the assembly table.
31404 * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
31406 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
31408 * class.c: Handle Array in mono_class_from_mono_type ().
31409 * metadata.c, pedump.c: some endian fixes.
31411 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
31413 * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
31414 * metadata.c: fix small problem introduced with the latest commit.
31416 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
31418 * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
31419 We don't need a MonoMetadata pointer anymore to compare signatures in
31420 mono_metadata_signature_equal (), update callers.
31421 Reduced memory usage an number of allocations for MonoMethodHeader and
31422 MonoMethodSignature.
31424 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
31426 * metadata.c: added compare for szarray.
31428 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
31430 * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
31431 and add a couple more types to it and mono_defaults. Give an hint on
31432 classes that need implementing in our corlib and are referenced
31435 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
31437 * class.h, class.c: keep track if a class is also an Enum.
31438 * loader.c: Implement a couple more types for use in libffi
31439 marshalling. Gives better diagnostics when failing to dlopen
31440 a library. Set method->klass for P/Invoke methods, too.
31442 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
31444 * class.c, class.h: add a MonoType this_arg to MonoClass that
31445 represents a pointer to an object of the class' type that
31446 can be used by the interpreter and later the type cache.
31447 Add best guess alignment info for valuetype objects.
31449 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
31451 * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
31452 into MonoType: one less level of indirection and allocation and
31453 simplifies quite a bit of code. Added cache for MonoTypes that are
31454 used frequently, so that we don't need to allocate them all the time.
31456 2001-08-24 Dietmar Maurer <dietmar@ximian.com>
31458 * class.c (mono_class_create_from_typedef): System.Enum is also a
31459 value type, although it does not derive from System.ValueType
31460 (maybe a bug in the ms compiler?)
31462 * metadata.c (mono_type_size): return the right size for value types
31464 * loader.c (mono_get_method): only initialize method header if not abstract
31466 * class.c (mono_class_from_mono_type): use mono_default values.
31468 2001-08-23 Dietmar Maurer <dietmar@ximian.com>
31470 * *: use MonoClass pointers instead of <type_tokens>
31472 * class.h: new flag: metadata_inited.
31474 * class.c (mono_class_metadata_init): impl.
31475 (mono_class_instance_size): impl.
31476 (mono_class_data_size): impl.
31478 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
31480 * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
31481 MonoClass now has the name and name_space fields.
31482 MonoMethod has a pointer to its MonoClass, instead of MonoImage.
31483 mono_get_method () takes and optional MonoClass as argument.
31484 Removed mono_typedef_from_name() and added mono_class_token_from_name()
31485 instead that takes advantage of a map from class names to typedef
31486 tokens in MonoImage.
31488 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
31490 * metadata.c: zero is not a valid alignment boundary.
31491 Merge MONO_TYPE_VOID in default decoding code.
31493 2001-08-21 Dietmar Maurer <dietmar@ximian.com>
31495 * image.h: merged MonoMetadata into MonoImage
31497 * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
31498 identify the type of elements.
31500 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
31502 * blob.h: fix MONO_TYPE_TYPEDBYREF value.
31503 * cil-coff.h: split MonoMSDOSHeader and add size info.
31504 * image.c: add some consistency checks.
31505 * metadata.c: fix row size computation: one programmer
31506 error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
31507 add explanation for the locator routine.
31508 Fix decoding of size in method header.
31510 2001-08-20 Miguel de Icaza <miguel@ximian.com>
31512 * assembly.c (g_concat_dir_and_file): Use _S for string concat.
31513 (g_concat_dir_and_file): Bring g_concat_dir_and_file
31514 function from gnome-libs. This uses the right path separator
31515 based on the OS, and also works around a bug in some systems where
31516 a double slash is not allowed.
31517 (default_assembly_name_resolver): Use g_concat_dir_and_file
31518 (mono_assembly_open): ditto.
31520 2001-08-20 Dietmar Maurer <dietmar@ximian.com>
31522 * metadata.c (mono_metadata_signature_equal): impl.
31524 * *: void is now a realy MonoType (instead of using NULL)
31526 * metadata.c (do_mono_metadata_parse_type): use
31527 mono_metadata_parse_type to parse void value.
31529 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
31531 * metadata.c, metadata.h: in the signature and method header store
31532 only the space required for holding the loca vars and incoming arguments.
31534 2001-08-15 Dietmar Maurer <dietmar@ximian.com>
31536 * metadata.c (do_mono_metadata_parse_type): treat void like any
31537 other type (instead of assigning NULL);
31539 2001-08-14 Dietmar Maurer <dietmar@ximian.com>
31541 * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
31543 2001-08-09 Dietmar Maurer <dietmar@ximian.com>
31545 * image.c (do_mono_image_open): added a cache for arrays.
31547 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
31549 * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
31550 decode a single column from a row in a metadata table and changes
31551 to take advantage of it in the typedef locator (gives a nice speed up).
31552 Store offset info for function params.
31554 2001-08-02 Dietmar Maurer <dietmar@ximian.com>
31556 * image.h (MONO_IMAGE_IS_CORLIB): removed
31558 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
31560 * assembly.c: how could mono_assembly_close () had ever worked?
31561 * metadata.c, metadata.h: provide offset info for local vars.
31562 Implement mono_type_size () to take care of alignment as well
31563 as size (it was mono_field_type_size in cli/class.c before).
31565 2001-08-01 Dietmar Maurer <dietmar@ximian.com>
31567 * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
31569 * assembly.h (CORLIB_NAME): set to corlib.dll
31571 * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
31573 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
31575 * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
31576 cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
31577 tokentype.h: massive namespace cleanup.
31579 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
31581 * metadata.h, metadata.c: decode exception clauses when parsing method header.
31583 2001-07-27 Dietmar Maurer <dietmar@ximian.com>
31585 * metadata.c (mono_metadata_free_type): added check for type !=
31586 NULL (void) before calling mono_metadata_free_type()
31588 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
31590 * metadata.h, row_indexes.h: added header with enumerations to use
31591 to index in the columns from tables in metadata and to decode coded
31592 tokens: we should start using this instead of embedding magic numbers
31595 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
31597 * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
31598 Move metadata_t info from cli_image_info_t to MonoImage, where
31599 it's easily accessible. Changed all the uses accordingly.
31600 Added the method and class caches to MonoImage.
31601 * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
31602 and mono_metadata_decode_value () signature to be more consistent
31603 with the other parse functions (and simplify code). Taken advantage
31604 of zero-length array allocation with GCC. Removed reduntant (and
31605 wrong) MonoFieldType struct and use MonoParam instead. Changed
31606 mono_metadata_parse_field_type () to use common code for parsing.
31607 Added mono_metadata_typedef_from_field () and
31608 mono_metadata_typedef_from_method () to lookup a typedef index from a
31609 field or method token.
31610 Pack the MonoRetType structure more tightly (fits in 8 bytes now).
31612 2001-07-23 Miguel de Icaza <miguel@ximian.com>
31614 * metadata.c (mono_metadata_parse_field_type): Implement.
31615 (do_mono_metadata_parse_type): Split engine from
31616 mono_metadata_parse_type, so that we can create smaller structures
31617 for things that just have one pointer to the MonoType (look at
31620 2001-07-20 Miguel de Icaza <miguel@ximian.com>
31622 * metadata.c (mono_metadata_parse_mh): Correct the implementation,
31623 as Jan Gray found out, it is incorrect.
31625 2001-07-18 Miguel de Icaza <miguel@ximian.com>
31627 * assembly.c: Implement asssembly loading. This loads an image
31628 and loads all the referenced assemblies. Come to think of it, we
31629 could always do lazy loading of the assemblies.
31631 * image.c (mono_image_open): Keep loaded images in a hashtable.
31633 * image.h (MonoImage): Add reference count.
31635 2001-07-17 Miguel de Icaza <miguel@ximian.com>
31637 * assembly.c (mono_assembly_open): Keep track of the file name in
31638 case the assembly has no ASSEMBLY table.
31640 * metadata.h: Fixed Paolo's quick hack. Put the documnentation
31643 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
31645 * metadata.c, metadata.h: decode local vars in method header
31646 parse function. Change callers accordingly.
31648 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
31650 * metadata.h, cil-coff.h: protect against multiple inclusion.
31651 Added some new structures to hold information decoded from metadata:
31652 MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
31653 and relevant decoding/free functions.
31654 * metadata.c: implement decoding functions. Add warning for out of bounds
31655 index in mono_metadata_locate(). Implement mono_get_method () to retreive
31656 all the info about a method signature and invocation. Remove check on
31657 uninitialized local var in parse_mh() and fix memory leak.
31659 2001-07-12 Miguel de Icaza <miguel@ximian.com>
31661 * metadata.h: More macros.
31663 * tokentype.h: New file.
31665 Fri Jul 6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
31667 * assembly.c: added a consistency check and initialize
31668 some structures with g_new0().
31669 * metadata.c: fixed a couple more bugs in table size computation
31670 and add other checks for out-of bound access to metadata.
31672 Thu Jul 5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
31674 * metatada.c: fix bugs computing table sizes. Spew a
31675 warning when index in string heap is out of bounds.
31677 2001-07-04 Miguel de Icaza <miguel@ximian.com>
31679 * metadata.h: Add a couple of macros to manipulate tokens.
31681 Tue Jul 3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
31683 * assembly.c: g_free(ii->cli_sections) (and avoid double free of
31684 cli_section_tables).
31686 2001-07-01 Miguel de Icaza <miguel@ximian.com>
31688 * metadata.c (mono_metadata_user_string): New function, provides
31689 access to the UserString heap.
31691 2001-06-27 Miguel de Icaza <miguel@ximian.com>
31693 * metadata.c: Add inline documentation.
31695 2001-06-26 Miguel de Icaza <miguel@ximian.com>
31697 * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
31700 2001-06-22 Miguel de Icaza <miguel@ximian.com>
31702 * typeattr.h: New file, TypeAttribute flags.
31704 2001-06-21 Miguel de Icaza <miguel@ximian.com>
31706 * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
31707 mono_assembly_ensure_section): Section loading code.
31708 (load_section_tables): Load the sections.
31710 * mono/metadata/metadata.c (mono_metadata_locate_token,
31711 mono_metadata_locate): Functions to locate the information
31712 definition given a token or a table and an index.
31713 (mono_metadata_compute_table_bases): New.
31714 (compute_size): New function to compute the sizes of the various
31717 * mono/metadata/metadata.h: Finish listing the different index
31720 * mono/metadata/pedump.c: Improve to dump new information.
31722 2001-06-19 Miguel de Icaza <miguel@ximian.com>
31724 * mono/metadata/metadata.c: Entered all the tables matching
31727 * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2