1 2008-05-05 Robert Jordan <robertj@gmx.net>
3 * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
4 support for value types. See #386415.
8 Code is contributed under MIT/X11 license.
10 2008-05-05 Martin Baulig <martin@ximian.com>
12 * debug-mono-symfile.h
13 (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
14 for old pre-terrania symbol files.
16 2008-05-05 Andreas Färber <andreas.faerber@web.de>
18 * mono-config.c: Add ppc64 architecture.
20 Code is contributed under MIT/X11 license.
22 2008-05-05 Andreas Färber <andreas.faerber@web.de>
24 * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
25 PPC64 uses function descriptors as well.
27 Code is contributed under MIT/X11 license.
29 2008-05-04 Zoltan Varga <vargaz@gmail.com>
31 * object.c (compute_class_bitmap): Ignore literal static fields.
33 * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
34 var has an invalid format.
35 (describe_ptr): Add some sanity checks for the vtable.
36 (add_nursery_frag): Clear unused nursery fragments.
37 (major_collection): Clear all remaining nursery fragments.
39 2008-05-03 Robert Jordan <robertj@gmx.net>
41 * image.c, metadata-internals.h: add thunk_invoke_cache.
43 * marshal.c, marshal.h: implement
44 mono_marshal_get_thunk_invoke_wrapper ().
46 * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
48 Code is contributed under MIT/X11 license.
50 2008-05-02 Rodrigo Kumpera <rkumpera@novell.com>
52 * verify.c (do_leave): Empty the stack.
54 2008-05-02 Rodrigo Kumpera <rkumpera@novell.com>
56 * class.c (mono_class_is_assignable_from): Variance
57 doesn't work between reference and value types. For example,
58 given type C<T+>, C<int32> is not assignable to C<object>.
59 Break the argument checking loop on first error.
61 2008-05-02 Atsushi Enomoto <atsushi@ximian.com>
63 * icall.c : base64_to_byte_array() needs some more strict
64 check for sequence of '=' characters. Patch by Santa
65 Marta (http://deee.g.hatena.ne.jp/santamarta).
67 Contributed under MIT/X11 license.
68 (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
70 2008-05-02 Jonathan Chambers <joncham@gmail.com>
72 * domain.c: Disable LoadLibrary support to fix Win32 build.
74 Code is contributed under MIT/X11 license.
76 2008-05-02 Zoltan Varga <vargaz@gmail.com>
78 * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
79 to help with cache behaviour.
81 2008-05-01 Miguel de Icaza <miguel@novell.com>
83 * appdomain.c (mono_domain_from_appdomain): Add new accessor
86 2008-05-01 Zoltan Varga <vargaz@gmail.com>
88 * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
90 2008-05-01 Dick Porter <dick@ximian.com>
92 * process.c (process_get_fileversion): Only pass 16 bits of
93 language ID to VerLanguageName. Fixes bug 381204.
95 2008-04-30 Rodrigo Kumpera <rkumpera@novell.com>
97 * verify.c (mono_method_verify): Fix the comparison
98 operator for code bounds check.
100 2008-04-30 Rodrigo Kumpera <rkumpera@novell.com>
102 * verify.c (mono_method_verify): Check the bounds of
103 all access of the code array.
105 2008-04-29 Kornél Pál <kornelpal@gmail.com>
107 * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
109 2008-04-28 Zoltan Varga <vargaz@gmail.com>
111 * image.c (mono_image_strong_name_position): Fix return value when the rva is
114 2008-04-28 Kornél Pál <kornelpal@gmail.com>
116 * loader.c (mono_get_method_from_token, mono_method_signature): Add
117 support for METHOD_IMPL_ATTRIBUTE_NATIVE.
118 * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
119 fixup main EXE images when using mono.exe for mixed-mode assembly support.
120 * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
122 * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
123 runtime initialization from metadata.
124 * assembly.c: Remove obsolete ceGetModuleFileNameA.
125 (mono_set_rootdir): Use mono_get_module_file_name.
126 (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
128 * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
129 * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
130 * image.c (mono_cli_rva_image_map): Use MonoImage instead of
131 MonoCLIImageInfo. Add support for module handles.
132 (load_cli_header): Update mono_cli_rva_image_map signature.
133 (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
134 (mono_image_strong_name_position): Use mono_cli_rva_image_map.
135 (mono_image_rva_map): Add support for module handles.
136 (mono_image_ensure_section_idx): Add support for module handles.
137 (mono_image_close): Add support for module handles.
138 (do_load_header): Add support for module handles.
139 (mono_image_open_from_module_handle): New function for internal use.
140 (mono_image_open_full): Load normal images using LoadLibrary on Windows.
141 (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
142 (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
144 (mono_image_fixup_vtable): New function for mixed-mode assembly support.
145 * image.h: Add mono_image_fixup_vtable.
146 * coree.c: New file for mscoree.dll functions and mixed-mode assembly
149 * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
150 unsupported native code.
151 (mono_marshal_set_callconv_from_modopt): New function splitted from
152 mono_marshal_get_managed_wrapper.
153 (mono_marshal_get_managed_wrapper): Use
154 mono_marshal_set_callconv_from_modopt.
155 (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
156 * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
157 * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
158 that results in a deadlock when the runtime is loaded in _CorDllMain.
159 * Makefile.am: Add coree.c and coree.h.
161 Contributed under MIT/X11 license.
163 2008-04-28 Mark Probst <mark.probst@gmail.com>
165 * generic-sharing.c: Search for type arguments in array element
168 2008-04-28 Mark Probst <mark.probst@gmail.com>
170 * class-internals.h, generic-sharing.c: New, small runtime generic context.
172 * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
174 * object.c: Don't setup the RGCTX when the vtable is created,
175 because we're setting it up lazily now.
177 2008-04-26 Zoltan Varga <vargaz@gmail.com>
179 * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix
182 2008-04-24 Rodrigo Kumpera <rkumpera@novell.com>
184 * verify.c (verify_class_for_overlapping_reference_fields):
185 If class is under fulltrust allow reference types to overllap
186 if they have the same RVA.
188 2008-04-24 Rodrigo Kumpera <rkumpera@novell.com>
190 * pedump.c: Added new flag valid-only, that makes the verifier
191 behaves just like --security=validil. It won't fail type load
192 due to unverifiable restrictions.
194 2008-04-23 Rodrigo Kumpera <rkumpera@novell.com>
196 * class-internals.h (struct MonoMethod): Added a verification_success
197 field to cache verifier executions. Reduced MonoMethod:slot size by
200 2008-04-23 Zoltan Varga <vargaz@gmail.com>
202 * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
203 instead of a 'vt' argument to save an indirection and to allow these to be used
205 (scan_vtype): New helper function to scan an area using a gc descriptor.
206 (mono_gc_wbarrier_value_copy): Implement this.
207 (handle_remset): Add support for REMSET_VTYPE.
208 (find_in_remset_loc): Ditto.
209 (mono_gc_base_init): Allow some debugging options to be controlled through the
210 use of the MONO_GC_DEBUG env variable.
211 (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
212 (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
214 2008-04-23 Martin Baulig <martin@ximian.com>
216 * domain.c (mono_domain_create): Move the call to
217 mono_debug_domain_create() down, after allocating the domain id.
219 2008-04-23 Rodrigo Kumpera <rkumpera@novell.com>
221 verify.c (verify_class_for_overlapping_reference_fields): Skip
222 static fields while verifying for overlapping fields as they
225 2008-04-23 Marek Habersack <mhabersack@novell.com>
227 * domain-internals.h: added a declaration of
228 mono_make_shadow_copy.
230 * assembly.c (mono_assembly_open_full): shadow copying of
231 assemblies moved to here, so that all the assemblies within the
232 application domain's private binary directories can be
233 processed. Fixes bug #380546
235 * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
236 mono_make_shadow_copy and made non-static. The decision whether
237 to shadow-copy an assembly is made based on its location - it's
238 copied if it's in one of the private application domain binary
239 directories and its different to the target file in the shadow
240 directory. Fixes bug #380546
242 2008-04-22 Zoltan Varga <vargaz@gmail.com>
244 * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
246 * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
249 * reflection.c (mono_image_create_token): Handle
250 Method/ConstructorOnTypeBuilderInst.
251 (resolve_object): Ditto.
252 (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
253 so it can be called from resolve_object. Also handle the case when the inflated
254 class already has its methods setup.
256 2008-04-21 Martin Baulig <martin@ximian.com>
258 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
260 2008-04-20 Geoff Norton <gnorton@novell.com>
262 * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
265 2008-04-15 Marek Habersack <mhabersack@novell.com>
267 * appdomain.c (try_load_from): if IOMAP is in effect, call the
268 portability API to look up the assembly file. Fixes behavior in
269 situations when the application has a bin/ directory, but the
270 assembly search patch refers to Bin/ (and thus the requested file
271 name is Bin/SomeLibrary.dll). Fixes bug #379888
273 2008-04-15 Rodrigo Kumpera <rkumpera@novell.com>
275 verify.c (mono_type_is_generic_argument): Extracted this check
276 from a dozen places to here.
278 verify.c: Fixed all issues related to boxing generic arguments
279 and their constraints.
281 2008-04-14 Rodrigo Kumpera <rkumpera@novell.com>
283 verify.c (mono_class_interface_implements_interface): Fix win32 build.
285 2008-04-14 Zoltan Varga <vargaz@gmail.com>
287 * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
288 isn't finished yet. Fixes #363447.
290 2008-04-13 Zoltan Varga <vargaz@gmail.com>
292 * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
295 2008-04-13 Jb Evain <jbevain@novell.com>
297 * domain.c: update the 2.1 profile versions.
298 Merged from the Moonlight 2 branch.
300 2008-04-12 Zoltan Varga <vargaz@gmail.com>
302 * assembly.c (mono_assembly_load_from_full): Do the check for loading other
303 mscorlibs for the non-refonly case as well.
305 * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
306 in mono_assembly_load_from_full (). Fixes #378924.
308 2008-04-11 Geoff Norton <gnorton@novell.com>
310 * icall.c: The global extern environ doesn't exist on Mac. We
311 need to call NSGetEnviron instead.
313 2008-04-10 Rodrigo Kumpera <rkumpera@novell.com>
315 verify.c: Add generic method constraint verification.
317 2008-04-10 Rodrigo Kumpera <rkumpera@novell.com>
319 class.c (mono_class_inflate_generic_method_full): Add a long
320 explanation to the is_mb_open hack. Remove the FIXME.
322 2008-04-10 Rodrigo Kumpera <rkumpera@novell.com>
324 * verify.c (mono_method_verify): Mark all unknown opcodes
325 as invalid. Mark jmp as unverifiable.
327 2008-04-10 Rodrigo Kumpera <rkumpera@novell.com>
329 * verify.c: Add code to do type constraint verification on class instances.
331 * verify.c (mono_verifier_verify_class): Use the type constraint
334 2008-04-10 Rodrigo Kumpera <rkumpera@novell.com>
336 * class.c (mono_class_get_field_default_value): Don't pass cindex
337 as hint to mono_metadata_get_constant_index. The local is not initialized
338 and should contain garbage most of the time. This could only work
341 2008-04-09 Rodrigo Kumpera <rkumpera@novell.com>
343 * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
345 2008-04-09 Rodrigo Kumpera <rkumpera@novell.com>
347 * class-internals.h: Add generic_param_token to MonoClass::sizes union.
349 * class.c (mono_class_from_generic_parameter): Save the token of the
350 generic param in MonoClass::sizes.generic_param_token.
352 * reflection.c (mono_custom_attrs_from_class): If the class type is
353 VAR or MVAR retrieve the attributes of the generic param.
355 2008-04-08 Rodrigo Kumpera <rkumpera@novell.com>
357 * class.c (mono_class_init): Do class verification if the verifier
360 2008-04-08 Rodrigo Kumpera <rkumpera@novell.com>
362 * verify-internal.h: Added mono_verifier_verify_class.
364 * verify.c: Added mono_verifier_verify_class. It checks for
365 classes with explicit layout that have overlapping reference fields.
367 * pedump.c: Init the verifier state prior to verification. Fixed
368 command line arguments.
370 2008-04-08 Rodrigo Kumpera <rkumpera@novell.com>
372 * Makefile.am: Added verify-internals.h, hopefully fix the build.
374 2008-04-08 Zoltan Varga <vargaz@gmail.com>
376 * verify-internals.h: Fix a warning.
378 2008-04-07 Rodrigo Kumpera <rkumpera@novell.com>
380 * verify-internals.h: New header with the verifier configuration
381 extracted from mini.c.
383 * verify.c: Implemented the new functions exported by verify-internals.h.
385 2008-04-07 Rodrigo Kumpera <rkumpera@novell.com>
387 * verify.c: Add proper verification of ckfinite.
389 2008-04-04 Rodrigo Kumpera <rkumpera@novell.com>
391 * verify.c (do_conversion): Improved error message to something
394 * verify.c (check_is_valid_type_for_field_ops): Fix to work
395 with primitive types.
397 2008-04-04 Rodrigo Kumpera <rkumpera@novell.com>
399 * verify.c: Added tail prefix checking. Marked icall
402 2008-04-04 Rodrigo Kumpera <rkumpera@novell.com>
404 * verify.c: Fix the detection of branches to the middle
407 2008-04-03 Rodrigo Kumpera <rkumpera@novell.com>
409 * verify.c: Implemented verification of volatile. and
410 unaligned. prefix. Check if a type is valid after retrieving it.
412 2008-04-01 Dick Porter <dick@ximian.com>
414 * process.c (process_get_fileversion): If there's no string block,
415 set the file language to en_US. Fixes the other new part of bug
418 2008-03-29 Rodrigo Kumpera <rkumpera@novell.com>
420 * class.c: New functions mono_method_can_access_field_full and
421 mono_method_can_access_method_full. They perform type visibility
424 * class-internal.h: Added exported functions.
426 * verify.c: Use new functions to implement proper visibility checks.
428 2008-03-29 Zoltan Varga <vargaz@gmail.com>
430 * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
432 2008-03-28 Dick Porter <dick@ximian.com>
434 * process.c (process_get_fileversion): Use the first language ID
435 we see, rather than insisting on an invariant language. Fixes bug
438 2008-03-28 Zoltan Varga <vargaz@gmail.com>
440 * reflection.c (calc_section_size): Use add_stream_zero to align the size of
441 the streams to fix reading of invalid memory later.
443 * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
446 2008-03-26 Zoltan Varga <vargaz@gmail.com>
448 * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
449 (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
451 2008-03-26 Massimiliano Mantione <massi@ximian.com>
452 * threads.h: Added MonoThreadManageCallback type and
453 mono_thread_set_manage_callback prototype
454 * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
455 (used to store the mono_thread_manage callback).
456 * threads.c: Added mono_thread_set_manage_callback, and handle
457 "MonoThread->manage_callback" in build_wait_tids.
459 2008-03-26 Dick Porter <dick@ximian.com>
461 * process.c (process_get_fileversion): Set FileVersionInfo strings
462 to Empty when the resource doesn't have the particular info.
465 2008-03-25 Rodrigo Kumpera <rkumpera@novell.com>
467 * verify.c (mono_method_verify): Proper prefix validation.
469 2008-03-25 Zoltan Varga <vargaz@gmail.com>
471 * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
472 itself in a separate argument instead of throwing them. Fixes #373448.
474 * appdomain.c: Bump corlib version.
476 2008-03-24 Rodrigo Kumpera <rkumpera@novell.com>
478 * verify.c: Implemented readonly prefix and verify controled mutability pointers.
480 2008-03-20 Kornél Pál <kornelpal@gmail.com>
482 * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
485 2008-03-20 Mark Probst <mark.probst@gmail.com>
487 * generic-sharing.c, class-internals.h: Code for putting
488 reflection types into the runtime generic context.
490 2008-03-19 Rodrigo Kumpera <rkumpera@novell.com>
492 * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
496 2008-03-17 Rodrigo Kumpera <rkumpera@novell.com>
498 * verify.c (VerifyContext): Added instruction prefix data to the struct.
500 * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
502 * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
504 * verify.c (do_cast): Let the result value keep the boxed status.
506 * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
508 2008-03-17 Jb Evain <jbevain@novell.com>
510 * reflection.c: when running on a 2.0 runtime, emit
511 unconditionally the #~ header version as 2.0, and the
512 CLI header version as 2.5, for symmetry's sake with csc.
514 2008-03-16 Zoltan Varga <vargaz@gmail.com>
516 * class.c: Remove the unused cache_interface_offsets stuff.
518 * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
519 profiler.c: Fix warnings.
521 2008-03-16 Mark Probst <mark.probst@gmail.com>
523 * generic-sharing.c, class-internals.h: Support for putting
524 methods into the runtime generic context.
526 2008-03-16 Zoltan Varga <vargaz@gmail.com>
528 * class.c (mono_class_setup_fields): Ignore calls made to this function for
529 classes which are generic instances of not-yet finished typebuilders. Fixes
532 * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
534 2008-03-15 Zoltan Varga <vargaz@gmail.com>
536 * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
538 * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
539 field, replace it with a hash table in MonoDynamicImage.
541 * reflection.c (inflate_mono_method): Access the generic definition object from
542 image->generic_def_objects instead of imethod->reflection_info.
544 * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto.
546 * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
548 * image.c (mono_image_close): Move the dynamic image freeing code to a separate
549 function in reflection.c so it is easier to keep in sync with the dynamic image
552 * reflection.c (mono_dynamic_image_free): New internal function, extracted from
555 2008-03-15 Mark Probst <mark.probst@gmail.com>
557 * class.c (mono_class_generic_sharing_enabled): Disable generic
558 sharing for all architectures except AMD64 and x86 to fix build.
560 2008-03-14 Rodrigo Kumpera <rkumpera@novell.com>
562 * verify.c: Use the generic definition MonoGenericContext when available.
563 Remove code for checking generics instance compatibility in favor of
564 mono_class_is_assignable_from.
566 2008-03-14 Mark Probst <mark.probst@gmail.com>
568 * marshal.c, marshal.h, metadata-internals.h, image.c,
569 wrapper-types.h: New wrapper for invoking a shared static method
570 without having to pass the runtime generic context argument.
572 2008-03-14 Rodrigo Kumpera <rkumpera@novell.com>
574 * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
576 2008-03-14 Zoltan Varga <vargaz@gmail.com>
578 * reflection.c (mono_image_get_field_on_inst_token): Add caching.
580 * reflection.c (mono_image_get_field_on_inst_token): New helper function to
581 create a token from a FieldOnTypeBuilderInst.
582 (mono_image_create_token): Handle FieldOnTypeBuilderInst.
583 (resolve_object): Ditto.
585 * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
586 mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
588 2008-03-14 Martin Baulig <martin@ximian.com>
590 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
592 * debug-mono-symfile.h
593 (MONO_SYMBOL_FILE_VERSION): Bump to 41.
594 (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
596 2008-03-10 Martin Baulig <martin@ximian.com>
598 * debug-mono-symfile.h
599 (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
600 `lexical_block_table_offset'.
601 (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
603 (MonoSymbolFile): Added `version'.
606 (MonoDebugLexicalBlockEntry): Removed.
607 (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
610 * mono-debug.c (mono_debug_add_method): Don't compute lexical
611 blocks here; the debugger now does this internally.
613 2008-02-27 Martin Baulig <martin@ximian.com>
615 * object.c (mono_runtime_exec_main): Call
616 `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
617 `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
619 2008-03-12 Rodrigo Kumpera <rkumpera@novell.com>
621 * verify.c (verify_type_compatibility_full): Allow native int to be converted
622 to native pointer in non-strict mode. Required to "(IntPtr)null" work.
624 2008-03-12 Rodrigo Kumpera <rkumpera@novell.com>
626 * verify.c (verify_ldftn_delegate): Accept a sealed type when using
627 ldftn with a virtual method.
629 2008-03-13 Geoff Norton <gnorton@novell.com>
631 * decimal.c: Only include memory.h if the platform has it.
633 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
635 * assembly.c, class.c, metadata-internals.h: make sure public key
636 tokesns are compared in a case-insensitive way. Also, all
637 the lookups in the GAC use a lowercase public key token
638 (gaacutil already does the lowercasing on install). Fixes
641 2008-03-11 Rodrigo Kumpera <rkumpera@novell.com>
643 * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
646 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
648 * image.c: when someone loads a mscorlib from a file, return the
649 currently loaded mscorlib (fixes bug #369253).
651 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
653 * class.c: handle types with no parents by forcing them to have
654 System.Object as a parent and marking them as broken (this currently
655 allows the first part of bug #369173 to work as well, likely because
656 we don't check for typeload exceptions everywhere yet).
658 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
660 * class.c: more complete check that types belong to corlib
661 (fixes second part of bug #369173).
663 2007-03-10 Bill Holmes <billholmes54@gmail.com>
665 * generic-sharing.c: Including glib.h for the MSVC builds to define
666 "inline" to "__inline" before including mono-membar.h.
668 * mono-perfcounters.c: Adding HAVE_SYS_TIME_H check for MSVC builds.
669 Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for
672 Contributed under MIT/X11 license.
674 2008-03-10 Rodrigo Kumpera <rkumpera@novell.com>
676 * verify.c (do_invoke_method): Remove return type validation.
678 * verify.c (do_ret): Do return type validation at return site instead of
681 2008-03-10 Rodrigo Kumpera <rkumpera@novell.com>
683 * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
685 * verify.c: Some todos cleaned and improved a few error messages.
687 2008-03-08 Zoltan Varga <vargaz@gmail.com>
689 * class.c (mono_class_setup_mono_type): Improve the test for corlib.
691 2008-03-07 Zoltan Varga <vargaz@gmail.com>
693 * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
694 system types correctly.
696 * exception.h exception.c (mono_exception_from_token_two_strings): New helper
699 2008-03-06 Zoltan Varga <vargaz@gmail.com>
701 * assembly.c (build_assembly_name): Fix a warning.
703 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
705 * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
706 the called function takes an object type argument. Fixes storing or
707 valuetypes across remoting as well as reducing memory usage.
708 * image.c, metadata-internals.h: remove now unused ldfld_remote and
709 stfld_remote wrapper caches.
711 2008-03-06 Zoltan Varga <vargaz@gmail.com>
713 * icall.c (mono_lookup_internal_call): Update the exception message when an icall
716 * reflection.c (mono_image_register_token): New helper function to save
717 a token->object mapping.
719 * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
722 * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
723 one dimension arrays. Fixes #367670.
724 (mono_reflection_get_type_internal): Ditto.
726 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
728 * marshal.c: mono_load_remote_field_new() always returns object.
729 so use the proper signature (fixes bug #366445).
731 2008-03-04 Zoltan Varga <vargaz@gmail.com>
733 * class-internals.h (MonoMethod): Remove unused uses_this flag,
734 add an 'inline_failure' flag instead.
736 2008-03-04 Mark Probst <mark.probst@gmail.com>
738 * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
739 with a new structure, MonoGenericJitInfo, in the MonoJitInfo. It
740 contains the location of "this", used for exception handling.
742 2008-03-04 Zoltan Varga <vargaz@gmail.com>
744 * class.c (mono_class_layout_fields): Set the min alignment of small structs to
745 their size on all platforms for perf reasons.
747 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
749 * reflection.h: Move mono_reflection_is_valid_dynamic_token to
752 * object-internal.h: Same.
754 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
756 * reflection.h: Fix the build I just broke.
758 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
760 * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
761 Test if a token is valid, this remove explicit usage of
762 MonoDynamicImage::tokens from the verifier code.
764 * reflection.h: Added mono_reflection_is_valid_dynamic_token.
766 * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
767 instead of direct access to MonoDynamicImage::tokens.
769 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
771 * verify.c (token_bounds_check): Fix the build I just broke.
773 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
775 * verify.c (token_bounds_check): Fix bounds check for dynamic images.
777 * verify.c (verifier_load_method): Fixed the errors message.
779 * verify.c (mono_method_verify): Fixed a debug message.
781 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
783 * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
784 mono-perfcounters.h, class-internals.h: support for predefined
785 writable counters, query of categories and counters, bugfixes.
787 2008-02-28 Rodrigo Kumpera <rkumpera@novell.com>
789 * verify.c (do_refanytype): Verify the refanytype opcode.
791 * verify.c (mono_method_verify): Use do_refanytype.
793 2008-02-28 Rodrigo Kumpera <rkumpera@novell.com>
795 * verify.c (do_mkrefany): Verify the mkrefany opcode.
797 * verify.c (mono_method_verify): Use do_mkrefany.
799 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
801 * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
802 mono-perfcounters.c, mono-perfcounters.h: basic performance counter
805 2008-02-27 Zoltan Varga <vargaz@gmail.com>
807 * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
808 the type load exception.
810 2008-02-27 Rodrigo Kumpera <rkumpera@novell.com>
812 * verify.c: Added a few FIXME for method signatures
814 * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
815 of mono_method_get_signature and get vararg call working. Removed unused
816 checks for return value.
818 * verify.c (do_refanyval): Verify the refanyval opcode.
820 * verify.c (mono_method_verify): Implemented verification of arglist and
823 2008-02-27 Zoltan Varga <vargaz@gmail.com>
825 * class.c (mono_class_setup_methods): Move the check for synchronized methods on
828 * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
829 it works for AOT as well.
831 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
833 * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
834 with mono_msec_ticks () which is monotonic and doesn't cause bugs when
835 the system time is adjusted.
837 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
839 * icall.c, icall-def.h: use the new time functions (fixes the
840 non-monotonic behaviour of TickCount).
842 2008-02-26 Zoltan Varga <vargaz@gmail.com>
844 * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
847 * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
848 cattr is not finished yet.
850 2008-02-25 Rodrigo Kumpera <rkumpera@novell.com>
852 * verify.c: Proper token validation for field, method and type.
854 2008-02-25 Rodrigo Kumpera <rkumpera@novell.com>
856 * loader.c (field_from_memberref): Generate a loader error if the type is not found.
858 * loader.c (method_from_memberref): Generate type load error instead of method missing
859 if the type is not found.
861 2008-02-23 Zoltan Varga <vargaz@gmail.com>
863 * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
864 some of the conversions caused the generation of a marshal directive exception.
866 2008-02-21 Rodrigo Kumpera <rkumpera@novell.com>
868 verify.c: Report which exception should be thrown by the JIT.
869 Added a lot of FIXME notes.
871 2008-02-22 Mark Probst <mark.probst@gmail.com>
873 * generic-sharing.c: Runtime generic context slots are not
874 instantiated on init anymore. Instead, provide function to do the
875 instantiating on demand.
877 * class-internals.h: Added vtable to runtime generic context.
878 Macros for encoding direct and indirect slot offsets in one
881 2008-02-21 Mark Probst <mark.probst@gmail.com>
883 * object.c, generic-sharing.c: Moved some generic sharing code
884 from object.c to generic-sharing.c.
886 * generic-sharing.c: Added support for extensible runtime generic
889 * metadata-internals.h: Two new hash tables in MonoImage for
890 extensible runtime generic context support.
892 * domain.c: Unregister generic vtables upon domain unloading.
894 * image.c: Destroy new hash tables upon image unloading.
896 * metadata.c: Unregister generic subclasses upon image unloading.
898 * class-internals.h: New data structure for runtime generic
899 context template. New fields in the runtime generic context for
902 * Makefile.am: Added generic-sharing.c.
904 2008-02-21 Rodrigo Kumpera <rkumpera@novell.com>
906 icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
907 there is a pending loader exception, raise it.
909 icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken):
912 icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken):
917 2008-02-20 Zoltan Varga <vargaz@gmail.com>
919 * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
921 * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
923 * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
924 ref-only requests for compatibility with MS.
926 2008-02-20 Raja R Harinath <harinath@hurrynot.org>
928 * reflection.c (mono_custom_attrs_from_method): Don't silently
929 return an empty list for generic method instances.
930 (mono_custom_attrs_from_param): Likewise.
932 2008-02-20 Rodrigo Kumpera <rkumpera@novell.com>
933 Raja R Harinath <harinath@hurrynot.org>
936 * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
937 * class.c (mono_class_inflate_generic_method_full): Initialize it
938 when a fully-open method is instantiated.
939 * metadata.c (inflated_method_equal, inflated_method_hash): Update
941 * reflection.c (inflate_mono_method): Don't create a temporary context.
943 2008-02-20 Raja R Harinath <harinath@hurrynot.org>
945 * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
946 Compute correct value, to prepare for imethod->reflection_info going away.
948 2008-02-19 Zoltan Varga <vargaz@gmail.com>
950 * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
952 2008-02-18 Rodrigo Kumpera <rkumpera@novell.com>
954 * verify.c: Implement skip visibility flag.
956 2008-02-18 Rodrigo Kumpera <rkumpera@novell.com>
958 * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
959 which contains an extra field to tell the kind of exception that should be thrown.
961 * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
963 2008-02-17 Raja R Harinath <harinath@hurrynot.org>
965 * loader.c (mono_method_get_param_names): Initialize 'klass' after
968 2008-02-11 Zoltan Varga <vargaz@gmail.com>
970 * class.c (mono_class_layout_fields): Set class->min_align for classes using
971 explicit layout as well. Fixes #360375.
973 2008-02-11 Geoff Norton <gnorton@novell.com>
975 * loader.c: Guard and dereference against inflated generic methods
977 2008-02-10 Gert Driesen <drieseng@users.sourceforge.net>
979 * class.c: Include Retargetable spec in assembly name.
980 * assembly.c: Always include PublicKeyToken spec in assembly name
981 (with value "null" if assembly is not signed), and include
983 * icall-def.h: Added icall for Assembly.get_fullname.
984 * icall.c: Added icall returning the fullname of an assembly.
986 2008-02-09 Zoltan Varga <vargaz@gmail.com>
988 * class.c (mono_class_setup_vtable_general): Add a missing call to
989 mono_class_setup_methods () which is needed in the AOT case.
991 2008-02-08 Rodrigo Kumpera <rkumpera@novell.com>
993 * verify.c (mono_type_get_stack_name): Added. Return the name for the
994 stack type of the given MonoType.
996 * verify.c (verify_type_compatibility_full): Handle the void type.
998 * verify.c (is_compatible_boxed_valuetype): Changed to fit the
999 way stack merging works.
1001 * verify.c (store_local): Improved verification message.
1003 * verify.c (do_branch_op): If the merging is invalid, the method
1004 is unverifiable and not invalid. Improved error message.
1006 * verify.c (merge_stacks): Properly merge a boxed valuetype and
1007 a reference type diferent than System.Object. Improved error
1010 2008-02-07 Rodrigo Kumpera <rkumpera@novell.com>
1012 * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
1014 * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
1015 type of an enum even if the argument is byref.
1017 * verify.c: Replace all explicit uses of enumtype and enum_basetype
1018 to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
1020 * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
1022 *verify.c (verify_type_compatibility_full): Make enum types
1023 compatible with their base types.
1025 * verify.c (is_compatible_boxed_valuetype): Added. Check if both
1026 types are compatible for the special case of a boxed valuetype and
1029 * verify.c (verify_stack_type_compatibility): The function
1030 is_compatible_boxed_valuetype was extracted from here.
1032 * verify.c (push_arg): Only set ctx->has_this_store if the method
1035 * verify.c (do_ldelem): Fixed a typo in an error message and added
1036 strict check for mixing int32 and native int as the array type
1039 * verify.c (merge_stacks): Consider boxed valuetypes in the
1040 compatibility checks.
1042 2008-02-07 Massimiliano Mantione <massi@ximian.com>
1043 * profiler.h: (MonoGCEvent): Added start-stop the world events.
1045 2008-02-06 Massimiliano Mantione <massi@ximian.com>
1046 *class.c: use_new_interface_vtable_code: renamed the env var to have
1047 a "MONO_" prefix, and fix the logic to enable it by default.
1049 2008-02-06 Massimiliano Mantione <massi@ximian.com>
1051 mono_class_setup_vtable_general: rewrote the way in which interface
1052 methods are added to vtables. Makes bug-77127.exe pass, and hopefully
1053 makes the code more maintainable.
1054 For now the old code is still there, and can be activated setting
1055 the env var "USE_NEW_INTERFACE_VTABLE_CODE".
1057 2008-02-06 Rodrigo Kumpera <rkumpera@novell.com>
1059 * verify.c: guarded some debug functions around and #ifdef.
1061 * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
1063 2008-02-06 Zoltan Varga <vargaz@gmail.com>
1065 * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
1066 changes for now since they seem to break too many things.
1068 2008-02-05 Mark Probst <mark.probst@gmail.com>
1070 * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
1071 mono_marshal_find_nonzero_bit_offset): Added macro and function
1072 for finding the byte- and bit-offset of a bitfield within a
1075 2008-02-05 Zoltan Varga <vargaz@gmail.com>
1077 * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
1078 (mono_marshal_get_struct_to_ptr): Ditto.
1080 * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of
1083 2008-02-03 Zoltan Varga <vargaz@gmail.com>
1085 * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
1086 between methods for non-corlib types.
1088 2008-02-02 Geoff Norton <gnorton@novell.com>
1090 * loader.c (mono_method_get_param_names): Populate the parameter name for
1091 generic parameters as well. (Fixes #342536)
1093 2008-01-31 Rodrigo Kumpera <rkumpera@novell.com>
1095 * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
1097 * verify.c (do_invoke_method): Fix for calling with byref structs.
1099 * verify.c (do_cast): push a boxed value type based on the type token and not
1102 2008-01-31 William Holmes <billholmes54@gmail.com>
1104 * process.c (process_module_string_read): Check the size returned form
1105 VerQueryValue to avoid out of memory exception.
1107 2008-01-30 Zoltan Varga <vargaz@gmail.com>
1109 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1110 Handle properly modules which are not in the moduleref table. Fixes
1113 2008-01-29 Zoltan Varga <vargaz@gmail.com>
1115 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
1116 the dynamic case which is now in managed code.
1117 (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
1119 * marshal.c (mono_string_to_bstr): Fix a warning.
1120 (init_com_provider_ms): Ditto.
1122 * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
1124 * exception.c (mono_get_exception_out_of_memory): New helper function.
1126 2008-01-28 Jonathan Chambers <joncham@gmail.com>
1128 * marshal.c: Add support for BSTR marshalling
1129 using other COM systems.
1131 Code is contributed under MIT/X11 license.
1133 2008-01-28 Rodrigo Kumpera <rkumpera@novell.com>
1135 * object.c (mono_runtime_invoke_array): reverted previous
1136 commit as it breaks the build.
1138 2008-01-28 Rodrigo Kumpera <rkumpera@novell.com>
1140 * object.c (mono_runtime_invoke_array): Verify arguments for
1141 invalid types. Fixes #348522.
1143 2008-01-28 Rodrigo Kumpera <rkumpera@novell.com>
1145 * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
1146 non-final virtual calls using call.
1148 * verify.c (do_invoke): fixed some TODOs.
1150 * verify.c (push_arg): set has_this_store for "ldarga 0".
1152 2008-01-27 Zoltan Varga <vargaz@gmail.com>
1154 * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
1155 which belong to an inflated class. Fixes #356531.
1157 2008-01-26 Robert Jordan <robertj@gmx.net>
1159 * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
1160 which resort to FindFirstFile when a certain error condition
1161 (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
1162 Code is contributed under MIT/X11 license.
1164 2008-01-24 Jonathan Chambers <joncham@gmail.com>
1166 * marshal.c (emit_marshal_string): Fix out string marshalling
1167 to use specified encoding. Fixes #323900.
1169 Code is contributed under MIT/X11 license.
1171 2008-01-24 Raja R Harinath <harinath@hurrynot.org>
1173 * class.c (mono_class_inflate_generic_method_full): Don't modify
1174 iresult->context after cache check.
1176 2008-01-23 Zoltan Varga <vargaz@gmail.com>
1178 * class.c (mono_class_inflate_generic_method_full): Change the
1179 struct assignments to memcpy for better visibility and add some comments.
1181 2008-01-23 Dick Porter <dick@ximian.com>
1183 * threads.c (mono_threads_set_shutting_down): Simplify shutdown
1184 procedure, and make it work on windows.
1186 2008-01-22 Zoltan Varga <vargaz@gmail.com>
1188 * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
1189 a MonoReflectionTypeBuilder since it is always of that type.
1191 * reflection.c (mono_type_get_object): Remove an unneccesary check.
1193 * reflection.c (mono_generic_class_get_object): Simplify this a bit.
1195 * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
1197 * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
1199 * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
1201 * reflection.c (mono_reflection_create_runtime_class): Remove already created
1202 instantiations from the type cache.
1204 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
1206 * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
1208 * verify.c (do_unbox_value): push a controled mutability managed pointer.
1210 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
1212 * verify.c (do_ldstr): added, verifies if the #US token is valid.
1214 * verify.c (mono_method_verify): removed old TODO
1216 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
1218 * verify.c (do_newobj): add visibility check.
1220 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
1222 * verify.c (do_load_function_ptr): add visibility check.
1224 2008-01-21 Massimiliano Mantione <massi@ximian.com>
1226 mono_generic_class_get_class: hook profiler events.
1227 mono_field_get_offset: added to support heap-shot in the new profiler.
1228 *class.h: exported mono_field_get_offset.
1230 mono_reflection_setup_internal_class: hook profiler events.
1232 2008-01-20 Zoltan Varga <vargaz@gmail.com>
1234 * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions'
1235 argument here too and use it to avoid checking for pending exceptions if
1238 2008-01-20 Gert Driesen <drieseng@users.sourceforge.net>
1240 * assembly.c (build_assembly_name): add arg for passing the assembly
1241 flags. Do not consider a PublicKey with value "null" valid.
1242 (mono_assembly_name_parse_full): added boolean argument that will be
1243 set if the assembly name contains a PublicKeyToken spec. Added support
1244 for the Retargetable spec for which only Yes or No are allowed as valid
1245 value. Consider assembly name invalid if Retargetable spec is set, but
1246 either version, culture or public key (token) are not specified.
1247 * metadata-internals.h: sync signature of mono_assembly_name_parse_full
1248 with implementation in assembly.c.
1249 * icall.c (fill_reflection_assembly_name): also copy assembly flags
1250 from MonoAssemblyName.
1251 (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
1252 introduced argument for mono_assembly_name_parse_full to know if the
1253 assembly name has a PublicKeyToken spec, and if it has instruct
1254 fill_reflection_assembly_name to use default value for keyToken (if
1255 PublicKeyToken is null).
1257 2008-01-18 Rodrigo Kumpera <rkumpera@novell.com>
1259 * verify.c (mono_method_verify): fixed ovf ops with
1260 float values. They are unverifiable now.
1262 2008-01-18 Rodrigo Kumpera <rkumpera@novell.com>
1264 * class.c (set_failure_from_loader_error): add BadImageException to the
1265 list of exceptions that can cause a type to fail to load.
1267 * class.c (mono_class_get_exception_for_failure): same.
1269 2008-01-17 Rodrigo Kumpera <rkumpera@novell.com>
1271 * verify.c (in_any_exception_block): added, check if offset
1272 is part of any exception handling clause.
1274 * verify.c (get_stack_type): added VAR and MVAR types.
1276 * verify.c (do_stobj): better error messages.
1278 * verify.c (do_cpobj): added, check cpobj.
1280 * verify.c (do_initobj): added, check initobj.
1282 * verify.c (do_sizeof): added, check sizeof.
1284 * verify.c (do_localloc): added, check localloc.
1286 * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
1288 2008-01-17 Zoltan Varga <vargaz@gmail.com>
1290 * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
1291 save_lmf/restore_lmf opcodes.
1293 * threads.c (mono_threads_install_notify_pending_exc): New function to
1294 install a callback notifying the JIT there is a pending exception on a thread.
1295 (mono_thread_request_interruption): Call the new callback.
1296 (mono_thread_get_and_clear_pending_exception): New function to return the
1297 exception pending on a thread.
1299 * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
1300 to turn off checking for pending exceptions.
1301 (mono_marshal_get_native_wrapper): Ditto.
1303 2008-01-16 Zoltan Varga <vargaz@gmail.com>
1305 * threads-types.h: Get rid of the unnecessary extern declarations.
1307 2008-01-16 Gert Driesen <drieseng@users.sourceforge.net>
1309 * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
1310 return field from parent class if not private.
1311 (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
1312 returns fields from parent class if they are not private.
1313 (method_nonpublic): added function to determine if a given method
1314 should be considered non-public. Returns false for private methods
1315 on parent class, and internal methods from parent on the 1.0 profile.
1316 (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
1317 use method_nonpublic function to determine whether method should be
1319 (property_accessor_public): use newly introduced method_nonpublic
1320 function to determine whether accessor is non-public.
1321 (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
1322 event from parent class if not private. Only return static event if
1323 Static flag is set, and only return static event from parent class if
1324 FlattenHierarchy flag is set.
1325 (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
1326 include non-private events from parent class.
1328 2008-01-16 Zoltan Varga <vargaz@gmail.com>
1330 * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
1333 2008-01-16 Wade Berrier <wberrier@novell.com>
1335 * security.c: Add assembly.h header to appease some warnings
1337 2008-01-16 Dick Porter <dick@ximian.com>
1339 * process.c (process_module_string_read): Remove trailing null
1342 2008-01-16 Mark Probst <mark.probst@gmail.com>
1344 * class-internals.h: A new data structure describing the layout of
1345 a runtime generic context (MonoRuntimeGenericContextTemplate).
1347 * metadata-internals.h: Added a hash table to MonoDomain that maps
1348 from open generic classes to their runtime generic context
1351 * object.c: Building of the runtime generic context, including
1352 proper handling of generic type arguments of superclasses.
1353 Building of the runtime generic context according to the template.
1355 2008-01-15 Zoltan Varga <vargaz@gmail.com>
1357 * class.c (mono_class_setup_fields): Set field.count for generic instances.
1360 * image.c (do_mono_image_open): Pass TRUE as last_exists to
1361 mono_portability_find_file (). Fixes #325466.
1362 (mono_image_get_public_key): Fix a warning.
1364 2008-01-14 Zoltan Varga <vargaz@gmail.com>
1366 * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
1368 (mono_class_from_name_case): Ditto.
1370 2008-01-13 Eyal Alaluf <eyala@mainsoft.com>
1372 * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
1373 common storage for the tables used in the System/NumberFormatter class.
1375 2008-01-13 Zoltan Varga <vargaz@gmail.com>
1377 * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
1379 2008-01-11 Rodrigo Kumpera <rkumpera@novell.com>
1381 * verify.c (get_boxable_mono_type): check if the token is valid.
1383 * verify.c (set_stack_value): changed to add an error if an
1384 invalid type is set on stack. Changed all callers due to signature change.
1386 * verify.c (do_stobj): implement stobj validation.
1388 2008-01-11 Zoltan Varga <vargaz@gmail.com>
1390 * reflection.c (reflection_methodbuilder_to_mono_method): No need to
1391 set container->is_method, it was set earlier.
1393 * metadata.c (type_in_image): Handle MVARs which belong to not finished
1396 * reflection.c (mono_reflection_initialize_generic_parameter): Set
1397 is_method of the generic container to TRUE for methods.
1399 2008-01-10 Zoltan Varga <vargaz@gmail.com>
1401 * metadata.c (type_in_image): Handle type parameters properly.
1403 * class-internals.h (MonoGenericParam): Add an 'image' argument to track
1404 memory ownership of this structure.
1406 2008-01-10 Rodrigo Kumpera <rkumpera@novell.com>
1408 * verify.c (get_boxable_mono_type): make typedref types been just
1409 unverifiable. check for void type.
1411 * verify.c (do_unbox_any): added, verify opcode unbox.any.
1413 * verify.c (do_load_function_ptr): accept method spec tokens.
1415 2008-01-10 Zoltan Varga <vargaz@gmail.com>
1417 * marshal.c (mono_class_native_size): Always set *align even if this is called
1420 2008-01-09 Zoltan Varga <vargaz@gmail.com>
1422 * verify.c (mono_verify_corlib): Remove this as it was not used and was
1425 2008-01-09 Rodrigo Kumpera <rkumpera@novell.com>
1427 * verify.c: removed some old unused tables. A huge bunch of small fixes
1428 to things found while testing the verifier with mono basic.
1430 * verify.c (dump_stack_value): dump null literal flag to.
1432 * verify.c (verify_type_compatibility_full): fix comparison
1433 for types that have a generic super type.
1435 * verify.c (verify_stack_type_compatibility): fix compatibility
1436 between null literals and reference types. fix compatibility between
1437 boxed valuetypes and object. fix corner case test for enums.
1439 * verify.c (do_cmp_op): proper verification of cgt.un in case
1442 * verify.c (do_invoke_method): fix error message.
1444 * verify.c (do_store_indirect
1446 * verify.c (check_is_valid_type_for_field_ops): proper verification
1447 of managed pointers to valuetypes and boxed valuetypes. proper verification
1450 * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
1451 allow token to be a reference type.
1453 * verify.c (do_cast): proper handling of boxes valuetypes.
1455 * verify.c (do_stelem): proper handling of storing a boxed valuetype
1458 * verify.c (mono_method_verify): pass the opcode to do_cmp_op
1459 to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
1460 fixed the decoding of unbox_any
1462 2008-01-08 Zoltan Varga <vargaz@gmail.com>
1464 * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
1466 2008-01-08 Rodrigo Kumpera <rkumpera@novell.com>
1468 * verify.c (do_newobj): do delegate verification.
1470 * verify.c (verify_delegate_compatibility): perform delegate
1473 * verify.c (verify_ldftn_delegate): perform tests related to
1476 * verify.c (mono_delegate_signature_equal): perform the
1477 slightly diferent signature comparison required by delegates.
1479 * metadata.c (mono_metadata_type_equal_full): added and exported
1480 as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
1481 allows signature only comparison.
1483 * metadata-internal.h (mono_metadata_type_equal_full): added and exported
1486 2008-01-07 Rodrigo Kumpera <rkumpera@novell.com>
1488 * verify.c: added a bunch of stack_slot_* functions to
1489 make access to stack slot type easier. This is required to
1490 allow optional flags, like null literal, boxed value and
1492 All access paths to IlStackDesc::stype have been changed
1493 to use these new funcions.
1494 Removed a bunch of unused functions and cleared all warnings.
1495 This patch introduces the usage of the this pointer and
1498 2008-01-07 Zoltan Varga <vargaz@gmail.com>
1500 * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
1502 2008-01-06 Zoltan Varga <vargaz@gmail.com>
1504 * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
1505 match managed version.
1507 * appdomain.c: Bump corlib version.
1509 * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
1512 2008-01-06 Gert Driesen <drieseng@users.sourceforge.net>
1514 * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
1515 Set public key token to zero-length byte array if assembly is not
1518 2008-01-05 Zoltan Varga <vargaz@gmail.com>
1520 * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
1521 writing a vtype array elem.
1523 2007-01-05 Gert Driesen <drieseng@users.sourceforge.net>
1525 * assembly.c (build_assembly_name): return FALSE if length of token is
1526 not 16 (if not "null").
1527 (mono_assembly_name_parse_full): return FALSE if value of version,
1528 culture, token or key is 0.
1529 * icall.c (fill_reflection_assembly_name): add boolean arguments to
1530 specify whether public key and public key token must be set to default
1531 value (zero-length byte array) if not available. Set versioncompat to
1532 SameMachine. If public key is available or the default is set, then
1534 (ves_icall_System_Reflection_Assembly_FillName): if no public key
1535 is available, use empty byte array as default value. On the 2.0
1536 profile, use default value for public key token if not set.
1537 (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
1538 profile, use default value for public key if not set. On the 2.0
1539 profile, use default value for public key token if not set.
1540 (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
1541 default values for public key and public key token.
1543 2008-01-05 Zoltan Varga <vargaz@gmail.com>
1545 * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
1546 field to keep it in synch with the managed object.
1548 * marshal.c (emit_marshal_object): Add support for byref marshalling of
1549 delegates. Fixes #351520.
1551 * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
1552 contains defined memory.
1554 * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
1556 * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
1558 * sgen-gc.c (check_consistency): New helper function to do a consistency check
1559 of the GC data structures.
1561 * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
1563 * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
1565 * object.c (mono_array_full_copy): Fix detection of whenever to use a write
1567 (mono_array_clone_in_domain): Ditto.
1568 (mono_array_clone_in_domain): Ditto.
1570 * threads.c (start_wrapper): Register the thread start argument as a GC root.
1571 (cache_culture): Use a write barrier.
1573 * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
1574 (ves_icall_get_property_info): Ditto.
1576 * object.h (MONO_STRUCT_SETREF): New macro.
1578 * class-internals.h (MonoStats): Add some GC statistics.
1580 * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
1582 2008-01-04 Andreas Faerber <andreas.faerber@web.de>
1584 * exception.c (mono_exception_from_name_two_strings):
1585 Break from loop after method is found.
1587 2008-01-04 Dick Porter <dick@ximian.com>
1589 * process.c (process_module_string_read): Rename variable to
1590 reflect correct usage, after fixing bug 345972.
1592 2008-01-03 Rodrigo Kumpera <rkumpera@novell.com>
1594 * verify.c (mono_type_create_fnptr_from_mono_method):
1595 created a MonoType function pointer instance to be used during
1596 verification. The verifier releases this memory at end.
1598 * verify.c (mono_method_is_constructor): extracted repeated
1599 checks for constructor into a single class.
1601 * verify.c (do_push_field): use new extracted method
1602 for constructor check.
1604 * verify.c (do_newobj): same.
1606 * verify.c (do_ldftn): renamed to do_load_function_ptr
1607 and make it verify ldvirtftn too.
1609 * verify.c (mono_method_verify: proper verification
1610 of ldvirtftn. release created MonoMethod instances.
1612 2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
1614 * verify.c (token_bounds_check): added.
1616 * verify.c (do_ldftn): added.
1618 * verify.c (mono_method_verify): proper verificartion of ldftn.
1620 2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
1622 * metadata.c (mono_metadata_decode_row): Assert if index is bigger
1623 than the table row count. It's the resposibility of the caller to
1624 make the bounds check and raise the correct error.
1626 * metadata.c (mono_metadata_decode_row_col): Same.
1628 * loader.c (mono_get_method_from_token): perform bounds check
1629 on token for methoddef table.
1631 2007-12-29 Miguel de Icaza <miguel@novell.com>
1634 (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
1635 assert into a negative result, the managed code already coped with
1638 Some folks on Windows reported this error.
1640 2007-12-28 Gert Driesen <drieseng@users.sourceforge.net>
1642 * appdomain.c: Bump corlib version.
1644 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
1645 CultureInfo.CreateCulture to create CultureInfo for name.
1646 (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
1647 create CultureInfo for name. Fixes bug #347174.
1649 2007-12-27 Rodrigo Kumpera <rkumpera@novell.com>
1651 * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
1654 * verify.c (is_valid_branch_instruction): allow branching to the
1655 first instruction of the protected block.
1657 * verify.c (is_valid_cmp_branch_instruction): same.
1659 * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
1660 avoid double initialization.
1662 * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
1663 detect which cases the eval stack should just be copied.
1665 * verify.c (mono_method_verify): check if the eval stack
1666 is empty when entering a protected block.
1668 2007-12-27 Rodrigo Kumpera <rkumpera@novell.com>
1670 * verify.c: added is_clause_in_range, is_clause_inside_range,
1671 is_clause_nested and verify_clause_relationship. They perform
1672 the verifications stated in P1 12.4.2.7.
1674 * verify.c (mono_method_verify): remove some unused variables,
1675 add the new exception clause checks, add instruction border
1676 checks for protected block start/end, improved some error
1677 messages and fixed a bug in the way invalid instruction access
1680 2007-12-26 Zoltan Varga <vargaz@gmail.com>
1682 * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
1683 from GC 7.0 if available.
1685 * object.c: Remove an unused define.
1687 * object.c (mono_class_compute_gc_descriptor): Fix a warning.
1689 * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
1691 * null-gc.c (mono_gc_make_descr_for_array): Implement.
1693 * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
1695 * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
1696 to take the same arguments as the other make_descr functions.
1698 * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
1700 * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
1703 * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
1706 * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc ()
1709 * boehm-gc.c (mono_gc_register_root): Fix a warning.
1711 * null-gc.c (mono_gc_register_root): Fix a warning.
1713 * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
1715 * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
1716 (mono_gc_base_init): Call GC_init ().
1718 * null-gc.c: Define mono_gc_register_root () as a no-op.
1720 * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
1722 2007-12-24 Rodrigo Kumpera <rkumpera@novell.com>
1724 * verify.c: add prototype for merge_stacks at top
1726 * verify.c (do_switch): added.
1728 * verify.c (merge_stacks): on some cases the stack merging
1729 was not happening properly. Unequal stack sizes at merge
1730 points should be invalid.
1732 * verify.c (mono_method_verify): added more debug info on stack state.
1733 verify switch properly.
1735 2007-12-24 Zoltan Varga <vargaz@gmail.com>
1737 * method-builder.h: New file, moved the mono_mb_ declarations here from
1740 * boehm-gc.c marshal.c: Include method-builder.h.
1742 * marshal.c: Use mono_mb_emit_branch_label () in a few places.
1744 * marshal.c: Remove some code which is now in method-builder.c.
1746 2007-12-23 Zoltan Varga <vargaz@gmail.com>
1748 * method-builder.c: New file, extraction of the method builder functionality
1751 * marshal.c: Move the mb functions into method-builder.c.
1753 * marshal.h marshal.c: Export some mono_mb_... functions.
1755 * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
1757 * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
1760 * class.c (mono_class_get_full): Check the token type in the dynamic case.
1762 * loader.c (mono_field_from_token): Ditto.
1764 * loader.c (mono_get_method_from_token): Change the check so it checks memberref
1767 * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
1770 * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
1771 a helper function for setting it.
1773 * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
1776 * assembly.c: Significally simplify code now that referenced assemblies are
1777 loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
1779 * threads.h: Don't include the internal threads-types.h header file. Fixes
1782 2007-12-21 Rodrigo Kumpera <rkumpera@novell.com>
1784 * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
1785 instructions that were target of branches or are at protected block boundaries.
1787 * verify.c (in_same_block): handle filter clauses.
1789 * verify.c (is_valid_branch_instruction): added. checks the target of
1790 instructions br or brtrue/false.
1792 * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
1793 binary branch instructions such as beq and bge.
1795 * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
1796 and made it pin the instruction as been part of the exception block.
1798 * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
1801 * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
1804 * verify.c (do_ret): ret from a protected block is unverifiable and
1807 * verify.c (do_static_branch): verify br and br.s instructions.
1809 * verify.c (merge_stacks): add extra param to support detection
1810 of branches in the middle of instructions.
1812 * verify.c (mono_method_verify): verify branches and exception blocks
1813 that target the middle of instructions. Proper verification of br and br.s.
1815 2007-12-21 Zoltan Varga <vargaz@gmail.com>
1817 * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
1818 skip_visibility field.
1819 (reflection_methodbuilder_from_dynamic_method): Ditto.
1821 * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
1822 registrations. Fixes #348193.
1824 * threads.h: Move the internal mono_thread_get_pending_exception () to
1825 threads-types.h and rename it to mono_thread_get_undeniable_exception ().
1827 2007-12-20 Zoltan Varga <vargaz@gmail.com>
1829 * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
1830 icall registration. Fixes #348193.
1832 * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
1833 for corlib classes into object. Fixes #349621.
1835 2007-12-20 Gert Driesen <drieseng@users.sourceforge.net>
1837 * icall.c (property_accessor_nonpublic): new function to determine
1838 whether an accessor allows a property to be considered non-public.
1839 Returns false for private accessor(s) from parent class, and internal
1840 accessor(s) from parent on 2.0 profile (and higher).
1841 (ves_icall_Type_GetPropertiesByName): Use newly introduced function
1842 to determine whether property should be included if NonPublic flag
1843 is set. Fixes bug #349078.
1845 2007-12-20 Rodrigo Kumpera <rkumpera@novell.com>
1847 * verify.c (init_stack_with_value): added.
1849 * verify.c (mono_method_verify): extracted common
1850 code for exception initialization into init_stack_with_value.
1852 * verify.c (mono_method_verify): initialize the exception
1853 for handler clauses as well.
1855 * verify.c (mono_method_verify): fix the exception clause
1856 ordering rules, it should use handler end offset and not
1859 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
1861 * rawbuffer.c: remove useless warning.
1863 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
1865 * threads.h, threads-types.h: move functions to the correct header
1868 2007-12-19 Rodrigo Kumpera <rkumpera@novell.com>
1870 * verify.c (mono_method_verify): proper verification
1871 of exception handling clauses ranges and fallthru in
1872 and out of protected blocks.
1874 2007-12-19 Rodrigo Kumpera <rkumpera@novell.com>
1876 * verify.c (mono_method_verify): fixed compilation issue.
1878 2007-12-19 Rodrigo Kumpera <rkumpera@novell.com>
1880 * verify.c (mono_method_verify): a printf slipped in, changed
1881 to use verifier debug macro.
1883 2007-12-18 Rodrigo Kumpera <rkumpera@novell.com>
1885 * verify.c (is_correct_leave): check for filter clauses.
1887 * verify.c (do_filter): added.
1889 * verify.c (mono_method_verify): property verification of leave.
1892 2007-12-18 Mark Probst <mark.probst@gmail.com>
1894 * threads.c: Disable calls to _wapi_thread_signal_self() to fix
1895 Win32 build, until we figure out how to do the proper thing on
1898 2007-12-17 Zoltan Varga <vargaz@gmail.com>
1900 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
1901 by the previous patch.
1903 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
1904 the assembly resolve handler for refonly assemblies.
1906 2007-12-17 Mark Probst <mark.probst@gmail.com>
1908 * threads.c, thread-types.h, icall.c: New shutdown safeguards.
1909 Make sure only one thread is allowed to commence shutdown, and
1910 don't allow new threads to be started once shutdown is in
1913 2007-12-14 Rodrigo Kumpera <rkumpera@novell.com>
1915 * verify.c (is_correct_endfilter): added.
1917 * verify.c (is_unverifiable_endfilter): added.
1919 * verify.c (do_endfilter): added.
1921 * verify.c (mono_method_verify): property verification of endfilter
1922 and fixed a corner case or endfinally.
1924 2007-12-13 Rodrigo Kumpera <rkumpera@novell.com>
1926 * verify.h: new flags to support fail fast of unverifiable code and
1927 do non-strict verification. Non-strict verification is required to
1928 have MS runtime compatibility. There are a huge amount of unverifiable
1929 code that it accepts as verifiable. The strict mode verifies the code
1931 Non-strict mode will be required in cases where code needs to be
1932 accepted as verifiable but fails under strict mode.
1934 * pedump.c: added support to fail fast and non-strict verification.
1936 * verify.c: added support for both fail fast and non-strict verification.
1938 2007-12-12 Rodrigo Kumpera <rkumpera@novell.com>
1940 * verify.c (is_correct_endfinally): added.
1942 * verify.c (mono_method_verify): property verification of endfinally.
1944 2007-12-11 Rodrigo Kumpera <rkumpera@novell.com>
1946 * verify.c (in_any_block): check for filter clauses.
1948 * verify.c (is_correct_rethrow): added.
1950 * verify.c (mono_method_verify): property verification of rethrow.
1952 * metadata.h: added MONO_OFFSET_IN_FILTER macro.
1954 2007-12-11 Rodrigo Kumpera <rkumpera@novell.com>
1956 * verify.c (do_throw): added.
1958 * verify.c (mono_method_verify): property verification of throw
1960 2007-12-11 Zoltan Varga <vargaz@gmail.com>
1962 * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
1963 assemblies. Fixes #346425.
1965 2007-12-10 Zoltan Varga <vargaz@gmail.com>
1967 * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
1970 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
1972 * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
1973 prevent asserts when this is called with a token which might not be valid.
1975 * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
1976 lookup_dynamic_token_class with valid_token == FALSE.
1978 * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
1980 * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
1982 * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1984 2007-12-10 Mark Probst <mark.probst@gmail.com>
1986 * gc.c: Don't delay threadpool thread finalization unless Mono is
1989 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1991 * threads.c: turn an assert into a non-fatal warning.
1993 2007-12-09 Robert Jordan <robertj@gmx.net>
1995 * icall.c (GetVirtualMethod): Add missing argument validation.
1997 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
1999 * verify.c (do_cast): added.
2001 * verify.c (mono_method_verify): property verification of castclass and isinst.
2004 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
2006 * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
2008 * verify.c (do_stelem): added.
2010 * verify.c (mono_method_verify): property verification of stelem.X.
2012 2007-12-07 Mark Probst <mark.probst@gmail.com>
2014 * class.c, class-internals.h: Introduce an environment variable
2015 (MONO_GENERIC_SHARING) through which the extent of generic code
2016 sharing can be controlled (share all classes, share only corlib
2017 classes, or share nothing).
2019 * object.c: Only create runtime generic context for classes for
2020 which sharing is enabled.
2022 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
2024 * verify.c (do_ldelem): refactor it to work with ldelem.any.
2026 * verify.c (mono_method_verify): property verification of ldelem.any.
2028 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
2030 * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
2031 added ldelem.X opcodes.
2033 * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
2035 * verify.c: proper verification of ldelem.X
2037 2007-12-06 Zoltan Varga <vargaz@gmail.com>
2039 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
2041 2007-12-05 Rodrigo Kumpera <rkumpera@novell.com>
2043 * verify.c (mono_method_verify): null literal requires special handling,
2044 the value pushed on stack need to be flagged as so.
2046 * verify.c (do_ldelema): Verify ldelema properly.
2048 2007-12-05 Rodrigo Kumpera <rkumpera@novell.com>
2050 * verify.c: Verify ldlen properly.
2052 2007-12-05 Zoltan Varga <vargaz@gmail.com>
2054 * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
2055 to the target object's type. Fixes #346160.
2057 2007-12-05 Dick Porter <dick@ximian.com>
2059 * threadpool.c (socket_io_add_poll): Asynchronous connect() on
2060 Solaris needs the same workaround as BSD-derived systems. Fixes
2061 bug 323524, patch by Burkhard Linke
2062 <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
2064 2007-12-04 Gert Driesen <drieseng@users.sourceforge.net>
2066 * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
2067 handle to use when error dialog is shown; otherwise, update mask
2068 to show no error dialog when an error occurs.
2070 2007-12-03 Zoltan Varga <vargaz@gmail.com>
2072 * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
2074 * class.c (mono_class_get_field_default_value): New helper function to initialize
2075 field->def_type and field->data.
2077 2007-11-30 Zoltan Varga <vargaz@gmail.com>
2079 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
2082 * object.c (mono_runtime_create_delegate_trampoline): New helper function.
2084 * marshal.c: Avoid depending on delegate->method_info being set.
2086 * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
2088 * object.c (mono_delegate_ctor): Set delegate->method.
2090 * object-internals.h (struct _MonoDelegate): Add 'method' field.
2092 * appdomain.c: Bump corlib version.
2094 2007-11-27 Raja R Harinath <harinath@gmail.com>
2096 * metadata.c (mono_generic_inst_equal_full): Short-circuit
2097 equality check if we're comparing canonicalized MonoGenericInsts.
2099 2007-11-23 Zoltan Varga <vargaz@gmail.com>
2101 * class.c (generic_array_methods): Call mono_class_setup_methods () before
2102 accessing class->methods.
2104 2007-11-22 Dick Porter <dick@ximian.com>
2106 * threads.c: Ensure that the synch_cs is set before trying to use
2109 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
2111 * profiler.c: r89126 broke the statistial profiler, unbreak.
2113 2007-11-22 Martin Baulig <martin@ximian.com>
2115 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
2118 (mono_debug_debugger_version): Bump to 3.
2119 (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
2120 -> mono_debugger_class_initialized().
2122 * mono-debug-debugger.c
2123 (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
2126 (mono_debugger_start_class_init_func): Removed.
2127 (mono_debugger_class_loaded_methods_func): Added.
2128 (mono_class_setup_methods): Call it here.
2130 2007-11-22 Martin Baulig <martin@ximian.com>
2133 (mono_debug_add_delegate_trampoline): New public method.
2134 (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
2137 (MonoSymbolTable): Added `global_data_table'.
2138 (MonoDebuggerTypeKind): Removed.
2140 2007-11-21 Zoltan Varga <vargaz@gmail.com>
2142 * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
2145 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2147 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2149 * object.c: some fields don't have a valid rva: ignore them (bug #343083).
2151 2007-11-20 Martin Baulig <martin@ximian.com>
2153 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
2155 * mono-debug-debugger.c
2156 (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
2157 (mono_debugger_remove_breakpoint): Likewise.
2158 (mono_debugger_check_breakpoints): Likewise.
2159 (mono_debugger_register_class_init_callback): New public method.
2160 (mono_debugger_remove_class_init_callback): Likewise.
2161 (mono_debugger_add_type): Likewise.
2163 * mono-debug-debugger.h
2164 (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
2166 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
2168 * class.c: more interface implementations needed for the
2169 array enumerator (fixes bug #341112).
2171 2007-11-18 Gert Driesen <drieseng@users.sourceforge.net>
2173 * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
2174 fix ParamName of ArgumentNullExceptions.
2176 2007-11-17 Miguel de Icaza <miguel@novell.com>
2178 * reflection.c (mono_reflection_encode_sighelper): Generate the
2179 modopts and modreqs. I have a useless test that crashes monodis,
2180 but that shows the code working.
2182 2007-11-17 Zoltan Varga <vargaz@gmail.com>
2184 * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
2185 (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
2187 2007-11-15 Dick Porter <dick@ximian.com>
2189 * threads.c (ves_icall_System_Threading_Thread_Join_internal):
2190 When joining a thread, it's the thread that's calling Join that
2191 gets WaitSleepJoin state not the target. Fixes the standalone
2192 test case in bug 334740, and hopefully the whole bug too.
2194 2007-11-15 Dick Porter <dick@ximian.com>
2196 * process.c: Read file version info from the files pointed at by
2197 process modules, not the current process. Fixes bug 315969.
2199 Use windows typedef names in some places to fix warnings on the
2202 2007-11-15 Mark Probst <mark.probst@gmail.com>
2204 * image.c, metadata-internals.h: Added a generic_class_cache hash
2205 to MonoImage for looking up generic classes when sharing generics.
2207 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2209 * sgen-gc.c: warning cleanups.
2211 2007-11-15 Zoltan Varga <vargaz@gmail.com>
2213 * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
2214 inherited properties.
2216 2007-11-14 Mark Probst <mark.probst@gmail.com>
2218 * object.c, class-internals.h: Added more information to the
2219 runtime generic context.
2221 2007-11-13 Zoltan Varga <vargaz@gmail.com>
2223 * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
2224 instead of just the target method. Generalize the abstract method handling to
2225 handle any non-static method.
2227 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
2228 mono_marshal_get_delegate_invoke () signature change.
2230 2007-11-13 Mark Probst <mark.probst@gmail.com>
2232 * class.c, class-internals.h: Made
2233 mono_type_get_basic_type_from_generic () public. Fixed member
2234 access check for shared generics.
2236 * loader.c: Don't insert field into field cache if it's part of a
2237 non-inflated generic class.
2239 * domain.c, domain-internals.h: The generic sharing context is now
2240 part of the jit info data structure. Added two accessor
2243 2007-11-12 Zoltan Varga <vargaz@gmail.com>
2245 * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
2246 the array Get/Set/Address methods, since the JIT inlines them.
2248 * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
2250 * image.c (mono_image_close): Free runtime_invoke_direct_cache.
2251 (mono_image_init): Initialize runtime_invoke_direct_cache.
2253 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
2254 mono_marshal_get_delegate_invoke signature change.
2256 * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
2257 an additional argument. Add support for invoking abstract methods.
2259 * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
2261 * image.c (mono_image_close): Free delegate_abstract_invoke_cache.
2263 2007-11-09 Mark Probst <mark.probst@gmail.com>
2265 * class.c: Do field layout for open generic classes as well.
2267 2007-11-09 Mark Probst <mark.probst@gmail.com>
2269 * gc.c, gc-internal.h: Don't finalize threadpool threads with
2270 other objects, because the threadpool is still around. Put them
2271 in a list instead and after finalizing all other objects in the
2272 root domain shut down the thread pool and then finalize the
2273 threads. Fixes bug #337383.
2275 * threads.c, thread-types.h: New mono_thread_create_internal()
2276 function for marking a thread with the threadpool flag before it
2277 started. Set synch_cs to NULL after freeing it.
2279 * threadpool.c: Mark threadpool threads before they start.
2281 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2283 * reflection.h, reflection.c: don't export random functions
2284 and lazy load dbnull and missing objects.
2286 2007-11-07 Jonathan Chambers <joncham@gmail.com>
2288 * class.c: Initialize COM types if COM interfaces
2289 are present (not just COM classes).
2291 Code is contributed under MIT/X11 license.
2293 2007-11-07 Massimiliano Mantione <massi@ximian.com>
2295 create_dynamic_mono_image: hook module profiler events (dynamic case).
2296 mono_image_basic_init: hook assembly profiler events (dynamic case).
2298 2007-11-07 Massimiliano Mantione <massi@ximian.com>
2300 simple_appdomain_unload: completely terminate the profiler
2301 instead of only processing the statistical samples.
2302 simple_shutdown: make sure this is really called exactly once,
2303 even in multithreaded applications, and always listen to
2305 * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
2306 here, the "[un]load" functions will do it.
2307 Fixes bugs #333791 and #325261.
2309 2007-11-07 Geoff Norton <gnorton@novell.com>
2311 * socket-io.c: Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
2312 rather than depend on __APPLE__.
2314 2007-11-07 Mark Probst <mark.probst@gmail.com>
2316 * icall.c: Safety checks in InitializeArray. Fixes bug #324535.
2318 2007-11-06 Sebastien Pouliot <sebastien@ximian.com>
2320 * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
2321 UTF16 MonoString. Fix the crash from bug #335488
2323 2007-11-06 Sebastien Pouliot <sebastien@ximian.com>
2325 * marshal.c: Correct (for non-Win32 OS) length != size in
2326 mono_string_from_bstr. Fix #339530.
2328 2007-11-06 Geoff Norton <gnorton@novell.com>
2330 * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
2333 2007-11-05 Kornél Pál <kornelpal@gmail.com>
2335 * process.c: Added run-time GetProcessId API detection for Windows.
2337 2007-11-04 Miguel de Icaza <miguel@novell.com>
2339 * reflection.c (mono_param_get_objects): If a parameter has the
2340 attribute [System.Runtime.InteropServices.Optional] we should
2341 set the DefaultValue of the ParameterInfo to be
2342 System.Reflection.Missing instead of DBNull.
2346 (mono_get_reflection_missing_object): New method,
2347 returns the System.Reflection.Missing.Value singleton instance.
2349 2007-11-03 Atsushi Enomoto <atsushi@ximian.com>
2351 * culture-info-table.h : regenerated.
2353 2007-11-02 Jonathan Chambers <joncham@gmail.com>
2355 * icall.c: Use GetEnvironmentStrings on windows
2356 so we are using the same environment block as
2357 GetEnvironmentVariable/SetEnvironmentVariable. Fixes
2360 Code is contributed under MIT/X11 license.
2362 2007-10-31 Martin Baulig <martin@ximian.com>
2364 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
2366 * mono-debug-debugger.h
2367 (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
2369 2007-10-30 Zoltan Varga <vargaz@gmail.com>
2371 * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated
2374 2007-10-30 Atsushi Enomoto <atsushi@ximian.com>
2376 * culture-info-table.h : regenerated.
2378 2007-10-30 Robert Jordan <robertj@gmx.net>
2380 * icall-def.h, icall.c:
2381 Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
2383 Code is contributed under MIT/X11 license.
2385 2007-10-29 Zoltan Varga <vargaz@gmail.com>
2387 * class.c (mono_class_setup_vtable): Find the inflated methods in the
2388 inflated class instead of inflating them again.
2390 * class.c (mono_class_setup_vtable): Inflate the override methods in the
2393 * class.c (mono_generic_class_get_class): Set klass->property.count as well.
2394 Call setup_supertypes () after klass->parent is set.
2395 (mono_class_setup_properties): Enable this to work on dynamic generic classes.
2397 * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
2398 for inflated instances of not yet created dynamic generic classes.
2399 (ctorbuilder_to_mono_method): Handle the case when this is called multiple
2400 times from inflated_method.
2401 (methodbuilder_to_mono_method): Ditto.
2403 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2405 * gc.c: code cleanup and removed old untested option of not creating the
2408 2007-10-29 Zoltan Varga <vargaz@gmail.com>
2410 * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
2411 creating a jump trampoline for dynamic methods.
2413 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
2415 * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
2416 generic TypeBuilders when called from another method of the same type (bug #335131).
2419 2007-10-27 Zoltan Varga <vargaz@gmail.com>
2421 * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
2422 doesn't seem to work perfectly.
2424 * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
2425 called multiple times.
2426 (methodbuilder_to_mono_method): Ditto.
2427 (resolve_object): Inflate FieldBuilder's.
2429 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2431 * string-icalls.c, string-icalls.h, appdomain.c: patch from
2432 Tyler Larson <mono-devel@tlarson.com> to fix the handling of
2433 RemoveEmptyEntries in the string.Split implementation (bug #322375).
2435 2007-10-26 Dick Porter <dick@ximian.com>
2437 * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
2438 Thread initialisation changes
2440 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
2442 * verify.c: fix compatibility check between arrays and System.Array
2444 2007-10-26 Zoltan Varga <vargaz@gmail.com>
2446 * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
2449 2007-10-25 Zoltan Varga <vargaz@gmail.com>
2451 * object.c (mono_value_box): Use typed allocation here.
2453 2007-10-23 Zoltan Varga <vargaz@gmail.com>
2455 * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
2456 trampoline instead of compiling the method right away.
2458 * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
2460 2007-10-21 Zoltan Varga <vargaz@gmail.com>
2462 * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
2463 related fields for dynamic classes. Fixes #334493.
2465 2007-10-20 Zoltan Varga <vargaz@gmail.com>
2467 * class.c (mono_generic_class_get_class): Set klass->field.count as well.
2469 * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
2471 * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
2472 (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
2474 * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
2476 * reflection.c (create_generic_typespec): Initialize klass->generic_container
2478 (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
2480 2007-10-18 Jonathan Chambers <joncham@gmail.com>
2482 * marshal.c: Use correct key when removing item
2485 Code is contributed under MIT/X11 license.
2487 2007-10-17 William Holmes <billholmes54@gmail.com>
2489 *marshal.c: Adding a case to marshal booleans to U1
2491 Code is contributed under MIT/X11 license.
2493 2007-10-18 Zoltan Varga <vargaz@gmail.com>
2495 * class.c (mono_class_from_name): Search the modules compromising dynamic
2496 assemblies. Fixes #331601.
2498 2007-10-16 Zoltan Varga <vargaz@gmail.com>
2500 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
2501 exception if the type name contains an assembly component. Fixes #334203.
2503 * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
2504 modules inside dynamic assemblies. Fixes #334200.
2506 * reflection.c: Set image->public_key and image->public_key_length;
2508 * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
2511 * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.
2513 2007-10-16 Mark Probst <mark.probst@gmail.com>
2515 * metadata.c: Implemented correct comparing of generic classes.
2516 An inflated generic class can be equal to a non-inflated one if it
2517 is inflated with generic type variables as type arguments. Fixes
2520 2007-10-15 Dick Porter <dick@ximian.com>
2522 * monitor.c (mono_monitor_try_enter_internal): Set thread state to
2523 WaitSleepJoin while it is waiting to acquire a lock. Fixes bug
2526 * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
2527 instead of a monitor lock. This means that monitor_try_enter and
2528 co can set the thread state safely.
2529 (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
2530 thread_interrupt_requested, so interrupt actually works.
2532 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
2533 ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
2534 state accessor function
2536 2007-10-15 Martin Baulig <martin@ximian.com>
2539 (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
2540 the debugger with the current runtime.
2542 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
2544 * object.c, object-internals.h: added the ability to set a single
2545 trampoline for all the slots in a vtable.
2547 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2549 * marshal.c: deal with a possible race condition during multicast
2550 delegate invocation.
2552 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2554 * class.c: ensure value type methods don't have the synchronized
2557 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
2559 * string-icalls.c, string-icalls.h: reverted unapproved patch that
2562 2007-10-11 Joel Reed <joelwreed@comcast.com>
2564 * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
2565 to take an options parameter so that empty entries can be removed during
2566 the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
2568 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2570 * marshal.c: make sure we don't store the signature from a dynamic
2571 method into the runtime invoke cache (bug #327189).
2573 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2575 * marshal.c: make sure the wrapper methods are properly initialized.
2577 2007-10-11 Mark Probst <mark.probst@gmail.com>
2579 * metadata.c, metadata-internals.h: Generalized
2580 mono_type_stack_size() to mono_type_stack_size_internal() which
2581 takes an additional argument specifying whether it allows open
2584 2007-10-10 Rodrigo Kumpera <rkumpera@novell.com>
2586 * verify.c (do_invoke_method): handle typedbyref params
2587 correctly and check for unverifiable return values.
2589 * verify.c (do_newobj): fix a warning.
2591 2007-10-09 Rodrigo Kumpera <rkumpera@novell.com>
2593 * verify.c: don't tread typedbyref as allways unverifable,
2594 so uses, like (ld/st)loc.0 are valid. verify for the cases
2595 that it matters, like boxing related operations.
2597 2007-10-09 Rodrigo Kumpera <rkumpera@novell.com>
2599 * verify.c: add verification of the newobj opcode. verification
2600 of delegate instantation still missing due ldftn and virldftn not
2601 pushing the function type on stack
2603 2007-10-08 Mark Probst <mark.probst@gmail.com>
2605 * class-internals.h: Runtime generic context data structure
2608 * object.c: Initialization of runtime generic context at runtime
2609 vtable creation time.
2611 2007-10-08 Massimiliano Mantione <massi@ximian.com>
2612 * class.c (mono_class_create_from_typedef,
2613 mono_class_from_generic_parameter, mono_ptr_class_get,
2614 mono_fnptr_class_get, mono_bounded_array_class_get)
2615 * domain.c (mono_domain_create, mono_domain_free)
2616 * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
2617 * image.c (do_mono_image_load, mono_image_close):
2618 Hooked up load-unload profiler events.
2620 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
2622 * domain.c: track statistics about the actual amount of native code
2625 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
2627 * class.c: the valuetype enumerators don't have the additional
2628 supertypes interfaces.
2630 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2632 * class.c: need more interfaces setup for the IEnumerator<T>
2633 object created for arrays (tests/ienumerator-interfaces.2.cs).
2635 2007-10-05 Zoltan Varga <vargaz@gmail.com>
2637 * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
2639 2007-10-05 Alp Toker <alp@atoker.com>
2641 * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
2642 rather than the underlying type. Based on a patch by Ben Maurer. Fixes
2645 2007-10-04 Rodrigo Kumpera <rkumpera@novell.com>
2647 * verify.c (verify_type_compatibility_full): verification of
2648 compatibility improved, validates correctly non-strict checks between
2649 native int and I4 types different than (unsigned)int32.
2651 * verify.c (do_store_indirect): added, do all verification of
2654 * verify.c (get_load_indirect_mono_type): renamed to
2655 get_indirect_op_mono_type, as it now returns the MonoType for
2656 ldind.X and stind.X opcodes.
2658 2007-10-04 Rodrigo Kumpera <rkumpera@novell.com>
2660 * reflection.c: Fix the encoding of generic type definition for
2663 * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
2664 mono_image_typedef_or_ref but allows to specify if typespec lookups should
2665 be made. Typespec check is done prior to typeref cache lookup.
2667 * reflection.c (mono_image_typedef_or_ref): now just delegate to
2668 mono_image_typedef_or_ref_full.
2670 * reflection.c (encode_generic_class): encode the generic class
2671 directly instead of calling encode_type.
2673 * reflection.c (encode_type): encode the generic type definition
2674 MonoClass as a generic instantiation.
2676 * reflection.c (create_typespec): cache typespec tokens in
2677 the assembly->typespec cache. Don't create typespec for a generic
2678 instance MonoClass. Create typespec for the generic type defintion.
2680 * reflection.c (create_generic_typespec): encode the generic
2681 class directly instead of calling encode_type.
2683 * reflection.c (mono_image_create_token): encode the generic
2684 type definition not using a typespec for MonoType instances.
2687 2007-10-04 Raja R Harinath <rharinath@novell.com>
2690 * class.c (mono_image_init_name_cache): Don't return nested
2691 'protected internal' classes.
2692 (mono_class_from_name_case): Likewise.
2694 2007-10-04 Atsushi Enomoto <atsushi@ximian.com>
2696 * icall-def.h, icall.c : get_bundled_machine_config() is now the
2697 common function used by both DefaultConfig in System.dll and
2698 InternalConfigurationHost in System.Configuration.dll.
2700 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2702 * class.c: automatically add to vectors only a few essential explicit
2703 generic interfaces. The rest of the interfaces that arrays should
2704 provide are currently implicitly added (but still not lazily, see the
2705 design in the discussion of bug#325495 for the details of what is
2706 needed for that). Additionally, implicit interfaces are assigned the
2707 same vtable slot as the explicit interfaces (as they are compatible):
2708 this enables huge memory savings since we don't need to instantiate
2709 as many memthods and as large vtables anymore. Also, Since
2710 GetEnumerator<T> returns an instance of a type that is required to
2711 support a similarly large set of interfaces as arrays, we add
2712 implicit interfaces and interface offset sharing support to those
2713 types, too. This change adds all the required interfaces so that
2714 the anonarray.cs test case in the bug report works (we don't add
2715 all the interfaces to arrays of arrays 3-level deep and more because
2716 of the memory requirements explained in the bug and since they are much
2717 less common: the lazy-loading support will enabled them to work, too).
2719 2007-10-02 Rodrigo Kumpera <rkumpera@novell.com>
2721 * verify.c (merge_stacks): major clean up, all type compatibility
2722 checks are done by verify_type_compatibility. This fix my earlier lack
2723 of understanding of the CLR type system and merge_stacks no longer looks
2726 * verify.c: fixed some bad spelling.
2728 2007-10-02 Rodrigo Kumpera <rkumpera@novell.com>
2730 * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
2731 a given stack slock.
2733 * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
2734 verify_type_compatibility_full. This removed a near indentical function and fixed
2735 handling of Int32 and IntPtr across all opcodes.
2737 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2739 * class.c: only vectors have the additional generic interfaces.
2741 2007-10-01 Jonathan Chambers <joncham@gmail.com>
2743 * mono-config.c: Use g_strcasecmp instead of
2744 strcasecmp like everywhere else to fix
2745 compilation with MSVC.
2747 Code is contributed under MIT/X11 license.
2749 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2751 * object.c, object-internals.h: refactored the IMT code to enable
2752 building a single slot at a time and lazily creating the IMT trampolines
2755 2007-09-29 Zoltan Varga <vargaz@gmail.com>
2757 * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
2759 * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
2762 2007-09-29 Raja R Harinath <harinath@gmail.com>
2764 * loader.c (method_from_methodspec): Rearrange to avoid
2765 un-necessary exposition. Don't assert out if the method's
2766 declaring type is a generic type definition.
2768 2007-09-28 Martin Baulig <martin@ximian.com>
2770 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
2772 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
2774 * class-internals.h: optimize field layout of MonoClass to
2775 requires less cachelines at runtime and save a few bytes on 64 bit
2778 2007-09-28 Jb Evain <jbevain@novell.com>
2780 * reflection.c: when encoding type names in custom attributes,
2781 if the type is a closed generic type, its generic arguments
2782 have to be serialized as AssemblyQualifiedName, so that when
2783 they are deserialized, it's possible to re-create them properly.
2787 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2789 * object.c, class-internals.h: added delegate-creation counter.
2791 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
2793 * class.c: cleanup of the code that synthetizes interfaces for
2794 arrays in 2.0: saves quit a bit of corlib mempool memory.
2795 Code to fix bug #325495 ifdeffed out for now until the issues
2796 with memory usage and O(n^2) behaviour are fixed.
2798 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2800 * marshal.c: when possible, do not duplicate the name of the methods
2801 in the method builder and in the generated MonoMethod.
2803 2007-09-27 Rodrigo Kumpera <rkumpera@novell.com>
2804 * verify.c: added support for type checking ldind_* opcodes.
2806 2007-09-27 Rodrigo Kumpera <rkumpera@novell.com>
2808 * class-internals.h (struct _MonoGenericClass): new field is_tb_open
2809 which is used to distinguish the fully open instantiation of a TypeBuilder
2810 with the rest. This temporary hack is required to restore the property that
2811 the fully open instantiation is the same type of the generic type definition.
2813 * class-internals.h (mono_generic_class_is_generic_type_definition):
2814 new function as part of the internal API.
2816 * class.c (inflate_generic_type): return NULL when the generic inst is
2817 fully open. The fully open generic type is now the same as the generic type
2818 definition for non TypeBuilder types.
2820 * class.c (mono_generic_class_get_class): removed assert since it is
2821 no longer valid, gklass->cached_class can point to the generic type definition.
2823 * class.c (mono_generic_class_is_generic_type_definition): new.
2825 * metadata.c (mono_generic_class_hash): added is_tb_open field
2826 to the hash calculation.
2828 * metadata.c (free_generic_class): if the generic class is associated
2829 with the generic type definition, its field will come from the mempool and
2832 * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
2833 new, this function identifies the corner case of a TypeBuilder fully open
2836 * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
2837 for lookup. Set gclass->cached_class to be the container class in case of
2838 the fully open instantiation of non TypeBuilder types.
2840 * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
2841 to compare generic classes.
2843 * reflection.c (method_encode_methodspec): remove assert that
2846 * reflection.c (mono_reflection_generic_class_initialize): add
2847 an aditional assert to ensure the proper type is used.
2849 2007-09-26 Rodrigo Kumpera <rkumpera@novell.com>
2851 * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
2854 2007-09-25 Rodrigo Kumpera <rkumpera@novell.com>
2856 * verify.c (push_arg): Fixed support for ldarga
2857 * verify.c (set_stack_value): Removed superfluous parameter, fixed the
2858 MonoType used as first arg in case of instance calls.
2860 2007-09-25 Rodrigo Kumpera <rkumpera@novell.com>
2862 * verify.c: Support for verifying VAR and MVAR types,
2864 2007-09-25 Zoltan Varga <vargaz@gmail.com>
2866 * icall.c (ves_icall_get_property_info): Set the reflected type of the
2867 accessors correctly.
2869 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
2871 * threads.c: support OSX and other systems in
2872 mono_thread_get_stack_bounds (bug #328026).
2874 2007-09-25 Martin Baulig <martin@ximian.com>
2877 (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
2879 2007-09-24 Martin Baulig <martin@ximian.com>
2882 (MonoDebugClassEntry): Moved the definition of this struct into
2883 mono-debug.c to make it private.
2886 (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
2887 type table per symbol file, we don't need to store the symfile id
2890 2007-09-24 Martin Baulig <martin@ximian.com>
2892 Create one type table per symbol file, since a `MonoClass *' gets
2893 invalid when its image is unloaded.
2895 * mono-debug.h (MonoSymbolTable): Removed `type_table'.
2896 (MonoDebugHandle): Added `type_table'.
2898 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
2900 * mempool.c, mempool.h: added mono_mempool_new_size () API
2901 to be able to specify a smaller initial size for the pool.
2902 Adjusted the code to slowly increase pool size before using
2903 the previous default size.
2904 * image.c: use a small initial size for image mempools.
2906 2007-09-23 Zoltan Varga <vargaz@gmail.com>
2908 * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
2911 * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal):
2912 Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
2914 2007-09-22 Zoltan Varga <vargaz@gmail.com>
2916 * metadata.c (mono_type_create_from_typespec): Remove an invalid
2917 free. Fixes #327438.
2919 2007-09-21 Raja R Harinath <harinath@gmail.com>
2921 * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
2922 generic instantiations, etc.
2923 <MONO_TYPE_ARRAY>: Likewise.
2925 2007-09-21 Martin Baulig <martin@ximian.com>
2927 * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
2928 these structs were never defined.
2929 (MonoDebugHandle): Removed the `_priv' field, it was never used.
2931 2007-09-21 Martin Baulig <martin@ximian.com>
2933 * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
2935 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
2937 * image.c: removed the guid hash tables: we can get the same info
2938 without the additional memory usage hit (partially fixes also bug #327052).
2940 2007-09-10 Massimiliano Mantione <massi@ximian.com>
2942 * profiler.h, profiler-private.h, profiler.c: add a new profiler
2943 event to handle unloading methods. After the event is called, the
2944 corresponding MonoMethod* must be considered invalid.
2945 * loader.c (mono_free_method): call the new mono_profiler_method_free
2948 2007-09-20 Mark Probst <mark.probst@gmail.com>
2950 * domain-internals.h: New flag in MonoJitInfo which marks shared
2951 generic methods. New hash table (shared_generics_hash) in
2952 MonoDomain to keep track of shared generic methods. Prototypes
2953 for functions to register and lookup shared generic methods.
2955 * domain.c: Support for registering and looking up shared generic
2956 methods via a hash table (shared_generics_hash) in MonoDomain.
2958 * class-internals.h: New exception to signal failure of shared
2959 compilation of a generic method. New counters for generics
2960 sharing in MonoStats.
2962 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
2964 * image.c, metadata-internals.h: don't keep a file descriptor open
2965 for loaded assemblies (bug#325988).
2967 2007-09-19 Raja R Harinath <rharinath@novell.com>
2969 * metadata.c (signature_in_image): New. Carve out of type_in_image.
2970 (ginst_in_image, gclass_in_image): Simplify. Change signature to
2971 use the corresponding datatypes.
2972 (type_in_image): Update to changes.
2973 (CleanForImageUserData): Simplify.
2974 (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
2975 Avoid quadratic behaviour in handling the "stolen" list by
2976 separating the filter predicate out, and by prepending the stolen
2977 items rather than appending them.
2978 (steal_ginst_in_image): Likewise.
2979 (mono_metadata_clean_for_image): Update to changes.
2981 2007-09-19 Martin Baulig <martin@ximian.com>
2983 * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
2985 2007-09-19 Martin Baulig <martin@ximian.com>
2987 * mono-debug.c (mono_debug_cleanup): Don't call
2988 mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
2990 2007-09-19 Raja R Harinath <harinath@gmail.com>
2992 Fix crash on 'make run-test' in mcs/errors
2993 * metadata.c (type_in_image): New. Carve out of ginst_in_image.
2994 Avoid more potential allocations in mono_class_from_mono_type.
2995 (ginst_in_image): Update to changes.
2996 (gclass_in_image): Rearrange slightly.
2998 2007-09-18 Zoltan Varga <vargaz@gmail.com>
3000 * class.c (mono_class_init): Move the code that sets up class->methods to
3001 mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
3003 * metadata.c (mono_metadata_get_inflated_signature): New function to return a
3004 canonical instance of an inflated generic signature.
3005 (mono_type_create_from_typespec): Remove an invalid free.
3007 * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.
3009 2007-09-18 Marek Habersack <mhabersack@novell.com>
3011 * domain-internals.h: added a declaration of the
3012 mono_assembly_load_full_nosearch internal function.
3014 * assembly.c (mono_assembly_load_with_partial_name): use
3015 mono_try_assembly_resolve return value properly.
3016 (mono_assembly_load_full_nosearch): copied the function body from
3017 mono_assembly_load_full, without the code to invoke assembly
3019 (mono_assembly_load_full): calls the above new function and if the
3020 assembly is not resolved, invokes the search hooks.
3022 * appdomain.c (mono_runtime_init): restore the global postload
3023 assembly search handlers.
3025 2007-09-18 Zoltan Varga <vargaz@gmail.com>
3027 * class.c (mono_class_init): Make sure class->methods and class->properties
3028 are never NULL in the generics case.
3030 * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
3032 2007-09-17 Zoltan Varga <vargaz@gmail.com>
3034 * metadata.c (free_generic_class): Disable some code to fix the build.
3036 * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
3038 * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
3039 from the image mempool.
3041 * metadata.c (free_generic_class): Free more data from the inflated class.
3043 * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
3045 * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
3047 (mono_type_create_from_typespec): Ditto.
3049 * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
3050 MonoImage to the caller.
3051 (mono_init_internal): Save the opened image in a global variable.
3052 (mono_cleanup): Close the image opened in get_runtimes_from_exe.
3054 * reflection.c (resolve_object): Fix a leak.
3056 * metadata.c: Fix the freeing of data in the generics caches.
3058 * metadata.c (free_generic_inst): Comment this out to fix the build.
3059 (free_generic_class): Ditto.
3061 * metadata.c: Free cached generic methods, instantinations and classes when
3062 they are removed from the caches.
3063 (mono_metadata_free_type): Free the type itself.
3065 * class.c: Free the result of mono_class_inflate_generic_type () in a few
3068 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
3070 * boehm-gc.c: restrict managed allocs to __thread supporting
3073 2007-09-16 Zoltan Varga <vargaz@gmail.com>
3075 * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
3076 (mono_generic_class_get_class): Fix a leak.
3078 * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
3079 mono_metadata_free_type ().
3080 (mono_metadata_inflate_generic_inst): Fix a leak.
3082 2007-09-14 Zoltan Varga <vargaz@gmail.com>
3084 * mono-debug.c (free_header_data): Fix a leak missed earlier.
3086 * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
3089 * mono-debug.c (mono_debug_close_image): Fix call to
3090 g_hash_table_remove ().
3092 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
3094 * icall-def.h: redirect all the string ctor to the managed
3095 CreateString () methods.
3096 * string-icalls.c, string-icalls.h: removed dead code for string
3099 2007-09-14 Zoltan Varga <vargaz@gmail.com>
3101 * mono-debug.c: Fix memory leaks.
3103 2007-09-14 Jonathan Chambers <joncham@gmail.com>
3105 * threads-types.h: Implement mono_hazard_pointer_set and
3106 mono_hazard_pointer_clear macros using do/while(0) to fix
3107 compilation with MSVC.
3109 Code is contributed under MIT/X11 license.
3111 2007-09-14 Zoltan Varga <vargaz@gmail.com>
3113 * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
3114 -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
3116 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3118 * icall-def.h, string-icalls.c: get rid of old, no longer used, string
3121 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3123 * boehm-gc.c, gc-internal.h, object.c: allow strings to be
3124 managed-code allocated as well.
3126 2007-09-13 Zoltan Varga <vargaz@gmail.com>
3128 * class.c (mono_class_is_assignable_from): Add support for generic variance.
3130 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
3132 * boehm-gc.c: fixed the build after the AOT changes.
3134 2007-09-13 Zoltan Varga <vargaz@gmail.com>
3136 * wrapper-types.h: Add an ALLOC wrapper type.
3138 * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
3139 reference managed allocator methods.
3141 2007-09-12 Marek Safar <marek.safar@gmail.com>
3143 * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
3144 of Type array and not MonoType, a fix suggested by Hari.
3146 2007-09-12 Jonathan Chambers <joncham@gmail.com>
3148 * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
3149 and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
3151 Code is contributed under MIT/X11 license.
3153 2007-09-10 Massimiliano Mantione <massi@ximian.com>
3155 * domain.c, object.c, mono-config.c, object-internals.h: Fixed #82416.
3157 2007-09-12 Marek Habersack <mhabersack@novell.com>
3159 * image.c (do_mono_image_open): if assembly file fails to open and
3160 MONO_IOMAP is in effect, try to find the path in a
3161 case-insensitive way.
3163 * appdomain.c (mono_runtime_init): do not install postload hooks -
3164 tests show that MS.NET doesn't use anything of that sort to
3165 trigger the AppDomain.AssemblyResolve event.
3166 (mono_try_assembly_resolve): renamed from try_assembly_resolve and
3168 (mono_runtime_init): init portability helpers here.
3170 * assembly.c (mono_assembly_load_with_partial_name): if other
3171 attempts fail, trigger the AppDomain.AssemblyResolve event handler
3172 to resolve the assembly.
3174 * domain-internals.h: added mono_try_assembly_resolve and marked
3177 2007-09-11 Jb Evain <jbevain@novell.com>
3179 * object-internals.h (MonoReflectionDynamicMethod): add
3180 a `MonoReflectionType *owner` field. The owner is used
3182 (mono_reflection_create_dynamic_method): use the owner of the dynamic
3183 method as the class declaring the dynamic method.
3184 (reflection_methodbuilder_from_dynamic_method): copy the owner of the
3185 dynamic method to the declaring type of the methodbuilder.
3187 2007-09-11 Mark Probst <mark.probst@gmail.com>
3189 * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
3190 rules for calling methods via reflection.
3192 2007-09-11 Zoltan Varga <vargaz@gmail.com>
3194 * reflection.c (resolve_object): Add support for MonoGenericClass.
3197 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
3199 * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
3200 provide a managed method that does fast allocations without needing
3201 a managed->unmanaged transition. Boehm GC implementation currently
3202 enabled for ptrfree objects on sane architectures.
3204 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
3206 * marshal.c, marshal.h: exported a couple of useful functions and
3207 added mono_mb_get_label () to easily handle backward branches.
3209 2007-09-10 Zoltan Varga <vargaz@gmail.com>
3211 * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
3213 2007-09-10 Massimiliano Mantione <massi@ximian.com>
3215 * loader.c (find_method): Fixed the regression introduced while
3218 2007-09-09 Zoltan Varga <vargaz@gmail.com>
3220 * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
3223 * class.c loader.c metadata.c object.c class-internals.h object-internals.h
3224 icall.c reflection.c: Pass a MonoGenericContext argument to
3225 mono_lookup_dynamic_token ().
3227 * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
3230 2007-09-09 Robert Jordan <robertj@gmx.net>
3232 * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
3233 for generic methods.
3235 * object.c (mono_object_get_virtual_method): Handle generic methods.
3238 Code is contributed under MIT/X11 license.
3240 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
3242 * image.c: fix locking in mono_image_load_file_for_image ().
3244 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
3246 * reflection.c, icall.c, icall-def.h: the methodinfos name field is
3247 used only as a cache: added an icall to fill it.
3249 2007-09-16 Rodrigo Kumpera <rkumpera@novell.com>
3251 * reflection.h: exposed mono_reflection_free_type_info
3252 * reflection.c (mono_reflection_get_type_internal): type_args is always freed
3253 since mono_reflection_bind_generic_parameters makes a copy of it.
3254 * reflection.c (free_type_info): subinfos should be freed.
3255 * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and
3257 * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
3258 replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
3259 this fixes #82695 and #81726.
3262 2007-09-03 Atsushi Enomoto <atsushi@ximian.com>
3264 * process.h, process.c: added support for user profile/info in
3265 ProcessStartInfo. For now only Windows works.
3267 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
3269 * metadata.c: consider the generic arguments when comparing
3270 signatures (bug #82614).
3272 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
3274 * cil-coff.h, image.c: updated assembly loader to cope with the
3275 PE32+ 64 bit file format.
3277 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
3279 * assembly.c, class.c, domain.c, loader.c: remove useless
3280 inclusion of cil-coff.h.
3282 2007-08-29 Jonathan Chambers <joncham@gmail.com>
3284 * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
3285 if interface is marked with CoClassAttribute.
3287 Code is contributed under MIT/X11 license.
3289 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
3291 * sgen-gc.c: ensure no object from the to space is copied again or finalized
3292 if it's seen twice in major collections.
3294 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
3296 * sgen-gc.c: big objects are not copied to the gray area, but they
3297 need to be considered for scanning, too, if they are brought alive
3298 by an object ready for finalizations or a survived one.
3300 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3302 * sgen-gc.c: properly account the number of disappearing links when
3305 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
3307 * sgen-gc.c: share the code to scan the registered roots between the
3308 different types of collections.
3310 2007-08-28 Zoltan Varga <vargaz@gmail.com>
3312 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
3314 2007-08-28 Zoltan Varga <vargaz@gmail.com>
3316 * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
3317 class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
3319 2007-08-28 Mark Probst <mark.probst@gmail.com>
3321 * security-manager.c (mono_security_manager_get_methods):
3322 LinkDemandSecurityException now has 2 arguments instead of 3.
3324 2007-08-27 Zoltan Varga <vargaz@gmail.com>
3326 * class.c (mono_class_layout_fields): Only do the struct alignment hack on
3327 platforms which need it.
3329 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
3331 * sgen-gc.c: unregister thread data structures with a pthread_key_t
3334 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
3336 * threads.c: free the thread static data on thread exit.
3338 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
3340 * class.c: walk the hierarchy to find the generic definition for
3341 a class (fixes runtime part of bug #82498).
3343 2007-08-24 Zoltan Varga <vargaz@gmail.com>
3345 * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
3348 * image.c (mono_image_close): Here. Hopefully fixes #82510.
3350 2007-08-24 Mark Probst <mark.probst@gmail.com>
3352 * monodiet.c (handle_cattrs): Fixed a custom attr leak.
3354 2007-08-24 Robert Jordan <robertj@gmx.net>
3356 * appdomain.c: don't perform the ':'->';' substitution on Win32.
3358 2007-08-24 Jb Evain <jbevain@novell.com>
3360 * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
3363 2007-08-24 Mark Probst <mark.probst@gmail.com>
3365 * threads.c: Make sure a thread gets cleaned up only once. Fixes
3368 2007-08-24 Zoltan Varga <vargaz@gmail.com>
3370 * assembly.c: Fix a warning.
3372 2007-08-23 Marek Habersack <mhabersack@novell.com>
3374 * appdomain.c: parse the <runtime> section looking for the probing
3375 element with the 'privatePath' attribute, which sets additional
3376 directories in which the runtime should look for assemblies.
3378 2007-08-23 Robert Jordan <robertj@gmx.net>
3380 * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
3383 2007-08-23 Martin Baulig <martin@ximian.com>
3385 * mono-debug.[ch]: Rename mono_debug_init_corlib() into
3386 _mono_debug_init_corlib() and remove it from the header file.
3388 2007-08-23 Martin Baulig <martin@ximian.com>
3390 * mono-debug-debugger.c
3391 (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
3392 don't notify the debugger about it.
3394 * mono-debug-debugger.h
3395 (MonoDebuggerEvent): Removed `THREAD_ABORT'.
3397 2007-08-23 Robert Jordan <robertj@gmx.net>
3399 * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
3400 Code is contributed under MIT/X11 license.
3402 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
3404 * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
3406 2007-08-22 Martin Baulig <martin@ximian.com>
3408 * mono-debug.c: Store debugging info on a per-domain basis and
3409 free it on domain unload. Add support for unloading symbol files.
3412 (MonoDebugList): New typedef.
3414 - add `data_tables and `type_table'.
3415 - replace 'symbol_files' and `num_symbol_files' with a
3417 (mono_debug_data_table): Removed.
3418 (mono_debug_list_add): New public function.
3419 (mono_debug_list_remove): New public function.
3420 (mono_debug_init_1): Renamed into mono_debug_init_corlib().
3421 (mono_debug_init_2_memory): Renamed into
3422 mono_debug_open_image_from_memory().
3423 (mono_debug_close_image): New public function.
3424 (mono_debug_domain_create): Likewise.
3425 (mono_debug_domain_unload): Likewise.
3426 (MONO_DEBUGGER_VERSION): Bump to 60.
3428 * mono-debug-debugger.h
3429 (MonoDebuggerEvent):
3430 - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
3431 - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
3432 - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
3433 - rename `THREAD_CREATED' and `THREAD_EXITED' into
3434 `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
3435 - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
3437 (mono_debugger_add_symbol_file): Removed.
3438 (mono_debugger_add_type): Removed.
3439 (mono_debugger_lookup_type): Removed.
3440 (mono_debugger_lookup_assembly): Removed.
3443 (mono_domain_create): Call mono_debug_domain_create().
3444 (mono_init_internal): Call mono_debug_init_corlib().
3447 (mono_assembly_close): Call mono_debug_close_image().
3449 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
3451 * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
3454 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
3456 * sgen-gc.c: ensure section->pin_queue_end is initialized
3457 correctly when non pinning objects in the section have been found.
3459 2007-08-22 Marek Habersack <mhabersack@novell.com>
3461 * appdomain.c (set_domain_search_path): cope with PrivateBinPath
3462 containing a list of directories separated by ':'. MSDN docs say
3463 the directories should be separated with ';'. Part of a bugfix for
3466 2007-08-21 Rodrigo Kumpera <rkumpera@novell.com>
3468 * class.c (mono_type_retrieve_from_typespec) : fixed the return type
3469 it should MonoType and not MonoClass.
3471 2007-08-21 Atsushi Enomoto <atsushi@ximian.com>
3473 * culture-info-table.h : regenerated.
3475 2007-08-20 William Holmes <billholmes54@gmail.com>
3477 *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
3478 to call ReplaceFile Kernel32 on windows or in io-layer.
3479 *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
3480 *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
3481 as an internal call.
3483 Code is contributed under MIT/X11 license.
3485 2007-08-20 Jb Evain <jbevain@novell.com>
3487 * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
3488 and MONO_EXCEPTION_FIELD_ACCESS.
3490 * debug-helpers.[c|h]: new mono_field_full_name function.
3492 2007-08-20 Mark Probst <mark.probst@gmail.com>
3494 * class.c: Removed class_security_level() and moved it to
3495 security-core-clr.c.
3497 * security-core-clr.c, security-core-clr.h: class_security_level()
3498 is now public and renamed to mono_security_core_clr_class_level().
3499 It also looks for security attributes in the classes a class is
3502 2007-08-20 Mark Probst <mark.probst@gmail.com>
3504 * security-core-clr.c, security-core-clr.h: CoreCLR security
3507 * Makefile.am: Added security-core-clr.[ch].
3509 * security-manager.c, security-manager.h: Functions and enum for
3510 setting and getting the security mode.
3512 * class.c: CoreCLR security checks.
3514 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
3516 * icall-def.h, process.c, process.h: implemented icall to get
3517 user/system processor times.
3519 2007-08-17 Mark Probst <mark.probst@gmail.com>
3521 * domain.c, threads.c, class-internals.h, domain-internals.h: New
3522 reader-lock-free jit_info_table.
3524 2007-08-17 Zoltan Varga <vargaz@gmail.com>
3526 * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
3528 * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.
3530 * object-internals.h (MonoException): Add missing _data member.
3532 2007-08-08 Massimiliano Mantione <massi@ximian.com>
3534 * loader.c (find_method, find_method_in_class): Fixed bug #81466,
3535 checking that only methods with matching qname or fqname are picked
3536 from implemented interfaces.
3538 2007-08-16 Rodrigo Kumpera <rkumpera@novell.com>
3540 * verify.c (do_newarr):added, do type verification of
3541 newarr ops, push the right value on the eval stack.
3542 * verify.c (mono_method_verify): use do_newarr
3545 2007-08-16 Rodrigo Kumpera <rkumpera@novell.com>
3547 * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
3548 factored the common code into get_boxable_mono_type, which
3549 is now using mono_type_get_full, this fixed byref related tests.
3551 2007-08-16 Rodrigo Kumpera <rkumpera@novell.com>
3553 * class.c: added mono_type_get_full, this function has the same
3554 behavior of mono_class_get_full but the returned MonoType has
3555 all metadata of the associated token in case of a typespec token.
3556 * class.c: added mono_type_retrieve_from_typespec, used by
3557 mono_type_get_full to retrieve the token type.
3558 * class.c (mono_class_create_from_typespec): changed to use
3559 mono_type_retrieve_from_typespec.
3560 * class.c (mono_ldtoken): changed to use mono_type_get_full
3561 for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
3562 * class-internals.h: exported mono_type_get_full for internal use.
3564 2007-08-16 Jb Evain <jbevain@novell.com>
3566 * domain.c (supported_runtimes): add entry for
3567 the 'moonlight' runtime version.
3569 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
3571 * verify.c (mono_method_verify): small typo sliped in.
3573 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
3575 * verify.c (do_unbox_value): added, do type verification of
3577 * verify.c (mono_method_verify): use do_unbox_value
3580 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
3582 * verify.c (dump_stack_value): fixed typo, was printing string
3583 instead of object on stack.
3584 * verify.c (do_box_value): moved the byref check up as it leads
3585 to invalid code and should be done earlier.
3586 * verify.c: improved error messages for and ldobj
3588 2007-08-15 William Holmes <billholmes54@gmail.com>
3590 * marshal.c (emit_marshal_custom): Omit the call to
3591 marshal_native_to_managed when calling native to managed
3592 and the argument is specified as an out argument.
3594 Code is contributed under MIT/X11 license.
3596 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
3598 * verify.c: fixed the type checks for generics, function pointers and vectors.
3599 Added type verification for ldobj and ldtoken. The verifier
3600 would segfault if header or signature of a method contained references
3601 to non-existant types.
3603 2007-08-15 Jonathan Chambers <joncham@gmail.com>
3605 * marshal.c (cominterop_get_ccw): Patch from
3606 Bill Holmes to no walk up interface hierarchy.
3607 All parent methods should be present in the interface for COM.
3609 Code is contributed under MIT/X11 license.
3611 2007-08-15 Jonathan Chambers <joncham@gmail.com>
3613 * marshal.c (emit_marshal_com_interface): Patch from
3614 Bill Holmes to handle COM Interfaces as return values
3615 for native->managed calls.
3617 Code is contributed under MIT/X11 license.
3619 2007-08-14 Jonathan Chambers <joncham@gmail.com>
3621 * marshal.c (cominterop_get_idispatch_for_object): Implement
3622 for runtime callable wrappers.
3624 Code is contributed under MIT/X11 license.
3626 2007-08-13 Rodrigo Kumpera <rkumpera@novell.com>
3628 * pedump.c (main): changed from mono_init to mono_init_from_assembly
3629 so 2.0 types are accessible
3632 2007-08-13 Miguel de Icaza <miguel@novell.com>
3634 * domain.c (mono_init_internal): Call mono_assembly_load_friends
3635 once we load mscorlib. Due to the order in which we initialize,
3636 the mono_assembly_load_full routine that loads mscorlib did not
3637 load friends. We now load it once we load the
3638 mono_defaults.internals_visible_class class.
3640 * assembly.c: Expose the mono_load_friend_assemblies method.
3642 2007-08-11 Rodrigo Kumpera <rkumpera@novell.com>
3644 * verify.c: improved the handling of boxing, better
3645 type checking for unary ops and conversion. Fix bug
3646 regarding managed pointer compatibility checking
3648 2007-08-11 Zoltan Varga <vargaz@gmail.com>
3650 * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
3652 * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
3654 2007-08-09 Raja R Harinath <rharinath@novell.com>
3656 * reflection.c (dup_type): Remove.
3657 * class.c (dup_type): Remove.
3658 (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
3659 instead of the dodgy 'dup_type'.
3660 (inflate_generic_type): Likewise. Fix the VAR/MVAR cases to
3661 handle the case where 'dup_type' needed the second argument.
3663 2007-08-08 Zoltan Varga <vargaz@gmail.com>
3665 * domain.c: Fix a warning.
3667 2007-08-08 Massimiliano Mantione <massi@ximian.com>
3669 * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
3670 checking that methods with the same fqname are not overridden
3671 with a method from an ancestor.
3673 2007-08-07 Zoltan Varga <vargaz@gmail.com>
3675 * threads.c (free_thread_static_data_helper): Avoid a crash if
3676 thread->static_data is not yet set.
3678 2007-08-07 Jonathan Chambers <joncham@gmail.com>
3680 * marshal.c: Use correct image when emitting
3681 native wrapper for COM calls.
3683 Code is contributed under MIT/X11 license.
3685 2007-08-07 Atsushi Enomoto <atsushi@ximian.com>
3687 * icall-def.h, security.c, security.h :
3688 added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
3690 2007-08-07 Martin Baulig <martin@ximian.com>
3692 * mono-debug-debugger.h
3693 (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
3695 * domain.c (mono_domain_free): Call
3696 `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
3698 2007-08-06 Rodrigo Kumpera <rkumpera@novell.com>
3700 * verify.c (check_underflow, check_overflow): error message now returns IL offset
3701 * verify.c (in_same_block): code should test if either offset is inside the clauses
3702 * verify.c (mono_method_verify): push the exception into the eval stack of exception
3705 2007-08-03 Zoltan Varga <vargaz@gmail.com>
3707 * image.c (mono_image_close): Fix a leak.
3709 * object.c (mono_runtime_invoke_array): Avoid using alloca.
3711 * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.
3713 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
3715 * domain.c, threads.c, threads-types.h: fix memory retention issue
3716 with thread static variables not being cleared on domain unload.
3717 Reuse thread static slots after domain unload.
3719 2007-08-03 Zoltan Varga <vargaz@gmail.com>
3721 * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
3724 * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
3725 now done in mono_runtime_invoke_array.
3727 * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the
3728 receiver is a nullable type.
3730 * class.c (mono_class_is_assignable_from): Handle the case when klass is a
3733 2007-08-03 Jonathan Chambers <joncham@gmail.com>
3735 * marshal.c: Implement COM Objects as return type for
3736 managed->unmanaged calls. Added Release calls for COM Object
3737 out/return values in managed->unmanaged calls.
3739 Code is contributed under MIT/X11 license.
3741 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
3743 * threads.h, threads-type.h: move the hazard pointer declarations
3744 to the private header.
3746 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
3748 * file-io.c, appdomain.c: memory leak fixes.
3750 2007-08-02 Dick Porter <dick@ximian.com>
3753 (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
3754 SO_REUSEADDR setting into io-layer/sockets.c.
3756 2007-08-01 Zoltan Varga <vargaz@gmail.com>
3758 * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
3759 from Object when called on a generic parameter. Fixes #82211.
3761 2007-08-01 Dick Porter <dick@ximian.com>
3763 * file-io.c (convert_share): Test FileShare values bit-by-bit.
3764 Fixes bug 79250 yet again.
3766 2007-07-30 Martin Baulig <martin@ximian.com>
3768 Merged the `debugger-dublin' branch.
3771 (MonoDebugDataTable): New typedef.
3772 (MonoDebugMethodAddressList): New typedef.
3773 (MonoDebugWrapperData): Removed.
3774 (MonoDebugSymbolTable): Removed `current_data_table',
3775 `current_data_table_size', `current_data_table_offset'.
3776 (MonoDebugDataItemType): Moved into mono-debug.c.
3777 (MonoDebugMethodJitInfo): Remove `address'.
3778 (mono_debug_data_table): New global variable.
3779 (mono_debug_lookup_method_addresses): New public function.
3780 (mono_debug_find_method): Take a `MonoMethod *', not a
3781 `MonoDebugMethodInfo *'.
3783 * mono-debug.c: Drop support for the old symbol tables.
3785 2007-06-28 Martin Baulig <martin@ximian.com>
3787 * mono-debug.c (mono_debug_debugger_version): New public variable.
3789 2007-07-31 William Holmes <billholmes54@gmail.com>
3791 * metadata.c Changed mono_type_create_from_typespec to not insert
3792 the type into the hash map until after
3793 do_mono_metadata_parse_type has completed.
3795 Code is contributed under MIT/X11 license.
3797 2007-07-31 Zoltan Varga <vargaz@gmail.com>
3799 * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
3800 generic parameter. Fixes #82211.
3802 2007-07-27 Jb Evain <jbevain@novell.com>
3804 * pedump.c (dump_metadata, dump_metadata_header): dump
3805 versions contained in the metadata header.
3807 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3809 * threads.c: register small_id_table with the GC.
3811 2007-07-27 Mark Probst <mark.probst@gmail.com>
3813 * threads.c, threads.h, class-internals.h, object-internals.h:
3814 Hazard pointers, to be used by lock-free parallel algorithms.
3816 2007-07-26 Dick Porter <dick@ximian.com>
3818 * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
3819 routine on non-windows platforms, as I've not managed to think of
3820 a non-kludgy way of doing this. Finishes off bug 78739.
3822 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
3824 * object.c: properly setup interface_bitmap in proxy vtables.
3826 2007-07-25 Marek Habersack <mhabersack@novell.com>
3828 * appdomain.c (get_shadow_assembly_location): do not use TickCount
3829 to create unique shadow copy target directories, use the domain's
3830 serial number instead. Each domain gets a unique target directory
3833 * domain.c (mono_domain_create): added code to increment domain
3834 shadow copy serial number and cache the value in the current
3837 * domain-internals.h (struct _MonoDomain): added a new field -
3838 shadow_serial to hold the serial number used in generation of
3839 shadow-copy directories. This is to make sure that the directory
3840 name is unique for each and every domain created. We avoid a race
3841 condition with overriding assemblies already in use by other app
3844 2007-07-24 Rodrigo Kumpera <rkumpera@novell.com>
3846 * class.c (mono_bounded_array_class_get): fixed memory leak when
3847 binding generic parameters.
3849 2007-07-24 Raja R Harinath <rharinath@novell.com>
3851 * metadata.c (do_mono_metadata_parse_generic_class): Use
3852 mono_metadata_lookup_generic_class. Don't g_assert on a metadata
3855 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
3857 * loader.c, class-internals.h, reflection.c: removed the per-method
3858 generics hashtable: we use the global one through the call of
3859 mono_class_inflate_generic_method ().
3861 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
3863 * class.c, metadata.c, class-internals.h: introduce yet another
3864 generics global cache for inflated methods (fixes 98% of the perf
3865 issue in bug #81806).
3867 2007-07-23 Raja R Harinath <rharinath@novell.com>
3869 Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
3870 * metadata.c (mono_metadata_lookup_generic_inst): Kill.
3871 (mono_metadata_get_generic_inst): New. Given a list of MonoType*,
3872 return a MonoGenericInst containing (a copy) of those types.
3873 (mono_metadata_inflate_generic_inst): Update to changes.
3874 (mono_metadata_parse_generic_inst): Likewise.
3875 (mono_get_shared_generic_inst): Likewise.
3876 * reflection.c (mono_class_bind_generic_parameters): Likewise.
3877 (mono_reflection_bind_generic_method_parameters): Likewise.
3878 * metadata-internals.h: Likewise.
3879 * icall.c (free_generic_context): Kill.
3880 (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
3882 * reflection.c (reflection_methodbuilder_to_mono_method): Use
3883 mono_metadata_type_dup.
3884 * marshal.c (mono_mb_create_method): Likewise.
3886 * metadata.c (mono_metadata_type_dup): Rename from
3887 mono_metadata_type_dup_mp. Take an optional mempool instead of a
3888 MonoImage. Handle a few more cases, esp. when no mempool is given.
3889 * marshal.c, metadata-internals.h: Update to changes.
3891 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3893 * class.c: fixed a small leak for array classes and removed warning.
3895 2007-07-22 Zoltan Varga <vargaz@gmail.com>
3897 * loader.c (mono_method_get_param_token): Make this work on generic methods.
3898 Return 0x8000000 for return parameters. Fixes #82161.
3900 2007-07-21 Marek Habersack <grendello@gmail.com>
3902 * appdomain.c (get_shadow_assembly_location): append the current
3903 ticks value to the path. Avoids overwriting the same assemblies by
3904 several threads at the same time.
3906 2007-07-20 Atsushi Enomoto <atsushi@ximian.com>
3907 and Raja R Harinath <rharinath@novell.com>
3909 * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3911 (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
3912 property for testing if a method is a generic method definition.
3914 2007-07-20 Atsushi Enomoto <atsushi@ximian.com>
3916 * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
3918 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3920 * verify.c: used function from private branch, reverted to the one in class.h
3922 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3924 * verify.c: a typo slipped in and the code wont compile
3926 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3928 * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
3929 disabled box instruction as it is doing the wrong thing
3930 improved stack dump messages, now it is easier to debug type related issues
3933 2007-07-19 Juraj Skripsky <js@hotfeet.ch>
3935 * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak.
3937 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3939 * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from
3940 TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
3941 grouped with class and valuetype. This change will simply
3942 the code as it should be handled just like unmanaged pointers.
3944 2007-07-19 Mark Probst <mark.probst@gmail.com>
3946 * class.c (concat_two_strings_with_zero): Fixed a silly bug.
3948 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3950 * verify.c: several stack merge issues fixed, reference comparisons now
3951 check the type size. strict type check now works correctly.
3952 added more uses of IS_MANAGED_POINTER macro.
3953 fixed issues pointed by running the test suite against .net.
3956 2007-07-19 Mark Probst <mark.probst@gmail.com>
3958 * class.c, loader.c, class-internals.h: Removed the
3959 MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
3962 * icall.c: Better error checking in some internal reflection
3965 2007-07-18 William Holmes <billholmes54@gmail.com>
3967 * filewatcher.c : removed unused variable 'filename' in
3968 ves_icall_System_IO_FSW_SupportsFSW
3970 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
3972 * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
3975 2007-07-15 Zoltan Varga <vargaz@gmail.com>
3977 * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
3979 * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
3981 2007-07-14 Zoltan Varga <vargaz@gmail.com>
3983 * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken):
3984 Implement generics support.
3985 (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3987 * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
3988 type_args and method_args arguments.
3989 (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
3990 (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3991 (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
3993 2007-07-13 Rodrigo Kumpera <rkumpera@novell.com>
3995 * reflection.c: patch from Thong Nguyen to fix atribute resolution.
3996 It adds a rootimage parameter to mono_reflection_get_type_internal,
3997 adds new function mono_reflection_get_type_with_rootimage and use
3998 the rootimage to resolve the types instead of the current image
4000 2007-07-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
4002 * culture-info-table.h: Forgot to update after r78304.
4004 2007-07-13 Raja R Harinath <rharinath@novell.com>
4006 * class.c (mono_class_is_open_constructed_type)
4007 <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
4009 2007-07-12 Rodrigo Kumpera <rkumpera@novell.com>
4011 * class.c (mono_bounded_array_class_get): method fails if used with
4012 an incomplete TypeBuilder enum (no basetype field), fixed it by
4013 avoiding calculating the size for such array as it cannot be instantiated.
4016 2007-07-12 Raja R Harinath <rharinath@novell.com>
4018 * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
4020 * metadata.c, reflection.c: Update to changes.
4022 2007-07-11 Rodrigo Kumpera <rkumpera@novell.com>
4024 * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
4025 mono_class_is_valid_enum, they are used to valide a enum when loading.
4026 * reflection.c: used new functions to throw TypeLoadException when and
4027 invalid enum is build with TypeBuilder. Fixes #82018
4029 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
4031 * object.c: forgot commit of mono_class_setup_methods () to access
4033 * object-internals.h: added a few more handy fields to
4036 2007-07-11 Zoltan Varga <vargaz@gmail.com>
4038 * object.c (build_imt): Call mono_class_setup_methods () before accessing
4041 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
4043 * class-internals.h, object-internals.h, object.c: IMT-based
4044 interface invocation core from Massimiliano Mantione
4045 (massi@ximian.com) with a reworked arch-specific interface,
4046 bsearch implementation and a few bugfixes and memory savings by me.
4048 2007-07-10 Rodrigo Kumpera <rkumpera@novell.com>
4050 * class.c (mono_class_create_from_typedef): mono would segfault if
4051 an enum did not have a __value field. It now throws a TypeLoadException
4052 for such cases. Fix bug #82022
4054 2007-07-10 Zoltan Varga <vargaz@gmail.com>
4056 * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
4058 2007-07-09 Mark Probst <mark.probst@gmail.com>
4060 * class.c (mono_class_init): If a class is already inited but has
4061 an exception_type set, return FALSE, not TRUE. Fixes: 82050.
4063 2007-07-09 Mark Probst <mark.probst@gmail.com>
4065 * class.c: Properly handle the case of an unimplemented interface
4066 method. Fixes: 81673.
4068 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
4070 * class-internals.h, object.c: cleanup patch from massi: use
4071 MonoVTable->interface_bitmap since the vtable interfaces offset array
4074 2007-07-10 Zoltan Varga <vargaz@gmail.com>
4076 * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
4077 GetMDStreamVersion icall instead.
4079 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
4081 * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
4082 not use mono_dl_build_path() with a full library name: makes
4083 fallbacks to libgaim and libfam work.
4085 2007-07-06 William Holmes <billholmes54@gmail.com>
4087 * assembly.c: Added a continue statement in probe_for_partial_name when
4088 parse_assembly_directory_name fails. Fixes : 82002
4090 2007-07-06 Rodrigo Kumpera <rkumpera@novell.com>
4092 * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
4093 and added a verification for TYPEDBYREF.
4094 * verify.c (verify_stack_type_compatibility): fix handling of byref types,
4095 make native int interchangeable with int32 and some small cleanup and formating.
4096 * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
4097 handle byref of byref.
4098 * verify.c (push_local): handle byref of byref.
4099 * verify.c (do_binop): invalid mix of values is unverifiable
4100 * verify.c (do_invoke_method): fixed the handling of bad params on stack and
4101 added visibility checks
4102 * verify.c (field related method): added visibility checks
4103 * verify.c (do_push_field): cannot take the address of a temporary valuetype field
4105 2007-07-06 Zoltan Varga <vargaz@gmail.com>
4107 * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
4110 2007-07-05 Zoltan Varga <vargaz@gmail.com>
4112 * profiler.c (mono_profiler_load): Fix an off-by-one error.
4114 * marshal.c (emit_marshal_string): When returning a string from managed code,
4115 allways make a copy even for unicode strings. Fixes #81990.
4117 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
4119 * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
4120 of byref generic inst types (bug #81997).
4122 2007-07-03 Rodrigo Kumpera <rkumpera@novell.com>
4124 * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
4125 * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
4127 2007-07-02 Zoltan Varga <vargaz@gmail.com>
4129 * marshal.c (emit_marshal_string): Add support for unicode strings in
4130 MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
4132 2007-07-02 Rodrigo Kumpera <rkumpera@novell.com>
4134 * verify.c: field load/store are now verified, missing only access checks now
4136 2007-06-28 Martin Baulig <martin@ximian.com>
4138 * mono-debug.c (mono_debug_debugger_version): New public variable.
4140 2007-06-24 Gert Driesen <drieseng@users.sourceforge.net>
4142 * locales.c: When constructing DateTimeFormat or NumberFormat for
4143 MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
4144 MonoCultureInfo contructed from the current locale is always
4145 read-only and has UseUserOverride set to true. All MonoCultureInfo
4146 instances returned for GetCultures have both IsReadOnly and
4147 UseUserOverride set to true. Fixes part of bug #81930.
4149 2007-06-22 Jonathan Chambers <joncham@gmail.com>
4151 * icall-def.h: Update System.__ComObject icalls
4152 * marshal.c: Avoid managed transition (and object creation)
4153 when looking up COM interface in RCW.
4156 Code is contributed under MIT/X11 license.
4158 2007-06-22 Zoltan Varga <vargaz@gmail.com>
4160 * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
4161 to avoid crashes during assembly unloading.
4163 2007-06-22 Raja R Harinath <rharinath@novell.com>
4165 Fix MethodInfo.IsGenericMethodDefinition
4166 * reflection.c (mono_reflection_bind_generic_method_parameters):
4167 Rearrange code to ensure we always uses a generic method definition.
4168 * class.c (mono_class_inflate_generic_method_full): Set
4169 'generic_container' field only for generic method definitions.
4170 * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
4171 Use presense of 'generic_container' field as indication of being a
4172 generic method definition.
4174 2007-06-21 Zoltan Varga <vargaz@gmail.com>
4176 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4178 * object-internals.h: Reflect changes in the layout of the managed Delegate
4181 * object-internals.h reflection.c icall-def.h: Applied patch from Robert
4182 Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
4183 runtime memory used by the dynamic method. Fixes #77146.
4185 2007-06-21 Dick Porter <dick@ximian.com>
4188 * file-io.c (convert_share): Cope with FileShare.Delete. Patch
4189 from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
4192 2007-06-21 Raja R Harinath <rharinath@novell.com>
4194 * reflection.c (method_encode_methodspec): Add a tripwire.
4195 * class.c (inflate_generic_type): The fully open generic type is
4196 not the same as the generic type definition.
4198 2007-06-21 Martin Baulig <martin@ximian.com>
4200 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
4202 * mono-debug-debugger.h
4203 (MonoDebuggerBreakpointInfo): Removed.
4204 (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
4205 (mono_debugger_remove_breakpoint): Likewise.
4206 (mono_debugger_breakpoint_callback): Likewise.
4207 (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
4209 2007-06-21 Raja R Harinath <rharinath@novell.com>
4211 * metadata.c (mono_metadata_lookup_generic_class): The fully open
4212 generic type is not the same as the generic type definition.
4213 * class.c (mono_generic_class_get_class): Likewise.
4215 2007-06-20 Geoff Norton <gnorton@customerdna.com>
4217 * icall.c: The second argument to
4218 System.Reflection.MethodBase.GetMethodFromHandleInternalType
4219 is a MonoType not a MonoClass.
4221 2007-06-20 Rodrigo Kumpera <kumpera@gmail.com>
4223 * verify.c: support for function pointers in the verifier
4225 2007-06-20 Rodrigo Kumpera <kumpera@gmail.com>
4227 * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
4229 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
4231 * assembly.c: removed Mono.Data.SqliteClient from the list of
4232 forward-compatible assemblies as it breaks the ABI (bug #81899).
4234 2007-06-19 Raja R Harinath <rharinath@novell.com>
4236 * metadata.c (mono_metadata_lookup_generic_class): Protect cache
4237 lookup/update with the loader lock.
4238 * reflection.c (mono_class_bind_generic_parameters): No need to
4239 protect mono_metadata_lookup_* with the loader lock.
4240 * class.c (inflate_generic_type): Likewise.
4242 * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
4243 on a generic instantiated type.
4245 2007-06-18 Rodrigo Kumpera <kumpera@gmail.com>
4247 *verify.c: produce meanfull error messages on verification error
4248 *verify.c: fixed some cases of verification errors reported as validation errors
4249 *pedump.c: fixed the error name array, now it shows validation errors properly
4250 *verify.h: fixed the contant that should be used for verification errors
4252 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
4254 * metadata.c, image.c, metadata-internals.h: part of the fixes needed
4255 for bug #77596, 81858 and 80743 (generics data structures on domain
4258 2007-06-15 Raja R Harinath <rharinath@novell.com>
4260 Avoid allocating 'MonoGenericContext' on the heap.
4261 * class-internals (_MonoMethodInflated::context): Make field
4262 inline, not a pointer.
4263 * loader.c (method_from_methodspec): Allocate 'new_context' on the
4264 stack. Use the context embedded within the inflated method as the
4265 hash key, rather than 'new_context'.
4266 * class.c (inflate_generic_context): Simplify. Return a struct
4267 rather than allocating on the heap.
4268 (mono_class_inflate_generic_method_full): Update to changes. Now,
4269 doesn't salt away a copy of the context -- simplifying the
4270 lifetime rules of a 'MonoGenericContext *'.
4271 (mono_method_get_context): Return pointer to embedded context.
4272 (setup_generic_array_ifaces): Allocate temporary context on stack.
4273 * reflection.c (inflate_mono_method): Likewise.
4274 (mono_reflection_bind_generic_method_parameters): Likewise.
4275 Use the context embedded within the inflated method as the hash key.
4277 Avoid a source of allocation of 'MonoGenericContext'.
4278 * class-internals.h (_MonoGenericClass::context): Combine 'inst'
4279 and 'cached_context' fields into embedded 'MonoGenericContext' field.
4280 * class.c: Update to changes.
4281 (mono_generic_class_get_context): Simplify drastically. Now just
4282 returns a pointer to the field.
4283 * metadata-internals.h (mono_metadata_generic_context_hash): Mark
4284 argument as a const pointer.
4285 (mono_metadata_generic_context_equal): Likewise.
4286 * metadata.c, loader.c, icall.c, reflection.c, verify.c:
4289 2007-06-14 Rodrigo Kumpera <kumpera@gmail.com>
4291 * verify.c improved the handling of brtrue/brfalse, factored out common code
4293 2007-06-14 Raja R Harinath <rharinath@novell.com>
4295 Kill MonoGenericMethod.
4296 * class-internals.h (MonoGenericContext::method_inst): Rename from
4297 'gmethod' and convert to a MonoGenericInst.
4298 (MonoGenericMethod): Remove.
4299 * metadata.h (MonoGenericMethod): Note that the name is obsolete.
4300 * loader.c (method_from_methodspec): Update to changes. Use a
4301 MonoGenericContext as the key to the hashtable.
4302 * metadata.c (mono_metadata_generic_context_equal): Rename from
4303 'mono_metadata_generic_method_equal' and take MonoGenericContext.
4304 (mono_metadata_generic_context_hash): Likewise from
4305 'mono_metadata_generic_method_hash'. Change hash function.
4306 (mono_metadata_load_generic_params): Update to changes.
4307 (mono_get_shared_generic_method): Remove.
4308 * metadata-internals.h (mono_get_shared_generic_method): Remove.
4309 * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
4310 (inflate_generic_context): Likewise.
4311 (mono_class_inflate_generic_method_full): Likewise.
4312 (setup_generic_array_ifaces): Likewise.
4313 (mono_class_create_from_typespec): Likewise.
4314 * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
4315 (method_encode_methodspec): Update callsite.
4316 (reflection_methodbuilder_to_mono_method): Update to changes.
4317 (mono_reflection_bind_generic_method_parameters): Likewise. Use a
4318 MonoGenericContext as the key to the hashtable.
4319 (inflate_mono_method): Update to changes.
4321 * class-internals.h (MonoGenericMethod::container): Remove.
4322 * class.c, loader.c, metadata.c, reflection.c: Update to changes.
4324 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
4326 * profiler-private.h, profiler.c, profiler.h: added API to profile
4329 2007-06-13 Rodrigo Kumpera <kumpera@gmail.com>
4331 * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments
4333 2007-06-13 Rodrigo Kumpera <kumpera@gmail.com>
4335 * verify.c: method invocation is now validated, now we verify parameter types on stack.
4336 Fixed overflow and underflow not aborting the verification process.
4338 2007-06-13 Mark Probst <mark.probst@gmail.com>
4340 * class-internals.h (MonoStats): Added stats entries for dynamic
4343 2007-06-12 Zoltan Varga <vargaz@gmail.com>
4345 * loader.c (mono_free_method): Free header->locals and header->clauses.
4347 * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
4350 * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
4352 * class.c (setup_interface_offsets): Allocate memory from the image mempool.
4354 2007-06-12 Raja R Harinath <rharinath@novell.com>
4356 * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
4359 2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
4361 *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
4363 2007-06-11 Raja R Harinath <harinath@gmail.com>
4365 MonoGenericMethod on a diet
4366 * class-internals.h (_MonoMethodInflated::reflection_info): Move
4368 (_MonoGenericMethod::reflection_info): ... from here.
4369 * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
4371 * reflection.c (inflate_mono_method): Likewise.
4372 (mono_reflection_bind_generic_method_parameters): Likewise.
4374 2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
4376 *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
4377 *verify.c: factored long ldarg forms to share code with short forms
4379 2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
4381 *verify.c: fixed code formating factored some duplicate code
4384 *verify.h: fixed binary incompatibility introduced earlier
4386 *pedump.c: fixed formating
4388 2007-06-11 Raja R Harinath <harinath@gmail.com>
4390 Fix assertion when disassembling Mono.C5.dll
4391 * loader.c (method_from_methodspec): Avoid inflating a method
4392 twice with the same context. If the methodref is inflated, use
4393 the declaring method instead.
4395 * class.c (mono_class_from_generic_parameter): Fix case similar to
4396 bug #81830 handled below, but for method containers.
4398 2007-06-10 Raja R Harinath <harinath@gmail.com>
4400 * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
4401 get_shared_generic_class. Directly inflate the instance.
4402 [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
4403 (inflate_generic_class): Delete.
4404 (get_shared_generic_class): Delete. Move setting of
4405 'cached_class' and 'cached_context' ...
4406 * metadata.c (mono_metadata_lookup_generic_class): ... here.
4408 * metadata.c (mono_metadata_lookup_generic_class): Change
4409 signature to take the components of a MonoGenericClass rather than
4410 an allocated MonoGenericClass. Change semantics to be intern-like.
4411 * reflection.c (mono_class_bind_generic_parameters): Update to
4412 changes. Make locking region tighter.
4413 * class.c (inflate_generic_class): Update to changes.
4414 (get_shared_generic_class): Likewise.
4415 * metadata-internals.h: Likewise.
4417 * reflection.c (mono_class_bind_generic_parameters): Take and
4418 return a MonoClass*, not a MonoType*. Add 'is_dynamic' parameter.
4419 (mono_reflection_bind_generic_parameters): Use
4420 'mono_class_bind_generic_parameters' rather than duplicate the code.
4421 * class.c (mono_bounded_array_class_get): Update to changes.
4422 * object-internals.h: Likewise.
4424 * reflection.c (mono_class_bind_generic_parameters): Only support
4425 parameterizing generic type definitions. Remove support for other
4428 2007-06-08 Zoltan Varga <vargaz@gmail.com>
4430 * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
4432 * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
4433 in the dynamic case.
4435 2007-06-08 Gert Driesen <drieseng@users.sourceforge.net>
4437 * threads.c: When cleaning up thread, reset the Background bit.
4440 2007-06-08 Jonathan Chambers <joncham@gmail.com>
4442 * metadata.c: Move variable declarations to top of scope.
4443 * verify.c: Move variable declarations to top of scope.
4445 Code is contributed under MIT/X11 license.
4447 2007-06-08 Raja R Harinath <rharinath@novell.com>
4449 * reflection.c (mono_class_bind_generic_parameters): Replace
4450 open-coded loop with mono_metadata_inflate_generic_inst.
4452 * class.c (get_shared_generic_class): Don't call
4453 mono_get_shared_generic_inst. Use the container's own
4456 * metadata.c (mono_metadata_load_generic_params): Move
4457 initialization of 'context' field here from ...
4458 * class.c (mono_class_create_from_typedef): ... here, and ...
4459 * loader.c (mono_get_method_from_token): ... here.
4461 * class.c (get_shared_generic_class): Rename from
4462 mono_get_shared_generic_class and make static.
4463 (mono_get_shared_generic_inst): Move to metadata.c.
4464 * loader.c (mono_get_shared_generic_method): Likewise.
4465 * class-internals.h, metadata-internals.h: Update to changes.
4468 * class.c (mono_class_from_generic_parameter): Don't assume a
4469 generic container owner exists. Generic containers from monodis
4472 2007-06-06 Rodrigo Kumpera <kumpera@gmail.com>
4474 * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
4475 * verify.h: new typedefs to returns the non-verifiable status
4476 * verify.c: initial implementation of generics, stack merging and object compatibility check
4478 2007-06-06 Mark Probst <mark.probst@gmail.com>
4480 * class.c, image.c, class-internals.h (MonoImage): class_cache is
4481 a MonoInternalHashTable again (fixed bug in internal hash table
4484 2007-06-06 Mark Probst <mark.probst@gmail.com>
4486 * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
4487 MonoInternalHashTable again (fixed bug in internal hash table
4490 2007-06-06 Mark Probst <mark.probst@gmail.com>
4492 * class.c, image.c, class-internals.h, domain.c,
4493 domain-internals.h (MonoImage): Reverting MonoInternalHashTable
4494 changes. Have to figure out what makes them break the SWF
4497 2007-06-04 Mark Probst <mark.probst@gmail.com>
4499 * class.c, image.c, class-internals.h (MonoImage): class_cache is
4500 a MonoInternalHashTable now.
4502 2007-06-04 Mark Probst <mark.probst@gmail.com>
4504 * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
4505 MonoInternalHashTable now.
4507 2007-05-31 Zoltan Varga <vargaz@gmail.com>
4509 * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
4512 * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
4514 * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
4515 dependent trampoline.
4517 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4519 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
4521 2007-05-29 Robert Jordan <robertj@gmx.net>
4523 * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
4525 2007-05-28 Zoltan Varga <vargaz@gmail.com>
4527 * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
4529 2007-05-25 Jonathan Chambers <joncham@gmail.com>
4531 * marshal.c: Fix interface lookup loops for
4532 cominterop_get_com_slot_for_method and
4533 cominterop_get_method_interface. Only need to lookup
4534 if type is a class, else use interface type method is on.
4536 Code is contributed under MIT/X11 license.
4538 2007-05-25 Sebastien Pouliot <sebastien@ximian.com>
4540 * reflection.c: HasSecurity can be present even if no specially
4541 encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
4542 SecurityAttribute). Fix CAS regression tests on buildbot.
4544 2007-05-24 Jonathan Chambers <joncham@gmail.com>
4546 * appdomain.c: Add configure checks for header files.
4547 * image.c: Add configure checks for header files.
4548 * file-io.c: Add configure checks for header files.
4549 * debug-mono-symfile.c: Add configure checks for header files.
4550 * threadpool.c: Add configure checks for header files.
4551 * console-io.c: Add configure checks for header files.
4552 * profiler.c: Add configure checks for header files.
4553 * rawbuffer.c: Add configure checks for header files.
4554 * icall.c: Add configure checks for header files.
4555 * rand.c: Add configure checks for header files.
4556 * socket-io.c: Add configure checks for header files.
4558 Code is contributed under MIT/X11 license.
4560 2007-05-24 Zoltan Varga <vargaz@gmail.com>
4562 * reflection.c (mono_custom_attrs_from_builders): Remove the
4563 assertion as it breaks the build.
4565 * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
4567 * reflection.c (lookup_custom_attr): Make a copy here too.
4569 * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
4572 * class.c (mono_class_init): Avoid accessing the metadata in dynamic
4575 * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
4578 2007-05-22 Zoltan Varga <vargaz@gmail.com>
4580 * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
4581 (load_cattr_value): Ditto.
4583 2007-05-20 Zoltan Varga <vargaz@gmail.com>
4585 * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
4587 2007-05-19 Gert Driesen <drieseng@users.sourceforge.net>
4589 * threads.c: In "start_wrapper", set apartment_state to MTA if
4590 apartment_state is Unknown and we're running on 2.0 profile or
4592 * object.c: In "mono_runtime_exec_main", if STAThread is not applied
4593 to main method, then set apartment_state to Unknown on 1.0 profile,
4594 and MTA on 2.0 profile.
4596 2007-05-16 Jb Evain <jb@nurv.fr>
4598 * class-internals.h (MonoDefaults): Add an attribute_class and
4599 customattribute_data_class.
4600 * domain.c (mono_init_internal): Populate them.
4601 * reflection.c: Use them to remove duplicates. Make a vew
4602 MonoClass variables `static'.
4604 2007-05-15 Massimiliano Mantione <massi@ximian.com>
4606 * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
4607 step in implementing IMT, so that all isinst checks now can go
4609 This was needed because vtables for TransparentProxy need to look
4610 like the vtable of the "target" class, so they need to point to
4611 its interface bitmap directly.
4613 * object.c: inside "mono_class_create_runtime_vtable" and
4614 "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
4616 2007-05-15 Atsushi Enomoto <atsushi@ximian.com>
4618 * object-internals.h
4619 culture-info.h : added territory field in MonoCulture and
4620 CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
4621 * locales.c : fill territory field above too.
4622 * culture-info-table.h : regenerated.
4624 2007-05-12 Zoltan Varga <vargaz@gmail.com>
4626 * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
4629 2007-05-11 Jonathan Chambers <joncham@gmail.com>
4631 * object.c: Always initialize apartment, even if
4632 there is no custom attributes on entry point.
4634 Code is contributed under MIT/X11 license.
4636 2007-05-10 Jonathan Chambers <joncham@gmail.com>
4638 * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
4639 * metadata.c: If no encoding is set, check for unicode
4642 Code is contributed under MIT/X11 license.
4644 2007-05-09 Jonathan Chambers <joncham@gmail.com>
4646 * threads.c: Handle if mono_thread_current returns NULL
4648 Code is contributed under MIT/X11 license.
4650 2007-05-09 Jonathan Chambers <joncham@gmail.com>
4652 * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
4653 in start_wrapper. Added mono_thread_init_apartment_state and
4654 mono_thread_cleanup_apartment_state.
4655 * object.c: Initialize thread apartment state on main thread
4656 by checking for STAThreadAttribute on entry point.
4657 * object-internals.h: Add apartment_state field to MonoThread.
4658 * threads-types.h: Add unmanaged definition of
4659 System.Threading.ApartmentState, MonoThreadApartmentState.
4661 Code is contributed under MIT/X11 license.
4663 2007-05-08 Jonathan Chambers <joncham@gmail.com>
4665 * class.c: Fix windows build.
4666 * class-internals.h: Fix windows build.
4668 Code is contributed under MIT/X11 license.
4670 2007-05-08 Robert Jordan <robertj@gmx.net>
4672 * process.c (CreateProcess_internal):
4673 Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
4674 .CreateNoWindow was specified. Fixes #81496.
4676 2007-05-08 Massimiliano Mantione <massi@ximian.com>
4678 * class-internals.h: Removed "MonoClass.interface_offsets" as a first
4679 step in implementing IMT, replaced it with two compact arrays
4680 (interfaces_packed and interface_offsets_packed) and a bitmap that
4681 is used for isinst checks (interface_bitmap).
4683 * class.c: (compare_interface_ids): compare function to pass to
4684 bsearch when looking for an interface with a given id.
4685 (mono_class_interface_offset): reimplemented using bsearch on
4686 interfaces_packed, getting the offset from interface_offsets_packed.
4687 (print_implemented_interfaces): utility debugging function.
4688 (setup_interface_offsets): reworked to initialize interfaces_packed,
4689 interface_offsets_packed and interface_bitmap.
4691 * object.c: replaced all accesses to "MonoClass.interface_offsets"
4692 with uses of interfaces_packed and interface_offsets_packed.
4694 2007-05-08 Massimiliano Mantione <massi@ximian.com>
4696 * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
4697 mono_class_interface_offset prototype to wrap all accesses to
4698 "MonoClass.interface_offsets".
4700 * class.c: Implemented mono_class_interface_offset, and wrapped all
4701 accesses to "MonoClass.interface_offsets".
4703 * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
4704 "MonoClass.interface_offsets".
4706 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
4708 * icall.c, icall-def.h: implemented new GetFieldFromHandle and
4709 GetMethodFromHandle overloads (bug #78637).
4711 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
4713 * assembly.c: parse ProcessorArchitecture in assembly name and ignore
4714 it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
4716 2007-05-01 Zoltan Varga <vargaz@gmail.com>
4718 * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
4721 * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
4723 (mono_custom_attrs_from_index): Ditto.
4725 * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes.
4728 2007-04-30 Zoltan Varga <vargaz@gmail.com>
4730 * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
4731 is now allocated from a mempool.
4733 2007-04-28 Zoltan Varga <vargaz@gmail.com>
4735 * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
4736 caller holds threads_lock, leading to deadlocks. Fixes #81476.
4738 2007-04-26 Zoltan Varga <vargaz@gmail.com>
4740 * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
4741 mono_loader_clear_error () too late. Fixes #81463.
4743 2007-04-26 Atsushi Enomoto <atsushi@ximian.com>
4745 * culture-info-table.h : regenerated.
4747 2007-04-25 Zoltan Varga <vargaz@gmail.com>
4749 * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
4752 2007-04-25 Dick Porter <dick@ximian.com>
4754 * Makefile.am: Put the mingw enforced-optimisation back into the
4755 PLATFORM_WIN32 section.
4757 2007-04-24 Zoltan Varga <vargaz@gmail.com>
4759 * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
4762 * image.c (mono_image_load_module): New API function to load a module reference.
4764 * image.c (load_modules): Load modules lazily. Fixes #80812.
4766 * class.c (mono_class_from_typeref): Use mono_image_load_module.
4768 * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
4770 * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this
4771 to mono_image_load_module_dynamic.
4773 2007-04-23 Jonathan Chambers <joncham@gmail.com>
4775 * marshal.c: Fix calling convention for CCW on non-windows
4776 platforms. STDCALL on windows, CDECL everywhere else to work
4777 with XPCOM and MainWin COM.
4779 Code is contributed under MIT/X11 license.
4781 2007-04-23 Martin Baulig <martin@ximian.com>
4786 (method_from_memberref): Added `gboolean *used_context' argument.
4787 (mono_get_method_from_token): Likewise.
4788 (mono_get_method_full): Don't insert the method in the cache when
4789 `used_context' is true.
4791 2007-04-23 Raja R Harinath <rharinath@novell.com>
4793 * monodiet.c (add_types_from_method): Fix "wrong type" warning.
4795 * reflection.c (mono_reflection_bind_generic_parameters): Don't
4796 create new MonoTypes for returned types.
4797 * class.c (mono_generic_class_get_class): Export mono-internal.
4798 * class-internals.h: Update to changes.
4800 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
4802 * threadpool.c, threadpool.h, icall-def.h: patch from
4803 Robert Jordan to implemnt ThreadPool.SetMaxThreads.
4805 2007-04-18 Zoltan Varga <vargaz@gmail.com>
4807 * threads.c (mono_thread_get_stack_bounds): Fix windows build.
4809 * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
4811 * threads.c (mono_thread_get_stack_bounds): New helper function.
4813 * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
4814 Correctly compute stack bounds when attaching. Fixes #81394.
4816 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
4818 * reflection.c: fix handling of doubles in custom attributes
4819 for the arm-fpa format (bug #81368).
4821 2007-04-18 Raja R Harinath <rharinath@novell.com>
4823 * reflection.c (assembly_add_win32_resources): Mildly relax an
4824 bounds check to let the end pointer point just past the end of the
4825 allocated buffer. (may fix #81384)
4827 2007-04-17 Atsushi Enomoto <atsushi@ximian.com>
4829 * culture-info-table.h : regenerated.
4831 2007-04-07 Zoltan Varga <vargaz@gmail.com>
4833 * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
4834 the thread is aborted early.
4836 2007-04-05 Dick Porter <dick@ximian.com>
4838 * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
4839 FindFirstFile()/FindNextFile() to find entries. This lets the
4840 io-layer versions use MONO_IOMAP compatibility helpers. Fixes bug
4843 * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
4845 ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
4847 2007-04-04 Martin Baulig <martin@ximian.com>
4850 (mono_method_desc_full_match): Add support for nested classes.
4852 2007-04-02 Zoltan Varga <vargaz@gmail.com>
4854 * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
4856 2007-04-01 Zoltan Varga <vargaz@gmail.com>
4858 * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
4859 waiting for too many threads.
4861 2007-03-28 Sebastien Pouliot <sebastien@ximian.com>
4863 * environment.c: Fix return value check on uname so we can get the
4864 executing version on Solaris operating systems.
4866 2007-03-28 Jb Evain <jbevain@gmail.com>
4868 * class.c (mono_type_get_name_recurse): Complete the
4869 fix for the creation of assembly qualified names for
4870 pointer types. Fixes #81208.
4872 2007-03-27 Dick Porter <dick@ximian.com>
4874 * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
4875 of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
4879 (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
4880 the value of ReleaseMutex().
4882 2007-03-27 Dick Porter <dick@ximian.com>
4884 * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
4885 in little-endian order, not network endian, so must be converted
4886 to host endian here. Fixes bug 80593.
4888 2007-03-22 Jb Evain <jbevain@gmail.com>
4890 * class.c (mono_type_get_name_recurse): Fix the creation of assembly
4891 qualified names for pointer types. Fixes #81208.
4893 2007-03-21 Jonathan Chambers <joncham@gmail.com>
4895 * marshal.c: Add support for PreserveSigAttribute.
4897 Code is contributed under MIT/X11 license.
4899 2007-03-14 Zoltan Varga <vargaz@gmail.com>
4901 * process.c: Fix endianness issues. Fixes #81126.
4903 * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
4904 multiple circular calls made from the same DynamicMethod work. Fixes #81141.
4906 * image.c (mono_image_lookup_resource): Make this work on big-endian
4907 machines.Change API contract so the caller needs to free the return value.
4909 * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
4912 2007-03-14 Martin Baulig <martin@ximian.com>
4914 * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
4915 mono_type_get_desc() as well.
4917 2007-03-13 Jonathan Chambers <joncham@gmail.com>
4919 * icall.c: Fix environ access in VS.
4921 2007-03-13 Alp Toker <alp@atoker.com>
4923 * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
4924 rather than the underlying type. Based on a patch by Ben Maurer. Fixes
4927 2007-03-12 Zoltan Varga <vargaz@gmail.com>
4929 * reflection.c (mono_reflection_create_dynamic_method): Add support for
4930 circular references among dynamic methods. Fixes #81091.
4932 * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
4934 2007-03-09 Martin Baulig <martin@ximian.com>
4936 * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
4938 2007-03-09 Jonathan Chambers <joncham@gmail.com>
4940 * appdomain.c: Fix shadow copy on Windows. Use g_snprintf instead
4941 of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.
4943 Code is contributed under MIT/X11 license.
4945 2007-03-09 Gert Driesen <drieseng@users.souceforge.net>
4947 * loader.c: Reapply patch for bug #79424.
4949 2007-03-06 Zoltan Varga <vargaz@gmail.com>
4951 * metadata.c (mono_type_to_unmanaged): Only convert object to
4952 MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
4954 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
4956 * class-internals.h, class.c, metadata.c, reflection.c: removed unused
4957 (and incorrectly set) is_reference field from MonoGenericInst.
4959 2007-03-06 Zoltan Varga <vargaz@gmail.com>
4961 * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
4964 * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
4966 * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
4968 2007-03-05 Miguel de Icaza <miguel@novell.com>
4970 * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
4971 FileOptions.1 value to mean "temporary", map that to
4972 FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
4976 2007-03-03 Marek Habersack <mhabersack@novell.com>
4978 * appdomain.c: implement MS .Net style shadow copying. Copies of
4979 the assemblies are made in a subdirectory of the dynamic base
4980 directory, the assembly names are preserved.
4981 Copy .mdb and .config files along with the assemblies being shadowed.
4983 2007-02-28 Zoltan Varga <vargaz@gmail.com>
4985 * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
4986 (emit_marshal_handleref): Ditto.
4988 * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
4989 on Visual C++. Fixes #80671.
4991 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
4993 * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
4994 for clone operations.
4996 2007-02-28 Zoltan Varga <vargaz@gmail.com>
4998 * marshal.c: Fix warnings.
5000 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
5002 * loader.c: allow case-insensitive matching of the dll name
5003 in dllmap handling when prefixed with "i:".
5005 2007-02-20 Jonathan Chambers <joncham@gmail.com>
5007 * threads.c: Fix #ifdef for dummy_apc function for VS.
5009 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
5011 * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
5013 2007-02-19 Massimiliano Mantione <massi@ximian.com>
5014 * class.c (mono_class_setup_vtable_general): Fix bug 75903,
5015 giving precedence to the methods with a fully qualified name
5016 (InterfaceName.MethodName) when building the interface sections
5019 2007-02-16 Dick Porter <dick@ximian.com>
5021 * threadpool.c (append_job): Fix fast-path array handling, so it's
5022 less likely the array will grow exponentially when the load is
5025 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
5027 * metadata-internals.h, loader.c: fix dllmap lookup order
5028 for non-function maps, too, and prepare for fallback code.
5030 2007-02-12 Robert Jordan <robertj@gmx.net>
5032 * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
5033 to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
5034 and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
5035 GlobalFree. Fixes a part of bug #77075.
5037 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
5039 * loader.c: implemented typedef parent in field memberref.
5041 2007-02-11 Jonathan Chambers <joncham@gmail.com>
5043 * marshal.c: Fix warnings and remember to call Release on
5046 Code is contributed under MIT/X11 license.
5048 2007-02-10 Miguel de Icaza <miguel@novell.com>
5050 * class-internals.h: Add MonoHandleRef definition, and
5051 handleref_class to mono_defaults.
5053 * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
5054 structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
5056 * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
5057 (do nothing on this stage)
5058 (emit_object_to_ptr_conv): Extract the handle from the HandleRef.
5059 (emit_marshal_handleref): New method, used for argument handling
5062 2007-02-08 Jonathan Chambers <joncham@gmail.com>
5064 * class.c (mono_class_setup_parent): Lazily init com types.
5065 * domain.c (mono_init_internal, mono_init_com_types): Lazily
5067 * object.c (mono_remote_class_vtable): Lazily init com types.
5068 * class-internals.h: Add iunknown and idispatch to MonoDefaults.
5069 * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
5070 * domain-internals.h: Expose mono_init_com_types.
5071 * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
5072 * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
5073 Add support for COM Callable Wrapper marshalling.
5074 * marshal.h: Add icall definitions.
5075 * gc.c: Handle freeing of CCWs in finalizer code.
5077 Code is contributed under MIT/X11 license.
5079 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
5081 * reflection.c: changed all the signature encoding code to use
5082 a variable-sized buffer.
5084 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
5086 * marshal.c: locking fixes: never take the loader lock
5087 or other runtime locks when holding the marshal lock
5090 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
5092 * marshal.c: make the delegate function pointer mapping
5093 work for the moving GC.
5095 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
5097 * marshal.c: fix from Robert Jordan (robertj@gmx.net)
5100 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
5102 * image.h, loader.c, metadata-internals.h: use mono-dl instead of
5105 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
5107 * threadpool.c: made the code moving-GC safe.
5109 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
5111 * assembly.c, boehm-gc.c, class-internals.h, class.c,
5112 debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
5113 monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
5115 * reflection.c: warning cleanup, some threading and moving GC fixes.
5117 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
5119 * class.c, loader.c: create the needed Set/Get/Address array methods
5120 as well as the .ctors in mono_class_init (), fixes bug #80567.
5122 2007-01-24 Zoltan Varga <vargaz@gmail.com>
5124 * class.c (mono_class_layout_fields): When force-aligning a field, make sure
5125 we doesn't decrease its alignment. Should fix the sparc build.
5127 2007-01-24 Dick Porter <dick@ximian.com>
5130 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5131 Create the returned object if we need to ignore an unsupported
5132 socket option. Fixes a segfault reported by Atsushi.
5134 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
5136 * class.c, object.c: restrict GC-tracked fields to
5137 UIntPtr fields used inside corlib, so we provide better
5138 type info to the GC and also allow broken packing as in
5141 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
5143 * sgen-gc.c: removed duplicated function.
5145 2007-01-19 Miguel de Icaza <miguel@novell.com>
5147 * socket-io.c (convert_sockopt_level_and_name): return -2 as a
5148 value that means that the value is not supported, but that we
5149 should not return a failure, but instead report this as a
5150 successful operation.
5152 2007-01-19 Raja R Harinath <rharinath@novell.com>
5154 Fix tests/bug79956.2.il
5155 * class.c (mono_type_get_underlying_type): Handle genericinst enums.
5156 (mono_generic_class_get_class): If the generic definition in an
5157 enum, copy over other fields related to it.
5159 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
5161 * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
5162 genericinst enums (bug #79215).
5164 2007-01-17 Massimiliano Mantione <massi@ximian.com>
5165 * class.c: Fix bug 80307.
5167 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
5169 * image.c: if the file table is not present, try to load
5170 all the modules, since we don't have info about them
5171 having or not metadata (bug #80517).
5172 * assembly.c: allow mono_assembly_load_references () to
5173 work for netmodules.
5175 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
5177 * image.c, metadata-internals.h, object.c: execute module
5178 cctors when running on the 2 runtime if present (bug #80487).
5180 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
5182 * icall.c: optimized InitializeArray() on bigendian.
5184 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
5186 * icall.c: fix for the broken ARM FPA double format.
5188 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
5190 * icall.c: handle endian issues for r4 and r8 types, too, in
5191 the InitializeArray() icall.
5193 2007-01-15 Miguel de Icaza <miguel@novell.com>
5195 * loader.c (mono_loader_error_prepare_exception): Clear the error
5196 once we have extracted the information from it, do this before we
5197 call into the JIT's class loading mechanisms.
5199 * object.c (mono_class_create_runtime_vtable): Do not clear the
5200 loader error before calling mono_class_get_exception_for_failure
5201 as the loader error is needed inside
5202 mono_class_get_exception_for_failure to throw the error (thinko).
5206 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
5208 * reflection.c: align fields rva data so it's faster to load at
5211 2007-01-12 Raja R Harinath <rharinath@novell.com>
5213 Prepare to simplify GenericMethod handling.
5214 * class-internals.h (mono_method_get_context): New accessor function.
5215 * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
5216 rather than directly accessing '->context' field.
5218 * class-internals.h (_MonoGenericParam.method): Move ...
5219 (_MonoGenericContainer): ... here. Add into union with klass field.
5220 * class.c, icall.c, loader.c, metadata.c, reflection.c:
5223 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
5225 * Makefile.am, class-internals.h, debug-helpers.c: consolidate
5226 the wrapper type enum and reduce relocations.
5228 2007-01-12 Raja R Harinath <rharinath@novell.com>
5230 * reflection.c (inflate_mono_method): Reuse method instantiation
5231 from the generic method, if available.
5233 2007-01-11 Jonathan Chambers <joncham@gmail.com>
5235 * marshal.c (emit_marshal_variant): Fix conv_arg
5236 type in last commit, based on whether parameter is byref.
5238 2007-01-11 Jonathan Chambers <joncham@gmail.com>
5240 * marshal.c (emit_marshal_variant): Handle unmanaged->managed
5242 (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
5243 MONO_TYPE_OBJECT back for VARIANT support.
5245 2007-01-11 Jonathan Chambers <joncham@gmail.com>
5247 * marshal.c, marshal.h, icall-def.h: Implement
5248 Marshal.ReAllocCoTaskMem.
5250 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
5252 * marshal.c: memory retention fixes: use the proper
5253 image cache for runtime_invoke method lookups.
5255 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
5257 * mempool.c: added code to help debug mempool allocations.
5259 2007-01-11 Dick Porter <dick@ximian.com>
5261 * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
5262 support (experimenting with faking it with IP_MTU_DISCOVER for
5263 systems that don't have IP_DONTFRAGMENT.)
5264 (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
5267 * icall-def.h: new System.Net.Sockets.Disconnect icall.
5269 * socket-io.h: Add new fields to MonoSocketAsyncResult
5270 corresponding to the new ones in Socket.cs.
5272 2007-01-11 Raja R Harinath <rharinath@novell.com>
5274 Fix IronPython regression mentioned in #80249
5275 * metadata.c (do_mono_metadata_parse_generic_class): Clear
5276 'cached_context' field, since it may have been initialized as a
5277 side-effect of metadata parsing.
5279 * class-internals.h (_MonoGenericClass.is_inflated): Remove.
5280 (_MonoGenericClass.cached_class): Move here and rename from lone
5281 remaining field of ...
5282 (_MonoInflatedGenericClass): ... this. Remove.
5283 * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
5286 Fix mcs/tests/test-128.cs regression.
5287 * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
5288 2007-01-10 change below.
5289 [MONO_TYPE_OBJECT]: Recurse into array case.
5291 2007-01-11 Raja R Harinath <harinath@gmail.com>
5293 * class-internals.h (mono_get_inflated_generic_class): Remove.
5294 * class.c (mono_get_inflated_generic_class): Remove.
5295 (mono_generic_class_get_class): Rename from
5296 mono_class_create_generic.
5297 (mono_class_from_mono_type) [GENERICINST]: Use it.
5298 * reflection.c, metadata.c: Update to changes. Use
5299 'mono_class_from_mono_type'.
5301 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
5303 * reflection.c: use passed type when encoding an array element
5304 in custom attributes (patch from David Mitchell, dmitchell@logos.com).
5306 2007-01-09 Robert Jordan <robertj@gmx.net>
5308 * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
5309 result arguments (someDelegate.EndInvoke (unrelatedAres)).
5312 2007-01-09 Raja R Harinath <rharinath@novell.com>
5314 * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
5316 * object.c (set_value): Avoid aliasing between type->data.klass
5317 and type->data.generic_class.
5319 * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
5321 2007-01-08 Raja R Harinath <rharinath@novell.com>
5323 * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
5324 between type->data.klass and type->data.generic_class.
5326 2007-01-08 Lluis Sanchez <lluis@ximian.com>
5328 * marshal.c: In MS.NET, StringBuilder objects are not copied by
5329 value in out parameters.
5331 2007-01-08 Raja R Harinath <rharinath@novell.com>
5333 Simplify invariant for MonoGenericClass::klass field.
5334 * class.c (mono_class_create_generic): Verify 'klass' is null.
5335 * metadata.c (do_mono_metadata_parse_generic_class): Don't
5336 initialize 'klass' field.
5338 2007-01-05 Raja R Harinath <rharinath@novell.com>
5340 Ongoing work to avoid redundant data and simplify invariants.
5341 * class-internals.h (_MonoGenericMethod.class_inst): Rename from
5342 'generic_class', and change type to a GenericInst.
5343 (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
5344 * class.c, loader.c, metadata.c, reflection.c: Update to changes.
5346 2007-01-05 Atsushi Enomoto <atsushi@ximian.com>
5348 * class.c : skip io-layer under PLATFORM_WIN32.
5350 2007-01-03 Tor Lillqvist <tml@novell.com>
5352 Fix #80305: In a bundled executable, look in the bundled exe
5353 assembly to determine the runtime version. Add the possibility to
5354 bundle also the machine.config file.
5356 * assembly.c (mono_assembly_open_from_bundle): Make
5357 non-static. Allow being called even if we have no bundled
5358 assemblies, and return NULL right away in that case.
5360 * domain-internals.h: Declare mono_assembly_open_from_bundle()
5363 * domain.c (app_config_parse): Take an assembly exe file name as
5364 parameter instead of a config file name. Check for a bundled
5365 config file for that assembly by calling
5366 mono_config_string_for_assembly_file() (see below) before looking
5367 for one in the file system.
5368 (get_runtimes_from_exe): Corrsponding change to call of
5370 (get_runtimes_from_exe): Check for bundled assembly exe file first
5371 by calling mono_assembly_open_from_bundle(). If no bundled
5372 assembly exe file is found, call mono_image_open() as before to
5373 look it up in the file system.
5375 * mono-config.c: Add variable bundled_machinec_onfig.
5376 (mono_config_string_for_assembly_file): New function.
5377 (mono_config_for_assembly): Move code snippet that looks for a
5378 bundled assembly .config file into the above new function. Call
5380 (mono_register_machine_config, mono_get_machine_config): New
5381 functions to set and retrieve
5383 * assembly.h: Declare mono_register_machine_config().
5385 * mono-config.h: Declare mono_get_machine_config() and
5386 mono_config_string_for_assembly_file().
5388 * icall.c: No declaration of environ necessary on Win32. It is
5389 declared (as a macro expanding to a function call) in stdlib.h.
5390 (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
5391 New internal mono function. Returns the value of
5392 mono_get_machine_config() as a Mono string.
5394 * icall-def.h: Add get_bundled_machine_config().
5396 2007-01-04 Raja R Harinath <rharinath@novell.com>
5398 Remove redundant field
5399 * class-internals.h (_MonoGenericContext.container): Remove field.
5400 * loader.c (mono_method_get_signature_full): Don't parse a
5401 "container" for a signature parse when the signature is inflated
5403 (method_from_methodspec): Likewise, for a generic_inst.
5404 * class.c, metadata.c, reflection.c: Update to changes.
5406 2006-01-04 Raja R Harinath <rharinath@novell.com>
5408 * class-internals.h (_MonoGenericClass): Rename 'context' field to
5409 'cached_context', and change semantics -- it starts off NULL, and
5410 is initialized on demand.
5411 * class.c (mono_generic_class_get_context): New accessor to
5412 replace 'context' field accesses.
5413 (mono_class_get_context): New helper.
5414 (*): Update to changes.
5415 * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
5417 2007-01-03 Miguel de Icaza <miguel@novell.com>
5419 * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
5420 before the memcpy. Fixes Marshal2 regression.
5422 2007-01-02 Jb Evain <jbevain@gmail.com>
5424 * blob.h: add a MONO_TYPE_ENUM definition
5425 * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
5426 fix the encoding of arrays of enums in custom attributes.
5430 2007-01-01 Miguel de Icaza <miguel@novell.com>
5432 * marshal.c (mono_string_to_byvalwstr): Fix this routine. The
5433 string is null terminated, but only cut the string short if it
5434 overflows the buffer.
5436 (mono_string_to_byvalstr): Also fix this routine. The code here
5437 was not properly terminating a string (it was only terminated
5438 because of the previous catch-all memset).
5440 I left the memset, because I do not know if applications expect
5441 the runtime to clear this region.
5445 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
5446 Clear the error before returning to unmanaged code to prevent the
5447 runtime from being confused later on (fixes 80420).
5448 (ves_icall_type_from_name): Always call mono_loader_clear_error
5449 after parsing a type that could have failed.
5450 (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
5452 * loader.c (mono_loader_clear_error): Fix indentation.
5454 2006-12-28 Martin Baulig <martin@ximian.com>
5456 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
5458 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
5460 * reflection.c: patch from Rolf Bjarne Kvinge to fix
5461 getting a token for an EnumBuilder.
5463 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
5465 * reflection.c: be more careful in case resource generation
5466 fails to create the data array.
5468 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
5470 * sgen-gc.c: write barrier for clone and fix unregister handles.
5472 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
5474 * reflection.c: some fixes needed in the generics code for the moving GC.
5476 2006-12-22 Robert Jordan <robertj@gmx.net>
5478 * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
5479 account. Fixes bug #80299.
5481 2006-12-21 Raja R Harinath <rharinath@novell.com>
5483 Fix WaitHandle usage in delegates.
5484 * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
5485 * object.c (mono_wait_handle_new): Use the property set method to
5486 initialize the handle.
5487 (mono_wait_handle_get_handle): New.
5488 * threadpool.c (mono_async_invoke): Use it.
5489 * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
5491 (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
5493 2006-12-21 Jonathan Chambers <joncham@gmail.com>
5495 * marshal.c (emit_marshal): Call emit_marshal_variant and
5496 emit_marshal_com_interface when applicable.
5497 (emit_marshal_variant, emit_marshal_com_interface): Add
5498 methods for this case and remove if's from emit_marshal_object.
5500 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
5502 * filewatcher.c: updated to use the mono-dl API instead of gmodule.
5504 2006-12-19 Jonathan Chambers <joncham@gmail.com>
5506 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
5507 ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
5508 and GlobalFree on Windows. Remove FIXME.
5510 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5512 * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
5513 implementation for managed objects.
5515 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
5517 * object.c: implemented code to be used for checking
5518 that no reference field overlaps with non-references.
5520 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5522 * threadpool.c: fix queue code to be compatible with the
5525 2006-12-18 Miguel de Icaza <miguel@novell.com>
5527 * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
5528 in structures by throwing ArgumentNullException.
5530 (emit_marshal_safehandle): Also when they are null parameters.
5532 (emit_marshal_safehandle): Add support for ref
5533 SafeHandles parameters
5535 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5537 * profiler.c: updated to use the mono-dl API instead of
5540 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5542 * profiler.c: updated to use the mono-dl dynamic loading
5543 API instead of gmodule.
5545 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
5547 * profiler.c: use readlink, older versions of glib don't have
5548 g_file_read_link ().
5550 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5552 * profiler.c: try to detect the path to mono if libc fails to provide
5553 a useful name (bug #80286).
5555 2006-12-16 Raja R Harinath <rharinath@novell.com>
5558 * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
5559 instance, use the generic type definition instead.
5560 (ves_icall_Type_GetNestedTypes): Likewise.
5561 * class.c (mono_class_create_generic): Always set the
5562 nested_classes of a generic instance to NULL, even if the generic
5563 type definition has nested types.
5565 2006-12-15 Jonathan Chambers <joncham@gmail.com>
5567 * marshal.c (mono_string_from_bstr): Revert previous Windows change
5570 2006-12-15 Miguel de Icaza <miguel@novell.com>
5572 * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
5573 my arguments were in the wrong order. I also fixed the Windows
5574 version which seems to have had the same issue.
5576 (mono_free_bstr): On Unix, this is g_free.
5577 (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
5578 conversions (for the tests in corlib to pass).
5580 2006-12-14 Miguel de Icaza <miguel@novell.com>
5582 * marshal.c (emit_ptr_to_object_conv): For now, ignore
5583 MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
5584 exception if a ref SafeHandle in a struct has changed).
5586 (emit_struct_conv): Do not perform layout checks for classes
5587 derived from SafeHandle, as those are specially handled.
5589 (emit_object_to_ptr_conv): Add support for
5590 MONO_MARSHAL_CONV_SAFEHANDLE conversion.
5592 (emit_marshal_safehandle): Implement conversion of return values
5593 of safehandles (MARSHAL_ACTION_CONV_RESULT).
5595 * threads.c: WaitHandle now is compiled with two different handles
5596 "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
5599 (ves_icall_System_Threading_WaitHandle_WaitAll_internal)
5600 (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
5601 these routines to cope with both kinds of fields.
5603 2006-12-12 Miguel de Icaza <miguel@novell.com>
5605 * metadata.c (mono_type_to_unmanaged): Handle the case where
5606 type->data.klass is a SafeHandle, and in that case, return the
5607 size of a pointer (MONO_NATIVE_INT) and set the conversion to be
5608 MONO_MARSHAL_CONV_SAFEHANDLE.
5610 2006-12-11 Miguel de Icaza <miguel@novell.com>
5612 * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
5613 MONO_TYPE_OBJECT cases and check for a SafeHandle here before
5614 calling emit_marshal_object.
5616 (emit_marshal_safehandle): Implement marshalling of
5617 SafeHandle parameters (no ref support yet).
5619 (MarshalAction): Document the defines as I implement
5620 them for SafeHandle.
5622 (emit_marshal_object): indentation police.
5624 * class-internals.h: Define MonoSafeHandle.
5625 Add safehandle_class to MonoDefaults type.
5627 * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
5628 list of classes to check for fields.
5630 * domain.c (mono_init_internal): Add SafeHandle to the list of
5631 mono_defaults loaded.
5633 2006-12-15 Raja R Harinath <rharinath@novell.com>
5636 * reflection.c (mono_reflection_bind_generic_parameters): If the
5637 generic type definition is a type builder, ensure that it is fully
5638 initialized before instantiating it. Kill some dead code.
5640 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
5642 * object.c: clear the loader_error () before loading
5643 more metadata stuff (bug #80258).
5645 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
5647 * icall.c, icall-defs.h: type modifiers icalls for
5648 parameters and properties.
5650 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
5652 * object.c, icall.c: fixed warnings.
5654 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
5656 * marshal.c: fixed a couple of leaks and coding style in a few places.
5658 2006-12-08 Dick Porter <dick@ximian.com>
5660 * process.c: Cope with NULL ProcessStartInfo arguments on windows
5661 too. Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
5664 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
5666 * process.c: ProcessStartInfo may have only filename set and
5667 arguments can be NULL.
5669 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5671 * icall.c: fix leak found by Robert Jordan.
5673 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
5675 * marshal.c, marshal.h: generate managed method to access an element
5676 of a multi-dimensional array.
5678 2006-11-30 Paolo Molaro (lupus@ximian.com)
5680 * metadata.c, marshal.c: locking fixes when writing to image->mempool.
5682 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5684 * icall.c: back out GetFields () fix until the serialization code is
5685 fixed to not depend on the incorrect behaviour.
5687 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
5689 * profiler.c: provide defaults if none are set.
5691 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
5693 * Makefile.am, attrdefs.h: new public header file with
5694 constants for attributes for use by embedders.
5696 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
5698 * icall.c: GetFields () fix for bug #80064.
5700 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
5702 * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
5703 removed long unused icalls.
5705 2006-11-27 Jonathan Chambers <joncham@gmail.com>
5708 (mono_marshal_emit_managed_wrapper): Level of indirection for
5709 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
5710 can be generated without a delegate class.
5711 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
5713 Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5715 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5717 * console-io.c: add the 'signal' call removed by mistake. Fixes bug
5720 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5722 * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
5723 icall-def.h: added icalls needed by System.GC.
5725 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
5727 * loader.c: ensure the class in catch clauses is handled
5728 correctly for generics methods (fixes bug#79980).
5730 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
5732 * monitor.h, monitor.c: added mono_locks_dump () function
5733 to help debug deadlocks involving managed locks.
5735 2006-11-13 Dick Porter <dick@ximian.com>
5737 * file-io.c (get_file_attributes): If the file is a symlink try
5738 and get the stat data for the target, but also add the
5739 FILE_ATTRIBUTE_REPARSE_POINT flag. This is an attempt to follow
5740 the specs for the windows symlink support, but will probably have
5741 to be reworked when I have test data from a vista machine. Fixes
5744 2006-11-13 Dick Porter <dick@ximian.com>
5746 * gc.c (mono_domain_finalize):
5747 * marshal.c (mono_delegate_begin_invoke):
5748 * threadpool.c (socket_io_init, mono_thread_pool_init)
5749 (mono_thread_pool_finish):
5750 * monitor.c (mono_monitor_try_enter_internal):
5751 * threads.c (mono_thread_resume, mono_thread_init)
5752 (mono_thread_suspend_all_other_threads)
5753 (mono_thread_execute_interruption):
5754 * appdomain.c (mono_domain_unload): Check for NULL error returns
5755 from CreateThread(), CreateEvent() and CreateSemaphore(). See bug
5758 2006-11-11 Miguel de Icaza <miguel@novell.com>
5761 (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
5762 Only close the handle if the value of the handle is not
5763 INVALID_HANDLE_VALUE. This just makes the process a bit more
5766 Improvement for #75733, so that we do not run into this problem.
5769 * assembly.c (check_path_env, check_extra_gac_path_env): Do not
5770 include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
5771 internal variables. Fixes #79462
5774 2006-11-09 Dick Porter <dick@ximian.com>
5776 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5777 Use poll() not select(). Fixes bug 79397.
5779 2006-11-09 Raja R Harinath <rharinath@novell.com>
5782 * assembly.c (mono_assembly_load_from_full): Check that the given
5783 image has an assembly manifest.
5785 2006-11-09 Ankit Jain <jankit@novell.com>
5787 * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
5788 (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
5789 (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
5791 2006-11-07 Dick Porter <dick@ximian.com>
5793 * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5794 Put the old resolver behaviour back for pre-2.0 profiles.
5796 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5798 * threadpool.c: precise GC and locking fixes.
5800 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
5802 * class.c: don't load types that have an explicit unaligned
5803 managed reference. Provide better info in the TypeLoad exception.
5804 Part of the fix for bug #79744.
5805 * object.c: use the correct check for class type load issues.
5807 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5809 * class.c: enforce alignment of fields with managed references
5810 even when Pack=1 is forced by the user (bug #77788).
5812 2006-11-03 Dick Porter <dick@ximian.com>
5814 * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5815 If the address reverse lookup fails, return it as the hostname
5816 anyway. Fixes bug 79721.
5818 2006-11-03 Dick Porter <dick@ximian.com>
5820 * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
5821 Fix build on Windows.
5823 2006-11-02 Dick Porter <dick@ximian.com>
5826 * object-internals.h:
5827 * exception.c (mono_get_exception_thread_interrupted):
5828 * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
5831 * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
5832 Check for pending Thread.Interrupt.
5834 2006-10-27 Massimiliano Mantione <massi@ximian.com>
5835 * loader.c: Fixed bug 79684.
5837 2006-10-27 Dick Porter <dick@ximian.com>
5839 * file-io.c (get_file_attributes): Force symlinks to directories
5840 to be returned as a regular file. Fixes bug 79733.
5841 2006-10-26 Dick Porter <dick@ximian.com>
5843 * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
5844 CreateFile to open a directory then we need to set the
5845 FILE_FLAG_BACKUP_SEMANTICS flag. Fixes bug 75285.
5847 2006-10-23 Zoltan Varga <vargaz@gmail.com>
5849 * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
5852 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5854 * sgengc.c: small cleanup of timer code.
5856 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
5858 * sgen-gc.c: fix some warnings and start adding support for
5859 complete object removal on domain unload.
5861 2006-10-22 Gert Driesen <drieseng@users.sourceforge.net>
5863 * assembly.c: build_assembly_name should not consider a version
5864 number without build or revision number invalid. Fixes bug #79715.
5866 2006-10-18 Jonathan Chambers <joncham@gmail.com>
5868 * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
5869 call kernel32 function OutputDebugString directly.
5871 Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5873 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
5875 * reflection.c: small cleanup, using a function to insert a MonoString
5878 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
5880 * reflection.c: moving GC fixes.
5882 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
5884 * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
5885 all the objects with finalizers belonging to an unloading appdomain.
5887 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
5889 * sgen-gc.c: added ability to allocate even when the nursery is fully
5890 pinned and fixed a couple of bugs.
5892 2006-10-15 Zoltan Varga <vargaz@gmail.com>
5894 * threads.h: Revert the last change for now.
5896 * threads.h (mono_thread_get_pending_exception): Rename this to
5897 mono_thread_get_undeniable_exception ().
5899 2006-10-15 Gert Driesen <drieseng@users.sourceforge.net>
5901 * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
5902 BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
5903 when fname does not refer to valid assembly. This result in a more
5904 meaningful error message.
5905 * exception.c: added mono_get_exception_bad_image_format2 which
5906 constructs a BadImageFormatException using the ctor taking a custom
5907 message and the file name. Passing in a NULL msg results in a default
5909 * exception.h: define mono_get_exception_bad_image_format2 function.
5910 * icall.c: in InternalGetAssemblyName, throw BadImageFormatException
5911 when file name pointed to an invalid IL image. Use
5912 mono_get_exception_file_not_found2 to construct FileNotFoundException,
5913 as this results in a more meaningful error message.
5915 2006-10-15 Zoltan Varga <vargaz@gmail.com>
5917 * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
5920 2006-10-12 Zoltan Varga <vargaz@gmail.com>
5922 * metadata.c (mono_type_size): Change the align parameter to guint32 for
5923 consistency with the other _size functions.
5924 (mono_type_stack_size): Ditto.
5926 * class.c object.c icall.c: Fix warnings caused by the above change.
5928 * class.c (mono_class_get_method_from_name_flags): Fix a typo.
5930 * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
5932 * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
5934 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
5936 * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
5937 process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
5938 socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
5939 threadpool.h, threads-types.h: mark more internal functions.
5941 2006-10-11 Dick Porter <dick@ximian.com>
5943 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5944 Fix typo spotted by Robert Jordan in bug 79352 (though I can't
5945 reproduce the bug even before applying the fix.)
5947 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
5949 * reflection.c: allow retrieving attributes for arguments in generic
5950 methods (bug #79241).
5952 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
5954 * debug-mono-symfile.c: properly check fopen () result (found by
5957 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
5959 * reflection.c: make error message clearer and fixed two
5960 issuelets found by Coverity.
5962 2006-10-10 Zoltan Varga <vargaz@gmail.com>
5964 * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
5966 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
5968 * object-internals.h, gc-internal.h, profiler-private.h:
5969 mark internal functions.
5971 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
5973 * reflection.c: put data in the text section.
5974 * icall.c: recognize more types in type_from_typename ().
5975 * process.c, marshal.c: added some GC FIXMEs.
5977 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5979 * loader.c: check for NULL before initializing.
5981 2006-10-09 Zoltan Varga <vargaz@gmail.com>
5983 * gc.c (finalizer_thread): Use a non-alertable wait here.
5985 * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
5986 until the correct solution is found.
5988 2006-10-06 Zoltan Varga <vargaz@gmail.com>
5990 * reflection.c (mono_module_get_object): Avoid an assert when operating on
5991 modules with no metadata. Fixes #79596.
5993 * image.c (load_metadata_ptrs): Put back the error message when
5994 the #- heap is encountered since the support is not complete yet.
5996 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5998 * gc.c: do not allow the user to SuppressFinalize () a
5999 delegate because it would leak the trampoline if present.
6001 2006-10-06 Zoltan Varga <vargaz@gmail.com>
6003 * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
6006 2006-10-05 Zoltan Varga <vargaz@gmail.com>
6008 * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
6010 * metadata.c (mono_metadata_get_param_attrs): Ditto.
6012 * row-indexes.h: Add definitions for *Ptr tables.
6014 * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
6016 * metadata.c (mono_metadata_translate_token_index): New helper function to
6017 translate table indexes used in uncompressed metadata.
6018 (mono_metadata_decode_table_row): Ditto.
6019 (mono_metadata_decode_table_row_col): Ditto.
6021 * metadata.c: Add table schema for *Ptr tables.
6023 * class.c loader.c: Use the new helper function to access the affected metadata
6026 * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
6029 2006-10-04 Zoltan Varga <vargaz@gmail.com>
6031 * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
6032 sequences which can be unbounded in size. Fixes #79583.
6034 2006-10-02 Zoltan Varga <vargaz@gmail.com>
6036 * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
6037 static initialization.
6039 * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
6041 * class-internals.h (MonoVTable): Add an 'init_failed' flag.
6043 * domain.c (mono_domain_free): Free up type_init_exception_hash.
6045 * object.c (mono_runtime_class_init): Implement correct semantics when a static
6046 ctor fails, i.e. throw the same exception on subsequent accesses.
6048 2006-09-0 Jonathan Chambers <joncham@gmail.com>
6050 * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
6051 * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
6052 Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
6053 Handle marshalling of interfaces and VARIANTs contained in structs.
6055 Code is contributed under MIT/X11 license.
6057 2006-09-30 Zoltan Varga <vargaz@gmail.com>
6059 * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
6061 * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
6064 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6066 * console-io.c: ignore previous SIGINT handler.
6068 2006-09-27 Zoltan Varga <vargaz@gmail.com>
6070 * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual
6071 (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
6072 #79460, #79461, #79485.
6074 * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
6076 * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
6079 2006-09-26 Zoltan Varga <vargaz@gmail.com>
6081 * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
6082 could be generated from it.
6084 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
6086 * rand.c: fix read loop to correctly handle EINTR.
6088 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
6090 * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
6091 internal calls are defined to keep methods closer to the declaring
6092 type and allow a significant reduction in runtime relocations and
6095 2006-09-21 Gert Driesen <drieseng@users.sourceforge.net>
6097 * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
6098 exception message to have FileNotFoundException use the default
6099 assembly load error message. Fixes bug #79426.
6100 * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
6102 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6104 * threadpool.c: (start_thread_or_queue) use the root domain when
6105 creating the thread instead of the async object one.
6107 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
6109 * class.c, object.c, class-internals.h, reflection.c:
6110 for arrays, store element_size inside MonoClass (speedup
6111 for array object creation).
6113 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
6115 * icall.c: fixed CodeBase to use the file name and not the module
6118 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
6120 * mono-debug.c, mono-debug.h: export find_method as
6121 mono_debug_find_method ().
6123 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
6125 * debug-helpers.c, class-internals.h: added a few functions useful
6126 when debugging under gdb.
6128 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6130 * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
6131 characters that need special handling.
6133 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
6135 * mono-config.c: make the os/cpu specification more flexible,
6136 allowing lists and negation.
6138 2006-09-18 Jonathan Chambers <joncham@gmail.com>
6140 * marshal.c: COM Interop fixes. Handle case where method->klass.
6141 is interface. Handle BSTR/MonoString when null. Use CDECL as
6142 calling convention on non-windows platforms. This is for
6143 compatibility with XPCOM and MainWin COM.
6145 Code is contributed under MIT/X11 license.
6148 2006-09-18 Zoltan Varga <vargaz@gmail.com>
6150 * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
6151 correctly. Fixes #79217.
6153 * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
6155 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
6157 * mono-config.c: allow both an os and cpu attribute for dllmap
6158 and dllentry elemnets to enable a single config file to be used
6159 for multiple architectures.
6161 2006-09-18 Gert Driesen <drieseng@users.sourceforge.net>
6163 * loader.c: MonoLoaderError was cleared too soon on load failure.
6166 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
6168 * icall.c: use the defining class vtable when accessing a
6169 static field, not a pobblibly derived class.
6171 2006-09-17 Zoltan Varga <vargaz@gmail.com>
6173 * icall.c string-icalls.c: Remove references to unicode.h.
6175 * unicode.h unicode.c Makefile.am: Remove these unused source files.
6177 * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
6179 * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument,
6180 indicating the image where custom marshaller types should be looked up.
6181 (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
6182 custom marshallers, instead of corlib. Fixes #79425.
6184 2006-09-14 Zoltan Varga <vargaz@gmail.com>
6186 * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
6188 2006-09-14 Jonathan Chambers <joncham@gmail.com>
6190 * environment.c (ves_icall_System_Environment_get_ProcessorCount):
6191 Implement Environment.ProcessorCount.
6193 * environment.h (ves_icall_System_Environment_get_ProcessorCount):
6194 Implement Environment.ProcessorCount.
6197 Add Environment.ProcessorCount icall.
6199 Patch by Jason McFall.
6201 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6203 * assembly.c: don't append .exe/.dll when the filename already contains
6204 one of those extensions.
6206 2006-09-12 Martin Baulig <martin@ximian.com>
6208 * class.c (mono_bounded_array_class_get): Also add `IList<object>'
6209 to array interfaces.
6211 2006-09-11 Martin Baulig <martin@ximian.com>
6213 * reflection.c (mono_image_build_metadata): Create the
6214 MethodImpl's after emitting all types and methods, so we don't
6215 need another fixup pass for them.
6217 2006-09-11 Zoltan Varga <vargaz@gmail.com>
6219 * class.c (mono_class_from_name_case): Fix regression introduced by the last
6222 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
6224 * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
6227 2006-09-10 Zoltan Varga <vargaz@gmail.com>
6229 * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
6230 args is not set. Fixes #78926.
6232 2006-09-08 Zoltan Varga <vargaz@gmail.com>
6234 * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
6236 * image.c (load_class_names): Move this to class.c, and rename it to
6237 'mono_image_init_name_cache'.
6238 (load_modules): Fix a warning.
6240 * class.c icall.c image.c: Initialize image->name_cache lazily.
6242 * class-internals.h (MonoGetClassFromName): New hook function to find a class based
6243 on its name using information in the AOT file.
6245 * class.c (mono_class_from_name): Use the new hook function.
6247 2006-09-06 Zoltan Varga <vargaz@gmail.com>
6249 * reflection.c (mono_param_get_objects): Handle enum default parameter values
6252 * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
6255 2006-09-06 Martin Baulig <martin@ximian.com>
6257 * icall.c (mono_lookup_internal_call): Small fix.
6259 2006-09-05 Raja R Harinath <rharinath@novell.com>
6261 * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
6264 2006-09-04 Sebastien Pouliot <sebastien@ximian.com>
6266 * debug-mono-symfile.c: Fix *some* memory leaks that happens only
6267 when --debug is specified.
6269 2006-09-04 Zoltan Varga <vargaz@gmail.com>
6271 * class.c (setup_generic_array_ifaces): Fix a warning.
6273 2006-09-04 Miguel de Icaza <miguel@novell.com>
6275 * Temporarily remove the patch to assemly.c that checks the
6276 assembly versions as it breaks our gacutil.
6278 2006-09-03 Zoltan Varga <vargaz@gmail.com>
6280 * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
6282 * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
6285 * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
6286 created using the default ctor. Fixes #79152.
6287 (mono_string_builder_to_utf16): Ditto.
6289 2006-09-01 Martin Baulig <martin@ximian.com>
6291 Fix handling of the generic array interfaces.
6294 (MonoDefaults): Removed `generic_array_class' and added
6295 `generic_ilist' class.
6298 (mono_bounded_array_class_get): Add the new generic array interfaces.
6299 (setup_generic_array_ifaces): New static method; create vtable
6300 entries for each method in the generic array interfaces.
6303 (select_container): Allow "parent-less" generic methods.
6306 (mono_marshal_get_generic_array_helper): New public method.
6309 (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
6310 Renamed into ves_icall_System_Array_GetGenericValueImpl() and
6311 moved the interncall into System.Array.
6313 2006-09-01 Raja R Harinath <rharinath@novell.com>
6315 A few more cases of avoiding work on types with ->byref set.
6316 Has the real fix for #79238
6317 * icall.c (is_generic_parameter): New helper.
6318 (ves_icall_Type_GetGenericParameterPosition): Use it.
6319 (ves_icall_Type_GetGenericParameterAttributes): Likewise.
6320 (ves_icall_MonoType_get_IsGenericParameter): Likewise.
6321 (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
6322 (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
6324 (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
6326 (ves_icall_Type_get_IsGenericInstance): Likewise.
6327 (ves_icall_Type_get_IsGenericType): Likewise.
6329 2006-09-01 Zoltan Varga <vargaz@gmail.com>
6331 * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
6334 * mempool.h (mono_mempool_get_allocated): New helper function.
6336 * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
6339 * mempool.c: Fix warnings and the calculation of stats.
6341 * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
6343 * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
6345 * loader.c (mono_get_method_from_token): Update method_count stat.
6347 * class-internals.h (MonoStats): Add some stats.
6349 2006-08-31 Robert Jordan <robertj@gmx.net>
6351 * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
6352 with managed variants.
6353 All code is contributed under the MIT/X11 license.
6355 2006-08-31 Zoltan Varga <vargaz@gmail.com>
6357 * reflection.c (reflection_methodbuilder_to_mono_method): Set
6358 method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
6360 * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
6362 * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
6363 with cycles in classes.
6365 * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
6367 * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is
6368 missing a [MarshalAs] directive. Fixes #79203.
6370 * marshal.c (mono_marshal_load_type_info): Fix a race in initializing
6371 klass->marshal_info. Fixes #79217.
6373 2006-08-30 Martin Baulig <martin@ximian.com>
6375 Committing a patch from Joachim Ante <joe@otee.dk>:
6376 Add support for binary data symbol stores.
6378 * debug-mono-symfile.c
6379 (mono_debug_open_mono_symbol_file): Renamed into
6380 mono_debug_open_mono_symbols() and added `raw_contents' and `size'
6384 (mono_debug_open_image): Added `raw_contents' and `size' args.
6385 (mono_debug_init_2_memory): New public function.
6387 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
6389 * icall.c: handle TypedReference in GetTypeCode (bug #79150).
6391 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6393 * appdomain.c: implement support for ShadowCopyFiles.
6395 2006-08-22 Sebastien Pouliot <sebastien@ximian.com>
6397 * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
6398 when value is NULL (and should remove CID #51).
6400 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6402 * image.c: moved 2 functions to ../utils.
6404 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
6406 * gc.c: cope with the target object of a GC handle being NULL
6409 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
6411 * class.c: recursively check parent's explicit implementations
6412 of interface methods (fixes bug #79125).
6414 2006-08-19 Miguel de Icaza <miguel@novell.com>
6416 * filewatcher.c: Avoid warnings when building, do not redefine
6417 constants that are defined.
6421 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6423 * image.c: don't fail when the link points to an absolute path.
6425 2006-08-18 Sebastien Pouliot <sebastien@ximian.com>
6427 * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
6430 2006-08-17 Miguel de Icaza <miguel@novell.com>
6432 * image.c (full_path): A new method used to obtain the actual path
6433 of an assembly even in the presence of symbolic links.
6435 This is necessary for the case where we are running a binary that
6436 has been GACed, but we are using the "published" path name
6437 ($prefix/mono/1.0/blah.exe) which happens to point to the real
6440 This was the source of the failure for the `xsp' command with the
6441 recent AppDomain changes, as far as the runtime was concerned,
6442 there were two different assemblies: $prefix/mono/1.0/blah.exe and
6443 $prefix/mono/gac/blah/version/blah.exe.
6445 (do_mono_image_open): use full path
6447 2006-08-17 Zoltan Varga <vargaz@gmail.com>
6449 * object.c (mono_class_create_runtime_vtable): Add a FIXME.
6451 2006-08-17 Sebastien Pouliot <sebastien@ximian.com>
6453 * marshal.c: Fix mono_marshal_check_domain_image if an invalid
6454 domain_id is supplied. Fix CID #241 and corlib's unit tests.
6456 2006-08-17 Zoltan Varga <vargaz@gmail.com>
6458 * class.c (mono_class_layout_fields): Set min_align to a bigger value for
6459 small structures. Fixes #78990.
6461 2006-08-17 Zoltan Varga <vargaz@gmail.com>
6463 * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
6465 * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
6467 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6470 * marshal.c: don't load all the assemblies from a domain into newly
6471 created ones. The new domains might have different rules and load
6472 assemblies from different locations. Fixes bug #76757.
6474 Patch by Lluis. Conflicts resolved by Brian Crowell.
6476 2006-08-16 Alp Toker <alp@atoker.com>
6478 * socket-io.c: First half of the fix for #79084.
6479 Set sa_size to the length of the content, not that of the struct.
6480 Don't add NULL suffix to the content, this should be done in
6481 managed code if needed.
6483 2006-08-14 Raja R Harinath <rharinath@novell.com>
6486 * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
6487 mono_metadata_parse_type returns NULL.
6489 2006-08-13 Atsushi Enomoto <atsushi@ximian.com>
6491 * normalization-tables.h : new file for string normalization data.
6492 * locales.c, locales.h, icall.c :
6493 added load_normalization_resource() for string normalization,
6495 * Makefile.am : added normalization-tables.h to the sources.
6497 2006-08-13 Zoltan Varga <vargaz@gmail.com>
6499 * marshal.c: Add more helper functions to reduce code duplication and use them
6502 2006-08-12 Zoltan Varga <vargaz@gmail.com>
6504 * marshal.c: Fix non-x86 stdcall warnings.
6506 * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use
6509 2006-08-11 Jonathan Chambers <joncham@gmail.com>
6511 * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
6512 type check on multi-dimensional arrays. Fixes #79000.
6514 2006-08-10 Jonathan Chambers <joncham@gmail.com>
6516 * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
6517 * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
6518 to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
6519 * class-internals.h: add is_com_object to class structure.
6520 * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
6521 null checks to COM object marshalling. Fix .ctor call on RCW.
6522 * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
6524 All code is contributed under the MIT/X11 license.
6526 2006-08-09 Dick Porter <dick@ximian.com>
6528 * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
6529 racing mono_monitor_allocator_lock() somewhere, so don't delete
6530 the critical section for now. Found by running and exiting
6533 2006-08-10 Zoltan Varga <vargaz@gmail.com>
6535 * marshal.c (cominterop_get_native_wrapper): Fix a warning.
6536 (ves_icall_System_ComObject_FindInterface): Ditto.
6537 (ves_icall_System_ComObject_CacheInterface): Ditto.
6539 * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
6540 (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
6542 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6544 * threadpool.c: treat pipes from process asynchronous reads as sockets
6545 when reading from them, so we get select/poll or epoll to wait for
6548 2006-08-07 Sebastien Pouliot <sebatien@ximian.com>
6550 * loader.c: Fix a typo (CID #233) in the null check.
6552 2006-08-07 Zoltan Varga <vargaz@gmail.com>
6554 * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
6555 Hopefully fixes #78949.
6557 * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from
6558 Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
6559 bytes. Fixes #78972.
6561 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6563 * filewatcher.c: we need to set errno here.
6565 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6567 * filewatcher.c: let Win32Exception get the error value.
6569 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6571 * filewatcher.c: translate errno into win32 errors for Win32Exception
6572 to know what happened.
6574 2006-08-01 Zoltan Varga <vargaz@gmail.com>
6576 * threadpool.c: Fix more warnings.
6578 * assembly.c (search_loaded): Fix warnings.
6580 * threadpool.c (mono_thread_pool_finish): Fix warnings.
6581 (mono_async_invoke): Ditto.
6583 2006-07-28 Jonathan Chambers <joncham@gmail.com>
6585 * object.c (mono_remote_class_vtable): Need to create proxy vtable
6586 entries for __ComObject type in addition to ComImport types.
6587 * marshal.c: Added support for marshalling COM RCWs. Fixed warning
6590 All code is contributed under the MIT/X11 license.
6592 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
6594 * image.c: avoid tentative loading of modulerefs that contain
6595 no metadata (P/Invoke library names).
6597 2006-07-28 Dick Porter <dick@ximian.com>
6599 * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
6600 mono_loader_lock() somewhere, so don't delete the critical section
6601 for now. Found by running and exiting monodevelop.
6603 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6605 * filewatcher.c: define the inotify syscalls when we're building on
6606 linux and have sys/syscall.h. The build system might not have support
6607 for inotify but the target system might have it.
6609 2006-07-26 Miguel de Icaza <miguel@novell.com>
6611 * domain.c: Documentation updates.
6613 * loader.c (mono_free_method): Do not release the method
6614 information if we are being profiled, as profilers will use this
6615 information at shut down to present some data to the user.
6617 This is needed so that the profiler does not crash, as the
6618 profiler tends to keep MonoMethods around, and they might become
6619 invalid if we free these.
6621 (mono_get_method_constrained): Return the original CIL stream
6622 method as well, so verification can be performed against it.
6624 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6626 * filewatcher.[ch]: support for inotify file system watcher.
6627 * icall.c: add new internal calls for the inotify file system watcher.
6629 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6631 * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
6634 2006-07-20 Dick Porter <dick@ximian.com>
6636 * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
6639 2006-07-20 Dick Porter <dick@ximian.com>
6641 * threads.c (start_wrapper): Do the thread cleanup while we still
6642 hold a reference to its object. Fixes bug 78123.
6644 2006-07-18 Kornél Pál <kornelpal@gmail.com>
6646 * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
6647 * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
6648 "managed-to-managed".
6649 * icall.c: Redirect string constructors that take sbyte* to
6650 ves_icall_System_String_ctor_RedirectToCreateString.
6651 * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
6652 to CreateString () methods with matching signature.
6653 * reflection.c: Use original security informations for
6654 MONO_WRAPPER_MANAGED_TO_MANAGED.
6655 * security-manager.c: Use original security informations for
6656 MONO_WRAPPER_MANAGED_TO_MANAGED.
6657 * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
6658 that is a placeholder and only its address should be used.
6659 * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
6660 that is a placeholder and only its address should be used.
6662 2006-07-15 Jonathan Chambers <joncham@gmail.com>
6664 Begin implementing COM Interop.
6665 * appdomain.c: Increment corlib version.
6666 * class.c: Set ComImport classes' parent to __ComObject.
6667 * loader.c: Mark cominterop methods as such.
6668 * domain.c: Add __ComObject class to MonoDefaults structure.
6669 * image.c: Add 2 hashtables to the image for COM Interop related methods
6670 * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
6671 using the mempool allocator
6673 * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
6674 * metadata.h: Added cominterop field to _MonoMethodSignature struct and
6675 declaration for mono_metadata_type_dup_mp.
6677 * debug-helpers.c: Added strings for two additional wrapper types
6678 * object.c: Create proxy objects for ComImport classes
6679 * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
6680 and added __ComObject class to MonoDefaults structure.
6682 * object-internals.h: Finish MonoRealProxy definition, and add definition of
6683 MonoComInteropProxy and MonoComObject.
6685 * marshal.c: Added support for COM Interop
6686 (signature_cominterop): Converts managed signature to corresponding
6687 unmanaged COM signature.
6688 (cominterop_get_function_pointer): gets unmanaged function pointer via
6690 (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
6691 (cominterop_get_method_interface): returns interface type that method is defined on
6692 (mono_mb_emit_cominterop_call): emits native call to function pointer
6694 (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
6695 that matches signature of unmanaged function.
6696 (cominterop_get_native_wrapper): wrapper around adjusted method call.
6697 (cominterop_get_invoke): forwards call from proxy to __ComObject
6698 (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef
6699 (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface
6700 (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release
6702 * marshal.h: Added Marshal icall declarations.
6703 * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
6704 so we can access them in finalizer
6706 2006-07-14 Dick Porter <dick@ximian.com>
6708 * object.c (mono_type_initialization_cleanup): Fix a race
6709 condition by temporarily commenting out the critical section
6712 2006-07-14 Zoltan Varga <vargaz@gmail.com>
6714 * reflection.c (create_custom_attr): Fix some warnings.
6715 (create_custom_attr_data): Ditto.
6716 (typebuilder_setup_properties): Save custom attrs for properties in dynamic
6717 types. Fixes #78855.
6719 2006-07-11 Zoltan Varga <vargaz@gmail.com>
6721 * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
6723 * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
6725 2006-07-08 Zoltan Varga <vargaz@gmail.com>
6727 * reflection.c (resolve_object): Add support for DynamicMethod.
6729 * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
6730 Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
6732 2006-07-06 Sebastien Pouliot <sebastien@ximian.com>
6734 * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal
6735 don't leak GPtrArray's pdata has we have no use (nor free) for it.
6737 2006-07-01 Zoltan Varga <vargaz@gmail.com>
6739 * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
6742 2006-06-30 Raja R Harinath <rharinath@novell.com>
6744 * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
6745 slightly: remove a shadow local variable.
6747 2006-06-29 Raja R Harinath <rharinath@novell.com>
6749 * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
6750 definition that introduces the virtual function slot.
6751 Also fix Coverity #105.
6753 2006-06-29 Zoltan Varga <vargaz@gmail.com>
6755 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
6756 for dynamic assemblies. Fixes #78724.
6758 2006-06-28 Zoltan Varga <vargaz@gmail.com>
6760 * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
6763 2006-06-21 Martin Baulig <martin@ximian.com>
6766 (method_encode_clauses): Don't assert on `ex_info->handlers' here;
6769 2006-06-21 Zoltan Varga <vargaz@gmail.com>
6771 * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
6773 2006-06-20 Raja R Harinath <rharinath@novell.com>
6775 Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
6777 * class.c (mono_class_create_from_typespec): Add 'context' argument.
6778 Inflate result if necessary.
6779 (mono_class_get_full): Remove old version. Rename from
6780 'mono_class_get' and add 'context' argument. Pass it to
6781 ..._create_from_typespec.
6782 (mono_class_get): New. Simple wrapper to mono_class_get_full.
6783 (mono_ldtoken): Revert change below.
6785 2006-06-20 Martin Baulig <martin@ximian.com>
6787 * class.c (mono_ldtoken): Don't pass the generic context to
6788 mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF. Fixes #78053.
6790 2006-06-15 Zoltan Varga <vargaz@gmail.com>
6792 * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
6793 and later freeing it. Fixes #78638.
6795 2006-06-15 Miguel de Icaza <miguel@novell.com>
6797 * icall.c (mono_class_get_throw): Revert over-zealous error
6798 throwing, the caller for mono_class_get_throw will cope with
6799 errors when classes are not properly initialized already.
6801 The code still copes with loader exceptions though.
6803 Fixes the regression in reftype1 and reftype3 from the CAS tests.
6805 2006-06-14 Miguel de Icaza <miguel@novell.com>
6807 Fixes the `make run1' version of RuntimeAbort (to be commited,
6808 source is in Bugzilla).
6810 * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
6811 FALSE on class loading failure instead of returning true.
6813 * class.c (mono_class_create_from_typedef): It is possible for
6814 mono_metadata_interfaces_from_typedef_full to fail if a class is
6815 not found, cope with this.
6818 2006-06-14 Dick Porter <dick@ximian.com>
6821 * process.c: Fix a bunch of signed/unsigned warnings from gcc
6824 2006-06-12 Atsushi Enomoto <atsushi@ximian.com>
6826 * culture-info-table.h : oops, forgot to make it nsync with r61548.
6828 2006-06-09 Jonathan Chambers <jonathan.chambers@ansys.com>
6830 * icall.c: Another fix for building mono in Visual Studio.
6832 2006-06-09 Jonathan Chambers <jonathan.chambers@ansys.com>
6834 * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
6836 2006-06-09 Martin Baulig <martin@ximian.com>
6838 * debug-mono-symfile.c: Put this back and really fix it this
6839 time. Sorry for all the trouble.
6841 2006-06-08 Zoltan Varga <vargaz@gmail.com>
6843 * icall.c (mono_class_get_throw): Fix a warning.
6844 (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw
6845 ReflectionTypeLoadException if needed. Fixes #78606.
6847 * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
6848 (mono_class_init): Ditto.
6850 * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
6851 ref_only exceptions.
6852 (mono_loader_clear_error): Make this work even if there is no error.
6854 2006-06-08 Jonathan Chambers <jonathan.chambers@ansys.com>
6856 * object-internals.h marshal.c marshal.h icall.c: Implement method
6857 Marshal.GetComSlotForMethodInfo using internal call.
6859 2006-06-07 Zoltan Varga <vargaz@gmail.com>
6861 * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
6862 a function for signalling it.
6864 * class.c (mono_class_from_typeref): Use the new kind of loader error when
6865 a referenced assembly is not found.
6867 * loader.c (mono_loader_error_prepare_exception): Add support for
6868 LOADER_ERROR_ASSEMBLY. Fix formatting.
6870 2006-06-05 Jonathan Chambers <jonathan.chambers@ansys.com>
6872 * domain.c appdomain.c class-internals.h marshal.c: Add support
6873 for VARIANT marshalling on windows and increment corlib version
6874 since Variant struct was added.
6876 2006-06-03 Miguel de Icaza <miguel@novell.com>
6878 * debug-mono-symfile.c: Revert Martin's previous patch which broke
6879 stack trace line information:
6881 (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
6882 (Martin) when looking up B which is between A and C, return A not C.
6886 Thanks to Alexander Olk for tracking this down.
6888 2006-06-02 Zoltan Varga <vargaz@gmail.com>
6890 * marshal.c (mono_marshal_set_last_error_windows): Fix build.
6892 * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
6893 avoid clobbering its value.
6894 (mono_string_to_lpstr): Fix a warning on windows.
6896 2006-05-31 Zoltan Varga <vargaz@gmail.com>
6898 * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
6900 * reflection.c loader.c: Removed references to 'dummy' flag.
6902 * loader.c (mono_loader_error_prepare_exception): Fix a warning.
6904 * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
6905 it gets GC tracking.
6907 * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
6910 * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
6912 * marshal.c threadpool.c: Update callers of mono_async_result_new.
6914 * appdomain.c: Bump corlib version.
6916 2006-05-30 Zoltan Varga <vargaz@gmail.com>
6918 * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6919 CEE_STIND_REF when working with object references.
6921 2006-05-31 Zoltan Varga <vargaz@gmail.com>
6923 * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
6926 2006-05-30 Miguel de Icaza <miguel@novell.com>
6928 * loader.c (method_from_memberref): Fix argument value for
6929 mono_loader_set_error_method_load (I was passing the MonoClass
6930 instead of the class name char *).
6932 2006-05-30 Zoltan Varga <vargaz@gmail.com>
6934 * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6935 CEE_STIND_REF when working with object references.
6937 2006-05-30 Martin Baulig <martin@ximian.com>
6939 * mono-debug.c (mono_debug_print_stack_frame): Reverted the
6940 mono_method_full_name() change and replace the ':' with a '.'
6943 2006-05-30 Martin Baulig <martin@ximian.com>
6945 * debug-mono-symfile.c
6946 (mono_debug_symfile_lookup_location): Fix the algorithm:
6947 when looking up B which is between A and C, return A not C.
6949 2006-05-29 Martin Baulig <martin@ximian.com>
6952 (MonoDebugMethodInfo): Make the typedef public.
6953 (MonoDebugSourceLocation): New public struct.
6956 (mono_debug_source_location_from_address): Removed.
6957 (mono_debug_source_location_from_il_offset): Removed.
6958 (mono_debug_il_offset_from_address): Removed.
6959 (mono_debug_address_from_il_offset): Removed.
6960 (mono_debug_lookup_method): New public function.
6961 (mono_debug_lookup_source_location): New public function; replaces
6962 the old mono_debug_source_location_from_*() functions; see the
6963 inline documentation.
6964 (mono_debug_free_source_location): New public function.
6965 (mono_debug_print_stack_frame): New public function; see the
6966 inline documentation.
6968 * debug-mono-symfile.c
6969 (mono_debug_find_source_location): Renamed into
6970 mono_debug_symfile_lookup_location(); only take a
6971 `MonoDebugMethodInfo *' and an `offset' argument; added inline
6973 (mono_debug_find_method): Renamed into
6974 mono_debug_symfile_lookup_method().
6976 2006-05-27 Zoltan Varga <vargaz@gmail.com>
6978 * assembly.c (mono_assembly_open_full): Dont overwrite the status
6979 returned by mono_image_open_full ().
6981 * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
6982 MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
6985 * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
6988 2006-05-27 Miguel de Icaza <miguel@novell.com>
6990 * class.c (mono_class_from_typeref): handle missing images
6991 earlier, deals with bug #78418. Refactor code;
6993 Fix a warning introduced in my previous commit (some stale code
6994 from before I revisited my patch).
6996 * class.c (mono_class_create_from_typedef): On failure, remove the
6997 class from the MonoImage->class_cache as the class is not
6998 initialized; Fixes the leak pointed out by Paolo.
7000 2006-05-25 Dick Porter <dick@ximian.com>
7002 * threads.c (mono_thread_cleanup): Build fix. Comment out the
7003 DeleteCriticalSections until I figure out which one may still be
7004 sometimes locked when mono_thread_cleanup is called.
7006 2006-05-24 Dick Porter <dick@ximian.com>
7008 * threads.c (mono_thread_cleanup): Move the threading cleanup out
7009 of mono_thread_manage and back into its own function, so it can be
7010 called after the finalizer thread has finished.
7012 * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
7014 2006-05-24 Zoltan Varga <vargaz@gmail.com>
7016 * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
7019 * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
7020 with non-blittable elements.
7021 (emit_object_to_ptr_conv): Ditto. Fixes #78492.
7023 2006-05-24 Martin Baulig <martin@ximian.com>
7025 * mono-debug-debugger.h (MonoDebuggerEvent): Added
7026 `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.
7028 * mono-debug-debugger.c (mono_debugger_cleanup): Send a
7029 `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
7030 `mono_debugger_event_handler' to NULL.
7032 2006-05-24 Martin Baulig <martin@ximian.com>
7034 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
7036 2006-05-24 Martin Baulig <martin@ximian.com>
7038 * mono-debug-debugger.h
7039 (mono_debugger_create_notification_function): Added
7040 `MonoCodeManager *' argument.
7042 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
7044 * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
7046 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
7048 * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
7049 * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
7052 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
7054 * icall.c: precise GC support: objects can't be stored in unmanaged
7055 memory anymore, even if they are kept alive by other references: since
7056 they can move the GC needs to be able to always find them.
7058 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
7060 * object.c: precise GC support for static fields. Support
7061 for moving GCs: write barriers and pinned allocation for interned
7064 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
7066 * domain.c, domain-internals.h: precise GC support for the MonoDomain
7069 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
7071 * class.c, gc.c: sgen and precise GC updates.
7073 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
7075 * marshal.h, marshal.c: added write barrier wrapper and precise type
7078 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
7080 * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
7083 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
7085 * reflection.c: precise and sgen GC updates.
7087 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
7089 * debug-helpers.c, class-internals.h: added write barrier wrapper type.
7091 2006-05-22 Zoltan Varga <vargaz@gmail.com>
7093 * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
7095 2006-05-20 Zoltan Varga <vargaz@gmail.com>
7097 * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
7098 MONO_TYPE_OBJECT. Fixes #78462.
7100 2006-05-18 Zoltan Varga <vargaz@gmail.com>
7102 * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct
7103 and blittable types.
7105 2006-05-17 Miguel de Icaza <miguel@novell.com>
7107 * class.c (mono_class_get_exception_for_failure): Implement parts
7108 of a TODO: if the loader error is set (instead of the class
7109 error), we return a Loader exception that can be properly thrown
7112 This was exposed by some Winforms 2.0 code that I tried to run
7113 (Atsushi pointed me to it).
7115 2006-05-17 Zoltan Varga <vargaz@gmail.com>
7117 * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
7118 uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
7120 * marshal.c (emit_marshal_vtype): Add limited support for
7121 UnmanagedType.LPStruct. Fixes #78427.
7123 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure):
7124 Applied a patch from kangaroo to fix #77523.
7126 2006-05-17 Martin Baulig <martin@ximian.com>
7129 (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
7130 (debugger_thread_created): Removed.
7131 (debugger_thread_exited): Removed.
7133 2006-05-15 Zoltan Varga <vargaz@gmail.com>
7135 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7137 * object-internals.h (MonoReflectionResource): Sync with managed version.
7139 2006-05-12 Wade Berrier <wberrier@novell.com>
7141 * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
7143 2006-05-12 Zoltan Varga <vargaz@gmail.com>
7145 * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
7146 functions try to allocate from the image mempool.
7148 2006-05-12 Dick Porter <dick@ximian.com>
7150 * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
7152 2006-05-12 Lluis Sanchez <lluis@ximian.com>
7154 * object.c: The FieldGetter and FieldSetter methods require the full
7155 name of the class, not only the name. Fixes bug #78277.
7157 2006-05-11 Miguel de Icaza <miguel@novell.com>
7159 * loader.c (method_from_memberref): Do not pass the NULL klass to
7160 mono_loader_set_error_() methods. Pass the non-NULL value
7163 2006-05-11 Zoltan Varga <vargaz@gmail.com>
7165 * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
7166 (mono_assembly_close): Null out assembly->image->references after freeing it.
7168 * image.c (mono_image_close): Free image->references.
7170 * reflection.c (mono_image_basic_init): Fix a small memory leak.
7172 2006-05-10 Sebastien Pouliot <sebastien@ximian.com>
7174 * marshal.c: In function mono_mb_add_local don't use the mb pointer
7175 before checking if it's NULL (g_assert).
7177 2006-05-10 Martin Baulig <martin@ximian.com>
7179 * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
7180 I thought I already killed that two months ago, but now it somehow reappeared.
7182 2006-05-10 Martin Baulig <martin@ximian.com>
7184 * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
7186 2006-05-10 Zoltan Varga <vargaz@gmail.com>
7188 * reflection.c: Allocate memory for dynamically created methods in the image
7191 2006-05-10 Sebastien Pouliot <sebastien@ximian.com>
7193 * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions,
7194 don't use the ad pointer before checking if it's NULL (g_assert).
7196 2006-05-09 Zoltan Varga <vargaz@gmail.com>
7198 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
7199 a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
7201 * marshal.c: Allocate all signatures from mempools.
7203 * marshal.c: Allocate some more signatures from mempools.
7205 2006-05-09 Miguel de Icaza <miguel@novell.com>
7207 * object.c (mono_load_remote_field): The code used to provide a
7208 temporary variable for returning results if the user did not
7209 provide a result pointer. But our temporary variable was allocted
7212 Fix calling code to always pass a result area. Coverity ID 103.
7214 2006-05-06 Zoltan Varga <vargaz@gmail.com>
7216 * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
7217 value, not the old. Fixes #78312.
7218 (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
7220 * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
7221 (mono_ptr_class_get): Ditto. Also change the cache from a global one to a
7224 * assembly.c (mono_assembly_close): Free image->references.
7226 * assembly.c (mono_assembly_names_equal): Fix a warning.
7227 (mono_assemblies_cleanup): Cleanup more global data.
7229 * metadata-internals.h (MonoImage): Add 'ptr_cache'.
7231 * image.c (mono_image_close): Free up the contents of 'array_cache', free up
7232 ptr_cache and image->modules.
7234 * image.c (mono_image_init): Allocate array_cache lazily.
7236 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7238 * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
7239 behavior was changed recently and has bad side effects.
7241 2006-05-05 Zoltan Varga <vargaz@gmail.com>
7243 * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
7245 * assembly.c (mono_assembly_close): Remove a debug printf.
7247 * profiler.c (create_profiler): Use mono_aligned_addr_hash.
7249 * metadata-internals.h image.c assembly.c: Change the reference counting scheme
7250 to also allow for temporary references between mono_image_open ()/close ().
7252 * domain.c (get_runtimes_from_exe): Add a FIXME.
7254 2006-05-04 Zoltan Varga <vargaz@gmail.com>
7256 * marshal.c: Fix support for dynamic methods.
7258 * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
7260 * marshal.c (mono_marshal_cleanup): New cleanup function.
7262 * marshal.c: Rewrite the wrapper code to allocate most of its memory from the
7265 * class.c (mono_class_init): Fix leaking class->nested_classes.
7267 * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
7269 * image.c (mono_image_init): Initialize the new cashes.
7271 * image.c (mono_image_close): Destroy the new cashes.
7273 * marshal.c: Get rid of most of the static caches in favor of per-image caches.
7275 * mempool.c (mono_mempool_strdup): New helper function.
7277 * class-internals.h: Add prototype for mono_loader_unlock ().
7279 * domain.c (mono_jit_info_table_find): Fix a warning.
7280 (mono_debugger_check_runtime_version): Ditto.
7282 * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h
7283 class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
7284 functions to these modules.
7286 * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
7289 * marshal.c (mono_free_bstr): Fix a warning.
7291 * assembly.c (mono_assembly_open_full): Fix another small leak.
7293 * object.c: Fix some unload leaks in the remoting code.
7295 * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
7298 * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
7300 * reflection.c: Fix some unload leaks in dynamic assemblies.
7302 2006-05-02 Jonathan Chambers <jonathan.chambers@ansys.com>
7304 * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
7305 * marshal.h: Add BSTR support on Win32
7306 * icall.c: Add BSTR icalls
7307 * metadata.h: Add BSTR enums
7309 2006-04-28 Miguel de Icaza <miguel@novell.com>
7311 Work to catch the crash from #76795 and turn it into an
7312 exception. As I stubbed out pieces of the VisualBasic support,
7313 I found a number of places where the code was failing and I added
7314 checks to those places.
7316 * metadata.c (do_mono_metadata_parse_generic_class): Make this
7317 function return a status code. If we fail to parse the signature
7318 from mono_metadata_parse_generic_inst, return FALSE.
7320 * loader.c (mono_get_method_from_token): If we fail to load the
7321 method (mono_class_get) return NULL.
7323 * (method_from_memberref): Return NULL if we are unable to parse
7324 the method signature
7326 (mono_loader_error_prepare_exception): Since we now use the
7327 loader_error flag internally to stop processing, and obtaining
7328 exceptions that might be thrown will walk this code path the
7329 proper way of going from a MonoLoaderError into a
7330 MonoException was convoluted. This new routine encapsulates the
7331 process of turning the error into an exception and *clearing* the
7334 2006-04-27 Miguel de Icaza <miguel@novell.com>
7336 Work to catch the crashes from 75075 (cope in Assembly.GetTypes
7337 with missing assemblies), and to cope with:
7339 * Missing fieldref from a non-existing assembly.
7340 * Missing methodref from a non-existing assembly.
7342 The first batch of work to address *some* of the issues from 76661.
7344 * object.c (mono_class_create_runtime_vtable): If we fail to
7345 initialize the class raise the exception here.
7347 * metadata.c (mono_class_get_overrides_full): If any methods fail
7348 to load return the failure to the caller.
7350 * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
7351 flagging assemblies that failed to load.
7353 Do not crash if we are unable to load the assembly.
7355 (mono_assembly_close): Do nothing with REFERENCE_MISSING
7358 * loader.c (mono_loader_set_error_type_load): Change the
7359 convention to always pass unallocated strings, so we make our own
7360 copies (I know our own code had duplicated strings before, but
7361 this keeps the normal conventions).
7362 (method_from_memberref): Call mono_loader_set_error_method_load
7363 for all possible failures of loading the class.
7364 Remove assert, turn into a loader error.
7366 (mono_loader_error_to_exception): Move this routine from mini
7367 (mini_loader_error_to_exception) there was no need to have that in
7370 * class.c (mono_class_from_typeref): If we were not able to load
7371 the assembly with mono_assembly_load_reference, call the
7372 mono_loader_set_error_type_load to register the problem.
7374 (mono_class_setup_fields): If we fail to load the type from
7375 mono_metadata_parse_type_full, call mono_class_set_failure and
7376 break from the loop.
7378 If class->exception_type is set, we do not layout the fields as
7379 that might crash the runtime, and instead return (from breaking
7380 from the previous loop).
7382 (mono_class_setup_vtable): This now returns a boolean indicating
7383 whether the table was properly setup. The decision is driven by
7384 mono_class_get_overrides_full which might run into non-existing
7387 (mono_class_init): Returns TRUE on success or FALSE if there was a
7388 problem in loading the type (incorrect assemblies, missing
7389 assemblies, methods, etc).
7391 When we call mono_class_setup_fields we also check for a potential
7392 error inside this call (either a class exception or a general
7395 (mono_class_create_from_typedef): If the parent fails to load
7396 (calling mono_class_get_full) return NULL.
7400 calls to mono_metadata_parse_type_full should be checked
7401 everywhere and set the mono_class_set_failure
7402 (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
7404 The current patch checks the places where my manually constructed
7405 tests show the errors are showing up, but we should do it
7410 mono_class_init return values should be tested everywhere, like
7411 the previous case this is something that we should audit
7412 everywhere and not only on the cases exposed by the tests I
7415 2006-04-26 Miguel de Icaza <miguel@novell.com>
7417 * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
7418 boolean parameter and instead pass the information on `options'
7419 parameter (FileOptions).
7421 * icall.c: Register the new signature for MonoIO.Open.
7423 * debug-helpers.c (dis_one): Trying to understand how coverity
7424 works. Fix Run 5, item 78.
7426 2006-04-26 Dick Porter <dick@ximian.com>
7428 * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
7431 2006-04-25 Martin Baulig <martin@ximian.com>
7433 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
7435 * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
7436 debugger_thread_created().
7437 (debugger_gc_push_all_stacks): Don't handle the main thread in any
7439 (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
7440 (mono_debugger_finalize_threads): New function; undo the effects
7441 of mono_debugger_init_threads().
7442 (mono_debugger_create_all_threads): Removed.
7444 2006-04-24 Zoltan Varga <vargaz@gmail.com>
7446 * image.c (mono_image_close): Tidy up trace messages.
7448 * assembly.c (mono_assembly_close): Ditto.
7450 * assembly.c (mono_assembly_close): Clear out image->assembly so the image
7451 no longer references an already freed assembly. Fixes #78168.
7453 2006-04-21 Dick Porter <dick@ximian.com>
7455 * threads.c (mono_thread_detach): Fix reference counting when
7458 2006-04-21 Zoltan Varga <vargaz@gmail.com>
7460 * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
7463 2006-04-19 Zoltan Varga <vargaz@gmail.com>
7465 * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
7466 (mono_type_to_stind): Ditto.
7468 * marshal.c: Use the new helper functions to simplify code.
7470 * image.c (mono_image_close): Add some code for help debug assembly unloading
7473 * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
7476 * assembly.c (mono_assembly_open_full): Invoke the load hook when the
7477 assembly was already loaded in another appdomain. Fixes #78083.
7479 2006-04-13 Zoltan Varga <vargaz@gmail.com>
7481 * assembly.c (mono_assembly_load_reference): Increase the refcount of the
7482 referenced assemblies.
7483 (mono_assembly_close): Decrease the refcount of the referenced assemblies.
7485 * domain.c (mono_domain_free): Add a trace message.
7487 * appdomain.c (add_assemblies_to_domain): Ditto.
7489 * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
7492 2006-04-12 Zoltan Varga <vargaz@gmail.com>
7494 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
7496 2006-04-12 Martin Baulig <martin@ximian.com>
7498 * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
7499 `USE_INCLUDED_LIBGC'.
7501 2006-04-12 Zoltan Varga <vargaz@gmail.com>
7503 * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
7504 the patch contains ../ and a small directory name later. Hopefully fixes
7507 2006-04-10 Martin Baulig <martin@ximian.com>
7509 Clean up the debugger's thread-handling code.
7511 The debugger's thread-handling code has been moved from
7512 ../mini/debug-debugger.c to threads.c. We now iterate directly
7513 over the `threads' hash, keep track of exiting threads and also
7516 We can now debug XSP and XSP based applications with the debugger.
7518 * object-internals.h (MonoThread): Added `gpointer end_stack'.
7521 (MonoThreadCallbacks): Removed; this was only used by the debugger.
7522 (mono_install_thread_callbacks): Likewise.
7524 * threads.c (mono_thread_callbacks): Removed.
7525 (debugger_thread_created, debugger_thread_exited): New static functions.
7526 (start_wrapper): Call debugger_thread_created().
7527 (thread_cleanup): Call debugger_thread_exited().
7528 (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
7529 (mono_debugger_init_threads): New public function.
7530 (debugger_thread_vtable): Moved here from debug-debugger.c; we now
7531 iterate directly over the `threads' hash and also use proper locking.
7533 * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
7535 * mono-debug-debugger.h
7536 (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
7538 2006-04-10 Zoltan Varga <vargaz@gmail.com>
7540 * reflection.c (encode_cattr_value): Fix handling of parameter type=object,
7541 argument type=array. Fixes #78057.
7543 2006-04-10 Atsushi Enomoto <atsushi@ximian.com>
7545 * culture-info-table.h : regenerated. Fixed bug #69652.
7547 2006-04-07 Zoltan Varga <vargaz@gmail.com>
7549 * loader.c metadata.c: Reapply a variant r59116.
7551 * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
7553 * class.c (mono_class_setup_interface_offsets): New internal function.
7555 * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
7556 interfaces too. Fixes #77398.
7558 * reflection.c (encode_cattr_value): Add support for
7559 parameter type=object, argument type=array.
7560 (load_cattr_value): Ditto. Fixes #77916.
7562 * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
7563 (emit_ptr_to_object_conv): Ditto. Fixes #77960.
7565 * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
7566 a byval char array and CharSet is Ansi.
7568 * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
7570 2006-04-06 Zoltan Varga <vargaz@gmail.com>
7572 * metadata.c: Add some locking comments.
7574 * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
7576 (mono_metadata_free_method_signature): Don't free the signature itself.
7578 * loader.c (mono_free_method): Don't free the signature in non-dynamic methods.
7580 * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
7581 reference the same MonoImage.
7582 (mono_assembly_load_from_full): Add an assert.
7584 2006-04-05 Zoltan Varga <vargaz@gmail.com>
7586 * image.c (mono_image_close): Don't put the image we are about to free into the
7587 loaded_images_guid_hash.
7589 * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
7590 to reduce code duplication.
7592 * marshal.c: Register the native functions called by this module as icalls, to
7593 somewhat centralize the creation of MonoMethodSignature's.
7595 * loader.c (mono_method_signature): Add a cache for method signatures.
7597 * metadata.c (mono_metadata_get_param_attrs): New helper function to return
7598 the parameter attributes of a method.
7599 (mono_metadata_parse_method_signature_full): Refactored the computation of
7600 parameter attributes into a separate function. Also avoid one allocation in
7603 * assembly.c (mono_assembly_close): Ditto.
7605 * image.c (mono_image_close): Log trace messages with INFO level.
7607 * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
7609 * image.c reflection.c: Correct reference counting of image modules.
7611 * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
7612 of this function from the image mempool.
7614 (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
7615 to allow more cached types to be used.
7617 * mono-debug.c (mono_debug_add_method): Appled patch from
7618 David S. Miller <davem@sunset.davemloft.net>: Access
7619 minfo->lexical_blocks[] entry elements using read32().
7621 2006-04-04 Zoltan Varga <vargaz@gmail.com>
7623 * loader.c (mono_free_method): No longer free the method header for non-dynamic
7624 methods as it is allocated from the mempool.
7626 * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
7629 * metadata-internals.h: Add comments describing the reference counting scheme
7630 used for MonoImage and MonoAssembly.
7632 * image.c assembly.c reflection.c: Rework reference counting of images and
7633 assemblies so they are freed when the runtime is shut down. Free some
7634 additional memory structures when an image is unloaded.
7636 2006-04-03 Zoltan Varga <vargaz@gmail.com>
7638 * class.c loader.c reflection.c: Allocate more data structures in
7641 2006-03-31 Miguel de Icaza <miguel@novell.com>
7644 (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
7645 build on pre glib 2.4 systems.
7647 2006-03-31 Zoltan Varga <vargaz@gmail.com>
7649 * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
7651 * icall.c: Fix some warnings.
7653 2006-03-29 Atsushi Enomoto <atsushi@ximian.com>
7655 * culture-info-table.h : regenerated.
7657 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
7659 * threads.c, object-internals.h, verify.c: changed the culture caching
7660 code to use a normal MonoArray for storage so the GC can keep track of
7661 them easily. Fixed bits of the cache logic, too and simplified the
7664 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
7666 * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
7667 thread for non-Boehm GCs.
7669 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
7671 * domain.c, object.c, domain-internals.h: reduce the amount of memory
7672 needed to keep track of the data for static fields.
7674 2006-03-29 Raja R Harinath <rharinath@novell.com>
7677 * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
7678 for interface classes. Use 'num_methods' instead.
7679 (ves_icall_Type_GetPropertiesByName): Likewise. Setup vtable
7680 before using '->vtable_size' field.
7682 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
7684 * domain.c, object.c, domain-internals.h: proxy_vtable_hash
7685 doesn't contain managed pointers, so use a normal hashtable.
7687 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
7689 * reflection.c, class-internals.h, domain.c: fixed handling of types
7690 used as values for objects in custom attributes (bug #77915):
7692 2006-03-24 Martin Baulig <martin@ximian.com>
7694 * class.c (mono_class_setup_fields): Added support for generic
7695 instances; fixes #77580.
7697 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7699 * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
7701 2006-03-24 Dick Porter <dick@ximian.com>
7703 * file-io.c (get_file_attributes): More stat macro breakage.
7706 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
7708 * profiler.c: added the file=filename option in the default profiler
7709 to output the profile data to filename.
7711 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7713 * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
7716 2006-03-22 Martin Baulig <martin@ximian.com>
7718 * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
7719 allocated `MonoClassField *' in `fb->handle'.
7721 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
7723 * class.c, image.c, metadata-internals.h: implemented new mechanism to
7724 allocate interface ID to save memory and allow better ID reuse on
7725 appdomain unload. setup_generic_vtable () removal from Martin.
7727 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7729 * object.h, appdomain.c, domain.c, exception.c, icall.c,
7730 locales.c, marshal.c, object.c, reflection.c, threadpool.c,
7731 threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
7732 write barriers for reference stores with managed objects accessed with
7733 C structures in the runtime and in embedding programs.
7735 2006-03-20 Raja R Harinath <rharinath@novell.com>
7737 * icall.c (ves_icall_Type_GetInterfaces): Avoid using
7738 'interface_id' and 'max_interface_id' fields of MonoClasses
7739 representing open generic types.
7741 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
7743 * object.h, object.c, icall.c: added functions to deal with
7744 storing valuetypes that contain references in managed objects.
7745 * reflection.c, string-icalls.c, threads.c, marshal.c: small
7746 fixes and comments around uses of mono_array_addr ().
7748 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
7750 * object.h, icall.c, monitor.c: object.GetHashCode ()
7751 implementation that supports the moving garbage collector.
7753 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
7755 * icall.c, threads-types.h, threads.c: implemented finalizer for
7758 2006-03-15 Zoltan Varga <vargaz@gmail.com>
7760 * metadata.c (mono_type_size): Add a fixme.
7761 (mono_type_stack_size): Ditto.
7763 * object-internals.h (MonoReflectionAssemblyBuilder): Added
7764 'type_forwarders' field.
7766 * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
7767 attribute from net 2.0.
7769 * object.c (mono_vtable_get_static_field_data): Moved this to object.c
7772 * class.c (mono_class_setup_fields): Fix a warning.
7774 * class.c (mono_class_from_name): Add support for assemblyref entries
7775 in the EXPORTEDTYPE table.
7777 * reflection.c: Add support for handling type forwarders under net 2.0.
7779 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7781 2006-03-14 Zoltan Varga <vargaz@gmail.com>
7783 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
7784 overwriting entries in ModuleBuild->types, also clean up the code
7785 a little. Fixes #77774.
7787 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
7789 * domain.c, assembly.c, metadata-internals.h, class-internals.h:
7790 load friend assembly info when present.
7792 2006-03-14 Raja R Harinath <rharinath@novell.com>
7794 Fix crasher on gtest-158.cs.
7795 * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
7796 the return value if the MonoClass we want is yet in an
7798 * class.c (mono_class_create_from_typedef): Add an comment
7799 explaining an order dependency between mono_class_setup_parent and
7800 mono_class_setup_mono_type.
7802 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
7804 * class.c: documentation updates and events bug fix.
7806 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
7808 * class.c: some cleanup, locking fixes.
7810 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
7812 * class.c: fix the generics code to setup nested
7813 type info to the instantiated type (bug #77770).
7815 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
7817 * marshal.c: fixed a few type correctness issues.
7819 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7821 * loader.c: the Set/Get/Addrtess array methods should be public.
7823 2006-03-11 Zoltan Varga <vargaz@gmail.com>
7825 * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
7827 * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
7830 2006-03-10 Zoltan Varga <vargaz@gmail.com>
7832 * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
7834 * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
7836 * mempool.c (mono_mempool_alloc): Speed this up a bit.
7837 (mono_mempool_alloc0): Ditto.
7839 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7842 (create_object_from_sockaddr): it was allocating 4 extra bytes
7843 for the AF_UNIX data. Fixes bug #77747.
7845 2006-03-09 Zoltan Varga <vargaz@gmail.com>
7847 * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
7849 2006-03-09 Dick Porter <dick@ximian.com>
7851 * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
7852 Fixes bug 76966 again.
7854 2006-03-07 Peter Dennis Bartok <pbartok@novell.com>
7856 * verify.c (dtfinfo_fields): Updated to match new (serializable) field
7858 * appdomain.c: Bumped corlib version to 48 (due to r57532)
7860 2006-03-07 Martin Baulig <martin@ximian.com>
7863 (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
7865 2006-03-07 Martin Baulig <martin@ximian.com>
7868 (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
7869 regression introduced in r56970; see gtest-252.cs.
7871 * loader.c (mono_get_method_constrained): Correctly handle generic
7872 methods; see gtest-253.cs.
7874 2006-03-04 Zoltan Varga <vargaz@gmail.com>
7876 * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
7878 2006-03-04 Martin Baulig <martin@ximian.com>
7880 * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
7881 compute the parent type at runtime, just like we're already doing
7885 (mono_reflection_bind_generic_parameters): Don't compute the
7886 parent type anymore.
7888 * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
7890 2006-03-04 Martin Baulig <martin@ximian.com>
7892 * mono-debug-debugger.h
7893 (mono_debugger_create_notification_function): Allocate memory at
7894 runtime and return a pointer to it.
7896 2006-03-03 Zoltan Varga <vargaz@gmail.com>
7898 * assembly.c: Fix windows build.
7900 * assembly.c: Fix build.
7902 * assembly.c: Move the contents of os/{unix,win32}/util.c to this file.
7904 * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
7906 2006-03-03 Dick Porter <dick@ximian.com>
7909 (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
7910 Check parameters before dereferencing them. Fixes Aaron's part of
7913 2006-03-03 Raja R Harinath <rharinath@novell.com>
7915 Fix performance regression.
7916 * loader.c (find_method_in_class): Add 'from_class' argument.
7917 Rename 'klass' argument to 'in_class'. The signature is compared
7918 against the method in 'in_class', and the corresponding method is
7919 returned from 'from_class'.
7920 (find_method): Walk both 'in_class' and 'from_class' in parallel.
7921 (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
7922 type definition and generic instantiation in parallel.
7923 (mono_get_method_constrained): Update to changes.
7925 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
7927 * threads.c: make sure the domain is correct, too when doing
7928 mono_thread_attach ().
7930 2006-03-01 Zoltan Varga <vargaz@gmail.com>
7932 * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
7933 windows. Fixes #77683.
7935 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
7937 * object.h, *: introduced specific way to set elements of an array
7938 of references to be used as write barrier. Still need to audit the
7939 uses of mono_array_addr.
7941 2006-03-01 Miguel de Icaza <miguel@novell.com>
7943 * object-internals.h: New field to cache the assmebly name, patch
7944 from Tambet Ingo (tambet@ximian.com)
7946 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7948 * decimal.h, class-internals.h, metadata-internals.h,
7949 file-io.h: mark a few function declarations as internal, to
7950 reduce the number of PLT entries.
7952 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7954 * file-io.c: fix typo in warning message.
7956 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
7958 * loader.c: on unix, lookup the "*A" version of a function
7959 if charset is auto as a second option before failing.
7961 2006-02-28 Raja R Harinath <rharinath@novell.com>
7963 * class.h (mono_class_inflate_generic_method): Revert to two
7965 * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
7966 (mono_class_inflate_generic_method_full): Add.
7967 * class.c (mono_class_inflate_generic_method_full): Rename from
7968 'mono_class_inflate_generic_method'. Don't set 'inflated' field.
7969 (mono_class_inflate_generic_method): New. Wrapper around ..._full.
7970 * loader.c, reflection.c: Update to changes.
7972 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
7974 * icall.c: const fixes and small improvements.
7976 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7978 * threadpool.c: for asynchronous connect(), enable the same workaround
7979 for BSD 6 as for the Mac. Fixes bug #77637.
7981 2006-02-24 Zoltan Varga <vargaz@gmail.com>
7983 * marshal.c (mono_marshal_free_asany): Fix handling of blittable
7984 formatted classes. Fixes #77524.
7986 2006-02-24 Raja R Harinath <rharinath@novell.com>
7988 * class.c (inflate_generic_type): Add a couple more
7989 micro-optimizations.
7990 (inflate_generic_context): Don't use the 'gmethod' from
7992 (mono_class_inflate_generic_method): If the method has generic
7993 parameters, but the passed-in context doesn't have a 'gmethod',
7994 create one. Use the possibly simplified generic instantiation
7995 from the declaring class instead of the one passed in.
7997 2006-02-24 Raja R Harinath <harinath@gmail.com>
7999 Make generic method signature and method header handling lazy.
8000 * class.c (mono_class_inflate_generic_signature): Move to loader.c.
8001 (inflate_generic_header): Likewise.
8002 (mono_class_inflate_generic_method): Rewrite. Add a 'klass_hint'
8003 parameter to avoid inflating types.
8004 (mono_get_inflated_method): Empty out.
8005 * class.h (mono_class_inflate_generic_method): Update to changes.
8006 * loader.c (mono_get_method_from_token): Don't parse signature for
8007 generic methods, nor methods of generic classes.
8008 (mono_method_signature): Rename from 'mono_method_signature'.
8009 Inflate signature on demand.
8010 (mono_method_get_header): Inflate method header on demand.
8011 * reflection.c: Update to changes.
8013 2006-02-23 Raja R Harinath <rharinath@novell.com>
8015 * metadata.c (mono_metadata_inflate_generic_inst): If the
8016 instantiation is closed, don't bother expanding it in the new
8018 * class.c (inflate_generic_class): If the generic instantiation
8019 doesn't change after inflation, return the argument itself.
8020 (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
8022 (inflate_generic_context): If neither the generic class nor the
8023 generic method instantiations change, return the original context.
8024 * reflection.c (mono_method_get_object): Do
8025 'mono_get_inflated_method' before accessing the ->klass field.
8026 (inflate_mono_method): Don't create a MonoGenericMethod unless
8028 (inflate_method): Don't pass a constructed type as the declaring
8029 type of a methodbuilder.
8031 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
8033 * object.c: fix memory overwrite.
8035 2006-02-22 Dick Porter <dick@ximian.com>
8037 * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
8038 it doesn't work any more.
8039 (mono_threads_request_thread_dump): Fix unused variable warnings.
8041 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
8043 * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
8044 mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
8045 the public header file.
8047 2006-02-21 Zoltan Varga <vargaz@gmail.com>
8049 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
8051 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
8053 * class-internals.h, object.c: reduce the size of MonoVTable
8054 and store the interface_offsets array at negative offsets.
8056 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
8058 * metadata.c: tweak table descriptors data structures to reduce
8059 size and runtime relocations.
8061 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
8063 * marshal.c: fix some types and opcodes to be type-safe
8064 in marshaling wrappers.
8066 2006-02-21 Ankit Jain <jankit@novell.com>
8068 * metadata.h (mono_metadata_decode_signed_value): Add declaration.
8070 2006-02-21 Raja R Harinath <rharinath@novell.com>
8072 * metadata.c (get_constraints): Relax debugging checks for monodis.
8074 2006-02-21 Ankit Jain <jankit@novell.com>
8076 * metadata.c (mono_metadata_load_generic_params): Move the code
8077 checking for ambiguous generic params from here to mono/dis/get.c
8078 * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
8080 2006-02-21 Raja R Harinath <harinath@gmail.com>
8082 Fix assertion triggered when compiling nemerle.
8083 * class.c (mono_get_shared_generic_inst): Rename from
8084 get_shared_inst and make non-static.
8085 * loader.c (mono_get_shared_generic_method): New. Used to create
8086 the MonoGenericContext-equivalent of a MonoGenericContainer.
8087 (mono_get_method_from_token): Initialize the 'context' field of
8088 the created MonoGenericContainer.
8089 * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
8090 * metadata.c (get_constraints): Add sanity check.
8091 * class-internals.h: Add new internal methods.
8093 * reflection.c (verify_safe_for_managed_space): New sanity check.
8094 Currently checks that owner-less generic parameters aren't allowed
8096 (mono_type_get_object): Use it.
8097 * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
8098 that are now in mono_type_get_object.
8099 (ves_icall_MonoMethod_GetGenericArguments): Likewise.
8101 2006-02-19 Raja R Harinath <harinath@gmail.com>
8103 * metadata.c (mono_type_create_from_typespec): Rename from
8104 mono_type_create_from_typespec_full. Remove MonoGenericContainer*
8105 argument and caching of types in the generic container.
8106 (unwrap_arrays, find_generic_param): Remove.
8107 * metadata-internals.h: Update.
8108 * class-internals.h (_MonoGenericContainer): Remove 'types' field.
8110 2006-02-18 Zoltan Varga <vargaz@gmail.com>
8112 * class.c (mono_class_get_exception_for_failure): Fix a warning.
8114 * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
8115 return values. Fixes #77581.
8117 * class.c (mono_fnptr_class_get): Switch name and name_space.
8119 * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
8120 classes and add support for [In, Out] attributes.
8121 (mono_marshal_free_asany): Ditto. Fixes #77524.
8123 2006-02-18 Raja R Harinath <harinath@gmail.com>
8125 * class.c (mono_class_from_generic_parameter): Make more robust to
8126 incomplete MonoGenericContainers from monodis.
8128 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
8130 * class-internals.h: added some more exception types.
8131 * class.c, metadata.c: added a few checks to handle missing
8134 2006-02-17 Raja R Harinath <rharinath@novell.com>
8136 Use owner-less generic-params some more.
8137 * class.c (my_mono_class_from_generic_parameter): Remove.
8138 (mono_class_from_generic_parameter): Handle null image,
8139 param->name and param->owner.
8140 (mono_class_from_mono_type): Update.
8141 (mono_class_create_from_typespec): Remove 'container' parameter.
8142 If that parameter is non-null, the result is always inflated by
8143 'mono_class_get_full' anyway.
8144 (mono_class_get): Rename from _mono_class_get. Remove 'container'
8146 (mono_class_get_full): Update.
8148 * class.c (inflate_generic_type) [GENERICINST]: If the generic
8149 instance is not open, don't bother inflating.
8150 (mono_class_setup_fields): Hoist some loop-invariants. Don't
8151 parse metadata for inflated classes.
8152 (_mono_class_get): Change GenericContext* parameter to
8154 (mono_class_create_from_typespec): Likewise. Simplify, and
8155 implement trivially. All the cases are handled in
8156 mono_class_from_mono_type. Don't inflate returned class.
8157 (mono_class_get_full): Delegate GENERICINST optimization to
8158 inflate_generic_type.
8159 (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
8161 2006-02-16 Dick Porter <dick@ximian.com>
8163 * socket-io.c (create_object_from_sockaddr): Fix typo.
8164 (create_sockaddr_from_object): Check array lengths before
8165 potentially accessing items off the end.
8166 (ves_icall_System_Net_Sockets_Socket_Receive_internal)
8167 (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
8168 (ves_icall_System_Net_Sockets_Socket_Send_internal)
8169 (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
8170 length checks to avoid wraparound overflows.
8171 (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
8172 contents of the array of sockets
8173 (hostent_to_IPHostEntry2)
8174 (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
8175 Check return value of inet_ntop ().
8176 (addrinfo_to_IPHostEntry): Fix typo
8178 2006-02-16 Raja R Harinath <rharinath@novell.com>
8180 Type metadata parsing doesn't use generic-instantiation information.
8181 * metadata.c (mono_metadata_parse_array_full): Change
8182 MonoGenericContext* parameter to MonoGenericContainer*.
8183 (mono_metadata_parse_type_full): Likewise.
8184 (mono_type_create_from_typespec_full): Likewise.
8185 (mono_metadata_parse_mh_full): Likewise.
8186 (mono_metadata_parse_generic_inst): Likewise.
8187 (do_mono_metadata_parse_generic_class): Likewise.
8188 (do_mono_metadata_parse_type): Likewise.
8189 * metadata-internals.h: Update to changes.
8190 * class.c (mono_class_find_enum_basetype): Likewise.
8191 (mono_class_setup_fields): Likewise.
8192 (mono_class_create_from_typespec): Likewise.
8193 * loader.c (method_from_methodspec): Likewise.
8194 (mono_get_method_from_token): Likewise.
8195 (mono_method_get_header): Likewise.
8197 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
8199 * marshal.c: handle additional GENERICINST case (patch from
8200 Thong Nguyen <tum@veridicus.com>).
8201 Fix a few cases where LDIND_I/STIND_I was used for references.
8203 2006-02-16 Raja R Harinath <rharinath@novell.com>
8205 * reflection.c (mono_reflection_get_token): Remove unused variable.
8207 2006-02-16 Martin Baulig <martin@ximian.com>
8209 * reflection.c (mono_reflection_get_token): Add support for fields
8210 in instantiated generic types.
8213 (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
8215 2006-02-15 Martin Baulig <martin@ximian.com>
8218 (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
8219 (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
8220 (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
8221 (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
8223 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
8225 * class.c, metadata.c, metadata.h, object.c, icall.c,
8226 marshal.c: changed mono_type_get_underlying_type () to do
8227 the sensible thing and introduced mono_type_generic_inst_is_valuetype().
8228 Fixed handling of instantiated generic valuetypes (bug #75479).
8230 2006-02-15 Raja R Harinath <rharinath@novell.com>
8232 * metadata.c (mono_metadata_decode_signed_value): Simplify.
8233 Delegate to mono_metadata_decode_value, and work on the returned value.
8235 * icall.c (ves_icall_MonoType_GetGenericArguments):
8236 Add consistency check here too.
8238 2006-02-15 Ankit Jain <jankit@novell.com>
8240 * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
8243 2006-02-15 Ankit Jain <jankit@novell.com>
8245 * metadata.c (mono_metadata_decode_signed_value): New function to decode
8246 signed values, used only for representing lower bounds of arrays.
8247 (mono_metadata_parse_array_full): Use new
8248 mono_metadata_decode_signed_value to decode lower bounds.
8250 2006-02-14 Martin Baulig <martin@ximian.com>
8253 (mono_reflection_get_token): Support "MonoGenericMethod" and
8254 "MonoGenericCMethod" and allow generic instances / methods.
8256 2006-02-11 Zoltan Varga <vargaz@gmail.com>
8258 * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
8259 to obtain the terminal size using an ioctl.
8261 * object.c (mono_nullable_init): Revert this as nullable reference
8262 types are not valid.
8263 (mono_nullable_box): Ditto.
8265 2006-02-09 Dick Porter <dick@ximian.com>
8267 * threads.c (mono_thread_detach): Drop a reference to the thread
8270 2006-02-09 Zoltan Varga <vargaz@gmail.com>
8272 * object.c (mono_nullable_init): Handle nullable reference types.
8273 (mono_nullable_box): Ditto. Fixes #77446.
8275 2006-02-07 Martin Baulig <martin@ximian.com>
8277 * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
8279 2006-02-07 Ankit Jain <jankit@novell.com>
8281 * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
8282 * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
8283 (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
8284 (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
8285 (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
8286 (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
8288 2006-02-02 Zoltan Varga <vargaz@gmail.com>
8290 * class.c (mono_class_create_generic): Set type_token as well.
8292 * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
8295 2006-02-02 Martin Baulig <martin@ximian.com>
8297 * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
8298 has never been used so far.
8300 2006-02-02 Martin Baulig <martin@ximian.com>
8302 * mono-debug-debugger.h: Changed comment at the top of this file;
8303 the header is not installed, but it's safe to #include it from
8306 * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
8307 * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
8309 2006-02-02 Martin Baulig <martin@ximian.com>
8312 (MonoSymbolTable): Removed the `metadata_info' field.
8315 (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
8317 * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
8318 (mono_debugger_add_builtin_types): Removed.
8319 (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
8320 (mono_debugger_create_notification_function): We now operate on a
8321 pre-allocated area; take a `gpointer' and return `void'.
8323 * mono-debug-debugger.c
8324 (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
8325 (mono_debugger_add_builtin_types): Removed.
8327 2006-02-02 Martin Baulig <martin@ximian.com>
8329 * threads.c (mono_debugger_create_all_threads): New public method.
8331 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
8333 * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
8334 breaks on several platforms.
8336 2006-02-01 Sebastien Pouliot <sebastien@ximian.com>
8338 * assembly.c: the VS.NET build doesn't supply default values for
8339 MONO_ASSEMBLIES and MONO_CFG_DIR.
8341 2006-02-01 Zoltan Varga <vargaz@gmail.com>
8343 * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
8346 * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
8348 * loader.c (method_from_memberref): Fix a warning.
8350 * metadata.c (mono_metadata_load_generic_params): Fix a warning.
8352 * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
8353 with explicit layout. Fixes #77433.
8355 2006-01-31 Zoltan Varga <vargaz@gmail.com>
8357 * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure
8358 max_interface_id is initialized before using it. Fixes #77398.
8359 (ves_icall_Type_GetInterfaces): Ditto.
8361 2006-01-30 Raja R Harinath <rharinath@novell.com>
8363 * metadata.c (mono_metadata_parse_method_signature_full): Don't
8364 allocate memory for parameter attributes when parsing memberref
8366 * loader.c (mono_loader_set_error_method_load): Don't warn.
8367 (method_from_memberref): Ensure MissingMethodException gets thrown
8368 if method is not found. Make warning more informative.
8370 2006-01-29 Raja R Harinath <harinath@gmail.com>
8373 * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
8374 return true if is byref.
8375 (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
8376 (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
8377 (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8379 2006-01-27 Raja R Harinath <rharinath@novell.com>
8381 Fix tests/find-method.2.il
8382 * loader.c (find_method, find_method_in_class): Remove is_inflated
8383 argument. Revert 2006-01-18 change.
8384 (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
8385 is generic, search for method in its generic definition.
8386 * class.c (mono_class_setup_vtable_general): Print generic
8387 arguments of generic types in debugging printf.
8389 2006-01-26 Zoltan Varga <vargaz@gmail.com>
8391 * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
8393 * threads.c (mono_threads_request_thread_dump): New helper function.
8395 2006-01-25 Raja R Harinath <rharinath@novell.com>
8397 * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
8399 2006-01-25 Ankit Jain <jankit@novell.com>
8401 * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
8402 move definition to ..
8403 * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
8405 2006-01-25 Ankit Jain <jankit@novell.com>
8406 Raja R Harinath <rharinath@novell.com>
8408 * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
8409 * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
8412 2006-01-25 Martin Baulig <martin@ximian.com>
8414 * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
8415 `MonoDebuggerThread' into debug-debugger.c.
8417 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
8419 * profiler.c: fix printing of data.
8421 2006-01-24 Atsushi Enomoto <atsushi@ximian.com>
8423 * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
8424 invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
8426 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
8428 * object.c: fix deadlock related to string interning.
8430 2006-01-23 Martin Baulig <martin@ximian.com>
8432 * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
8434 * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
8436 2006-01-23 Martin Baulig <martin@ximian.com>
8438 * mono-debug.h: Moved the prototypes of some functions which are
8439 used by the JIT here from mono-debug-debugger.h.
8441 2006-01-21 Martin Baulig <martin@ximian.com>
8443 * Makefile.am: Don't install mono-debug-debugger.h.
8445 2006-01-21 Martin Baulig <martin@ximian.com>
8447 * mono-debug-debugger.h: Enforce the private status of this header
8448 file and removed unneccessary #include's in metadata/*.c and mini/*.c.
8449 Moved some stuff from mono-debugger-jit-wrapper.h here.
8451 2006-01-20 Raja R Harinath <rharinath@novell.com>
8453 * class.c (mono_class_from_typeref): Add a sanity test to help
8454 catch lack of assembly load/search hooks.
8456 2006-01-19 Zoltan Varga <vargaz@gmail.com>
8458 * marshal.c (emit_struct_conv): Relax the fields with same offset
8459 check even more. Fixes #77230.
8461 2006-01-18 Martin Baulig <martin@ximian.com>
8463 * loader.c (find_method_in_class): Added `gboolean is_inflated'
8464 argument; if false, we compare the uninstantiated signatures.
8465 (method_from_memberref): Compare the uninstantiated signatures;
8468 2006-01-18 Robert Jordan <robertj@gmx.net>
8470 * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
8471 Clear the weak link. Fixes bug #77170.
8473 * gc.c (mono_gchandle_free):
8474 Reflect *-gc.c changes (tiny optimization).
8476 2006-01-18 Zoltan Varga <vargaz@gmail.com>
8478 * metadata.c (mono_metadata_signature_dup): Applied patch from
8479 Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
8482 2006-01-17 Zoltan Varga <vargaz@gmail.com>
8484 * marshal.c (emit_struct_conv): Allow fields with the same offset when
8485 marshalling from native to managed code. Fixes #77230.
8487 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8489 * threadpool.c: fix problem (Mac only) when more than one asynchronous
8490 connect. Fixes bug #77020.
8492 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
8494 * class.c: fixed id assignement for nested interfaces (bug #77275).
8495 Added also better info for --print-vtable debugging.
8497 2006-01-12 Martin Baulig <martin@ximian.com>
8499 * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
8500 interfaces on-the-fly; fixes #76625.
8503 (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
8504 don't need that anymore.
8506 2006-01-12 Miguel de Icaza <miguel@novell.com>
8509 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8510 To avoid initing the nested_classes when not needed I turned the
8511 PeerCredData as a toplevel internal class, as it has to be shared
8514 Fixes the CASA issue.
8516 2006-01-11 Ben Maurer <bmaurer@andrew.cmu.edu>
8518 * domain.c: Accessors for MonoJitInfo
8520 * profiler-private.h: Add jitinfo to the end jit hook
8522 * profiler.[ch]: Define new hooks, called after jitting which give
8523 the MonoJitInfo that was compiled
8525 2006-01-10 Martin Baulig <martin@ximian.com>
8527 * class.c (mono_class_setup_events): Add support for generic
8528 classes; fixes #76440.
8530 2006-01-06 Raja R Harinath <rharinath@novell.com>
8533 * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
8534 on passed-in method.
8536 2006-01-03 Zoltan Varga <vargaz@gmail.com>
8538 * object.c (mono_runtime_invoke_array): Add Nullable support.
8540 * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
8542 2006-01-03 Sebastien Pouliot <sebastien@ximian.com>
8544 * file-io.c: Don't consider sockets as directory and avoid an endless
8545 loop. Fix bug #76966.
8547 2006-01-03 Zoltan Varga <vargaz@gmail.com>
8549 * object.c (mono_nullable_init): New helper function.
8550 (mono_nullable_box): Ditto.
8552 * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
8554 * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
8556 * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
8558 2006-01-02 Zoltan Varga <vargaz@gmail.com>
8560 * class.c (mono_class_is_assignable_from): Make T assignable to
8563 2005-12-23 Sebastien Pouliot <sebastien@ximian.com>
8565 * appdomain.c: Bump corlib version to 46.
8566 * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
8567 serialization purpose) and changed ves_icall_System_Reflection_
8568 Assembly_get_code_base signature to accept a boolean (to escape, or
8569 not, the assembly code base).
8571 2005-12-23 Dick Porter <dick@ximian.com>
8575 * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
8576 CreateEvent icall now returns "created" boolean parameter.
8578 2005-12-22 Zoltan Varga <vargaz@gmail.com>
8580 * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
8583 * reflection.c (mono_custom_attrs_construct_by_type): Handle the case
8584 when attr_klass is an interface. Fixes #77045.
8586 2005-12-20 Zoltan Varga <vargaz@gmail.com>
8588 * marshal.c (emit_struct_conv): Fix previous patch.
8590 * marshal.c (emit_struct_conv): Add a check for fields with the same
8593 2005-12-20 Raja R Harinath <rharinath@novell.com>
8595 Fix regression in Mono.C5.
8596 * class.c (mono_class_create_generic): If 'klass' is an interface
8597 set up the interface offsets.
8598 (mono_class_is_assignable_from): Don't throw away generic arguments.
8600 2005-12-19 Raja R Harinath <rharinath@novell.com>
8602 * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
8605 2005-12-15 Raja R Harinath <rharinath@novell.com>
8607 * metadata.c (mono_metadata_parse_method_signature_full): Remove a
8609 (do_mono_metadata_parse_generic_class): Don't pass the current
8610 generic context when parsing the type being instantiated: it
8611 cannot use it, anyway.
8613 * loader.c (method_from_memberref): Don't inflate a signature if
8614 it doesn't contain any type parameters.
8616 2005-12-15 Zoltan Varga <vargaz@gmail.com>
8618 * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
8620 2005-12-14 Martin Baulig <martin@ximian.com>
8623 (mono_type_get_name_recurse): Don't return null for type
8624 parameters and open generic classes.
8625 (mono_class_setup_methods): Don't exclude generic instances.
8626 (mono_get_unique_iid): Use different IDs for different
8627 instantiations of the same generic type.
8628 (mono_class_setup_vtable): Only use setup_generic_vtable() for
8629 open generic instances; create a normal vtable for closed generic
8631 (mono_class_setup_vtable_general): We're now also called for
8632 closed generic instances.
8635 (mono_reflection_bind_generic_parameters): Correctly use
8636 mono_metadata_lookup_generic_inst() everywhere.
8638 2005-12-14 Zoltan Varga <vargaz@gmail.com>
8640 * object.c (mono_class_create_runtime_vtable): Call
8641 mono_class_setup_vtable ().
8643 * reflection.c (mono_reflection_get_dynamic_overrides): New helper
8645 (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
8648 * loader.c (mono_loader_set_error_type_load): Print the type load
8649 warnings to the console so they are more visible to the user.
8650 (mono_loader_set_error_method_load): Ditto.
8652 * reflection.c (ensure_runtime_vtable): Revert the last change as it
8655 * reflection.c (ensure_runtime_vtable): Fix build.
8657 * reflection.c (ensure_runtime_vtable): Disable an optimization which
8658 doesn't work in all cases.
8660 2005-12-13 Zoltan Varga <vargaz@gmail.com>
8662 * object.c (mono_array_new_full): Treat a single dimensional array
8663 with 0 lower bounds as an szarray. Fixes #76973.
8665 * reflection.c (custom_attr_visible): Really fix this.
8667 2005-12-12 Zoltan Varga <vargaz@gmail.com>
8669 * reflection.c (custom_attr_visible): Allow nested public attributes
8672 * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
8675 2005-12-12 Raja R Harinath <harinath@gmail.com>
8677 * class.c (set_generic_param_owner): Delete.
8678 (mono_class_create_from_typedef): Don't set ->owner field of
8679 generic parameters to "param containers" of enclosing classes.
8680 * reflection.c (mono_reflection_initialize_generic_parameter):
8683 2005-12-11 Zoltan Varga <vargaz@gmail.com>
8685 * reflection.c (custom_attr_visible): Fix build.
8687 2005-12-10 Zoltan Varga <vargaz@gmail.com>
8689 * reflection.c (mono_custom_attrs_from_builders): Avoid returning
8692 * reflection.c (reflection_methodbuilder_to_mono_method): Fix
8693 handling of null parameter defaults.
8695 2005-12-09 Raja R Harinath <rharinath@novell.com>
8697 * class.c (mono_class_from_generic_parameter): Don't set
8698 klass->generic_container.
8699 (my_mono_class_from_generic_parameter): Likewise.
8701 2005-12-07 Zoltan Varga <vargaz@gmail.com>
8703 * reflection.c (load_public_key): Fix a warning.
8704 (method_encode_code): Fix unaligned accesses.
8706 2005-12-07 Martin Baulig <martin@ximian.com>
8708 * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
8711 (write_generic_param_entry): Encode our custom attrs.
8713 * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
8715 2005-12-07 Martin Baulig <martin@ximian.com>
8717 * reflection.c (encode_new_constraint): Removed; we don't use the
8718 `NewConstraintAttribute' anymore.
8720 2005-12-06 Zoltan Varga <vargaz@gmail.com>
8722 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
8723 not fire a TypeResolve event when Assembly.GetType () is called.
8725 2005-12-05 Ben Maurer <bmaurer@ximian.com>
8727 Beginning of support for nullable types in the runtime. Parts of
8728 this patch are from Martin.
8730 * appdomain.c (MONO_CORLIB_VERSION): Bump
8732 * domain.c (mono_init_internal): get the nullable type
8734 * class.c (mono_class_is_nullable): New method
8735 (mono_class_get_nullable_param): New mehod
8736 (mono_class_create_generic): In types T? set cast_class to T
8738 * class-internals.h (MonoDefaults): new nullable default class
8739 (mono_class_get_nullable_param, mono_class_get_nullable_param):
8742 2005-12-05 Raja R Harinath <rharinath@novell.com>
8744 * metadata.c (select_container): New. Refactor code to select the
8745 appropriate GenericContainer given the type of generic parameter
8747 (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
8748 not a MonoGenericContext. Use select_container. Update parameters.
8749 (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
8751 (unwrap_arrays): Remove duplicate tests.
8752 (find_generic_param): Rename from 'has_same_context'. Now walks a
8753 generic instantiated class to find any arguments that are generic
8755 (mono_type_create_from_typespec_full): Use find_generic_param to
8756 avoid evicting some generic instantiations from the typespec
8759 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
8761 * reflection.c: fixed writing of doubles on ARM FPA.
8763 2005-12-02 Robert Jordan <robertj@gmx.net>
8765 * icall.c: Fixed EventInfo.ReflectedType (#76829).
8767 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8769 * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
8770 least on SUSE 10 they are not the same (on debian, they are just the
8773 2005-12-01 Raja R Harinath <rharinath@novell.com>
8775 * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
8776 DeclaringType for VARs and MVARs.
8777 * class.c (set_generic_param_owner): Fix initialization of owner
8780 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8782 * icall.c: fixed Enum.ToObject() to correctly convert the values.
8784 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8786 * threadpool.c: workaround for a bug that shows up on the Mac:
8787 select()+connect() on a blocking socket is not like it should
8788 be, so we proceed to connect() in that case, wasting the I/O
8789 threadpool thread until connect succeedes. Fixes bug #75436.
8791 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8793 * threadpool.c: fix typo when setting file descriptor states.
8795 2005-11-28 Raja R Harinath <rharinath@novell.com>
8797 * class-internals.h (MonoGenericContainer.is_signature): Remove.
8798 * metadata.c (mono_metadata_parse_method_signature_full): Don't
8799 create a temporary signature container.
8800 (mono_metadata_parse_generic_param): Update to changes.
8801 (mono_type_create_from_typespec_full): Update to changes.
8802 * loader.c (method_from_memberref): Don't use a
8803 MonoGenericContainer while parsing a memberref signature.
8804 (method_from_methodspec): Remove dead-store of the 'container'
8805 variable. It's overwritten before use.
8807 * metadata.c (mono_type_create_from_typespec_full): Make debugging
8809 (mono_metadata_parse_generic_param): Likewise.
8810 * loader.c (find_method_in_class): Does not need a
8811 MonoGenericContainer. Use 'mono_method_signature' rather than
8812 'mono_method_signature_full'.
8813 (find_method, mono_get_method_constrained, method_from_memberref):
8816 * metadata.c (mono_type_create_from_typespec_full): Ensure that
8817 owner-less generic-parameters are never evicted from the typespec
8820 * loader.c (method_from_memberref): Don't use the current context
8821 when parsing signatures.
8822 (method_from_methodspec, mono_get_method_from_token): Update to changes.
8824 * metadata.c (do_mono_metadata_parse_generic_class): Avoid
8825 side-effects in g_assert.
8826 * loader.c (mono_get_method_from_token): Resolve klass earlier so
8827 that we don't potentially lose information.
8829 2005-11-26 Dick Porter <dick@ximian.com>
8832 * threads.c: icalls to implement basic (ie, not named)
8833 System.Threading.Semaphore.
8835 2005-11-24 Dick Porter <dick@ximian.com>
8838 (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
8839 Use GetProcessId() if it's available.
8841 2005-11-23 Zoltan Varga <vargaz@gmail.com>
8843 * icall.c threads-types.h threads.c: Add Exchange<T> icall.
8845 2005-11-23 Raja R Harinath <rharinath@novell.com>
8846 Ankit Jain <jankit@novell.com>
8848 * loader.c (mono_get_method_from_token): Initialize 'method' field
8849 of all generic parameters before parsing the signature. Remove
8850 code that "fixed"-up MVAR references.
8852 2005-11-23 Ankit Jain <jankit@novell.com>
8854 * metadata.c (mono_metadata_has_generic_params):
8855 (mono_metadata_load_generic_param_constraints):
8856 (mono_metadata_load_generic_params): Move duplicate code ...
8857 (mono_metadata_get_generic_param_row): ... here. Returns the
8858 first row-id in GenericParam table for a given owner (token).
8859 * metadata-internals.h (mono_metadata_get_generic_param_row): Add
8862 2005-11-23 Raja R Harinath <rharinath@novell.com>
8863 Ankit Jain <jankit@novell.com>
8865 * metadata.c (mono_metadata_class_equal): Pass signature_only when
8867 * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at
8868 type->data.generic_param only if the type is an MVAR.
8869 (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
8870 leak owner-less VARs and MVARs into managed space.
8872 2005-11-21 Martin Baulig <martin@ximian.com>
8875 (MonoMethod): Moved the `generic_container' here from
8876 `MonoMethodNormal' since we now also need it for
8877 `MonoMethodPInvoke';
8878 (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
8879 (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
8880 an union containing both `MonoMethodNormal' and
8881 `MonoMethodPInvoke'.
8884 (mono_get_method_from_token): Allow implementing generic methods
8888 (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
8891 2005-11-17 Dick Porter <dick@ximian.com>
8895 * process.c: Split the Process Start_internal icall into
8896 ShellExecuteEx_internal and CreateProcess_internal, which are
8897 called depending on whether UseShellExecute is true. Fixes bug
8900 * appdomain.c (MONO_CORLIB_VERSION): Incremented
8902 2005-11-17 Zoltan Varga <vargaz@gmail.com>
8904 * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
8905 'msize' parameters, use the information in 'mspec' instead.
8906 (emit_object_to_ptr_conv): Ditto.
8908 * marshal.c (emit_struct_conv): Handle explicit layout structs with
8909 fields out of order. Fixes #76733.
8911 2005-11-17 Ankit Jain <jankit@novell.com>
8913 * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
8915 2005-11-16 Atsushi Enomoto <atsushi@ximian.com>
8917 * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
8920 2005-11-16 Zoltan Varga <vargaz@gmail.com>
8922 * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
8923 for types with non-auto layout. Fixes #76717.
8925 2005-11-16 Ankit Jain <jankit@novell.com>
8927 * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
8928 * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam
8929 if generic_context is null.
8930 (mono_metadata_generic_param_equal): param->owner can be null.
8931 (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
8934 2005-11-16 Zoltan Varga <vargaz@gmail.com>
8936 * reflection.c (create_dynamic_mono_image): Set md_version_minor to
8939 2005-11-15 Martin Baulig <martin@ximian.com>
8941 * object.c (set_value): Use mono_class_from_mono_type() instead of
8942 the hack for generic instances; fixes #76136.
8944 2005-11-15 Zoltan Varga <vargaz@gmail.com>
8946 * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
8949 * image.c (load_metadata_ptrs): Initialize the new fields.
8951 * reflection.c (create_dynamic_mono_image): Ditto.
8953 * reflection.c (build_compressed_metadata): Use the new fields.
8955 * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
8958 * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
8961 2005-11-15 Ankit Jain <jankit@novell.com>
8962 Raja R Harinath <harinath@gmail.com>
8964 * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
8965 * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
8966 new per-generic_container cache if the cached MonoType's context matches
8967 the current context.
8968 (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
8969 to the expected context.
8970 (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
8972 2005-11-14 Carlos Alberto Cortez <calberto.cortez@gmail.com>
8974 * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
8975 we changed the signature of an icall.
8976 * icall.c: Modify to mono_double_ParseImpl return true/false
8977 depending on the success, instead of throwing the exception. This will
8978 help us in Double.TryParse methods.
8980 2005-11-14 Zoltan Varga <vargaz@gmail.com>
8982 * marshal.c (emit_marshal_object): Throw an exception when
8983 marshalling 'object' instead of crashing. Fixes #76696.
8985 2005-11-11 Zoltan Varga <vargaz@gmail.com>
8987 * class-internals.h: Add prototype for mono_type_get_full_name ().
8989 2005-11-11 Dick Porter <dick@ximian.com>
8991 * threads.c (mono_thread_manage): Make sure the main thread has
8992 abandoned all its mutexes when cleaning up. Fixes bug 74680.
8994 2005-11-11 Zoltan Varga <vargaz@gmail.com>
8996 * loader.c (mono_loader_set_error_type_load): Log a warning to the
8997 console about the missing type.
8998 (mono_loader_set_error_method_load): Ditto.
9000 2005-11-09 Miguel de Icaza <miguel@novell.com>
9002 * mono-config.c (mono_get_config_dir): Set the system defaults if
9005 * assembly.c (mono_set_dirs): New API entry point to set the
9006 assembly and the config directory in one call
9008 2005-11-09 Zoltan Varga <vargaz@gmail.com>
9010 * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
9011 the ftnptr was created from a delegate in a domain other than the
9012 current domain. Fixes #75377.
9014 * exception.h exception.c: Add mono_get_exception_not_supported ().
9016 2005-11-08 Martin Baulig <martin@ximian.com>
9018 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
9020 2005-11-07 Sebastien Pouliot <sebastien@ximian.com>
9022 * security-manager.h: Added definitions to deal with strongname key
9023 pairs bigger (and smaller) than 1024 bits.
9024 * reflection.c: Remove hardcoded strongname size (128 bytes) and
9025 adjust wrt the public key length being used.
9027 2005-11-03 Atsushi Enomoto <atsushi@ximian.com>
9029 * marshal.c, icall.c : reverted sig->pinvoke changes which broke
9030 Windows build (r51396-51397).
9032 2005-11-03 Martin Baulig <martin@ximian.com>
9034 * class.c (mono_class_setup_vtable_general): Also add generic
9035 methods to the vtable; fixes #76581.
9037 2005-11-01 Miguel de Icaza <miguel@novell.com>
9039 * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
9040 sure that we lookup GetString method from the System.Text.Encoding
9041 class, not the derived class or we get an empty method.
9045 2005-10-25 Miguel de Icaza <miguel@novell.com>
9047 * assembly.c (mono_assemblies_init): Do not set the Mono root dir
9048 if it has been previously set (embedders).
9050 Make mono_set_rootdir available also on Unix.
9052 005-10-24 Robert Jordan <robertj@gmx.net>
9054 * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
9056 2005-10-30 Zoltan Varga <vargaz@freemail.hu>
9058 * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
9059 only calls which are made to native code use this flag.
9061 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
9063 2005-10-29 Zoltan Varga <vargaz@freemail.hu>
9065 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
9066 Add support for FieldBuilders.
9068 2005-10-29 Martin Baulig <martin@ximian.com>
9071 (mono_debug_using_mono_debugger): New public method; returns
9072 whether we're running inside the debugger.
9074 2005-10-27 Zoltan Varga <vargaz@gmail.com>
9076 * reflection.c (mono_reflection_get_custom_attrs_info): Add support
9077 for Method/Constructor/FieldBuilders.
9079 2005-10-26 Zoltan Varga <vargaz@gmail.com>
9081 * reflection.c (module_add_cattrs): Save custom attributes for global methods
9084 2005-10-26 Martin Baulig <martin@ximian.com>
9086 * mono-debug-debugger.c
9087 (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
9089 2005-10-24 Raja R Harinath <harinath@gmail.com>
9091 * icall.c (base64_to_byte_array): Don't pass an out-of-range
9094 2005-10-21 Zoltan Varga <vargaz@gmail.com>
9096 * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
9097 when passing valuetypes byref. Fixes #76502.
9099 2005-10-19 Jackson Harper <jackson@ximian.com>
9101 * profiler.c: Don't put a . in front of types that are not in a
9104 2005-10-18 Zoltan Varga <vargaz@gmail.com>
9106 * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
9108 2005-10-15 Zoltan Varga <vargaz@freemail.hu>
9110 * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
9112 (mono_marshal_get_ldflda_wrapper): Fix a warning.
9114 2005-10-13 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9116 * assembly.c metadata-internals.h icall.c: Define an additional
9117 parameter for mono_assembly_name_parse_full, so we can avoid creating
9118 S.R.AssemblyName.Version when no version info wasn't passed.
9120 2005-10-09 Miguel de Icaza <miguel@novell.com>
9122 * class.c (mono_type_get_full_name): Reimplement method that was
9125 * image.c: Some docs
9127 2005-10-10 Zoltan Varga <vargaz@gmail.com>
9129 * profiler.c (output_newobj_profile): Fix printing of Total memory
9132 2005-10-08 Zoltan Varga <vargaz@freemail.hu>
9134 * profiler.c: Add support for allocations > 2GB. Fixes #74886.
9136 2005-10-08 Gert Driesen <drieseng@users.sourceforge.net>
9138 * threads.c: remove debug output.
9140 2005-10-08 Zoltan Varga <vargaz@freemail.hu>
9142 * threads.c (mono_thread_manage): Fix crashes if more than 64
9143 threads need to be aborted. Hopefully fixes #75899.
9145 * assembly.c (mono_stringify_assembly_name): New helper function.
9147 * class.c: Use mono_stringify_assembly_name instead of the similar
9150 * assembly.h assembly.c: Add support for calling a postload search
9151 hook if an assembly cannot be loaded.
9153 * appdomain.c: Register new search hooks which call the AssemblyResolve
9154 events in AppDomain. Fixes #75231
9156 2005-10-07 Martin Baulig <martin@ximian.com>
9158 * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
9159 methods without debug info.
9161 2005-10-07 Zoltan Varga <vargaz@gmail.com>
9163 * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
9166 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9168 * file-io.c: now that we return symlinks, use lstat and, when the file
9169 is a symbolic link, stat, to get the file attributes. Also avoid the
9170 conversion to/from utf16/external.
9172 2005-10-06 Zoltan Varga <vargaz@gmail.com>
9174 * class.c (mono_class_layout_fields): Compute klass->has_references
9175 correctly if an embedded valuetype is not yet initialized. Fixes
9178 2005-10-04 Martin Baulig <martin@ximian.com>
9181 (mono_metadata_load_generic_param_constraints): New public
9182 function; splitted the constraints loading out from
9183 mono_metadata_load_generic_params().
9185 * class.c (mono_class_create_from_typedef): Call
9186 mono_metadata_load_generic_param_constraints() after setting up
9187 the type and creating our parent; fixes #75329.
9189 2005-10-04 Martin Baulig <martin@ximian.com>
9191 * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
9192 non-dynamic parent classes.
9194 2005-10-04 Atsushi Enomoto <atsushi@ximian.com>
9196 * file-io.c : win32 build fix (ETXTBSY seems not found).
9198 2005-10-04 Martin Baulig <martin@ximian.com>
9201 (mono_image_get_methodspec_token): Make the cache actually work;
9204 2005-10-04 Martin Baulig <martin@ximian.com>
9206 * class.c (mono_class_name_from_token): Removed the unneccessary
9207 `MonoGenericContext *' argument.
9209 2005-10-04 Martin Baulig <martin@ximian.com>
9212 (method_from_methodspec): Make the caching work again; fixes the
9213 performance regression from #76262.
9215 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9219 * icall.c: replace FindFirst/FindNext/FindClose calls with a new
9220 GetFileSystemEntries that performs the same work but without going
9221 into io-layer, locking, etc.
9223 2005-09-30 Zoltan Varga <vargaz@gmail.com>
9225 * threads.c (ves_icall_System_Threading_Thread_Abort): Handle
9226 ThreadState_Stopped as well. Fixes #76047.
9228 2005-09-29 Martin Baulig <martin@ximian.com>
9231 (inflate_generic_context): If the new context has a `gmethod', set
9232 its `container' that that gmethod's `container'.
9235 (mono_metadata_parse_generic_param): Simplify things;
9236 `generic_container = generic_context->container;' is just fine.
9238 * loader.c (method_from_methodspec): Code cleanups.
9240 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
9242 * decimal.c: fix warning (and let gcc generate correct
9243 code on ARM with optimizations).
9245 2005-09-28 Martin Baulig <martin@ximian.com>
9248 (method_from_memberref): Added `MonoGenericContext *class_context'
9249 argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
9250 (method_from_methodspec): If we're a memberref, use the enclosing
9251 context when parsing its parent. Fixes #76262; see gtest-206.cs.
9253 2005-09-28 Martin Baulig <martin@ximian.com>
9255 * object.c (mono_runtime_invoke_array): Added support for
9256 MONO_TYPE_GENERICINST; fixes #75917.
9258 2005-09-27 Martin Baulig <martin@ximian.com>
9260 * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
9261 `k->byval_arg.type' to determine the actual type.
9263 * loader.c (method_from_methodspec): Removed some hacks.
9265 2005-09-27 Ben Maurer <bmaurer@ximian.com>
9267 * class-internals.h (mono_field_is_deleted): Do the test for
9268 rtspecialname before we check the actual name of the field. This
9269 prevents us from dereferencing a pointer into the string table,
9270 saving us from accessing a few pages
9272 * *.c: Replace the use of {Enter,Leave}CriticalSection with
9273 macros. This will allow a deadlock debugger to easily be plugged
9276 2005-09-27 Martin Baulig <martin@ximian.com>
9278 * loader.c (method_from_methodspec): Create a "signature"
9279 MonoGenericContainer and use mono_get_method_full(). Fixes #75584.
9281 2005-09-27 Martin Baulig <martin@ximian.com>
9284 (inflate_generic_class): Correctly set the new context's
9288 (find_method, find_method_in_class): Take a `MonoGenericContainer *'
9289 instead of a `MonoGenericContext *'.
9290 (mono_method_signature_full): Take a `MonoGenericContainer *'
9291 instead of a `MonoGenericContext *'.
9294 (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
9295 instead of a `MonoGenericContext *'.
9296 (mono_metadata_parse_method_signature_full): Likewise.
9298 2005-09-26 Martin Baulig <martin@ximian.com>
9301 (mono_class_from_generic_parameter): Set `klass->generic_container'
9302 (mono_class_from_generic_parameter): Likewise.
9303 (mono_bounded_array_class_get): We inherit the generic container
9304 from the element class.
9307 (find_method, find_method_in_class): Take a `MonoGenericContext *'
9308 argument rather than computing it here.
9309 (method_from_memberref): Correctly set the generic context before
9310 parsing the signature. Fixes #75681.
9312 2005-09-26 Zoltan Varga <vargaz@gmail.com>
9314 * object.c (mono_class_has_special_static_fields): Fix warnings.
9316 2005-09-26 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9318 * assembly.c: Add parse_public_key function, to
9319 par the public keys. Also added mono_assembly_name_parse_full,
9320 to define it the parsed key should be freed or not.
9321 * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
9322 to parse a long format assembly name.
9323 * metadata-internals.h: Keep mono_assembly_name_parse_full as
9324 private, since calling it to preserve the key requires
9325 freeing it manually.
9327 2005-09-26 Atsushi Enomoto <atsushi@ximian.com>
9329 * locales.c : removed HAVE_ICU part.
9331 2005-09-24 Zoltan Varga <vargaz@freemail.hu>
9333 * object.c (mono_class_create_runtime_vtable): Avoid calling
9334 field_is_special_static if the klass has no special static fields.
9336 * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
9337 (MonoCachedClassInfo): Likewise.
9339 * object.c (mono_class_has_special_static_fields): New helper function.
9341 2005-09-23 Zoltan Varga <vargaz@gmail.com>
9343 * class.c (mono_class_create_from_typedef): Don't call
9344 interfaces_from_typedef_full for enums.
9345 (mono_class_create_from_typedef): Compute the base types of enums directly
9346 without calling mono_class_setup_fields ().
9347 (mono_class_find_enum_basetype): New helper function.
9349 * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
9350 one place inside the string heap.
9352 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
9354 * class.c: locking fixes, code cleanups, some docs added.
9355 Allocate some data structures in the image mempool.
9357 2005-09-23 Zoltan Varga <vargaz@gmail.com>
9359 * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
9362 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
9364 * class-internals.h, class.c, reflection.c: reduce memory taken by
9367 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
9369 * metadata.c, metadata.h, loader.h: documentation updates, code and
9372 2005-09-23 Zoltan Varga <vargaz@gmail.com>
9374 * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
9377 * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
9378 page faults caused by the runtime while reading metadata.
9380 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9382 * socket-io.c: the field names were changed 3 months ago and no one
9383 realized until bug #76077 got filed!
9385 2005-09-20 Martin Baulig <martin@ximian.com>
9387 * icall.c (assembly_icalls): Removed some unused debugger icalls.
9389 2005-09-20 Martin Baulig <martin@ximian.com>
9391 * mono-debug.c (mono_debug_add_type): Ignore array types and don't
9392 write the rank into the class entry.
9394 2005-09-20 Martin Baulig <martin@ximian.com>
9396 * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
9398 2005-09-19 Zoltan Varga <vargaz@gmail.com>
9400 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9402 * icall.c (custom_attrs_defined_internal): New icall.
9404 * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
9406 (mono_custom_attrs_construct_by_type): New helper function.
9408 2005-09-17 Zoltan Varga <vargaz@freemail.hu>
9410 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
9411 terminate the resulting string. Fixes #76123.
9413 2005-09-16 Martin Baulig <martin@ximian.com>
9416 (mono_debug_add_method): Ignore inflated methods for the moment.
9418 2005-09-14 Martin Baulig <martin@ximian.com>
9420 * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
9422 2005-09-13 Zoltan Varga <vargaz@gmail.com>
9424 * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
9425 return a success/failure indication.
9426 (mono_metadata_interfaces_from_typedef_full): Ditto.
9427 (get_constraints): Ditto.
9429 2005-09-12 Zoltan Varga <vargaz@gmail.com>
9431 * marshal.c (emit_marshal_array): Fix handling of null arrays.
9433 * marshal.c (emit_marshal_array): Add support for returning string
9434 arrays from delegates. Fixes #76063.
9436 * marshal.c: Use the emit_ldloc/stloc macros where possible.
9438 2005-09-11 Zoltan Varga <vargaz@gmail.com>
9440 * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
9443 2005-09-09 Zoltan Varga <vargaz@gmail.com>
9445 * reflection.c icall.c: Fix after mono_get_exception_type_load
9448 * assembly.c (mono_assembly_get_assemblyref): New helper function.
9449 (mono_assembly_load_reference): Use the new helper.
9451 * class-internals.h (MonoLoaderError): New structure containing
9452 information about type loading errors.
9454 * class-internals.h loader.c: Add APIs to store per-thread loader
9457 * loader.c class.c: Set the loader error if needed.
9459 * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
9461 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
9463 * decimal.c: fixed to handle the broken ARM fp format.
9465 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
9467 * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
9470 2005-09-06 Martin Baulig <martin@ximian.com>
9472 * domain.c (supported_runtimes): Added v2.0.50727.
9474 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
9476 * culture-info.h: reduce the size of some structures.
9478 2005-09-05 Martin Baulig <martin@ximian.com>
9480 Reflect latest API changes in the August CTP.
9483 ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
9484 ("MonoType.HasGenericArguments"): Removed.
9485 ("MonoMethod.BindGenericParameters"): Renamed to
9486 "MakeGenericMethod".
9487 ("MethodBuilder.BindGenericParameters"): Renamed to
9488 "MakeGenericMethod".
9490 2005-09-05 Martin Baulig <martin@ximian.com>
9492 * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
9494 2005-09-05 Martin Baulig <martin@ximian.com>
9496 Applying a patch from Michal Moskal <malekith@nemerle.org>.
9498 * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
9499 generic_container is non-NULL.
9501 2005-09-05 Martin Baulig <martin@ximian.com>
9503 Applying a patch from Michal Moskal <malekith@nemerle.org>.
9505 * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
9507 2005-08-29 Michal Moskal <malekith@nemerle.org>
9509 * reflection.c (encode_locals,
9510 mono_reflection_sighelper_get_signature_local): Increase buffer sizes
9511 for large generic types.
9513 2005-09-05 Martin Baulig <martin@ximian.com>
9515 Applying a patch from Michal Moskal <malekith@nemerle.org>.
9517 * class.c (mono_dup_array_type): New public method.
9518 (mono_metadata_signature_deep_dup): New public method.
9519 (dup_type): Correctly duplicate array and function types.
9521 2005-09-05 Martin Baulig <martin@ximian.com>
9523 Applying a patch from Michal Moskal <malekith@nemerle.org>.
9525 * reflection.c (get_default_param_value_blobs): Handle generic types
9526 and generic methods.
9528 2005-09-02 Sebastien Pouliot <sebastien@ximian.com>
9530 * class.c: Fixed error reporting (method/class were inversed) for
9531 inheritance demands.
9532 * security-manager.c|h: Added the AppDomain when calling the managed
9533 System.Security.SecurityManager.InheritanceDemand method.
9535 2005-09-01 Raja R Harinath <rharinath@novell.com>
9537 * reflection.c (encode_marshal_blob): 'marshaltype' and
9538 'marshaltyperef' are alternate sources for the custom marshaler
9541 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
9543 * class.c: fix creation of array classes with rank == 1
9544 (patch by Ankit Jain <jankit@novell.com>).
9546 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
9548 * object.c: fix check for creating the bound data for arrays vs
9551 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9553 * object.c: configuration file name is now based on the executable name,
9554 not the image name. Fixes bug #75931.
9556 2005-08-29 Zoltan Varga <vargaz@gmail.com>
9558 * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
9559 flag using LDIND_U4 since it leads to smaller and faster code on ia64.
9561 2005-08-25 Zoltan Varga <vargaz@gmail.com>
9563 * rand.c: Use wincrypt.h instead of WinCrypt.h.
9565 2005-08-24 Ankit Jain <jankit@novell.com>
9566 Raja R Harinath <rharinath@novell.com>
9568 * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
9569 called by it recursively.
9570 (mono_class_init): Remove special case in pending_init handling, since it's
9571 superseded by the fix to mono_class_from_typeref.
9573 2005-08-22 Zoltan Varga <vargaz@freemail.hu>
9575 * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the
9576 BROKEN_THREAD_START stuff.
9578 2005-08-21 Zoltan Varga <vargaz@freemail.hu>
9580 * class-internals.h object.c: Add a new kind of trampoline called a delegate
9583 * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
9585 * object.c (mono_delegate_ctor): Replace the original function address with
9586 a delegate trampoline.
9588 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
9590 * icall.c: add boolean argument to base64_to_byte_array and
9591 InternalFromBase64String to control whether a whitespace-only string
9592 is allowed (or should casue a FormatException to be thrown). We need
9593 this as the behavior has changed between MS.NET 1.x and 2.0, and we
9594 to match the MS behaviour in both profiles.
9595 * appdomain.c: Bump corlib version.
9597 2005-08-20 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9599 This patch implements a big portion of publisher policy
9600 support, used to bind assembly versions and redirect
9601 one assembly from version A to version B.
9604 New GSList loaded_assembly_bindings, for storing the cached
9606 (assembly_binding_maps_name): New static function for checking if a
9607 assembly binding information maps an assembly name.
9608 (mono_assembly_binding_info_free): New function for freeing
9609 assembly binding information resources.
9610 (get_publisher_policy_info): New static function for retrieving
9611 assembly binding information from a MonoImage.
9612 (compare_versions): New static function for comparing an assembly
9613 binding information data and the version of an assembly name.
9614 (check_policy_versions): New static function for checking if an
9615 assembly binding info mapping an assembly name is valid for it.
9616 (mono_assembly_load_publisher_policy): New static function for
9617 loading the 'policy.major.minor.MyAssembly' image for an assembly
9618 with an assembly name 'aname'.
9619 (mono_assembly_bind_version): New static function for updating
9620 assembly redirection.
9621 (mono_assembly_apply_binding): New static function for applying
9623 (search_binding_loaded): New static function for searching
9624 loaded assembly binding infos in the cache domain.
9625 (mono_assembly_load_full): Don't apply assembly binding for
9626 reflection only assemblies.
9628 * metadata-internals.h: Add MonoAssemblyBindingInfo,
9629 which contains information about assembly binding. Also
9630 declare signature for mono_config_parse_publisher_policy ()
9631 function, used to retrieve pub policy info.
9634 (publisher_policy_start): New static function used to parse publisher
9635 policy config files.
9636 (publisher_policy_parser): New static MonoParseHandler containing
9637 the functions used when parsing config files.
9638 (mono_config_parse_publisher_policy): New function for parsing
9639 publisher policy files.
9641 2005-08-20 Zoltan Varga <vargaz@freemail.hu>
9643 * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
9645 * marshal.c (mono_delegate_free_ftnptr): Ditto.
9647 * object.c (mono_get_addr_from_ftnptr): New helper function.
9649 * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
9651 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9653 2005-08-19 Dick Porter <dick@ximian.com>
9655 * threads.c, threads.h, appdomain.c, appdomain.h,
9656 profiler-private.h, monitor.c, object.c, object-internals.h,
9657 profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
9658 store the thread ID, so it can hold a 64 bit value if needed.
9660 2005-08-19 Zoltan Varga <vargaz@freemail.hu>
9662 * reflection.c (mono_reflection_create_dynamic_method): Store the
9663 handle class into the method references as well so ldtoken works in
9666 * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
9669 2005-08-19 Ankit Jain <jankit@novell.com>
9672 * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature
9673 here rather than using the method signature of a arbitrary function
9674 named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with
9676 Hack done with Harinath.
9678 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9680 * threadpool.c: disable printing stack traces when we get a exception
9681 in a threadpool thread. I need to do more testing to figure out which
9682 cases actually print this. Fixes bug #75828.
9684 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9686 * icall.c: there might be ignored whitespace after the last '='. This
9687 fixes length computation and bug #75840.
9689 2005-08-18 Zoltan Varga <vargaz@freemail.hu>
9691 * assembly.c (mono_assembly_load_full): Consider .exe extension as
9694 * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
9697 * reflection.c (create_custom_attr_data): Ditto.
9699 2005-08-17 Atsushi Enomoto <atsushi@ximian.com>
9701 * locales.c, culture-info.h : removed RegionLCIDMap.
9702 * culture-info-tables.h : regenerated.
9704 2005-08-16 Martin Baulig <martin@ximian.com>
9706 * class.c (mono_type_get_name_recurse): Small fix.
9708 2005-08-16 Atsushi Enomoto <atsushi@ximian.com>
9710 * locales.c : indentation fixie.
9712 2005-08-15 Atsushi Enomoto <atsushi@ximian.com>
9714 * object-internals.h,
9718 icall.c : added RegionInfo table support.
9719 * culture-info-table.h : regenerated for region support.
9721 2005-08-14 Kamil Skalski <nazgul@nemerle.org>
9723 * reflection.c (resolve_object): handle all kinds of MonoMethod
9724 including generic ones
9726 2005-08-12 Ankit Jain <jankit@novell.com>
9728 * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
9729 (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY.
9731 2005-09-12 Lluis Sanchez <lluis@ximian.com>
9733 * process.c: Don't close a thread handle when it's NULL. This is a
9734 workaround for bug #75733.
9736 2005-08-11 Zoltan Varga <vargaz@freemail.hu>
9738 * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
9740 2005-08-10 Zoltan Varga <vargaz@freemail.hu>
9742 * icall.c (ves_icall_Type_get_IsGenericType): New icall.
9744 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9746 * threadpool.c: if a work item in the thread pool has a callback that
9747 catches a exception, don't propagate it after invoking the callback.
9750 2005-08-08 Zoltan Varga <vargaz@freemail.hu>
9752 * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
9754 * class-internals.h (MonoCachedClassInfo): Add some new fields.
9756 * class.c (mono_class_init): Load field info lazily in the AOT case.
9758 * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
9760 2005-08-03 Ankit Jain <jankit@novell.com>
9763 * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
9764 PInvoke calling convention is 0.
9766 2005-08-02 Zoltan Varga <vargaz@freemail.hu>
9768 * socket-io.c (convert_sockopt_level_and_name): Applied patch from
9769 Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
9771 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
9773 * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
9774 to handle threads not started by the GC (patch by Michael Meeks
9775 <michael.meeks@novell.com>).
9777 2005-07-31 Kamil Skalski <nazgul@omega.pl>
9779 * reflection.c: Make buffer used in emitting types larger for some
9780 big generic types (patch by Michal Moskal).
9782 2005-07-30 Zoltan Varga <vargaz@freemail.hu>
9784 * mono-debug.c: Fix some (not all) alignment problems.
9786 2005-07-29 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9788 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
9789 Invoke mono_image_load_from_data_full passing the refonly
9793 (mono_assembly_open_from_bundle): Add the refonly argument,
9794 in order to pass it to other methods it calls to.
9795 (do_mono_assembly_open): Add the refonly argument, in order
9796 to pass it to other methods it calls to.
9797 (mono_assembly_open_full): Invoke do_mono_assembly_open passing
9798 the refonly parameter to it.
9800 * image.c: Add loaded_images_refonly_hash and
9801 loaded_images_refonly_guid_hash to cache the reflection
9803 (mono_images_init): Initialize the hash tables used for
9804 caching the reflection only images.
9805 (load_modules): Invoke mono_image_open_full passing the refonly
9806 parameter to load the modules the correct way.
9807 (build_guid_table): Add the refonly argument, to re-build the
9809 (do_mono_image_open): Added the refonly argument, in order to
9810 define it for the loaded image.
9811 (mono_image_loaded_full): New function, which receives an
9812 additional parameter to look for the image in the refonly or
9813 non-refonly section.
9814 (mono_image_loaded): Updated, using mono_image_loaded_full.
9815 (mono_image_loaded_by_guid_full): The same case that happens
9816 with mono_image_loaded_full.
9817 (mono_image_loaded_by_guid): Likewise.
9818 (register_image): Use the ref_only variable inside MonoImage
9819 to decide in which hash table store the current image.
9820 (mono_image_open_from_data_full): Rename
9821 mono_image_open_from_data to mono_image_open_from_data_full,
9822 adding the refonly argument, to define the ref_only variable
9824 (mono_image_open_from_data): Return
9825 mono_image_open_from_data_full.
9826 (mono_image_open_full): Rename mono_image_open to
9827 mono_image_open_full, receiving the new refonly argument,
9828 to pass it to inner methods.
9829 (mono_pe_file_open): Update this function, to open
9830 a MonoImage as a non-refonly image.
9831 (mono_image_close): Use the refonly variable inside
9832 MonoImage to remove the image from the correct caches.
9834 * image.h: Add the signatures of mono_image_open_full,
9835 mono_image_open_from_data_full, mono_image_loaded_full,
9836 mono_image_loaded_by_guid_full.
9838 * metadata-internals.h: Add the ref_only field to
9841 2005-07-29 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9843 * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
9844 Fix the last behavior, which used to load the assemblies and
9845 extract MonoReflectionAssemblyName information, instead of
9846 extract it from the metadata tables. Needed for Reflection
9849 2005-07-29 Martin Baulig <martin@ximian.com>
9851 * mono-debug-debugger.c
9852 (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
9856 (mono_debug_address_from_il_offset): Check whether we have
9857 debugging support before attempting to take the lock.
9858 (mono_debug_source_location_from_address): Likewise.
9859 (mono_debug_source_location_from_il_offset): Likewise.
9860 (mono_debug_il_offset_from_address): Likewise.
9861 (mono_debug_address_from_il_offset): Likewise.
9863 2005-07-29 Zoltan Varga <vargaz@freemail.hu>
9865 * class.c (mono_class_from_name_case): Add support for dynamic images.
9868 * object.c (mono_class_compute_gc_descriptor): Add a workaround
9871 2005-07-28 Zoltan Varga <vargaz@freemail.hu>
9873 * reflection.c (mono_method_get_object): Fix warning.
9875 2005-07-28 Martin Baulig <martin@ximian.com>
9878 (mono_debug_add_wrapper): Also write the wrapper type.
9880 2005-07-28 Zoltan Varga <vargaz@freemail.hu>
9882 * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
9884 * class.c (mono_class_init): Avoid reading nested classes if the AOT
9885 data indicates the class has none.
9887 2005-07-26 Ben Maurer <bmaurer@ximian.com>
9889 * mono-debug.c, debug-mono-symfile.c: Replace the use of the
9890 loader lock with the debugger lock. Prevents deadlocks for beagle.
9892 Beagle can now run on an smp box for a weekend without any
9895 2005-07-26 Zoltan Varga <vargaz@freemail.hu>
9897 * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
9898 in a module. Fixes #75629.
9900 2005-07-26 Martin Baulig <martin@ximian.com>
9902 * mono-debug.c (mono_debug_add_wrapper): New static method.
9903 (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
9904 interncall or a wrapper.
9906 * mono-debug.h (MonoDebugWrapperData): New public typedef.
9907 (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
9908 (MONO_DEBUGGER_VERSION): Bump to 51.
9910 * mono-debug-debugger.c
9911 (mono_debugger_add_type): Removed this empty function.
9912 (mono_debugger_add_method): Likewise.
9914 2005-07-22 Zoltan Varga <vargaz@freemail.hu>
9916 * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable ()
9917 before accessing method->slot.
9919 2005-07-21 Jb Evain <jbevain@gmail.com>
9921 * reflection.c (method_encode_clauses/class): Handle filters clauses.
9924 2005-07-21 Zoltan Varga <vargaz@freemail.hu>
9926 * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
9929 2005-07-20 Zoltan Varga <vargaz@freemail.hu>
9931 * image.h image.c: Add mono_image_get_guid () API function.
9933 2005-07-19 Ben Maurer <bmaurer@ximian.com>
9935 There were issues when multiple threads tried to load
9936 assemblies. A deadlock was created between assemblies_mutex and
9937 mono_domain_assemblies_lock. This fixes the issue by making the
9938 assembly ref counting be lock free. See bug 75586.
9940 * image.c (mono_image_close): The add ref function here was using
9941 Interlocked operations while the unref was using a mutex and a
9942 --. I don't think this was ever a bug that would be exposed in a
9943 non-pendantic way (ie, by an embedder doing a ref on one thread
9944 and an unref on another), but for the sake of correctness, this is
9947 * assembly.c (mono_assembly_addref): Use InterlockedIncrement
9948 (mono_assembly_load_reference): Call mono_assembly_addref rather
9949 than touching the refcount ourselves.
9950 (mono_assembly_close): Use InterlockedDecrement to unref the
9951 assembly. Don't acquire the lock unless it is actually needed.
9953 2005-07-12 Zoltan Varga <vargaz@freemail.hu>
9955 * class.c (mono_class_layout_fields): Fix calculation of has_references
9958 2005-07-12 Martin Baulig <martin@ximian.com>
9960 Applying a patch from Michal Moskal <malekith@nemerle.org>.
9963 (mono_type_hash): Provide better hashing for generic instances.
9964 (mono_generic_inst_hash): Improve hashing.
9965 (mono_generic_class_hash): Likewise.
9967 * reflection.c (mymono_metadata_type_hash): Improve hashing for
9970 2005-07-12 Martin Baulig <martin@ximian.com>
9972 * reflection.c (mono_reflection_create_runtime_class): Remove the
9973 hack for generic type definitions and non-`Run' assemblies.
9974 (mono_reflection_bind_generic_parameters): Also use
9975 `klass->wastypebuilder' to check for TypeBuilders.
9977 2005-07-12 Zoltan Varga <vargaz@freemail.hu>
9979 * class.c (mono_class_layout_fields): Fix calculation of has_references
9982 * class.c (inflate_generic_class): Fix a leak.
9983 (mono_class_init): Fix calculation of gchimpl and has_finalize fields
9986 2005-07-11 Martin Baulig <martin@ximian.com>
9988 * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
9991 2005-07-11 Martin Baulig <martin@ximian.com>
9993 * loader.c (find_method): Also lookup in
9994 `mono_defaults.object_class' if we're an interfaces; fixes #75460.
9996 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
9998 * appdomain.c (mono_domain_unload): Don't free the error message
9999 before passing it to mono_get_exception_...
10001 * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
10003 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
10005 * threads.c: try to better guess an available RT signal (bug #75387).
10007 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
10009 * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
10012 2005-07-07 Martin Baulig <martin@ximian.com>
10014 * class.c (mono_type_get_name_full): Return NULL for
10015 MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
10018 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
10020 * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
10021 exit the appdomain as well being aborted.
10023 * threadpool.c: Create all threadpool threads inside the root appdomain, and
10024 change back to the root domain after calling managed code. This enables
10025 appdomains using threadpools to be unloaded.
10027 2005-07-07 Martin Baulig <martin@ximian.com>
10029 * class-internals.h
10030 (MonoInflatedGenericClass): Moved the `MonoType *parent' field
10031 into `MonoDynamicGenericClass' since we only need it for dynamic
10034 * reflection.c (mono_class_bind_generic_parameters): We don't need
10035 to compute the `parent' here.
10037 2005-07-07 Atsushi Enomoto <atsushi@ximian.com>
10039 * culture-info-table.h : regenerated.
10041 2005-07-06 Martin Baulig <martin@ximian.com>
10044 (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
10046 * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
10048 2005-07-06 Martin Baulig <martin@ximian.com>
10050 * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
10051 we're doing a signature-only comparision; fixes #74945.
10053 2005-07-06 Martin Baulig <martin@ximian.com>
10055 * class-internals.h (MonoGenericClass): Moved some things out into
10056 a new `MonoInflatedGenericClass' type.
10057 (MonoInflatedGenericClass): New type; the `klass' of a
10058 `MonoGenericClass' is now computed lazyly in
10059 mono_get_inflated_generic_class().
10061 * class.c (mono_get_inflated_generic_class): New public function.
10062 (mono_class_inflate_generic_method): Removed the unused
10063 `MonoClass *' argument.
10064 (setup_generic_vtable): Don't call mono_get_inflated_method() on
10066 (mono_class_create_generic): Make this static and merge it with
10067 mono_class_create_generic_2(); we're now called automatically from
10068 mono_get_inflated_generic_class().
10070 * loader.c (mono_method_signature): Call
10071 mono_get_inflated_method() here.
10073 2005-07-06 Zoltan Varga <vargaz@freemail.hu>
10075 * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
10076 type of fields with RVA.
10078 * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
10079 for this pseudo class.
10080 (my_mono_class_from_generic_parameter): Likewise.
10081 (mono_class_init): Allow interfaces to have cctors.
10083 2005-07-05 Zoltan Varga <vargaz@freemail.hu>
10085 * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
10086 lazily for AOT methods.
10088 2005-07-05 Martin Baulig <martin@ximian.com>
10090 * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
10091 returns FALSE for a successful match, not TRUE.
10093 2005-07-05 Zoltan Varga <vargaz@freemail.hu>
10095 * loader.c (mono_method_get_index): Optimize this a bit.
10097 2005-07-04 Martin Baulig <martin@ximian.com>
10100 (class_compute_field_layout): Move the check for generic type
10101 definitions into mono_class_layout_fields(). Fixes #74684.
10102 (mono_class_from_generic_parameter): Correctly compute
10103 `klass->parent'; fixes #75457.
10105 * reflection.c (register_assembly, register_module): Make sure
10106 `domain->rejobject_hash' is already created.
10108 2005-07-02 Martin Baulig <martin@ximian.com>
10110 * class-internals.h
10111 (MonoGenericClass): Move `count_ifaces' and `ifaces' into
10112 `MonoDynamicGenericClass'.
10114 2005-07-01 Lluis Sanchez <lluis@ximian.com>
10116 * icall.c: In ves_icall_InternalExecute() dont't assert if the value
10117 returned by a field getter is null, since null is a valid value.
10119 2005-07-01 Martin Baulig <martin@ximian.com>
10121 * reflection.c (mono_reflection_generic_class_initialize): Update
10122 the `dgclass->fields [i].parent' to the correct class.
10123 (mono_image_get_fieldref_token): Use the declaring type, not the
10126 2005-07-01 Martin Baulig <martin@ximian.com>
10128 * loader.c (find_method): Also look in the interfaces; fixes #75429.
10130 2005-06-30 Ben Maurer <bmaurer@ximian.com>
10132 * threads.c (thread_cleanup): assert that thread != NULL
10133 (wait_for_tids_or_state_change): We were using the wrong variable
10134 when accessing wait->threads. `i' was always out of the bounds of
10137 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10139 * loader.c: map user32 and kernel32 to libMonoSupportW
10141 2005-06-28 Zoltan Varga <vargaz@freemail.hu>
10143 * appdomain.c (unload_thread_main): Mark this as WINAPI.
10145 2005-06-28 Martin Baulig <martin@ximian.com>
10147 * loader.c (method_from_methodspec): Fix #75334.
10149 2005-06-28 Martin Baulig <martin@ximian.com>
10151 Fix #74953 - Arrays now implement the generic IList<T> interface
10152 on the 2.0 platform.
10154 * class-internals.h (MonoDefaults): Added `generic_array_class'.
10156 * reflection.c (mono_class_bind_generic_parameters): New public
10157 function; similar to mono_reflection_bind_generic_parameters(),
10158 but operates on a `MonoType *' and not on a `MonoReflectionType *'.
10160 * domain.c (mono_init_internal): Try to initialize.
10161 `mono_defaults.generic_array_class' here; this'll only succeed if
10162 we're using the 2.0 corlib.
10165 (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
10166 interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
10167 (mono_lookup_internal_call): Added support for nested classes.
10170 (mono_get_method_from_token): Set `result->signature->pinvoke' if
10171 we're an interncall and have generic arguments.
10174 (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
10175 (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
10176 instance of System.Array.InternalArray<T> for arrays, so they
10177 implement the generic IList<T> interface.
10179 2005-06-27 Zoltan Varga <vargaz@freemail.hu>
10181 * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
10182 (chastamar@yahoo.com). Fixes #75374.
10184 2005-06-27 Atsushi Enomoto <atsushi@ximian.com>
10186 * culture-info-table.h: regenerated.
10188 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10190 * icall.c: handle spaces correctly for base64 strings.
10192 2005-06-26 Ben Maurer <bmaurer@ximian.com>
10194 * *.c: Kill some warnings.
10196 2005-06-23 Duncan Mak <duncan@novell.com>
10198 * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
10199 that this builds on Solaris 10 (x86).
10201 2005-06-23 Martin Baulig <martin@ximian.com>
10204 (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
10205 generic type definitions.
10207 2005-06-23 Martin Baulig <martin@ximian.com>
10211 * metadata.c (mono_class_get_overrides): Renamed to
10212 mono_class_get_overrides_full() and added a `MonoGenericContext *'.
10213 (method_from_method_def_or_ref): Added `MonoGenericContext *' and
10214 pass it to mono_get_method_full().
10216 2005-06-22 Ben Maurer <bmaurer@ximian.com>
10218 * reflection.c (mono_reflection_create_runtime_class): take the
10219 mono_domain_lock in this method. Prevents deadlocks
10221 2005-06-22 Martin Baulig <martin@ximian.com>
10223 * loader.c (method_from_methodspec): Fix #75330.
10225 2005-06-22 Martin Baulig <martin@ximian.com>
10227 * reflection.c (type_get_qualified_name): Use
10228 mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
10229 (_mono_reflection_get_type_from_info): Added `MonoImage *image'
10230 argument; use it if we don't have an assembly name.
10232 2005-06-22 Lluis Sanchez Gual <lluis@novell.com>
10234 * object.c: In mono_message_init, set "copy out" flag for in
10235 parameters with the [Out] flag.
10237 2005-06-21 Martin Baulig <martin@ximian.com>
10240 (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
10243 2005-06-21 Martin Baulig <martin@ximian.com>
10245 * class.c (mono_class_init): Don't initialize `class->fields' for
10246 generic instances since they're initialized again in
10247 compute_field_layout().
10248 (compute_field_layout): Set the field's `generic_info' here; fix
10251 2005-06-21 Martin Baulig <martin@ximian.com>
10253 * class-internals.h
10254 (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
10256 * metadata.c (mono_metadata_generic_method_equal): Also
10257 distinguish the `generic_class'; fixes #75334.
10259 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10263 * domain-internals.h:
10264 * reflection.c: 'domain_assemblies' field is now protected by its own
10265 lock. Don't call into managed code to run the AssemblyLoad event if we
10266 now there are no registered delegates for it.
10268 2005-06-20 Martin Baulig <martin@ximian.com>
10270 * class.c (mono_class_is_assignable_from): Use a custom version of
10271 mono_class_has_parent() to make things work for generic instances;
10274 2005-06-20 Martin Baulig <martin@ximian.com>
10276 * loader.c (method_from_methodspec): Apply a patch from
10277 Kamil Skalski <nazgul@nemerle.org> to fix #75296.
10279 2005-06-20 Martin Baulig <martin@ximian.com>
10281 * class.c (mono_class_init): Reverted Zoltan's last change; it
10284 2005-06-19 Zoltan Varga <vargaz@freemail.hu>
10286 * threads.c (wait_for_tids_or_state_change): Add missing locking.
10288 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10290 * socket-io.c: fix the index in the socket array for writable/error
10291 sockets. Fixes bug #75306.
10293 2005-06-17 Zoltan Varga <vargaz@freemail.hu>
10295 * class.c (mono_class_init): Allow interfaces to have static ctors.
10297 2005-06-17 Martin Baulig <martin@ximian.com>
10299 * loader.c (method_from_methodspec): Use `context->container' when
10300 parsing the `gmethod->inst'.
10302 2005-06-17 Martin Baulig <martin@ximian.com>
10304 * class.c (mono_type_get_name_recurse): Don't add the assembly
10305 name for type arguments.
10307 2005-06-15 Martin Baulig <martin@ximian.com>
10309 * reflection.c (mono_image_get_inflated_method_token): Encode
10310 correct klass; fixes #75260.
10312 2005-06-13 Michal Moskal <malekith@nemerle.org>
10314 * icall.c: Make GetCorrespondingMethod/Constructor take
10315 MonoReflectionMethod method not MonoMethod. Removed
10316 MonoType.GetCorrespondingField, and make
10317 MonoGenericType.GetCorrespondingField take name not
10320 2005-06-13 Michal Moskal <malekith@nemerle.org>
10322 * reflection.c (field_encode_signature, encode_locals):
10323 Make sizes of buffers for types larger (for big generic types).
10324 (create_generic_typespec,
10325 mono_reflection_sighelper_get_signature_local,
10326 mono_reflection_sighelper_get_signature_field):
10327 Add asserts for too small buffers.
10329 2005-06-15 Martin Baulig <martin@ximian.com>
10331 * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
10332 if our parent is not a dynamic type.
10334 2005-06-15 Martin Baulig <martin@ximian.com>
10336 * class-internals.h (MonoTypeNameFormat): New enum.
10339 (mono_class_get_name_full): Renamed to mono_type_get_name_full().
10340 (mono_type_get_full_name): Removed.
10341 (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
10342 argument instead of the boolean's.
10344 * icall.c (ves_icall_System_MonoType_getFullName):
10345 Added `gboolean assembly_qualified'.
10348 (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
10350 * reflection.c (mono_reflection_parse_type): Parse the new type
10353 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10355 * icall.c: no need to convert from utf16 to utf8 and then back again
10356 after the call to GetLogicalDrives.
10358 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10360 * icall.c: frombase64. Fix problems exposed by new tests.
10362 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10364 * icall.c: added internal calls for converting char [] and strings in
10365 base64 into byte [].
10367 2005-06-10 Martin Baulig <martin@ximian.com>
10369 * class.c (mono_class_create_generic_2): Read the nested classes
10370 from the metadata rather than from `gklass->nested_classes' since
10371 `gklass' might not be initialized yet.
10373 2005-06-09 Duncan Mak <duncan@novell.com>
10375 * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
10376 all public headers. Fixes #74919.
10378 2005-06-09 Lluis Sanchez Gual <lluis@novell.com>
10380 * domain.c: The key for proxy_vtable_hash is now a pointer
10381 array. Added new GHashFunc and GCompareFunc functions for this.
10383 * class.h: The list of interfaces in MonoRemoteClass is known in
10384 advance and can't grow (we create a new MonoRemoteClass if needed),
10385 so now the interface array can be allocated together with
10388 * object.c: Added a new method create_remote_class_key.
10389 Fixed mono_remote_class so it does not depend on
10390 mono_upgrade_remote_class.
10391 Removed extend_interface_array.
10392 Added new method clone_remote_class(), which makes a copy of a remote
10393 class and adds a new interface or class to it.
10394 mono_upgrade_remote_class() now creates a new remote class (or gets
10395 it from the cache) if an vtable upgrade is needed. In this way
10396 we make sure that other objects sharing the same remote class
10397 don't get the new vtable with unwanted interfaces.
10399 * object-internals.h:
10400 * object.h: Moved mono_upgrade_remote_class to object-internals.h.
10402 * marshal.c: Track changes in mono_upgrade_remote_class().
10404 2005-06-08 Kamil Skalski <nazgul@nemerle.org>
10405 * icall.c: Add runtime methods for obtaining members of inflated
10406 class, which were created from supplied non-inflated members. It
10407 is used in internal Get{Method,Constructor,Field} methods in
10410 2005-06-09 Martin Baulig <martin@ximian.com>
10413 (mono_reflection_bind_generic_method_parameters): Fix #75169.
10415 2005-06-08 Carlos Alberto Cortez <calberto.cortez@gmail.com>
10416 * reflection.c (mono_image_basic_init): Define
10417 Version in MonoDynamicAssembly.
10419 2005-06-08 Martin Baulig <martin@ximian.com>
10424 (mono_method_signature_full): New public method; takes a
10425 `MonoGenericContext *'.
10426 (find_method): Use mono_method_signature_full() and pass the
10427 klass'es context to it.
10429 * class.c (mono_class_is_inflated_method): Use
10430 mono_method_signature_full() and pass the context to it.
10432 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
10434 * object.c: add proper locking in mono_remote_class_vtable(),
10435 fixes possible memory corruption.
10437 2005-06-08 Michael Meeks <michael.meeks@novell.com>
10439 * marshal.c (mono_remoting_marshal_init): set
10440 initialized after initialization.
10442 2005-06-08 Atsushi Enomoto <atsushi@ximian.com>
10444 * locales.c : hush.
10446 2005-06-06 Michael Meeks <michael.meeks@novell.com>
10448 * object.c (extend_interface_array): fix really silly
10449 memory corrupting / comparison bug.
10451 2005-06-07 Carlos Alberto Cortez <calberto.cortez@gmail.com>
10453 * reflection.c: Functions added to support the creation
10454 of CustomAttributeData, which includes Attribute data
10455 used by ReflectionOnly methods.
10457 * reflection.h: mono_reflection_get_custom_attrs_data and
10458 mono_custom_attrs_data_construct added (functions exposed).
10460 * icall.c: Added mono_reflection_get_custom_attrs_data
10463 2005-06-07 Zoltan Varga <vargaz@freemail.hu>
10465 * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
10468 2005-06-06 Zoltan Varga <vargaz@freemail.hu>
10470 * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
10472 * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
10473 dynamic DllImportAttribute.
10475 * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of
10476 dynamic DllImportAttribute.
10478 * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
10481 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10483 * threads.c: avoid segfault when an unstarted thread is aborted.
10485 2005-06-05 Kornél Pál <kornelpal@hotmail.com>
10487 * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
10488 Returns the name and version of the runtime for reporting.
10490 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10492 * appdomain.c: bump corlib version.
10493 * object-internals.h: new field in MonoReflectionAssembly.
10495 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10497 * object-internals.h: Carlos forgot to add this field.
10499 2005-06-03 Carlos Alberto Cortez <calberto.cortez@gmail.com>
10501 * icall.c: Added create_version to create instances
10502 of Version of MonoReflectionAssemblyName. This change helps
10503 the AssemblyName tests to keep running fine.
10505 2005-06-03 Lluis Sanchez Gual <lluis@novell.com>
10507 * object.c (mono_method_return_message_restore): A somehow less
10508 intrusive fix for #75138.
10510 2005-06-03 Raja R Harinath <rharinath@novell.com>
10512 * object.c (mono_method_return_message_restore): Fix computation
10513 of expected number of out args.
10515 2005-06-02 Zoltan Varga <vargaz@freemail.hu>
10517 * reflection.c (mono_image_get_method_info): Fix the case when the
10520 2005-06-02 Lluis Sanchez Gual <lluis@novell.com>
10522 * object.c: Added missing null check in
10523 mono_method_return_message_restore.
10525 2005-06-02 Zoltan Varga <vargaz@freemail.hu>
10527 * reflection.c (mono_image_get_method_info): Handle the case when
10530 2005-06-02 Lluis Sanchez Gual <lluis@novell.com>
10532 * object.c: When creating the vtable for a proxy, take into account
10533 all inherited interfaces, not only the ones registered in
10534 iclass->interfaces. This fixs bug #74996.
10535 Also, in mono_method_return_message_restore, verify that the array
10536 of out args has the expected lengh.
10538 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10540 * socket-io.c: update the timeout in Poll when the call is interrupte.
10542 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10544 * socket-io.c: support abort/suspend in Select_internal after last
10547 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10549 * threadpool.c: remove warning.
10551 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10554 * socket-io.[ch]: Select_internal uses poll() now when available, thus
10555 removing the 1024 limit from select(). Runtime part of the fix for
10558 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10560 * socket-io.c: when resolving the addresses for the same
10561 host returned by gethostname(), get the local IPs from the interface
10562 list. Loopback addresses are discarded if the are interfaces up with
10563 non-loopback ones. Fixes bug #63265.
10565 2005-05-27 Vladimir Vukicevic <vladimir@pobox.com>
10567 * appdomain.c, verify.c, object-internals.h, reflection.c:
10568 bumped corlib number to 36, and added new extra_flags field
10569 to ReflectionMethodBuilder and friends. Fixes #75060.
10571 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
10573 * gc.c: register a new weak link only if the object is non-null
10576 2005-05-26 Atsushi Enomoto <atsushi@ximian.com>
10578 * culture-info.h : short time pattern too.
10580 2005-05-26 Atsushi Enomoto <atsushi@ximian.com>
10582 * culture-info.h : expand long time pattern string length.
10584 2005-05-25 Atsushi Enomoto <atsushi@ximian.com>
10586 * culture-info-table.h : update (more French date format; #72788).
10588 2005-05-25 Zoltan Varga <vargaz@freemail.hu>
10590 * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
10591 the method is static. Fixes #75029.
10593 2005-05-25 Lluis Sanchez Gual <lluis@novell.com>
10595 * reflection.c: Update the table_idx field of method builders after
10596 saving the module, since it can change. This is a workaround for
10599 2005-05-25 Atsushi Enomoto <atsushi@ximian.com>
10601 * culture-info-table.h : update (additional French date format).
10603 2005-05-20 Zoltan Varga <vargaz@freemail.hu>
10605 * icall.c (ves_icall_type_Equals): Revert last change.
10607 * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
10609 * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
10611 2005-05-20 Sebastien Pouliot <sebastien@ximian.com>
10613 * class-internals.h: Added executioncontext_class field to
10614 MonoDefaults structure.
10615 * domain.c: Cache System.Threading.ExecutionContext class in
10617 * object.c: Capture the ExecutionContext for asynchroneous calls in
10618 mono_async_result_new.
10619 * object-internals.h: Added execution_context and original_context
10620 fields to MonoAsyncResult. Added execution_context to MonoThread.
10621 * security-manager.c|.h: Added mono_get_context_capture_method to
10622 return the capture method (if required by the security manager or by
10623 the framework version used).
10624 * threadpool.c: Apply capture (if present) ExecutionContext in
10625 mono_async_invoke and revert to original context after it completes.
10627 2005-05-19 Atsushi Enomoto <atsushi@ximian.com>
10629 * culture-info-table.h : updated (real hacky solution for zh-CHT).
10631 2005-05-18 Atsushi Enomoto <atsushi@ximian.com>
10633 * culture-info-table.h : zh-CHT related workaround.
10635 2005-05-12 Zoltan Varga <vargaz@freemail.hu>
10637 * marshal.c (emit_marshal_custom): Add some error checking and call the
10638 methods in the ICustomMarshaler interface. Fixes #74875.
10640 * marshal.c (emit_marshal_array): Implement [Out] marshalling in
10641 native->managed wrappers.
10643 2005-05-12 Martin Baulig <martin@ximian.com>
10645 * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
10646 here and use the loader lock.
10648 * mono-debug.c: Properly lock when the debugger is not attached.
10649 (mono_debug_init): Release the initial lock if we're not running
10652 2005-05-12 Zoltan Varga <vargaz@freemail.hu>
10654 * marshal.c (emit_marshal_custom): Pass through NULL values without
10655 calling the custom marshalling routines.
10657 * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
10658 conversion in structures. Fixes #74882.
10660 2005-05-12 Atsushi Enomoto <atsushi@ximian.com>
10662 * culture-info-table.h : zh-* cultures were missing.
10664 2005-05-12 Lluis Sanchez Gual <lluis@novell.com>
10666 * threads.c: Added a new event background_change_event which is signaled
10667 when a thread changes its background mode.
10668 Moved here several checks previously done in managed code. The checks
10669 require the thread lock, and using the thread lock in managed code
10670 can result in deadlocks.
10671 Merged Start_internal and Thread_internal into a single method. Now
10672 Thread_internal does all work of creating and starting a thread.
10673 Added icalls for setting and getting the state of the object. Moved from
10674 managed code to avoid locking there.
10675 Added wait_for_tids_or_state_change() which is called instad of
10676 wait_for_tids when waiting for non-backround threads to end. This method
10677 will return if one of the threads ends or the background_change_event
10679 * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
10680 the background mode. This method signals the background_change_event
10683 * threads-types.h: Added icalls for ClrState, SetState and GetState, and
10684 removed Start_internal.
10686 2005-05-11 Martin Baulig <martin@ximian.com>
10688 * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
10689 to order of some fields to get proper alignment on 64-bit machines.
10691 2005-05-11 Martin Baulig <martin@ximian.com>
10693 * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
10694 changes as they're broken and completely fuck up the debugger.
10696 * mono-debug.c (mono_debug_add_method): Properly unlock on error.
10698 2005-05-10 Martin Baulig <martin@ximian.com>
10700 * reflection.c (mono_reflection_generic_class_initialize): Don't
10701 call mono_class_setup_parent() here.
10703 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10705 * metadata/socket-io.c: on windows, getsockopt/setsockopt for
10706 send/receive timeout use an integer in milliseconds. We were using a
10709 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10712 (internal_get_cultures): reserve the first slot of the array for the
10713 InvariantCulture, which will be filled in managed code.
10715 2005-05-06 Zoltan Varga <vargaz@freemail.hu>
10717 * reflection.c (mono_image_fill_module_table): Initialize the
10718 GENERATION field as well.
10720 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10722 * monitor.c: ignore calls to Monitor.Exit even if no one ever called
10723 Monitor.Enter on the object.
10725 2005-05-05 Lluis Sanchez Gual <lluis@novell.com>
10727 * threads.c: Enable the wait for running threads when exiting.
10728 * icall.c: Suspend all threads before exiting.
10730 2005-05-05 Zoltan Varga <vargaz@freemail.hu>
10732 * assembly.c (mono_assembly_load_reference): Fix warning.
10734 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10736 * threadpool.c: changed the default number of threads per cpu. From now
10737 on, the default will be 20 + (5 * number of cpus) instead of 50.
10739 2005-05-04 Zoltan Varga <vargaz@freemail.hu>
10741 * loader.c (mono_method_get_signature_full): Add locking here.
10743 2005-05-03 Lluis Sanchez Gual <lluis@novell.com>
10745 * appdomain.c: Moved methods for parsing and freeing assembly
10746 names to assembly.c.
10747 * assembly.c, domain-internals.h: Created public methods for parsing
10748 assembly names. Fixed mono_assembly_load_with_partial_name:
10749 it now finds the best match, taking into account the version,
10750 token and culture specified in the partial name. Also return
10751 the latest version if no version information is specified.
10753 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
10755 * threadpool.c: replace check for SocketAsyncCall class.
10757 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10759 * threadpool-internals.h:
10760 * Makefile.am: added threadpool-internals.h
10762 * threadpool.c: call mono_unhandled_exception on exceptions not handled
10763 that happen in threadpool threads (tested on MS).
10764 (mono_thread_pool_remove_socket): new function that dispatch any pending
10765 AIO call on a socket that is closing. By now only epoll really needs it,
10766 as select/poll wake up when the socket closes.
10769 * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
10771 2005-05-01 Zoltan Varga <vargaz@freemail.hu>
10773 * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
10775 2005-05-01 Lluis Sanchez Gual <lluis@novell.com>
10777 * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
10779 2005-04-30 Lluis Sanchez Gual <lluis@novell.com>
10781 * threads.c: In mono_thread_suspend_all_other_threads, if a thread
10782 has an abort request, convert it into a suspend request.
10784 2005-04-30 Ben Maurer <bmaurer@ximian.com>
10786 * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
10787 warning for the usage of `UnmanagedFunctionPointerAttribute' which
10788 is not supported yet.
10790 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10792 * image.c: register assemblies loaded from data (bundles) in the loaded
10793 assemblies hash. Fixes bug #74772.
10795 2005-04-29 Martin Baulig <martin@ximian.com>
10797 * class.c (mono_type_get_name_recurse): Update to the new naming
10798 schema from the latest .NET 2.x beta2.
10799 (mono_class_setup_vtable_general): If we're a generic instance,
10800 copy the vtable from our generic type definition and inflate all
10803 * loader.c (find_method): Update to the new naming schema from the
10804 latest .NET 2.x beta2.
10806 2005-04-29 Raja R Harinath <harinath@gmail.com>
10808 * class.c (mono_class_init): Add a mono_loader_unlock to the
10811 2005-04-28 Zoltan Varga <vargaz@freemail.hu>
10813 * icall.c (ves_icall_System_Environment_Exit): Remove the
10814 suspend_all_other_threads () call for the time being, since it can hang.
10816 * threads.c (mono_thread_manage): Similarly, disable the waiting for
10817 the background threads to exit, since it can also hang.
10819 * class.c (mono_class_init): Applied patch from Ankit Jain
10820 (radical@gmail.com). Avoid pending init errors when a field refers
10821 to a nested class using a typeref. Fixes #74734.
10823 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
10824 this for dynamic modules.
10826 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10828 * threads.c: don't wait for threads that are in the process of aborting
10829 or aborted. Set the 'shutting_down' flag before cleaning the threadpool
10830 and waiting for background threads to finish. This makes xsp and
10831 mod-mono-server exit without random length delays and/or hangs.
10833 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10835 * icall.c: remove duplicate assignment from GetReferencedAssemblies.
10837 2005-04-25 Zoltan Varga <vargaz@freemail.hu>
10839 * class.c (mono_class_is_assignable_from): Call is_assignable_to for
10840 dynamic types to prevent infinite loops. Fixes #74727.
10842 * reflection.c (mono_reflection_call_is_assignable_from): Rename to
10843 ..._is_assignable_to.
10845 2005-04-25 Sebastien Pouliot <sebastien@ximian.com>
10847 * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
10849 2005-04-25 Martin Baulig <martin@ximian.com>
10851 Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
10854 (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
10856 * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
10858 * reflection.c (build_compressed_metadata): Set metadata header
10861 2005-04-23 Zoltan Varga <vargaz@freemail.hu>
10863 * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
10864 number into an integral and a decimal part. Fixes #70473.
10866 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
10868 2005-04-23 Atsushi Enomoto <atsushi@ximian.com>
10870 * culture-info-table.h : reflected the latest locale-builder output.
10872 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10874 * threadpool.c: check for SuspendRequested too when deciding if
10875 mono_thread_interruption_checkpoint should be called.
10877 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10879 * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
10880 * threads.c: remove interruption_mutex and use Interlocked instead. When
10881 suspending all the threads, wait for all the suspended events at once.
10882 If we're shutting down and get an APC that is going to be queued,
10883 call mono_thread_execute_interruption immediately, as the thread might
10884 be sleeping on a pthread condition or mutex.
10886 * icall.c: call mono_runtime_set_shutting_down before suspending the
10889 Fixes bug #74693. And now xsp is happier when exiting.
10891 2005-04-22 Zoltan Varga <vargaz@freemail.hu>
10893 * loader.c (mono_stack_walk): Fix #74690.
10895 2005-04-22 Martin Baulig <martin@ximian.com>
10897 * mono-debug.h (MonoDebugMethodJitInfo): Added
10898 `MonoDebugMethodJitInfo *jit'.
10900 * mono-debug.c (mono_debug_read_method): Cache the
10901 MonoDebugMethodJitInfo in `address->jit'.
10902 (mono_debug_free_method_jit_info): New public method.
10904 2005-04-22 Martin Baulig <martin@ximian.com>
10906 * class.c (mono_class_is_assignable_from): Disallow
10907 type parameter -> interface.
10909 2005-04-21 Dick Porter <dick@ximian.com>
10911 * threads.c (mono_thread_create): Turn an assertion into an error.
10913 2005-04-20 Zoltan Varga <vargaz@freemail.hu>
10915 * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
10917 * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c:
10918 Fix some gcc 4.0 warnings.
10920 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
10922 * file-io.c: fix alt dir separator char on unix systems
10923 and cleanup (fixes bug #71214).
10925 2005-04-19 Lluis Sanchez Gual <lluis@novell.com>
10927 * marshal.c: Use CALLVIRT instead of CALL when dispatching
10928 a call to a remote domain, since the method may be an
10929 interface method in the client domain. This fixes bug #74192.
10931 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10933 * threadpool.c: recv/send are now performed before going back to managed
10934 code to save one transition.
10936 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10938 * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
10940 * metadata/threadpool.c: removed hack to workaround the bug above.
10944 2005-04-16 Zoltan Varga <vargaz@freemail.hu>
10946 * reflection.c reflection.h: Fix handling of parameter defaults in
10947 dynamic methods. Also fixes handling of parameter attributes.
10950 * mono-debug.c (mono_debug_close_image): Fix warning.
10952 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10954 * socket-io.h: replaced old unused field with new 'blocking'.
10955 * threadpool.c: restore socket blocking state on windows(tm).
10957 2005-04-14 Sebastien Pouliot <sebastien@ximian.com>
10959 * icall.c: don't return the codebase in the AssemblyName[] returned by
10960 ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
10961 * object-internals.h: Removed FIXME (fields were presents) and fixed
10962 versioncompat declaration.
10964 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10966 * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
10967 not closed, so don't cleanup when it happens.
10969 2005-04-13 Chris Toshok <toshok@ximian.com>
10971 * mono-debug-debugger.h: change prototype for
10972 mono_debugger_lookup_type.
10974 * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
10975 this function, although it should probably be named
10976 mono_debugger_init_type.
10978 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10980 * threadpool.c: fix non-AIO case.
10982 2005-04-13 Zoltan Varga <vargaz@freemail.hu>
10984 * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
10985 the built-in profiler to measure just JIT compilation times.
10987 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10989 * threadpool.c: the epollfd might be closed by another thread at
10990 any time, so ignore EBADF at treat it as a "we're closing" sign.
10992 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10994 * threadpool.c: release the semaphores with a count equals to the number
10995 of working threads in both IO and regular pools. Fixed typo that messed
10996 up the count of IO pool threads. Don't initialize the pipe handles if
10999 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11001 * threadpool.c: some systems don't like a NULL when deleting the socket
11004 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11006 * threadpool.c: fix semaphore allocation.
11008 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11010 * threadpool.c: added epoll() based implementation for asynchronous IO
11011 that is used instead of the default poll() when available.
11012 It can be disabled by setting MONO_DISABLE_AIO.
11014 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11016 * threadpool.c: windows needs 'closesocket' and instead of returning
11017 0 when the stream is closed while in select, it returns -1. Fixes bug
11020 2005-04-12 Zoltan Varga <vargaz@freemail.hu>
11022 * class.c (class_compute_field_layout): Fix the regression caused by
11025 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11027 * threadpool.c: separate pool for socket async. IO.
11028 * threadpool.h: mono_max_worker_threads is not a global any more.
11030 2005-04-10 Zoltan Varga <vargaz@freemail.hu>
11032 * class.c (class_compute_field_layout): Fix #74549.
11034 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11036 * threadpool.c: select() on windows doesn't allow pipe handles, soooo
11037 use 2 connected sockets instead.
11039 2005-04-08 Miguel de Icaza <miguel@novell.com>
11041 * mono-config.c: Add new entry point for mkbundle
11042 mono_config_parse_memory.
11044 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11046 * threadpool.c: removed another unused function.
11048 2005-04-08 Ankit Jain <radical@corewars.org>
11050 * reflection.c (get_default_param_value_blobs): Add 'types'
11051 parameter to get the types encoded in the constant table.
11052 (mono_param_get_objects): Use the type from the constant table,
11053 not the type of the parameter, when creating default values.
11054 Handle null default values correctly.
11056 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11063 * socket-io.c: removed dead code for async IO.
11065 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11067 * socket-io.h: 2 more fields in MonoSocketAsyncResult.
11069 * threadpool.c: intercept socket async. calls and pass them to a thread
11070 that is polling and dispatching the job items to the threadpool as
11071 socket become ready. Fixes bugs #71217, #71933.
11073 * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
11074 between char and short/ushort arrays.
11076 * socket-io.c: remove dead code.
11078 2005-04-06 Atsushi Enomoto <atsushi@ximian.com>
11081 icall.c : removed InternalToUpper_Comp() and
11082 InternalToLower_Comp().
11084 2005-04-06 Atsushi Enomoto <atsushi@ximian.com>
11086 * char-conversions.h : The tables were incorrectly generated. Should
11087 be generated against invariant culture.
11089 2005-04-04 Zoltan Varga <vargaz@freemail.hu>
11091 * object.c (mono_runtime_invoke_array): Fix return value when
11092 passing pre-created valuetype objects to ctors.
11094 * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer
11095 (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
11098 2005-03-30 Sebastien Pouliot <sebastien@ximian.com>
11100 * domain.c: removed g_assert for runtimesecurityframe_class. This is
11101 only used with --security and hides the wrong corlib version error.
11103 2005-03-30 Joshua Tauberer <tauberer@for.net>
11105 * class.c: Changed mono_class_name_from_token so that types
11106 outside of a namespace don't have an initial period. Improved
11107 the g_warning message used in _mono_class_get when loading
11109 * assembly.c: In mono_assembly_load_reference, when an assembly
11110 can't be found, "No such file or directory" is misleading and
11111 unhelpful because a few paths were checked for the presence of
11112 the assembly. When that happens (ENOENT), display a nicer
11113 message indicating the directories that were searched. In all
11114 cases, the warning is made easier to read for non-hackers.
11116 2005-03-29 Sebastien Pouliot <sebastien@ximian.com>
11118 * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
11120 * appdomain.h|domain.c: Removed inline from functions.
11121 * appdomain.c: Reduced warnings when compiling on windows.
11122 * icall.c: Fixed output_debug declaration to gunichar2*.
11123 * mono-config.c: Reduced warnings when compiling on windows.
11124 * rand.c: Added missing "windows.h". Added missing return value.
11125 * rawbuffer.c: Added missing winsock2.h for windows.
11126 * sysmath.h: Added mono-compiler.h header to allow/ease
11127 compilation with non-GCC compilers.
11128 * threads.c: Fixed declarations to compile with VS.NET C compiler.
11129 Removed cast warnings.
11131 Adapted from the work of J Lothian (for VC6).
11133 2005-03-29 Zoltan Varga <vargaz@freemail.hu>
11135 * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
11138 2005-03-27 Zoltan Varga <vargaz@freemail.hu>
11140 * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
11143 2005-03-27 Raja R Harinath <harinath@gmail.com>
11145 * Makefile.am (assembliesdir): Fix. If it is arch-dependent it
11146 has to be in $(exec_prefix). $(prefix) is for arch-independent
11147 stuff, and it would probably use $(prefix)/share rather than
11150 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11152 * console-io.c: added 2 includes that might be missing.
11154 2005-03-24 Zoltan Varga <vargaz@freemail.hu>
11156 * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
11159 * reflection.c (create_custom_attr): Allocate the params array using
11160 alloca so it gets GC tracking.
11162 2005-03-23 Chris Toshok <toshok@ximian.com>
11164 * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
11167 2005-03-24 Raja R Harinath <rharinath@novell.com>
11169 * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
11170 changes to pick up any changes in prefix, etc.
11172 2005-03-23 Zoltan Varga <vargaz@freemail.hu>
11174 * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
11176 * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
11177 * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
11179 2005-03-23 Zoltan Varga <vargaz@freemail.hu>
11181 * class-internals.h object-internals.h class.c reflection.c: Extend the
11182 mono_lookup_dynamic_token () function to return the class of the
11185 * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
11186 well. Fixes #73848.
11188 2005-03-23 Sebastien Pouliot <sebastien@ximian.com>
11190 * security-manager.c: Skip inheritance checks for intra-corlib
11191 class inheritance and method overrides. This skips a lot of checks
11192 and (anyway) permissions cannot work until corlib is loaded.
11194 2005-03-23 Martin Baulig <martin@ximian.com>
11196 * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
11197 MONO_TYPE_GENERICINST.
11199 2005-03-23 Martin Baulig <martin@ximian.com>
11201 * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
11203 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11205 * class.c: added locking comments to some functions.
11206 Cache the interface offsets arrays (saves about 20 KB
11207 of runtime memory in a typical app).
11208 Reduce the time overhead in mono_class_setup_supertypes ().
11210 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
11212 * icall.c: speedup and fix leaks in GetMethodsByName and
11213 GetPropertiesByName.
11215 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11217 * reflection.c: some locking fixes.
11219 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11221 * metadata.c: added missing break in case statement.
11223 2005-03-22 Zoltan Varga <vargaz@freemail.hu>
11225 * marshal.c (mono_marshal_get_runtime_invoke): Add support for
11226 typedbyref return values. Fixes #73941.
11228 2005-03-17 Sebastien Pouliot <sebastien@ximian.com>
11230 * security-manager.c|h: Added demandunmanaged method and
11231 suppressunmanagedcodesecurity class to MonoSecurityManager.
11232 Renamed aptc class to allowpartiallytrustedcallers.
11234 2005-03-17 Martin Baulig <martin@ximian.com>
11236 * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
11238 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11240 * file-io.c: disabled file async. IO using aio_*. It uses the
11241 threadpool now. Workaround for bug #73718.
11243 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11245 * assembly.h, mono-config.c: added code to deal with bundled configs
11246 for bundled assemblies.
11248 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
11250 * *.c, private.h: cleanup, removing old private.h header file.
11252 2005-03-16 Zoltan Varga <vargaz@freemail.hu>
11254 * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
11255 and throw_on_unmappable_char attributes.
11257 2005-03-13 Sebastien Pouliot <sebastien@ximian.com>
11259 * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
11260 _ProcessName_internal.
11262 2005-03-13 Zoltan Varga <vargaz@freemail.hu>
11264 * object.c (mono_array_new_full): Fix aligning of array size. Fixes
11267 * icall.c threads.c threads-types.h: Remove slothash icalls as they
11268 are no longer used.
11270 2005-03-11 Zoltan Varga <vargaz@freemail.hu>
11272 * object.c (compute_class_bitmap): Add support for generics. Fixes
11275 2005-03-10 Zoltan Varga <vargaz@freemail.hu>
11277 * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
11279 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11281 * filewatcher.c: commented out the code for windows watcher, as we don't
11282 use it (we use the managed implementation instead).
11284 2005-03-10 Zoltan Varga <vargaz@freemail.hu>
11286 * object-internals.h (MonoThread): Remove 'unused1' field.
11288 * appdomain.c: Bump corlib version.
11290 * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
11292 * reflection.c (mono_reflection_create_runtime_class): Remove the
11293 AssemblyBuilder.Save optimization since it causes too many problems.
11295 2005-03-10 Sebastien Pouliot <sebastien@ximian.com>
11297 * exception.c|h: Added mono_get_exception_reflection_type_load to
11298 create a ReflectionTypeLoadException object.
11299 * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
11300 to return NULL is a InheritanceDemand fails during reflection. Updated
11301 ves_icall_System_Reflection_Assembly_GetTypes to throw a
11302 ReflectionTypeLoadException if an InheritanceDemand fails during
11303 reflection. Added icall mapping for GetLinkDemandSecurity.
11304 * security-manager.c|h: Added ves_icall_System_Security_
11305 SecurityManager_GetLinkDemandSecurity internal call to return the
11306 class and methods permissions set for a LinkDemand. Removed unused
11307 fields in MonoSecurityManager.
11309 2005-03-10 Martin Baulig <martin@ximian.com>
11311 * class.c (mono_bounded_array_class_get): Initialize `eclass' if
11312 it's a generic instance.
11314 2005-03-09 Zoltan Varga <vargaz@freemail.hu>
11316 * reflection.c (mono_get_object_from_blob): Applied patch from
11317 Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
11319 * class.c (mono_class_is_assignable_from): Another try at fixing
11320 #73469 without breaking anything.
11322 2005-03-08 Zoltan Varga <vargaz@freemail.hu>
11324 * class.c: (mono_class_is_assignable_from): Revert the last changes
11325 since they don't work with generics.
11327 * class.c (mono_class_is_assignable_from): Fix build bustage.
11329 * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
11330 the managed IsAssignableFrom method. Fixes #73469.
11332 * reflection.c (mono_reflection_call_is_assignable_from): New helper
11335 2005-03-04 Zoltan Varga <vargaz@freemail.hu>
11337 * object.c (mono_load_remote_field_new): Fix returning uninitialized
11338 memory when the remoting callback does not sets the out arguments.
11341 * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
11344 * string-icalls.c: Return String.Empty where needed. Fixes #73310.
11346 * object-internals.h (MonoStackFrame): Sync with managed object layout.
11348 * appdomain.c: Bump corlib version.
11350 2005-03-03 Zoltan Varga <vargaz@freemail.hu>
11352 * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
11355 * threads.c (mono_thread_attach): Detect threads which are not started
11356 by the GC pthread wrappers.
11358 2005-03-03 Sebastien Pouliot <sebastien@ximian.com>
11360 * icall.c: Added new icall for RNG.
11361 * rand.c|h: Added new icall to open the RNG. This allows to share a
11362 single handle on Linux to access /dev/urandom and fix #73183.
11364 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
11366 * object.c: setting the new vtable in a transparent proxy object must
11367 not change the GC descriptor.
11369 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11371 * object.c: fixed compilation without GCJ support.
11372 * reflection.c: for runtime-created types ensure klass->has_references
11373 is correct (bug #73215).
11375 2005-03-02 Martin Baulig <martin@ximian.com>
11377 * class.c (mono_class_is_assignable_from): Make this work if
11378 `oklass' is a generic instance; fixes #72831.
11380 2005-03-01 Zoltan Varga <vargaz@freemail.hu>
11382 * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
11385 * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
11387 * marshal.c: Reorganize native->managed marshalling code to also use
11388 the emit_marshal_... functions.
11390 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
11392 * object.c: typed allocs have issues with bitmap sizes > 30,
11393 so check for max_set >= 30.
11395 2005-03-01 Zoltan Varga <vargaz@freemail.hu>
11397 * marshal.c (emit_marshal_array): Implement marshalling of arrays to
11398 managed code. Fixes #73012.
11400 * metadata.h (MonoMarshalSpec): Add elem_mult field.
11402 * metadata.c reflection.c: Load/Emit elem_mult as well.
11404 * metadata.h (MonoMarshalSpec): Add comment.
11406 * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
11408 * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
11409 num_elem to -1 if not given.
11411 * object-internals.h (MonoReflectionMarshal): Add has_size field.
11413 * reflection.c (encode_marshal_blob): Differentiate between 0 and not
11416 2005-03-01 Marek Safar <marek.safar@seznam.cz>
11418 * null-gc.c (mono_gc_free_fixed): Was not compilable.
11420 2005-02-28 Zoltan Varga <vargaz@freemail.hu>
11422 * reflection.c (encode_marshal_blob): Encode param_num field as well.
11424 * object-internals.h (MonoReflectionMarshal): Add param_num field.
11426 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
11428 * object.c: generalized the reference bitmap creation
11429 and added hooks for the new GC.
11430 * class-internals.c: removed the gc_bitmap field from MonoClass.
11432 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11434 * domain.c: help the compiler to produce better code
11435 in mono_jit_info_table_find ().
11437 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
11439 * object.c: make all allocations look typed.
11441 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11443 * socket-io.c: load Mono.Posix if it's not loaded already
11446 2005-02-24 Martin Baulig <martin@ximian.com>
11448 * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
11449 * reflection.c (dup_type): Likewise.
11451 2005-02-24 Zoltan Varga <vargaz@freemail.hu>
11453 * gc.c (run_finalize): Set the domain for finalizing delegates as well.
11454 Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
11456 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11458 * domain.c, threads.c, object-internals.h: make the critical thread
11459 local vars use the fast access mode (even when we're compiled in
11460 a lib). Provide accessors to be used by the jit during codegen.
11462 2005-02-24 Carlos Alberto Cortez <calberto.cortez@gmail.com>
11464 * appdomain.c: Changed hook functios behavior to include
11465 support for the reflection only assemblies. Some icalls were changed
11466 to support the mentioned assemblies too. Signatures of static methods
11467 try_assembly_resolve and real_load now have an additional parameter:
11470 * assembly.c: General changes to mono_assembly_ methods to support
11471 reflection only api. Functions mono_assembly_open, mono_assembly_load,
11472 mono_assembly_load_from and mono_assembly_loaded have got a '_full'
11473 suffix, to support an additional gbool parameter to specify whether
11474 the assembli is reflection only or not. Created some new hook functions
11475 to add support for reflection only assemblies. Signatures of static
11476 methods load_in_path, search_loaded, and mono_assembly_load_from_gac
11477 have now an additional parameter: refonly.
11479 * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
11480 indicating whether the assembly is reflection only or not.
11482 * exception.c: Add mono_get_exception_invalid_operation.
11484 * icall.c: Throw an InvalidOperationException when trying to invoke
11485 a property/method/event, or trying to set/get the value of a field.
11486 Also add an icall to retrieve the ref_only flag to the
11487 MonoReflectionAssembly.
11489 2005-02-23 Chris Toshok <toshok@ximian.com>
11491 Part of fix for #72827.
11492 * mono-debug.c (mono_debug_add_method): add lexical block data to
11493 the info we write. Kind of a hack at the moment - we copy the
11494 lexical block info from the MonoDebugMethodInfo to the
11495 MonoDebugMethodJitInfo here, before writing it.
11496 (mono_debug_read_method): read the lexical block info.
11498 * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
11500 * debug-mono-symfile.h: add lexical block support.
11502 * debug-mono-symfile.c (mono_debug_find_method): add lexical block
11505 2005-02-23 Zoltan Varga <vargaz@freemail.hu>
11507 * loader.c (mono_lookup_pinvoke_call): Fix warning.
11509 * object.c (mono_runtime_free_method): Call mono_free_method () and
11510 put the TODOs there.
11512 * loader.c (mono_free_method): Free up most memory allocated for
11515 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
11517 * reflection.c: properly flag a Type argument to a
11518 named custom attr value (bug #72248).
11520 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11522 * reflection.c: reduce code duplication in named custom
11523 attribute encoding.
11525 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
11527 * reflection.c: properly encode custom attrs of type object
11530 2005-02-23 Zoltan Varga <vargaz@freemail.hu>
11532 * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
11534 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
11536 * socket-io.c: load System.dll if it's not loaded already
11537 (bug #72850 and #70477).
11539 2005-02-21 Martin Baulig <martin@ximian.com>
11541 * marshal.c (mono_marshal_get_runtime_invoke): Add support for
11544 2005-02-21 Martin Baulig <martin@ximian.com>
11546 * reflection.c (mono_image_build_metadata): We also need to
11547 "fixup" the MethodImpl table after we computed the final method
11548 indices. Call fixup_methodimpl() to do that.
11549 (fixup_methodimpl): New private method.
11551 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
11553 * assembly.c: special case mscorlib.dll (bug#72536),
11554 patch from Carlos Alberto Cortez.
11556 2005-02-20 Zoltan Varga <vargaz@freemail.hu>
11558 * threads-types.h threads.c: Fix build bustage.
11560 * threads.c: Use a union for long<->double conversions.
11562 * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
11563 functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
11565 * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock
11566 containing the checkpoint call with NOT_TAKEN.
11568 * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt
11569 checkpoint before pushing the arguments, so they won't have to be
11572 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11574 * domain.c, assembly.c, domain-internals.h: make some data
11575 const and relocation-free.
11577 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
11579 * object.c, appdomain.c, class-internals.h: introduce the
11580 MonoClassRuntimeInfo structure to hold the info needed to
11581 use a class at runtime. Made mono_class_vtable() lock-free
11582 for all the appdomains.
11584 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
11586 * metadata-internals.h, image.c: introduce a per-image mempool to
11587 be used for memory that has the same lifetime as the image.
11589 2005-02-18 Lluis Sanchez Gual <lluis@novell.com>
11591 * domain.c: In mono_init_internal(), instead of selecting the first
11592 runtime version supported by an executable, get a list of all
11593 supported versions and select the one for which an mscorlib exists
11594 (since even if the runtime supports a given version, it doesn't mean
11595 that the framework for that version is installed).
11596 Modified get_runtimes_from_exe to support this behavior.
11597 In supported_runtimes, added information about additional system
11600 * assembly.c: Added support for more than one system assembly version
11601 per runtime version. Updated the assembly list.
11602 In mono_assembly_remap_version, removed the initial version check,
11603 since we don't know to which version we need to compare until we
11604 get the version set on which the assembly is based.
11605 Moved the code for loading corlib into the new method
11606 mono_assembly_load_corlib(), so it can be used by the initialization
11609 * domain-internals.h: Updated data structures and added declaration
11610 for mono_assembly_load_corlib.
11612 2005-02-17 Zoltan Varga <vargaz@freemail.hu>
11614 * reflection.c (resolve_object): Fix the creation of the signature in
11615 the SignatureHelper case.
11617 * assembly.c (mono_assembly_remap_version): Fix binary search.
11619 2005-02-17 Sebastien Pouliot <sebastien@ximian.com>
11621 * class.c: Added inheritance check when a method is overloaded (from a
11622 virtual method or when implementing an interface) and when a class is
11623 inherited. Added functions to set a failure for a class and to
11624 retreive the exception from a failure.
11625 * class-internals.h: Added fields to MonoClass to keep the exception
11626 information status for inheritance (or other exceptions) to be thrown
11627 later (i.e. not at load time).
11628 * object.c: Throw the inheritance SecurityException when a type is to
11629 be created with either class or method inheritance violations.
11630 * reflection.c|h: Fix when getting declsec from a class. Removed
11631 unrequired code for class. Improved sanity in parameter naming.
11632 * security-manager.c|h: Added functions to check for class and method
11635 2005-02-17 Zoltan Varga <vargaz@freemail.hu>
11637 * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
11638 and has_finalize in dynamic types as well.
11640 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
11642 * culture-info-table.h : fixed currency format for en-GB (and so on).
11644 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
11646 * gc.c: ensure the GC handles never have 0 as a value.
11648 2005-02-16 Zoltan Varga <vargaz@freemail.hu>
11650 * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
11651 a pointer to a struct to unmanaged code. Fixes #72625.
11653 2005-02-16 Martin Baulig <martin@ximian.com>
11655 * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
11657 2005-02-16 Zoltan Varga <vargaz@freemail.hu>
11659 * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
11661 2005-02-15 Zoltan Varga <vargaz@freemail.hu>
11663 * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
11665 * marshal.c (mono_ftnptr_to_delegate): If the delegate has the
11666 UnmanagedFunctionPointerAttribute, use it for determining calling convention
11669 * reflection.c (mono_custom_attrs_get_attr): New helper function.
11671 * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
11673 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
11675 * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
11676 changes to make the current context a field in MonoThread.
11678 2005-02-15 Zoltan Varga <vargaz@freemail.hu>
11680 * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
11683 * marshal.c (mono_marshal_emit_native_wrapper): New helper function
11684 extracted from mono_marshal_get_native_wrapper.
11686 * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
11687 to create wrappers around native functions.
11689 * marshal.c (mono_ftnptr_to_delegate): Add support for creating
11690 delegates for arbitrary function pointers. Fixes #71472.
11692 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
11694 * threads.c: cleaned up the code a little.
11696 2005-02-15 Martin Baulig <martin@ximian.com>
11698 * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
11701 * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
11702 allocate larger chunks if needed.
11704 2005-02-14 Zoltan Varga <vargaz@freemail.hu>
11706 * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
11709 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
11711 * domain.c: keep the domains in an array and ensure the domain ids
11712 are kept small, so they can be used as indexes to domain-specific data
11713 with a small memory overhead.
11715 2005-02-14 Zoltan Varga <vargaz@freemail.hu>
11717 * icall.c: Handle byref types in Type icalls. Fixes #72544.
11719 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
11721 * Makefile.am: remove libmetadata: we build just libmonoruntime now.
11723 2005-02-13 Zoltan Varga <vargaz@freemail.hu>
11725 * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
11727 * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
11730 * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
11732 2005-02-12 Ben Maurer <bmaurer@ximian.com>
11734 * domain-internals.h: add the hashtable here.
11736 * class-internals.h: Remove `info' from MonoMethod
11738 * domain.c: Add a new hashtable, jit_trampoline_hash
11740 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11742 * object.c: don't set the value of static fields
11745 2005-02-11 Martin Baulig <martin@ximian.com>
11747 * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
11748 (mono_debug_add_method): Silently ignore the method if it's too big.
11749 (mono_debug_add_type): Likewise.
11751 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
11753 * threads.c, appdomain.c: remove #ifdefs from the code.
11755 2005-02-10 Sebastien Pouliot <sebastien@ximian.com>
11757 * metadata-internals.h: Added flags to MonoAssembly to cache the most
11758 common security informations. This allows us to stay in unmanaged code
11759 when doing LinkDemand and it's special cases (except for the first
11760 time for initialization). The flags a very much used with --security.
11761 * reflection.c|h: Added code to get declarative security attributes
11762 for LinkDemand and InheritanceDemand. This required to refactor the
11763 existing code for Demand.
11764 * security-manager.c|h: Added new method fields for the special cases
11767 2005-02-10 Martin Baulig <martin@ximian.com>
11769 * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
11770 (ves_icall_MonoDebugger_GetTypeToken): New interncall.
11772 2005-02-10 Martin Baulig <martin@ximian.com>
11774 * mono-debug.c, mono-debug-debugger.c: Completely reworked the
11775 debugging code; this is almost a complete rewrite.
11777 * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
11779 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11781 * domain.c, object.h: expose mono_string_equal () and
11782 mono_string_hash ().
11783 * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
11784 it's implemented in managed code.
11786 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11788 * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
11789 lo leak objects between appdomains.
11791 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11793 * assembly.c: old compilers compilation fix from
11794 robertj@gmx.net (Robert Jordan).
11796 2005-02-09 Ben Maurer <bmaurer@ximian.com>
11798 * class-internals.h: Little reminder for the future.
11800 * debug-helpers.c: Fix up wrapper_type_names
11802 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11804 * image.c, metadata-internals.h: when loading an image from a file,
11805 mmap all of it and use the same codepaths as when using a
11806 in-memory image: the code is simpler and we use less memory
11807 (both writable and readonly).
11809 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11811 * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
11812 API to alloc runtime data structures that need to be tracked by the
11813 GC and contain pointers.
11814 * appdomain.c, threads.c, object.c, gc.c: use the above changes to
11815 make the code more readable and eventually use a different GC.
11817 2005-02-09 Zoltan Varga <vargaz@freemail.hu>
11819 * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
11822 2005-02-09 Lluis Sanchez Gual <lluis@novell.com>
11824 * object.c: In release_type_locks(), don't release the cctor lock
11825 if it has already been released. This fixes a crash in the
11828 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11830 * gc.c, marshal.c, icall.c: register a delegate for finalization
11831 only when the native function pointer has been allocated for it.
11833 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11835 * object.c: cleaned up some code, allocate objects that are
11836 pointer free with the atomic malloc variant. Allocate memory
11837 for static data from the mempool if it's pointer-free.
11838 Allocate the bounds array at the end of the array data, when needed.
11839 * object-internals.h, object.h: move a private function in a private
11841 * class.c: handle missing case in tracking references in fields.
11843 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11845 * class.c, class-internals.h: keep track if a type has
11846 reference fields in either the instance or static fields.
11848 2005-02-07 Lluis Sanchez Gual <lluis@novell.com>
11850 * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
11851 and renamed to MonoRuntimeInfo. Added fields to store the expected
11852 framework assembly version. Changed mono_get_framework_version and
11853 mono_get_runtime_version for a single mono_get_runtime_info method.
11855 * assembly.c: Added method to remap system assembly versions to the
11856 current executing runtime version. Removed old mapping code.
11857 Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
11859 * icall.c, reflection.c: Track api changes.
11861 2005-02-06 Miguel de Icaza <miguel@novell.com>
11863 * loader.c (method_from_memberref): Improve error reporting,
11864 produce the class name instead of the typeref/typedef index.
11866 2005-02-07 Zoltan Varga <vargaz@freemail.hu>
11868 * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
11870 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
11872 * loader.c (mono_lookup_pinvoke_call): Allow for combination of
11873 stdcall and charset name mangling. Reorganize the code and add
11874 some tracing stuff.
11876 2005-02-05 Ben Maurer <bmaurer@ximian.com>
11878 * monodiet.c: More iters!
11880 * marshal.c: Iter usage.
11882 * icall.c: Iter usage.
11884 * object.c: Use iters.
11886 * debug-helpers.c: More iters
11888 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
11890 * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
11893 2005-02-05 Ben Maurer <bmaurer@ximian.com>
11895 * mono-debug-debugger.c: use iters
11897 * class.c, class-internals.h: mono_class_setup_events is static
11900 * All callers: use iters
11902 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
11904 * class.c string-icalls.c marshal.c reflection.c: Applied patch from
11905 Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
11907 2005-02-04 Zoltan Varga <vargaz@freemail.hu>
11909 * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
11911 * marshal.h: Add prototypes for ldfld/stfld_remote.
11913 * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
11914 this is called during startup.
11916 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
11918 * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
11919 MonoThreadsSync struct private in monitor.c. Changed the way
11920 MonoThreadsSync is allocated so it's faster and there is no
11921 need to keep track of it with a finalizer and it uses less memory.
11922 This also finally allows us to allocate mono objects as ptrfree when
11923 there are no reference fields.
11925 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
11927 * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
11928 disappearing link to the GC interface and use them to simplify
11929 the gchandles code.
11931 2005-02-04 Zoltan Varga <vargaz@freemail.hu>
11933 * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
11934 stfld_remote which call mono_load/store_field_new. This allows methods
11935 calling ldfld/stfld wrappers to be AOTed.
11937 * console-io.c: Include sys/filio.h under solaris.
11939 * console-io.c: Include curses.h if needed correctly.
11941 2005-02-03 Zoltan Varga <vargaz@freemail.hu>
11943 * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
11944 method->klass as well.
11946 * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
11948 * class.c (mono_class_init): Switch on lazy initialization of
11951 * class.c (mono_class_get_finalizer): Handle the case when the
11952 finalizer is inherited.
11954 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11956 * console-io.c: <curses.h> is needed by term.h on solaris.
11958 2005-02-03 Ben Maurer <bmaurer@ximian.com>
11960 * icall.c, class-internals.h, monodiet.c, class.c: Remove
11961 mono_class_setup_properties where possible. Remove this ftn from
11962 the header file, and make it static.
11964 2005-02-03 Zoltan Varga <vargaz@freemail.hu>
11966 * loader.c: Add missing setup_... call.
11968 * class.c: Add missing setup_... calls.
11970 * class.c (mono_class_init): Switch on lazy initialization of
11971 the generic vtable.
11973 * class.c (mono_class_init): Fix generics broken by the recent changes.
11975 * monodiet.c (handle_type): Add missing setup_... calls.
11977 * class.c: Back out garbage in previous patch.
11979 * class.c: Add missing setup_... calls.
11981 * class.c (mono_class_get_method_from_name_flags): Avoid calling
11982 mono_class_setup_methods () if possible.
11984 * class-internals.h (MonoClass): Add 'has_cctor' flag.
11986 * class-internals.h (MonoCachedClassInfo): New structure.
11988 * class.c: Initialize properties and events fields of MonoClass lazily.
11990 * class.c: Add infrastructure for lazily initializing the methods and
11991 vtable fields of MonoClass. Not yet used.
11993 * class.c (mono_class_get_finalizer): New helper function.
11995 * class.c: Add infrastructure for loading some class related data from
11998 * object.c: Add infrastructure for initializing the vtable from data
12001 * gc.c (run_finalize): Use mono_class_get_finalizer ().
12003 * class.c loader.c object.c icall.c gc.c reflection.c: Call the
12004 appropriate initialization function before accessing parts of the
12005 MonoClass structure.
12007 * marshal.c: Fix warnings.
12009 * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
12011 * mono-debug-debugger.c (get_exception_message): Use
12012 mono_class_get_method_from_name_flags ().
12014 2005-02-02 Ben Maurer <bmaurer@ximian.com>
12016 * reflection.c, appdomain.c: Replace a few manual searches that
12017 Zoltan missed. (Paolo approved this part of my initial patch).
12019 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
12021 * profiler.c: disable recording statistical events at report time.
12023 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
12025 * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
12026 to byteswap arrays of enum values, too (bug #72080).
12028 2005-02-02 Zoltan Varga <vargaz@freemail.hu>
12030 * appdomain.c (set_domain_search_path): Allow this to be called if
12031 domain->setup is not yet set.
12033 * loader.c (mono_method_get_index): New helper function.
12035 * loader.c reflection.c: Use mono_method_get_index ().
12037 * class.c (mono_class_get_method_from_name_flags): New helper method.
12039 * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
12042 * class.c (mono_class_get_cctor): New helper method.
12044 * string-icalls.c object.c class.c marshal.c reflection.c: Use
12045 mono_class_get_method () to look up methods.
12047 2005-02-01 Miguel de Icaza <miguel@novell.com>
12049 * console-io.c: Fix the build, this should work on Windows.
12051 2005-01-31 Ben Maurer <bmaurer@ximian.com>
12053 * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
12054 be set to null to keep things valid
12056 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12058 * icall.c: added Console 2.0 icalls.
12059 * Makefile.am: added console-io.[ch]
12060 * console-io.[ch]: internal calls for Console 2.0 API.
12062 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
12064 * class.c: make sure we consider all the interfaces
12065 when calculating max_interface_id (bug found by
12066 Jeroen Frijters running ikvm).
12068 2005-01-31 Zoltan Varga <vargaz@freemail.hu>
12070 * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
12071 valuetype fields to null.
12073 * object.c (set_value): Ditto. Fixes #71669.
12075 2005-01-31 Martin Baulig <martin@ximian.com>
12077 * metadata.c (mono_metadata_has_generic_params): New public
12078 function; checks whether something is a generic method.
12080 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
12082 * appdomain.c: fix infinite recursion when adding assemblies.
12084 2005-01-30 Sebastien Pouliot <sebastien@ximian.com>
12086 * object.c: Fix small typo to return all items for Environment.
12087 GetCommandLineArgs.
12089 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
12091 * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
12092 reflection.c: more domain and assembly-unload related fixes
12093 and memory leaks plugs.
12095 2005-01-30 Zoltan Varga <vargaz@freemail.hu>
12097 * 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.
12099 2005-01-29 Ben Maurer <bmaurer@ximian.com>
12101 * loader.c (mono_method_signature): Make this method lazy
12102 (mono_get_method_from_token): Don't computate the signature here.
12104 Doing this saves quite a bit of memory. I got 90 kb on starting up
12105 monodoc. It should also save some disk reads on startup.
12107 * *: MonoMethod->signature might be NULL now. You *MUST* use
12108 mono_method_signature.
12110 2005-01-29 Zoltan Varga <vargaz@freemail.hu>
12112 * object.c (mono_runtime_get_main_args): Return an array from the
12113 current domain here. Fixes #71938.
12115 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
12117 * monitor.c: formatting changes to comply with the
12118 mono coding style and remove #ifdefs from the code.
12120 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
12122 * metadata.c, private.h: remove some unneeded data
12123 and use a more compact representation for table schemas.
12125 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
12127 * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
12128 to get a better distribution in hash tables.
12129 * *.c: use mono_aligned_addr_hash() where appropriate.
12130 * assembly.c: make var static.
12132 2005-01-28 Zoltan Varga <vargaz@freemail.hu>
12134 * domain-internals.h: Put MonoJitInfo on a diet.
12136 * domain.c: Fix a warning.
12138 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12140 * gc.c: rework the gc handles code to reuse handles
12143 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
12145 * domain.c: fixed long standing bug in mono_string_equal() which
12146 was brought to light with the ldstr changes.
12148 2005-01-26 Sebastien Pouliot <sebastien@ximian.com>
12150 * reflection.c: Remove warning by adding missing include for marshal.h
12152 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
12154 * domain.c, object.c: change the ldstr_table to hold
12155 MonoString* as keys: makes the runtime isinterned lookup
12156 faster and simplifies memory management.
12158 2005-01-25 Sebastien Pouliot <sebastien@ximian.com>
12160 * icall.c: Renamed GetEnvironmentVariable so internal* so it was
12161 possible to add imperative security checks before calling the icall.
12162 * reflection.c: Return security attributes on the original MonoMethod
12163 (and not the wrapped one). This fix permissions on icalls.
12165 2005-01-25 Dick Porter <dick@ximian.com>
12167 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
12168 the check for mktime() support actually test the mktime() return
12169 value. "Fixes" bug 71682, though the output is still different to
12172 2005-01-25 Martin Baulig <martin@ximian.com>
12174 * class.c (mono_class_is_assignable_from): Make this work for
12177 2005-01-24 Ben Maurer <bmaurer@ximian.com>
12179 * marshal.c (mono_string_utf8_to_builder)
12180 (mono_string_builder_to_utf16): We might not have ownership of the
12181 string. In thise case, we need to create a new buffer.
12183 * object-internals.h (mono_stringbuilder_capacity): sb->str might
12184 be null, in which case, use the default capacity.
12186 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
12188 * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
12189 GC events to the profiler.
12191 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
12193 * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
12194 if you don't want the GC to run.
12196 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
12198 * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
12199 start providing a GC API and keeping different implementations in
12201 * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
12203 2005-01-22 Ben Maurer <bmaurer@ximian.com>
12205 * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
12206 mmap rather than allocating a huge buffer.
12207 (mono_debug_close_mono_symbol_file): Free the buffer allocated
12210 2005-01-22 Sebastien Pouliot <sebastien@ximian.com>
12212 * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
12213 and CheckExecutionRights.
12214 * reflection.c|h: Keep the index of the declarative security to be
12215 used, instead of the pointer, when AOT compiler is used. Also add
12216 class initialization when requesting demands.
12217 * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
12218 CheckExecutionRights. Both properties are now FALSE by default, and
12219 unmodifiable, unless the --security option is used.
12221 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
12223 * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
12224 reflection.c: properly refcount images and assemblies, many leaks fixed.
12226 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12228 * threadpool.c: increase the timeout for threads in the thread pool to
12229 10s. Fixes bug #67159.
12231 2005-01-20 Bernie Solomon <bernard@ugsolutions.com>
12233 * class-internals.h: Sun's compiler insists on explicit
12234 signed on bit fields to handle then correctly.
12236 2005-01-19 Miguel de Icaza <miguel@ximian.com>
12238 * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
12239 Make the size of the array fit only the number of invalid path
12240 chars that we have.
12242 * class.c (_mono_class_get): Improve the error reporting when a
12243 class referenced is not found, to assist debugging.
12245 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
12247 * threads.c: fix off-by-one error.
12248 * domain.c: free data allocated in the domain.
12250 2005-01-19 Zoltan Varga <vargaz@freemail.hu>
12252 * reflection.c (mono_method_body_get_object): Fill out exception info
12255 * object-internals.h: Add MonoReflectionExceptionHandlingClause
12258 2005-01-19 Martin Baulig <martin@ximian.com>
12260 * loader.c (mono_get_method_constrained): Make this work again.
12262 2005-01-19 Zoltan Varga <vargaz@freemail.hu>
12264 * object-internals.h (_MonoReflectionMethodBody): Make local_index a
12265 guint16 to match the managed side.
12267 * reflection.c (mono_reflection_body_get_object): Fill out local
12270 * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
12273 * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
12274 'local_var_sig_token'.
12276 2005-01-18 Zoltan Varga <vargaz@freemail.hu>
12278 * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks
12281 * reflection.c (mono_method_body_get_object): Handle abstract and
12284 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
12286 * marshal.c, loader.c, class-internals.h, reflection.c:
12287 store the emthod data for a wrapper in an array instead of a list.
12289 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
12291 * marshal.c: change the code to allocate memory more
12292 conservatively for method wrappers.
12294 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
12296 * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
12297 fields from MonoClass to the marshal info structure where they belong.
12299 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12301 * class.c, object.c, class-internals.h, marshal.c: rearrange
12302 some fields and tweak some types to lower memory usage.
12304 2005-01-17 Zoltan Varga <vargaz@freemail.hu>
12306 * threads.c (signal_thread_state_change): Handle the case when the
12307 target thread is the current thread.
12309 * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
12311 * marshal.c: Rename emit_ptr_to_str_conv and its pair to
12312 emit_ptr_to_object_conv.
12314 * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
12315 marshalling. Fixes #71352.
12317 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
12319 * metadata.h, blob.h: move table enum to blob.h so it can be included
12321 * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
12322 cut the size of MonoImage/MonoDynamicImage.
12324 2005-01-16 Zoltan Varga <vargaz@freemail.hu>
12326 * profiler.c (mono_profiler_install_simple): Fix default arguments.
12328 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
12330 * reflection.c, reflection.h, icall.c: add a function to check
12331 if an attribute type is defined for a metadata object.
12333 2005-01-14 Lluis Sanchez Gual <lluis@novell.com>
12335 * object-internals.h: Added some needed fields from StringBuilder class.
12336 * marshal.c: Set the maxCapacity when creating a StringBuilder.
12338 2005-01-13 Zoltan Varga <vargaz@freemail.hu>
12340 * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
12341 threads before shutting down the runtime.
12343 * threads.c (mono_thread_suspend_all_other_threads): New helper function.
12345 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
12347 * object-internal.h, threads.c: implement stacksize and
12348 parameterized thread start functionality (requires
12349 matching corlib). Marked broken code for later removal.
12351 2005-01-12 Martin Baulig <martin@ximian.com>
12353 * class-internals.h (MonoGenericClass): Moved the `initialized'
12354 flag to MonoDynamicGenericClass, removed `init_pending'.
12355 (MonoGenericInst): Added `is_reference' flag.
12357 2005-01-12 Zoltan Varga <vargaz@freemail.hu>
12359 * reflection.c (mono_image_create_pefile): Only set the pe_offset
12360 inside the MSDOS header. Fixes #71201.
12362 * gc.c (mono_gc_cleanup): Handle the case when this is called from the
12364 (mono_domain_finalize): Ditto.
12366 2005-01-12 Martin Baulig <martin@ximian.com>
12368 * class.c (mono_get_shared_generic_class): Use the cache for
12369 non-dynamic generic classes.
12371 * class-internals.h (mono_class_create_generic_2): Removed
12372 function prototype, this function is now static inside class.c.
12374 * class.c (mono_class_create_generic_2): Made this static, only
12375 call it from mono_class_init() and mono_class_setup_parent().
12376 (collect_implemented_interfaces_aux): Call mono_class_init() on
12377 the interfaces we collect.
12378 (mono_class_setup_vtable): Call mono_class_init (class->parent).
12380 2005-01-11 Zoltan Varga <vargaz@freemail.hu>
12382 * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
12383 it a real thread handle.
12385 * domain-internals.h: Move exvar_offset from MonoJitInfo to
12386 MonoJitExceptionInfo, since each catch clause needs its own variable.
12388 2005-01-11 Dick Porter <dick@ximian.com>
12390 * image.c (mono_pe_file_open): New variant on mono_image_open()
12391 that does not set up the CLI metadata; used for FileVersionInfo so
12392 it can get the data for windows binaries too.
12394 * process.c (process_read_string_block): Don't read off the end of
12395 the StringTable block.
12397 These both fix bug 70766.
12399 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
12401 * gc.c: set some fields to NULL at GC cleanup time.
12402 * threads.c: if we quit the main thread, call exit ().
12404 2005-01-11 Zoltan Varga <vargaz@freemail.hu>
12406 * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
12408 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
12410 * threads.h, threads.c, object.c: added accessor and settor for
12411 main_thread. Handle it specially when exiting from it: wait
12412 for other foreground threads to exit.
12414 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
12416 * process.c, verify.c: remove some bloat.
12418 2005-01-09 Zoltan Varga <vargaz@freemail.hu>
12420 * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
12421 the calling convention to cdecl under win32.
12423 2005-01-08 Ben Maurer <bmaurer@ximian.com>
12425 * object.c (mono_object_get_size): New function to get the size of
12426 an object instance.
12428 * profiler.c (simple_allocation): Use above.
12430 2005-01-08 Sebastien Pouliot <sebastien@ximian.com>
12432 * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
12433 ves_icall_System_AppDomain_getRootDomain (as it's not required to
12434 get an appdomain by it's id and we can't assume the root's id is 0).
12435 * domain-internals.h: Change the function prototype to match.
12436 * icall.c: Change the icall table for AppDomain.
12438 2005-01-08 Miguel de Icaza <miguel@ximian.com>
12440 * locales.c (string_invariant_compare_char): Only compute
12441 GUnicodeTypes in the case where we need them. Test for ordinality
12442 first and return if so.
12447 * FIXME: here we must use the information from c1type and c2type
12448 * to find out the proper collation, even on the InvariantCulture, the
12449 * sorting is not done by computing the unicode values, but their
12450 * actual sort order.
12453 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
12455 * loader.c: for P/Invoke methods, allow the "Internal" shared
12456 library name to refer to the calling process symbol namespace.
12458 2005-01-07 Sebastien Pouliot <sebastien@ximian.com>
12460 * Makefile.am: Add the security manager to the build.
12461 * security-manager.c|h: New. Initialization of the security manager.
12463 2005-01-07 Dick Porter <dick@ximian.com>
12466 * monitor.c: Update thread state during Monitor and WaitHandle
12467 waits. Fixes bug 71031.
12469 2005-01-07 Zoltan Varga <vargaz@freemail.hu>
12471 * reflection.c (property_encode_signature): Correctly handle when the
12472 property has no methods.
12474 2005-01-06 Zoltan Varga <vargaz@freemail.hu>
12476 * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
12478 * reflection.c (reflection_methodbuilder_from_method_builder): Copy
12479 fields from mb, not rmb. Fixes #71017.
12481 * marshal.c (emit_ptr_to_str_conv): Add support for
12482 ByValTStr -> string conversion. Fixes #71015.
12484 * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
12486 * mempool.c (mono_mempool_contains_addr): New helper function.
12488 2005-01-05 Zoltan Varga <vargaz@freemail.hu>
12490 * metadata.c (mono_metadata_compute_size): Fix size calculation of
12491 HasSematics encoded fields.
12493 * metadata.c (mono_type_to_unmanaged): Improve error message for
12494 invalid string marshalling.
12496 * metadata.c: Fix warnings.
12498 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
12500 * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
12503 2005-01-05 Zoltan Varga <vargaz@freemail.hu>
12505 * domain.c object.c domain-internals.h: Revert part of r38077 since the
12506 keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
12509 2005-01-03 Zoltan Varga <vargaz@freemail.hu>
12511 * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
12512 so methods containing these can be AOTed.
12514 2005-01-03 Martin Baulig <martin@ximian.com>
12516 * loader.c (find_method): Removed the hack for generic instances.
12517 (method_from_memberref): If our parent is a generic instance, pass
12518 its generic type definition to find_method() and then inflate the
12520 (mono_get_method_constrained): Pass the generic type definition to
12521 find_method() and inflate the method later.
12523 * class-internals.h (MonoStats): Added `generic_class_count'.
12525 * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
12526 Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
12528 * reflection.c (mono_custom_attrs_from_params): Don't ignore
12529 generic type definitions.
12531 2004-12-30 Zoltan Varga <vargaz@freemail.hu>
12533 * loader.c icall.c: Fix warnings.
12535 2004-12-29 Zoltan Varga <vargaz@freemail.hu>
12537 * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
12538 blittable types. Fixes #70864.
12540 2004-12-29 Martin Baulig <martin@ximian.com>
12543 (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
12545 * reflection.c (mono_method_get_object): Create a
12546 "System.Reflection.MonoGenericMethod" for inflated methods; don't
12547 call mono_get_inflated_method().
12549 * class-internals.h (MonoStats): Added `inflated_method_count_2'.
12551 2004-12-27 Martin Baulig <martin@ximian.com>
12553 * class-internals.h (MonoMethod): Added `is_inflated' flag.
12554 (MonoMethodInflated): Added `inflated' field.
12556 * class.c (mono_class_inflate_generic_method): Don't really
12557 inflate the method here; just set the `is_inflated' flag in the
12559 (mono_class_get_inflated_method): Actually inflate the method here
12560 if it's not already inflated; we use the MonoMethodInflated's new
12561 `inflated' field as a cache.
12563 2004-12-26 Martin Baulig <martin@ximian.com>
12566 (inflate_generic_class): Moved some code out of inflate_generic_type().
12567 (mono_class_inflate_generic_method): If we're already inflated,
12568 inflate the context and use the declaring method; ie. make sure
12569 the declaring method of an inflated method is always the generic
12571 (mono_class_create_from_typedef): Create
12572 `class->generic_container->context->gclass'.
12574 2004-12-24 Ben Maurer <bmaurer@ximian.com>
12576 * metadata-internals.h, marshal.c, reflection.c: More
12577 MonoGHashTable->GHashTable.
12579 * domain-internals.h, class.c: Change MonoGHashTable's into
12580 GHashTables for some cases where no gc stuff is used
12582 All users: update apis
12584 2004-12-23 Ben Maurer <bmaurer@ximian.com>
12586 * metadata.c (builtin_types): Make this `const'. Makes this get
12587 put into the shareable section.
12588 (mono_metadata_init): Casts to make gcc happy.
12590 2004-12-22 Zoltan Varga <vargaz@freemail.hu>
12592 * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
12594 2004-12-21 Sebastien Pouliot <sebastien@ximian.com>
12596 * icall.c: Added an internal call to retrieve the position and length
12597 of assembly-level declarative security attributes (RequestMinimum,
12598 RequestOptional and RequestRefuse). This is used by the Assembly class
12599 to re-create the corresponding permission sets.
12601 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
12603 * marshal.c: fix the stelemref wrapper to be type correct
12606 2004-12-20 Ben Maurer <bmaurer@ximian.com>
12608 * icall.c (ves_icall_System_Object_GetHashCode): There was no need
12609 to do key & 0x7fffffff. Hashtable already does this. It just
12610 results in longer code.
12612 2004-12-20 Sebastien Pouliot <sebastien@ximian.com>
12614 * appdomain.c: Bump corlib version.
12615 * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
12616 * domain.c: Add RuntimeSecurityFrame to mono_defaults.
12617 * reflection.c|h: Add functions to get declarative security infos
12618 (blob position and length) for assemblies, classes and methods.
12620 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
12622 * reflection.c: sort the constant table (bug #70693).
12624 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
12626 * object-internals.h, threads.c, domain.c: add accessors for
12627 the MonoThread and MonoDomain tls keys.
12629 2004-12-18 Martin Baulig <martin@ximian.com>
12631 * class.c (inflate_generic_type): If we're inflating a generic
12632 instance, set `ngclass->context->container = context->container';
12633 ie. the container we inflated into.
12635 * metadata.c (mono_metadata_parse_generic_param): Reflect above
12636 inflate_generic_type() changes.
12638 2004-12-17 Martin Baulig <martin@ximian.com>
12640 * class-internals.h
12641 (MonoGenericClass): Replaced `MonoType *generic_type' with
12642 `MonoClass *generic_class'. Removed `dynamic_info'; if
12643 `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
12644 (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
12646 2004-12-16 Zoltan Varga <vargaz@freemail.hu>
12648 * exception.c (mono_exception_from_token): New helper function.
12650 2004-12-15 Zoltan Varga <vargaz@freemail.hu>
12652 * assembly.c (mono_assembly_load_with_partial_name): Call
12653 mono_assembly_loaded before invoking the preload hooks. Fixes
12656 * object-internals.h (MonoThread): Change culture_info and
12657 ui_culture_info into an array.
12659 * threads.c: Cache culture info objects from more than one appdomain.
12661 * threads.c threads-types.h icall.c: Add icalls for manipulating the
12662 current UI culture.
12664 2004-12-14 Zoltan Varga <vargaz@freemail.hu>
12666 * threads.h threads.c appdomain.c: Clear the culture_info field of
12667 all threads during unloading if they point to an object in the dying
12670 2004-12-13 Ben Maurer <bmaurer@ximian.com>
12672 * culture-info.h (TextInfoEntry): New struct
12673 * object-internals.h: sync with managed
12674 * locales.c: fill the `text_info_data' field
12675 * culture-info-tables.h: update
12677 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
12679 * Makefile.am, monodiet.c: add monodiet, an IL code garbage
12682 2004-12-12 Ben Maurer <bmaurer@ximian.com>
12684 * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
12685 (ves_icall_ModuleBuilder_getMethodToken): Ditto
12687 2004-12-12 Martin Baulig <martin@ximian.com>
12689 * mono-debug-debugger.c (write_type): If we're an enum and the
12690 builtin types have already been initialized, call mono_class_init().
12692 2004-12-11 Martin Baulig <martin@ximian.com>
12694 * metadata.c (mono_metadata_load_generic_params): Added
12695 `MonoGenericContainer *parent_container' argument; automatically
12696 compute `container->is_method'; pass the correct owner to
12699 * reflection.c (compare_genericparam): Sort the GenericParam table
12700 according to increasing owners.
12702 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
12704 * profiler.c: allow disabling the default profiler.
12706 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
12708 * decimal.c, icall.c: allow disabling System.Decimal support.
12710 2004-12-09 Marek Safar <marek.safar@seznam.cz>
12712 * reflection.c: Add support for null attribute arguments.
12714 2004-12-09 Martin Baulig <martin@ximian.com>
12716 * metadata.h, loader.h: Use `idx' instead of `index' in parameter
12717 names to get rid of compiler warnings.
12719 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
12721 * marshal.c (mono_marshal_get_struct_to_ptr): Call
12722 mono_marshal_load_type_info (). Fixes #69625.
12723 (mono_marshal_get_ptr_to_struct): Likewise.
12725 2004-12-08 Martin Baulig <martin@ximian.com>
12727 * mono-debug.h: Bumped version number to 47.
12729 * mono-debug-debugger.c
12730 (mono_debugger_event_handler, mono_debugger_event): Take two
12731 guint64 arguments insteed of a gpointer and a guint32.
12733 2004-12-08 Martin Baulig <martin@ximian.com>
12735 * debug-mono-symfile.h
12736 (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
12737 `address' to `native_offset'.
12739 2004-12-08 Martin Baulig <martin@ximian.com>
12741 * class.c (mono_class_create_from_typespec): Only inflate if we
12742 either have `context->gclass' or `context->gmethod'.
12744 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
12746 * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
12748 * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
12750 * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
12752 * reflection.c (mono_assembly_get_object): Remove the workaround put
12753 in for the release.
12755 * appdomain.c: Use the corlib_internal field from MonoAssembly.
12757 * appdomain.c: Bump corlib version.
12759 * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
12760 be visible in other appdomains.
12762 2004-12-07 Ben Maurer <bmaurer@ximian.com>
12764 * threads.c: Interlocked inc and dec for longs were messed up,
12765 use a KISS based impl for this. Fixes 70234
12767 2004-12-07 Zoltan Varga <vargaz@freemail.hu>
12769 * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
12771 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12773 * icall.c: fix to follow policy not to allow struct
12774 arguments in icalls.
12776 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12778 * process.c: make the patch that handles spaces in file paths work
12779 on mono/windows too.
12781 2004-12-06 Martin Baulig <martin@ximian.com>
12783 * class.c (mono_class_create_generic): Call
12784 mono_class_setup_supertypes() if we're dynamic.
12785 (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
12787 2004-12-06 Zoltan Varga <vargaz@freemail.hu>
12789 * object-internals.h: Add new fields to MonoThread.
12791 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12793 * icall.c threads-types.h threads.c: Add new icalls.
12795 * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
12797 * object-internals.h (MonoReflectionAssembly): Sync object layout with
12800 * appdomain.c: Bump corlib version.
12802 * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
12803 internal assemblies. Fixes #69181.
12805 2004-12-05 Martin Baulig <martin@ximian.com>
12807 * class.c (mono_class_inflate_generic_signature): Make this a
12808 no-op if `context' is NULL or we don't have any type parameters;
12809 also copy `sentinelpos'.
12811 2004-12-04 Zoltan Varga <vargaz@freemail.hu>
12813 * image.c: Add unbox_wrapper_cache.
12815 * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
12817 * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
12818 function generator.
12820 * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
12823 * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
12825 2004-12-04 Martin Baulig <martin@ximian.com>
12827 * loader.c (mono_method_get_signature_full): New public function;
12828 like mono_method_get_signature(), but with an additional
12829 `MonoGenericContext *' argument.
12831 * class.c (mono_class_inflate_generic_signature): Formerly known
12832 as inflate_generic_signature(); make this public.
12834 2004-12-04 Martin Baulig <martin@ximian.com>
12837 (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
12838 instead of a `MonoGenericContainer *'.
12839 (mono_metadata_parse_array_full): Likewise.
12840 (mono_metadata_parse_signature_full): Likewise.
12841 (mono_metadata_parse_method_signature_full): Likewise.
12842 (mono_metadata_parse_generic_inst): Likewise.
12843 (mono_metadata_parse_generic_param): Likewise.
12844 (mono_metadata_parse_mh_full): Likewise.
12845 (mono_type_create_from_typespec_full): Likewise.
12847 2004-12-03 Martin Baulig <martin@ximian.com>
12849 * class-internals.h (MonoGenericContainer): Replaced the
12850 `MonoGenericContext * pointer with a `MonoGenericContext'
12851 structure and made it the first element.
12853 2004-12-03 Martin Baulig <martin@ximian.com>
12856 (inflate_generic_type): Set the `context->container' when creating
12857 a new MonoGenericContext.
12858 (mono_class_inflate_generic_method): Likewise.
12859 (mono_class_create_from_typespec): Just use `context->container'
12860 to get the container.
12862 * loader.c (method_from_methodspec): Set `context->parent' from
12863 `context->container' - and if that's a method container, use its
12864 parent. Also set the `context->container' when creating a new
12865 MonoGenericContext.
12866 (mono_get_method_from_token): Use just `context->container' to get
12869 * metadata.c (do_mono_metadata_parse_generic_class): Also set
12870 `gclass->context->container'.
12872 * reflection.c (do_mono_reflection_bind_generic_parameters): Set
12873 the `context->container' when creating a new MonoGenericContext.
12875 2004-12-03 Zoltan Varga <vargaz@freemail.hu>
12877 * reflection.c (compare_genericparam): Sort params with identical
12878 owner by their number. Fixes gen-111 on sparc.
12880 2004-12-02 Zoltan Varga <vargaz@freemail.hu>
12882 * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
12883 around the domain changes.
12885 * appdomain.c (mono_domain_unload): Handle the case when the thread
12886 calling Unload is itself being aborted during unloading. Fixes #70022.
12888 * appdomain.h: Add prototype for mono_install_runtime_cleanup.
12890 * marshal.c (emit_thread_interrupt_checkpoint_call): Call
12891 checkpoint_func as an icall so it gets a wrapper.
12892 (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
12893 in the cross-appdomain wrappers too.
12895 * threads.c (mono_thread_has_appdomain_ref): Make this public.
12897 * assembly.c (mono_assembly_open_from_bundle): Fix warning.
12899 * reflection.c: Fix some memory leaks.
12901 2004-12-02 Martin Baulig <martin@ximian.com>
12903 * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
12905 * metadata.c (generic_class_cache): New static hashtable.
12906 (mono_metadata_lookup_generic_class): New public method.
12908 2004-12-02 Martin Baulig <martin@ximian.com>
12910 * class.c (mono_class_create_from_typedef): Call
12911 mono_class_setup_parent() and mono_class_create_mono_type() before
12912 parsing the interfaces.
12914 2004-12-02 Martin Baulig <martin@ximian.com>
12916 * metadata.c (generic_inst_cache): New static hashtable.
12917 (mono_metadata_lookup_generic_inst): New public function.
12918 (mono_metadata_inflate_generic_inst): New public function.
12919 (mono_metadata_parse_generic_inst): New public function.
12920 (do_mono_metadata_parse_generic_class): Use the new
12921 mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
12922 since this'll also use the cache.
12924 * reflection.c (mono_reflection_bind_generic_method_parameters):
12925 Use mono_metadata_lookup_generic_inst() to use the new cache.
12927 * class.c (inflate_mono_type): Use
12928 mono_metadata_inflate_generic_inst() to inflate a generic
12929 instance; this'll also use the new cache.
12931 * loader.c (method_from_methodspec): Use
12932 mono_metadata_parse_generic_inst() and
12933 mono_metadata_inflate_generic_inst() rather than parsing it
12934 manually, so we can use the new cache.
12936 2004-12-02 Zoltan Varga <vargaz@freemail.hu>
12938 * threads.c (wait_for_tids): Do not incorrectly free threads when
12939 the wait times out.
12941 2004-12-01 Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
12943 * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
12944 iter->args based on whether parameters are passed in registers (i.e.
12945 MONO_ARCH_REGPARMS is defined)
12947 2004-12-01 Zoltan Varga <vargaz@freemail.hu>
12949 * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
12950 the exception message. Fixes #70070.
12951 (method_from_methodspec): Fix warnings.
12953 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12955 * process.c: (complete_path) return the path quoted
12957 2004-12-01 Martin Baulig <martin@ximian.com>
12959 * class-internals.h (MonoGenericInst): New structure.
12960 (MonoGenericClass): Replaced `type_argc', `type_argv' and
12961 `is_open' with `MonoGenericInst *inst'.
12962 (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
12963 `is_open' with `MonoGenericInst *inst'.
12965 2004-11-30 Martin Baulig <martin@ximian.com>
12967 Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
12969 * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
12970 to `generic_class_cache'.
12973 (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
12974 (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
12975 (mono_generic_inst_is_valuetype): Renamed to
12976 mono_generic_class_is_valuetype().
12978 * class-internals.h
12979 (MonoGenericInst): Renamed to MonoGenericClass.
12980 (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
12981 (MonoClass): Renamed `generic_inst' to `generic_class'.
12982 (MonoGenericContext): Renamed `ginst' to `gclass'.
12984 * object-internals.h
12985 (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
12987 * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
12988 mono_reflection_generic_class_initialize().
12990 * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
12991 now known as "System.Reflection.MonoGenericClass".
12992 (monogenericinst_icalls): Renamed to monogenericclass_icalls.
12994 2004-11-29 Sebastien Pouliot <sebastien@ximian.com>
12996 * class-internals.h: Added a flag field to MonoClass to cache the
12997 declarative security attributes actions associated with the class.
12998 * domain-internals.h: Added booleans to MonoJitInfo to cache the
12999 (class or method level) stack modifiers (Assert, Deny and PermitOnly)
13000 applicable to the JITted method.
13001 * reflection.c|h: Added functions to extract (as flags) which security
13002 actions are available (declaratively) for a method, class or assembly.
13003 * metadata.c|h: Added functions to search the declarative security
13004 table in the metadata.
13006 2004-11-29 Ben Maurer <bmaurer@ximian.com>
13008 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
13009 EXPORTEDTYPES are already in the class name cache, so there is no
13010 need to add extra code here to look at them. Just removes a bit of
13013 (ves_icall_System_Environment_get_TickCount): No need for #if
13014 WINDOWS. We already have the code in io-layer.
13016 2004-11-28 Martin Baulig <martin@ximian.com>
13019 (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
13022 2004-11-27 Miguel de Icaza <miguel@ximian.com>
13024 * assembly.c (do_mono_assembly_open): Instead of having a
13025 conditional WITH_BUNDLE, incorporate support for bundles here, by
13026 having a global `bundles' variable holding a pointer to the actual
13029 (mono_register_bundled_assemblies): New API call used by the
13032 See mkbundle.1 for details.
13034 2004-11-27 Martin Baulig <martin@ximian.com>
13036 * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
13037 the vtable for generic methods.
13039 2004-11-26 Martin Baulig <martin@ximian.com>
13042 (mono_metadata_generic_method_hash): New public function.
13043 (mono_metadata_generic_method_equal): Likewise.
13045 * class-internals.h
13046 (MonoGenericContainer): Added `GHashTable *method_hash'.
13048 * reflection.c (ReflectionMethodBuilder): Added
13049 `MonoGenericContainer *generic_container'.
13050 (reflection_methodbuilder_to_mono_method): Don't create a new
13051 MonoGenericContainer each time we're called.
13052 (mono_reflection_bind_generic_method_parameters): Use
13053 `container->method_hash' to cache the results so we don't create a
13054 different method if we're called several times with the same
13057 * loader.c (method_from_methodspec): Use the new
13058 `container->method_hash' here, too.
13060 2004-11-26 Martin Baulig <martin@ximian.com>
13062 * class.c (inflate_generic_signature): Correctly compute
13063 `res->has_type_parameters'.
13064 (mono_class_vtable): Use the `has_type_parameters' flag to
13065 determine whether we're a generic method.
13067 * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
13069 2004-11-25 Zoltan Varga <vargaz@freemail.hu>
13071 * object.c (mono_runtime_run_main): Fix a small memory leak.
13073 2004-11-25 Martin Baulig <martin@ximian.com>
13075 * class.c (set_generic_param_owner): Fixed the loop.
13077 2004-11-25 Martin Baulig <martin@ximian.com>
13079 * object.c (mono_class_vtable): Don't create any JIT wrappers for
13082 2004-11-24 Zoltan Varga <vargaz@freemail.hu>
13084 * reflection.c: Allow all kinds of whitespace, not just ' ' in type
13085 names. Fixes #69787.
13087 2004-11-24 Martin Baulig <martin@ximian.com>
13089 * class.c (mono_class_create_generic_2): If we don't have a
13090 `ginst->parent', inflate `gklass->parent' to get our parent.
13092 2004-11-24 Martin Baulig <martin@ximian.com>
13094 * reflection.c (compare_genericparam): Correctly sort the
13095 GenericParam table; fixes #69779.
13097 2004-11-23 Ben Maurer <bmaurer@ximian.com>
13099 * reflection.c: When writing a PE file, don't create a huge
13100 buffer in memory. Just write the arrays we have to the file.
13101 This reduces memory usage.
13103 * metadata-internals.h: MonoDynamicStream pefile is no longer used
13106 2004-11-17 Martin Baulig <martin@ximian.com>
13108 * class.c (mono_class_init): Don't setup `class->parent' for
13109 dynamic instances; moved this to mono_class_generic_2().
13110 (mono_class_create_generic): Also set `klass->inited' for dynamic
13112 (mono_class_create_generic_2): Don't do anything for dynamic
13113 generic instances. Set `klass->parent' here and also call
13114 mono_class_setup_parent() here.
13116 * reflection.c (do_mono_reflection_bind_generic_parameters): Added
13117 `MonoType *parent' argument; set `ginst->parent' before calling
13118 mono_class_create_generic_2(), so we set the correct parent.
13120 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
13122 * reflection.c: allow getting attributes from ModuleBuilder
13125 2004-11-17 Martin Baulig <martin@ximian.com>
13127 * class.c (mono_class_create_from_typedef): If a type parameter is
13128 inherited from an outer class, set its owner to that class.
13130 2004-11-17 Atsushi Enomoto <atsushi@ximian.com>
13132 * reflection.c: (mono_image_create_pefile): Don't use NULL argument
13133 for (int*) written size. This fixes bug #69592.
13135 2004-11-15 Sebastien Pouliot <sebastien@ximian.com>
13137 * icall.c: Added IsAuthenticodePresnet internal call.
13138 * image.c|h: New function that check a MonoImage for an Authenticode
13139 signature in the certificate PE data directory.
13140 * security.c|h: New internal call to ask the runtime if an
13141 Authenticode signature seems referenced in the PE header.
13143 2004-11-15 Zoltan Varga <vargaz@freemail.hu>
13145 * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
13147 * reflection.c (mono_image_create_pefile): Free the assembly streams
13148 after writing out the assembly file.
13150 * object.c (mono_runtime_run_main): Fix small memory leak.
13152 * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
13153 property access modifiers. Fixes #69389.
13155 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
13157 * domain.c, object.c, object-internals.h, domain-internals.h,
13158 object.h, marshal.c: keep dynamic code info per domain.
13160 2004-11-15 Martin Baulig <martin@ximian.com>
13162 * class.c (mono_type_get_name_recurse): Put type arguments in
13163 `[',`]' instead of in `<','>'. Thanks to Atsushi for the patch,
13166 2004-11-15 Martin Baulig <martin@ximian.com>
13168 * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
13169 (mono_class_setup_vtable): When computing `the_cname' for a
13170 generic instance, don't include the namespace since we'd otherwise
13173 2004-11-15 Martin Baulig <martin@ximian.com>
13175 * class.c (mono_class_create_generic): Changed return type to void.
13176 (mono_class_create_generic_2): New public function; setup
13177 `class->method', `class->field' and `class->interfaces' here
13178 instead of in mono_class_init().
13180 * class.h (mono_class_create_generic): Moved to class-internals.h.
13182 2004-11-14 Ben Maurer <bmaurer@ximian.com>
13184 * reflection.c (mono_image_create_pefile): take a file HANDLE.
13185 rather than writing to memory, write to this file. Right now,
13186 we are just writting into a buffer, and copying that. However
13187 we can avoid the buffer later.
13189 (mono_dynamic_stream_reset): new function
13191 * icall.c, object-internals.h: update for the above.
13193 2004-11-13 Ben Maurer <bmaurer@ximian.com>
13195 * reflection.c: Remove *_ATOMIC macros. We really shouldn't
13196 have been using gc'd memory. First it is slower, unlikely
13197 the comment in the source code said, secondly, it increases
13198 our footprint to do it in the gc.
13200 * icall.c (WriteToFile): rename of getDataChunk. Rewrite
13201 the method so that it does not have to copy to managed code.
13203 2004-11-12 Zoltan Varga <vargaz@freemail.hu>
13205 * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
13207 2004-11-12 Martin Baulig <martin@localhost>
13209 * reflection.c (mono_image_create_token): Allow generic method
13210 definitions here, since they may appear in an `.override'; see
13211 gen-98/gen-99 for an example.
13213 2004-11-11 Zoltan Varga <vargaz@freemail.hu>
13215 * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
13218 * marshal.c (mono_string_to_ansibstr): Make g_error messages more
13221 2004-11-11 Martin Baulig <martin@ximian.com>
13223 * class.c (mono_class_setup_vtable): In an explicit interface
13224 implementation, the method name now includes the arity.
13226 2004-11-10 Zoltan Varga <vargaz@freemail.hu>
13228 * object.c (mono_array_full_copy): Fix warning.
13230 2004-11-10 Lluis Sanchez Gual <lluis@novell.com>
13232 * appdomain.c: Removed look_for_method_by_name(). Use the new method
13233 mono_class_get_method_from_name() instead.
13235 * class-internals.h: Added two new types of wrappers.
13236 Added MonoRemotingTarget enum. Added new trampoline function type, which
13237 takes an additional MonoRemotingTarget value as parameter, so it is
13238 possible to request a trampoline for a specific target.
13240 * class.c: Added new mono_class_get_method_from_name() method.
13242 * class.h: In MonoRemoteClass, we can have now to vtables, one for
13243 general remoting sinks and one specific for cross domain calls.
13245 * debug-helpers.c: Added new wrapper names.
13247 * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
13250 * image.c: Porperly delete value objects form the remoting invoke hashtable.
13252 * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
13253 with several other methods (mono_marshal_get_xappdomain_dispatch,
13254 mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
13255 and others) can generate a fast remoting wrapper for cross domain calls.
13256 More information can be found in docs/remoting.
13257 Other changes: Removed mono_find_method_by_name, and used
13258 mono_class_get_method_from_name instead.
13259 Remoting wrappers are now stored in a MonoRemotingMethods struct, which
13260 is stored in the remoting invoke hashtable.
13262 * marshal.h: published the new method for getting the xdomain wrapper,
13263 and also added a method for getting the adequate wrapper for a given
13266 * object-internals.h, object.c: Added a couple of methods for capying and
13268 Modified mono_install_remoting_trampoline, which takes the new remoting
13269 trampoline that has a remoting target as parameter.
13270 mono_class_proxy_vtable now also takes a remoting target as parameter, and
13271 will return the most suitable vtable for the target.
13272 Added mono_remote_class_vtable, which returns the vtable of a remote class
13273 (which can be the normal remoting vtable or the xdomain vtable).
13275 * threads.c: the xdomain invoke and dispatch wrappers must also be
13276 protected against interruptions.
13278 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13280 * icall.c: use memmove in BlockCopyInternal when the source and
13281 destination arrays are the same.
13283 2004-11-09 Martin Baulig <martin@ximian.com>
13285 * class-internals.h (MonoGenericContainer): Removed `method' and
13286 `signature', replaced them with `is_method' and `is_signature'
13287 flags. Added `context'.
13289 * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
13290 instead of a `MonoGenericContainer *'.
13292 * metadata.c (mono_metadata_generic_param_equal): Removed the hack
13293 for dynamic type parameters.
13294 (mono_metadata_load_generic_params): Setup `container->context'.
13296 * reflection.c (mono_reflection_setup_generic_class): Setup
13297 `tb->generic_container->context'.
13298 (do_mono_reflection_bind_generic_parameters): Use
13299 mono_class_inflate_generic_type() to correctly inflate types,
13300 rather than using our own hack just for MONO_TYPE_VAR.
13302 2004-11-09 Martin Baulig <martin@ximian.com>
13304 * class.c (mono_class_inflate_generic_method): Small fix; don't
13308 (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
13309 (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
13310 (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
13311 (ves_icall_Type_BindGenericParameters): Likewise.
13312 (ves_icall_Type_get_IsGenericInstance): Likewise.
13313 (ves_icall_Type_GetGenericParameterPosition): Likewise.
13314 (ves_icall_MonoType_get_HasGenericArguments): Likewise.
13315 (ves_icall_MonoType_get_IsGenericParameter): Likewise.
13316 (ves_icall_MonoType_get_DeclaringMethod): Likewise.
13318 2004-11-09 Zoltan Varga <vargaz@freemail.hu>
13320 * assembly.c (mono_assembly_names_equal): Reenable the comparison of
13321 assembly versions and public key tokens. Fixes #69113.
13323 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
13325 * metadata.c: fix bug introduced with the type cache changes
13328 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
13330 * metadata.h, metadata.c, domain-internals.h, marshal.c: include
13331 the MonoClass pointer instead of the token in exception clauses.
13332 * reflection.c: updates for the above and make the code not depend
13333 on the structure of MonoExceptionClause.
13335 2004-11-08 Zoltan Varga <vargaz@freemail.hu>
13337 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13338 Add support for dynamic assemblies. Fixes #69114.
13340 * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
13342 2004-11-07 Ben Maurer <bmaurer@ximian.com>
13344 * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
13345 since most only those methods use it. the code member of
13346 MonoMethodPInvoke was dead, so that can be removed too. Also,
13347 remove inline_count (again, not used), and move slot so that it
13348 can share bits with some other flags. This saves 8 bytes in the
13349 structure and gives us about 50 kb back for mcs helloworld.cs
13351 * *.[ch]: Do naming changes for the above.
13353 * loader.c (mono_method_get_header): Lazily init the header
13355 (mono_get_method_from_token): don't init the header here
13356 (mono_free_method): the header may never be allocated
13358 Overall, this saves 150 kb of unmanaged allocations
13359 for mcs helloworld.cs. That accounts for 10% of the unmanaged
13362 * loader.c, loader.h (mono_method_get_header): new accessor.
13364 * *.[ch]: use the above method. Prepares us to lazily load
13367 * *.[ch]: Clean up all the pesky warnings. gcc now only gives
13368 three warnings, which are actual bugs (see 69206).
13370 * class-internals.h (MonoMethod): Remove remoting_tramp. It is
13371 unused. Saves a cool 4 bytes / method.
13373 2004-11-06 Ben Maurer <bmaurer@ximian.com>
13375 * metadata.c (builtin_types): Add types for System.Object here.
13376 (mono_metadata_parse_type_full): Cache MonoType*'s that are
13377 for a class or valuetype from klass->this_arg or klass->byval_arg.
13379 On mcs for a hello world, this gets us down from 21836 MonoType's
13382 (mono_metadata_free_type): Account for the above change.
13384 2004-11-06 Zoltan Varga <vargaz@freemail.hu>
13386 * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an
13387 exception instead of asserting if name is null.
13388 (ves_icall_System_AppDomain_GetData): Ditto.
13390 2004-11-05 Zoltan Varga <vargaz@freemail.hu>
13392 (ves_icall_get_enum_info): Avoid crash when called on a non-finished
13395 * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly):
13396 Return NULL when the domain does not have entry_assembly set.
13398 * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal):
13399 Add a 'resource_modules' argument.
13400 (ves_icall_type_GetTypeCode): Fix typecode of byref types.
13402 * reflection.c (mono_reflection_create_runtime_class): Move setting
13403 of wastypebuilder here, so mono_get_type_object () returns a MonoType
13406 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
13407 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
13408 Throw an ArgumentNullException if 'ptr' is null.
13410 * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
13411 assemblies here. Fixes #69020.
13413 2004-11-05 Geoff Norton <gnorton@customerdna.com>
13415 * reflection.c (build_compressed_metadata): Fix the previous patch for
13416 big endian systems. GUINT32_FROM_LE isn't needed on strlen and was overwriting
13419 2004-11-04 Zoltan Varga <vargaz@freemail.hu>
13421 * assembly.c (mono_assembly_names_equal): Allow a match if one of
13422 the cultures is false. Fixes #69090.
13424 * reflection.c (build_compressed_metadata): Fix invalid memory read
13425 detected by valgrind.
13427 * reflection.c (mono_reflection_get_type): Avoid triggering a
13428 TypeResolve multiple times for the same type. Fixes #65577.
13430 2004-11-04 Ben Maurer <bmaurer@ximian.com>
13432 * marshal.c: Avoid using ldftn to call managed functions. It is
13433 much slower than just a call.
13435 * reflection.c (mono_module_get_object): free the basename we
13436 allocate here from glib.
13438 * reflection.c (ensure_runtime_vtable): make sure to free
13439 overrides. Also, we were allocating an array of MonoMethod not an
13440 array of MonoMethod*.
13442 * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
13444 * image.c (mono_image_close): free image->guid here.
13446 2004-11-02 Zoltan Varga <vargaz@freemail.hu>
13448 * reflection.c: Fix some spec conformance issues with the PE file
13449 structures so mcs compiled apps run on the Net 2.0 beta.
13451 2004-11-01 Zoltan Varga <vargaz@freemail.hu>
13453 * string-icalls.c (ves_icall_System_String_ctor_encoding):
13454 Implement this. Fixes #67264.
13456 * debug-helpers.h debug-helpers.c marshal.c: Move
13457 mono_find_method_by_name to debug-helpers.c.
13459 2004-10-31 Zoltan Varga <vargaz@freemail.hu>
13461 * object.c (mono_release_type_locks): type_initialization_hash is
13464 * reflection.c object.c object-internals.h: Fix warnings.
13466 * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
13467 without accessors. Fixes #61561.
13469 * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
13470 application base from the root domain if not set. Fixes #65641.
13471 (mono_runtime_init): Fix warning.
13473 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13475 * appdomain.c: call mono_thread_pool_init.
13476 * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
13477 of worker threads based on the number of CPUs and the environment
13478 variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
13479 for non-windows (windows) systems.
13481 2004-10-27 Chris Toshok <toshok@ximian.com>
13483 * mono-debug-debugger.c (write_class): don't call mono_class_init
13484 here, as even with the check for (!klass->init_pending), we get
13485 into a situation where we're hitting cycles in class
13486 initialization. Fixes #68816.
13488 2004-10-25 Zoltan Varga <vargaz@freemail.hu>
13490 * image.c: Avoid overwriting values in the loaded_images_hash when an
13491 assembly is loaded multiple times. Fixes #61152.
13493 * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
13494 so multiple satellite assemblies for the same name can be loaded.
13497 * mono_domain_assembly_preload: Actually return the loaded assembly,
13500 * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
13501 (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
13503 * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
13504 pending finalizers are not invoked after the appdomain has been
13505 unloaded. Fixes #67862.
13507 2004-10-22 Martin Baulig <martin@ximian.com>
13509 * mono-debug-debugger.c
13510 (mono_debugger_runtime_invoke): Don't box valuetypes.
13512 2004-10-22 Chris Toshok <toshok@ximian.com>
13514 * mono-debug-debugger.c (do_write_class): handle .cctors too, and
13515 don't hide private methods.
13517 2004-10-22 Sebastien Pouliot <sebastien@ximian.com>
13519 * icall.c: Allows the runtime to "share" (when known) the public key
13520 token of an assembly. This avoid the need to recalculate the token
13521 (from the public key) in managed code.
13523 2004-10-21 Chris Toshok <toshok@ximian.com>
13525 * debug-helpers.c (append_class_name): argh, revert last patch.
13527 2004-10-21 Chris Toshok <toshok@ximian.com>
13529 * debug-helpers.c (append_class_name): use '+' as the delimiter,
13530 not '/', so that it matches what the debugger uses to look up
13533 2004-10-21 Martin Baulig <martin@ximian.com>
13535 * mono-debug-debugger.c (mono_debugger_throw_exception): New
13536 public method; this is called each time an exception is thrown and
13537 allows the debugger to use exception catch points.
13539 2004-10-21 Martin Baulig <martin@ximian.com>
13541 * mono-debug-debugger.c (mono_debugger_handle_exception): Write
13542 the stack pointer and the exception object in some struct and pass
13543 that to the debugger.
13545 2004-10-21 Chris Toshok <toshok@ximian.com>
13547 * mono-debug-debugger.c (do_write_class): add instance/static
13548 event support. We don't expose "raise" or "other" yet.
13549 (event_is_static): new method.
13551 2004-10-20 Bernie Solomon <bernard@ugsolutions.com>
13553 * mono-debug-debugger.c
13554 (mono_debugger_handle_exception): Remove
13555 bogus return value for fussy compilers.
13557 2004-10-20 Martin Baulig <martin@ximian.com>
13559 * mono-debug-debugger.c
13560 (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
13561 (mono_debugger_handled_exception): Likewise.
13563 2004-10-20 Martin Baulig <martin@ximian.com>
13565 * mono-debug-debugger.h (MonoDebuggerEvent): Added
13566 MONO_DEBUGGER_EVENT_EXCEPTION.
13568 * mono-debug-debugger.c (mono_debugger_handle_exception): New
13569 public function to send the debugger a notification for an
13570 exception and inform it about a catch/finally clause.
13572 2004-10-19 Zoltan Varga <vargaz@freemail.hu>
13574 * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
13575 Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
13578 * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
13580 2004-10-18 Zoltan Varga <vargaz@freemail.hu>
13582 * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
13583 marshalled as [In,Out]. Fixes #58325.
13585 2004-10-14 Zoltan Varga <vargaz@freemail.hu>
13587 * reflection.c (mono_method_body_get_object): Implement some fields.
13589 2004-10-12 Martin Baulig <martin@ximian.com>
13591 * reflection.c (mono_reflection_bind_generic_parameters): Small
13592 fix, correctly retrieve our parent from a generic instance.
13594 2004-10-12 Martin Baulig <martin@ximian.com>
13596 * metadata.c (mono_metadata_generic_param_equal): We always have
13600 (mono_class_from_generic_parameter): We need to have an owner.
13601 (my_mono_class_from_generic_parameter): Likewise.
13603 * reflection.c (mono_reflection_setup_generic_class): Renamed to
13604 mono_reflection_create_generic_class() and added a new
13605 mono_reflection_setup_generic_class().
13606 (mono_reflection_initialize_generic_param): If we're a nested
13607 generic type and inherited from the containing class, set our
13608 owner to the outer class.
13610 2004-10-11 Zoltan Varga <vargaz@freemail.hu>
13612 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
13614 * reflection.c (mono_method_body_get_object): New function to create
13615 a MethodBody object.
13617 * object-internals.h object.h: Add MonoReflectionMethodBody structure.
13619 2004-10-11 Martin Baulig <martin@ximian.com>
13621 * metadata.c (_mono_metadata_type_equal): Renamed to
13622 do_mono_metadata_type_equal() and made static.
13624 2004-10-11 Martin Baulig <martin@ximian.com>
13626 * appdomain.c: Bump corlib version number to 28.
13628 2004-10-10 Martin Baulig <martin@ximian.com>
13630 * class-internals.h
13631 (MonoGenericInst): Added `MonoGenericContainer *container'.
13632 (MonoGenericMethod): Likewise.
13633 (MonoGenericContext): Likewise.
13634 (MonoGenericParam): Added `MonoGenericContainer *owner'.
13637 (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
13638 (do_mono_metadata_parse_generic_inst): Likewise.
13639 (mono_metadata_parse_type_full): New public method. This is the actual
13640 mono_metadata_parse_type() implementation - with an additional
13641 `MonoGenericContainer *' argument.
13642 (mono_metadata_parse_array_full): Likewise.
13643 (mono_metadata_parse_signature_full): Likewise.
13644 (mono_metadata_parse_method_signature_full): Likewise.
13645 (mono_metadata_parse_mh_full): Likewise.
13646 (mono_type_create_from_typespec): Likewise.
13647 (mono_metadata_interfaces_from_typedef_full): New public method;
13648 this is similar to the other _full() methods, but we take a
13649 `MonoGenericContext *' since we have to pass it to mono_class_get_full().
13650 (mono_metadata_parse_generic_param): Take an additional
13651 `MonoGenericContainer *' argument and lookup the MonoGenericParam
13652 from that container.
13653 (mono_metadata_generic_param_equal): New static method to compare
13654 two type parameters.
13655 (_mono_metadata_type_equal): New static method; takes an
13656 additional `gboolean signature_only' argument - if true, we don't
13657 compare the owners of generic parameters.
13658 (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
13659 with a TRUE argument - do a signature-only comparision.
13661 * loader.c: Use the new _full() methods and pass the
13662 MonoGenericContainer to them.
13664 * object-internals.h (MonoReflectionTypeBuilder): Added
13665 `MonoGenericContainer *generic_container' field.
13666 (MonoReflectionMethodBuilder): Likewise.
13668 2004-10-08 Zoltan Varga <vargaz@freemail.hu>
13670 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
13671 case initial images of dynamic assemblies.
13673 * reflection.c (mono_image_basic_init): Set 'initial_image' field.
13675 * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
13677 * reflection.c (mono_reflection_event_builder_get_event_info): Fix
13678 length of event->other array.
13679 (typebuilder_setup_events): Ditto.
13681 * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
13682 'assembly_by_name' and add an 'assemblies' list.
13684 * assembly.h assembly.c: Add a new search hook for determining whenever
13685 an assembly is already loaded. Use this instead of searching in the
13686 loaded_assemblies list.
13688 * domain.c appdomain.c: Implement the new search hook so loaded
13689 assemblies are now scoped by appdomain. Fixes #67727.
13691 2004-10-07 Zoltan Varga <vargaz@freemail.hu>
13693 * threads.c (mono_thread_attach): Initialize synch_lock field so
13694 mono_thread_detach works again.
13696 * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
13697 'lib' too. Fixes #63130.
13699 2004-10-06 Jackson Harper <jackson@ximian.com>
13701 * culture-info-tables.h: regenerated.
13703 2004-10-06 Zoltan Varga <vargaz@freemail.hu>
13705 * icall.c (ves_icall_Type_GetInterfaces): Include interfaces
13706 implemented by other interfaces in the result. Fixes #65764.
13708 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13709 Handle unloadable modules without crashing.
13711 * image.c (load_modules): Revert the previous patch since modules must
13712 have a fixed index inside the array.
13714 * image.c (load_modules): Don't include native modules in the modules
13717 2004-10-05 Zoltan Varga <vargaz@freemail.hu>
13719 * reflection.h: Add param_defaults field.
13721 * reflection.c: Add support for parameter defaults in dynamic methods.
13724 * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
13725 an empty string when a type has no namespace. Fixes #64230.
13727 2004-10-04 Sebastien Pouliot <sebastien@ximian.com>
13729 * tabledefs.h: Added "internal" security actions to support non-CAS
13730 permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance.
13731 Note: they do not seems to be used anymore in 2.0 (new metadata format)
13733 2004-10-04 Zoltan Varga <vargaz@freemail.hu>
13735 * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
13736 constructor of abstract class. Fixes #61689.
13738 2004-10-04 Martin Baulig <martin@ximian.com>
13740 * class-internals.h (MonoGenericContainer): New type.
13741 (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
13742 `MonoGenericContainer *generic_container'.
13743 (MonoClass): Replaced `gen_params' and `num_gen_params' with
13744 `MonoGenericContainer *generic_container'.
13746 * metadata.c (mono_metadata_load_generic_params): Return a
13747 `MonoGenericContainer *' instead of a `MonoGenericParam *';
13748 removed the `num' argument.
13750 2004-10-03 Zoltan Varga <vargaz@freemail.hu>
13752 * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
13753 for dynamic images.
13755 * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
13758 * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
13760 * reflection.c: Save pe_kind and machine values into the generated
13763 * appdomain.c: Bump corlib version number.
13765 * object-internals.h: Reorganize layout of LocalBuilder.
13767 * class-internals.h class.c (mono_class_get_implemented_interfaces):
13768 New helper function.
13770 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
13771 created MonoType for dynamic types. Fixes #66180.
13773 2004-10-02 Ben Maurer <bmaurer@ximian.com>
13775 * threadpool.c: the ares hashtable needs a critical section around it.
13776 this prevents some nasty segfaults
13778 2004-10-02 Massimiliano Mantione <massi@ximian.com>
13780 * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
13781 on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
13784 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
13786 * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
13788 2004-09-30 Lluis Sanchez Gual <lluis@novell.com>
13790 * image.c: Always canonicalize image file names, to avoid loading
13791 the same assembly twice when referenced using a relative path.
13793 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
13795 * marshal.h marshal.c icall.c: Fix bugs in previous patch.
13797 * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
13799 * marshal.c: Fix warnings.
13801 2004-09-29 Geoff Norton <gnorton@customerdna.com>
13803 * marshal.c (mono_ftnptr_to_delegate): This method was improperly
13804 attempting to marshal the delegate_trampoline as the method_addr.
13805 This patch has a static hashtable of marshalled delegates so that
13806 we can map delegate_trampoline addresses back to delegates. This
13807 allows a delegate passed to managed code to be passed back into native
13810 2004-09-28 Zoltan Varga <vargaz@freemail.hu>
13812 * icall.c: Add GetFunctionPointerForDelegateInternal icall.
13814 * reflection.c (method_encode_code): Align method headers properly.
13817 2004-09-28 Lluis Sanchez Gual <lluis@novell.com>
13819 * marshal.c: In the runtime invoke wrapper, reset the abort
13820 exception if it is cached. This avoids the automatic rethrowal of
13821 the exception after the catch of the wrapper. Also check for pending
13822 interruptions before calling the managed method. This is done using
13823 the new method emit_thread_force_interrupt_checkpoint, since the
13824 normal checkpoint method is ignored when running the invoke wrapper.
13825 * object.c: If the abort exception is rethrown, set the abort_exc
13826 field of the thread, so it will be rethrown aftere every catch.
13827 * threadpool.c: Only run an interruption checkpoint if what has been
13828 requested is a stop of the thread (aborts will be ignored).
13829 * threads.c: By default, a thread will now never be interrumped while
13830 running the runtime invoke wrapper (this ensures that runtime_invoke
13831 will always return to the caller if an exception pointer is provided).
13832 There is a new special method mono_thread_force_interruption_checkpoint()
13833 to force an interruption checkpoint even if running a protected
13834 wrapper, which is used by the same runtime invoke wrapper to do a check
13837 2004-09-28 Lluis Sanchez Gual <lluis@novell.com>
13839 * object.c, object-internals.h: Implemented mono_release_type_locks,
13840 which releases the cctor locks held by a thread.
13841 * threads.c, threads.h: In thread_cleanup, release cctor locks held
13842 by a thread. Added mono_thread_exit() method to be used to safely stop
13845 2004-09-28 Raja R Harinath <rharinath@novell.com>
13847 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13848 Move null check before dereference. Avoid indexing beyond the end
13849 of the 'modules' array.
13851 2004-09-28 Raja R Harinath <rharinath@novell.com>
13853 * metadata-internals.h (MonoImage): Add module_count field.
13854 * image.c (load_modules): Set image->module_count.
13855 (mono_image_load_file_for_image): Use image->module_count.
13856 * reflection.c (mono_image_load_module): Append to image->modules array
13857 of dynamic assembly.
13858 (mono_module_get_object): Fix loop to actually increment index.
13859 Use image->module_count.
13860 * assembly.c (mono_assembly_load_references): Use image->module_count.
13861 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13864 2004-09-28 Zoltan Varga <vargaz@freemail.hu>
13866 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
13867 Avoid assert on generic types.
13869 2004-09-26 Zoltan Varga <vargaz@freemail.hu>
13871 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
13873 * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
13875 * reflection.c (mono_reflection_marshal_from_marshal_spec): New
13876 function to convert a MarshalSpec structure to its managed counterpart.
13878 * reflection.c: Fix warnings.
13880 * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
13883 * icall.c (mono_create_icall_signature): Fix build.
13885 2004-09-25 Zoltan Varga <vargaz@freemail.hu>
13887 * icall.c: Add MakePointType icall.
13889 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
13892 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13894 * threadpool.c: reuse allocated slots in the queue.
13896 2004-09-24 Zoltan Varga <vargaz@freemail.hu>
13898 * object-internals.h (MonoReflectionDllImportAttribute): New structure.
13900 * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
13902 * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
13905 * tabledefs.h: Add constants for pinvoke attributes BestFit and
13906 ThrowOnUnmappableChar.
13908 * icall.c (ves_icall_Type_GetPacking): New icall.
13910 2004-09-24 Martin Baulig <martin@ximian.com>
13912 * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
13914 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13917 (mono_domain_set): allow setting a domain that is being unloaded.
13918 (mono_domain_unload): invoke the DomainUnload callbacks in the domain
13921 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
13923 * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
13924 the GetCustomAttributes icall.
13926 2004-09-23 Martin Baulig <martin@ximian.com>
13928 * object-internals.h (MonoReflectionGenericParam): Replaced
13929 'has_ctor_constraint', `has_reference_type' and `has_value_type'
13930 with `guint32 attrs'.
13932 2004-09-23 Martin Baulig <martin@ximian.com>
13934 * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
13936 2004-09-23 Martin Baulig <martin@ximian.com>
13938 * object-internals.h (GenericParameterAttributes): New enum.
13940 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
13942 * object-internals.h (MonoEventInfo): Add 'other_methods' field.
13944 * class.c (init_events): Fill out event->other field.
13946 * class.c: Fix warnings.
13948 * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
13950 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
13952 * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
13953 walk which doesn't supply the IL offset.
13955 2004-09-22 Martin Baulig <martin@ximian.com>
13957 * reflection.c (mono_reflection_setup_internal_class): If we're
13958 System.ValueType, System.Object or System.Enum, set
13959 `klass->instance_size' and create the vtable.
13960 (mono_reflection_create_internal_class): If we're an enum type,
13961 get the base class from our current corlib.
13963 2004-09-22 Zoltan Varga <vargaz@freemail.hu>
13965 * reflection.h (MonoResolveTokenError): New type.
13967 * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
13970 * icall.c: Add an 'error' argument to the ResolveToken icalls.
13972 2004-09-22 Lluis Sanchez Gual <lluis@novell.com>
13974 * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
13975 Support also calling constructors, but only for already allocated objects.
13977 2004-09-17 Geoff Norton <gnorton@customerdna.com>
13979 * reflection.c (type_get_qualified_name): If the klass is null
13980 return the typename to avoid a NullRefEx.
13981 (encode_cattr_value): Get the qualified name of the boxed type,
13982 not the underlying enumtype. Fixes #62984.
13984 2004-09-21 Zoltan Varga <vargaz@freemail.hu>
13986 * marshal.c: Fix problems with previous checkin.
13988 2004-09-21 <vargaz@freemail.hu>
13990 * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
13991 existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
13993 * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
13995 2004-09-21 Geoff Norton <gnorton@customerdna.com>
13997 * icall.c (ves_icall_MonoType_GetElementType): GetElementType
13998 should only return a type for pointers, arrays, and passbyref types.
14001 2004-09-21 Martin Baulig <martin@ximian.com>
14003 * domain.c (mono_debugger_check_runtime_version): New public
14006 * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.
14008 2004-09-20 Sebastien Pouliot <sebastien@ximian.com>
14010 * reflection.c: Added missing sort to the declarative security
14011 attributes table. MS implementation stops seeing the attributes if the
14012 token number regress in the table (as shown by ildasm and permview).
14014 2004-09-20 Zoltan Varga <vargaz@freemail.hu>
14016 * object-internals.h (MonoReflectionModule): Add 'token' field.
14018 * reflection.c (mono_reflection_get_token): Add support for Module
14020 (mono_module_get_object): Set 'token' field.
14021 (mono_module_file_get_object): Set 'token' field.
14023 * icall.c: Add new Assembly and Module icalls.
14025 * appdomain.c: Bump corlib version.
14027 2004-09-19 Zoltan Varga <vargaz@freemail.hu>
14029 * loader.h loader.c class.h class.c: Add helper functions for obtaining
14030 tokens of metadata objects.
14032 * reflection.h reflection.c (mono_reflection_get_token): New function
14033 to obtain the token of a metadata object.
14035 * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
14037 2004-09-17 Zoltan Varga <vargaz@freemail.hu>
14039 * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
14041 * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
14043 2004-09-16 Sebastien Pouliot <sebastien@ximian.com>
14045 * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
14046 * object-internals.h: Added 3 MonoArray* members to MonoReflection
14047 AssemblyBuilder to access the permissions set in the class lib.
14048 * reflection.c: Added security attributes encoding step in
14049 mono_image_build_metadata.
14050 * tabledefs.h: Added new security actions defined in 2.0:
14051 LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
14053 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
14055 * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
14058 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
14060 * locales.c: nullify the ICU_collator member of CompareInfo when it is
14061 finalized. There where random SIGSEVs at program termination, when
14062 an object being finalized was trying to do a string comparison and
14063 the current culture was already finalized.
14065 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14067 * threads.c: call thread_cleanup before finishing the thread if we get
14070 2004-09-16 Zoltan Varga <vargaz@freemail.hu>
14072 * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
14073 assemblies from the parent. Fixes #65665.
14075 2004-09-15 Zoltan Varga <vargaz@freemail.hu>
14077 * metadata.c (mono_metadata_parse_type): Fix parsing of custom
14080 2004-09-14 Bernie Solomon <bernard@ugsolutions.com>
14082 * reflection.h: add prototype for mono_get_dbnull_object
14083 * reflection.c: add prototypes for get_default_param_value_blobs
14084 and mono_get_object_from_blob for fussier compilers
14086 2004-09-14 Lluis Sanchez Gual <lluis@novell.com>
14088 * object.c: Added a "done" flag to TypeInitializationLock. This avoids
14089 false deadlock checks in class initialization.
14091 2004-09-13 Zoltan Varga <vargaz@freemail.hu>
14093 * image.c (mono_image_addref): Fix comment.
14095 * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
14098 2004-09-12 Jambunathan K <kjambunathan@novell.com>
14100 * reflection.c (mono_param_get_objects): Modified to return
14101 ParameterInfo.DefaultValue object.
14103 (get_default_param_value_blobs):
14104 (mono_get_object_from_blob):
14105 (mono_get_dbnull_object): New helper routines.
14107 * object.c (mono_get_constant_value_from_blob): New helper routine
14108 carved out from get_default_field_value ()
14110 * object-internals.h (mono_get_constant_value_from_blob): Added
14111 function declaration.
14113 2004-09-11 Zoltan Varga <vargaz@freemail.hu>
14115 * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load
14116 referenced assemblies. Fixes #62135.
14118 * exception.h exception.c (mono_get_exception_file_not_found2): New
14121 2004-09-10 Zoltan Varga <vargaz@freemail.hu>
14123 * class.h class.c: Add mono_type_get_underlying_type ().
14125 2004-09-09 Geoff Norton <gnorton@customerndna.com>
14127 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
14128 Fix GetTypes() to support dynamically created assemblies.
14130 2004-09-09 Zoltan Varga <vargaz@freemail.hu>
14132 * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
14134 * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
14137 * reflection.h reflection.c loader.c: Allow dynamic construction of
14138 pinvoke methods. Fixes #65571.
14140 * reflection.c (mono_reflection_get_type): Revert previous change since
14141 it causes regressions.
14143 2004-09-08 Martin Baulig <martin@ximian.com>
14145 * class.c (class_compute_field_layout): Don't call
14146 mono_class_layout_fields() for open generic instances.
14148 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
14149 * threads.c appdomain.c: fix typo in GC macro
14151 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14153 * threads.c: don't call mono_thread_detach() in start_wrapper(),
14154 avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
14156 2004-09-08 Zoltan Varga <vargaz@freemail.hu>
14158 * image.c (mono_image_close): Applied patch from
14159 vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
14160 assembly is loaded multiple times from data.
14162 * image.c (mono_image_open): Fix warning.
14164 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
14166 * reflection.h reflection.c icall.c: Only call TypeResolve handlers
14167 once. Fixes #58334.
14169 * reflection.c (mono_reflection_create_runtime_class): Initialize
14170 klass->nested_classes. Fixes #61224.
14172 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
14174 * threads.c: sched_yield() on exit, to allow threads to quit.
14176 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
14178 * object.c (mono_unhandled_exception): Remove leftover debug code.
14180 2004-09-07 Atsushi Enomoto <atsushi@ximian.com>
14182 * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
14184 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
14186 * marshal.c (emit_marshal_array): Really null terminate string arrays.
14188 * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
14190 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
14192 * marshal.c (emit_marshal_array): Null terminate string arrays.
14194 * marshal.c (raise_auto_layout_exception): Fix warning.
14196 * reflection.c (mono_param_get_objects): Initialize the default value
14197 with DBNull.Value, not null. Fixes #62123.
14199 2004-09-01 Miguel de Icaza <miguel@ximian.com>
14201 * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
14202 throw an exception with a cute explanation.
14204 2004-09-06 Dick Porter <dick@ximian.com>
14206 * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
14207 Close the new process's thread handle, as we don't use it. The
14208 handle stays around forever otherwise.
14210 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
14212 * object.c (arith_overflow): Fix warning.
14214 * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
14215 calling conventions in method refs. Fixes #65352.
14217 * reflection.c: Fix warnings.
14219 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
14221 * icall.c: Add a new icall for Array.Clear
14223 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
14225 * object.c: When allocating an array, we have to throw
14226 an overflow exception if any of the lengths are < 0.
14228 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
14230 * marshal.h marshal.c: Free unmanaged memory allocated by managed code
14231 properly. Also move implementation of string array marshalling to
14232 managed code. Fixes #42316.
14234 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14236 * assembly.c: provide more information when loading an assembly fails.
14238 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14240 * filewatcher.c: don't expect the development fam package to be
14243 2004-09-03 Zoltan Varga <vargaz@freemail.hu>
14245 * marshal.c: Make a copy of the signature cookie since it will be
14246 freed by the caller.
14248 * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
14250 * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
14252 * metadata.c (mono_metadata_free_marshal_spec): New function to free
14255 * marshal.c: More refactoring.
14257 * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
14260 2004-09-03 Lluis Sanchez Gual <lluis@novell.com>
14262 * object.c: In mono_message_invoke, fill the output parameter array after
14263 calling the managed method (it was done before the call). This fixes
14266 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
14268 * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
14271 2004-09-02 Martin Baulig <martin@ximian.com>
14273 * class.c (mono_class_instance_size): Don't allow generic type
14274 definitions or open generic instances.
14275 (mono_class_array_element_size): If we're a value type, call
14276 mono_class_instance_size() on the original class.
14278 * metadata.c (mono_type_size, mono_type_stack_size): Correctly
14279 handle generic instances.
14281 * mono-debug-debugger.c (write_type): Handle generic instances
14284 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
14286 * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
14287 the allocation request fails. Fixes #65089.
14289 * object.c (mono_runtime_free_method): Do not call mono_free_method.
14291 * object.c (mono_runtime_free_method): New function to free a dynamic
14294 * marshal.c (mono_delegate_free_ftnptr): New function to free the
14295 delegate trampoline.
14297 * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
14298 with hasthis as dynamic,
14300 * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
14302 * domain.c (mono_jit_info_table_remove): New function to remove an
14303 entry from the jit info table.
14305 * class-internals.h (MonoMethod): Add 'dynamic' field.
14307 * loader.c: Fix warnings.
14309 2004-09-01 Martin Baulig <martin@ximian.com>
14311 * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
14312 instead of mono_debugger_lock() because the latter one is a no-op
14313 unless running in the debugger.
14315 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
14317 * class.c (class_compute_field_layout): Classes with auto-layout or
14318 reference fields are not blittable.
14320 2004-09-01 Dick Porter <dick@ximian.com>
14322 * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
14323 mono_image_get_filename() to get the assembly location.
14326 * metadata.h: Fix compile warnings
14328 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
14330 * class.c (class_compute_field_layout): System.Object is blittable.
14332 * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
14333 as in/out. Fixes #59909.
14335 2004-09-01 Martin Baulig <martin@ximian.com>
14337 * metadata.h (MONO_TYPE_ISREFERENCE): Call
14338 mono_metadata_generic_inst_is_valuetype() if we're a generic
14339 instance to check whether our underlying type is a reference type.
14341 2004-09-01 Martin Baulig <martin@ximian.com>
14343 * metadata.c (mono_type_size): If we're a generic instance, call
14344 mono_class_value_size() for value types.
14346 2004-08-31 Zoltan Varga <vargaz@freemail.hu>
14348 * marshal.c: Implement more custom marshalling functionality. Fixes
14351 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
14353 * mono-debug.c, debug-mono-symfile.c: add some locking love.
14355 2004-08-30 Zoltan Varga <vargaz@freemail.hu>
14357 * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
14359 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
14361 * icall.c: Fix some warnings.
14363 * threads.c (abort_appdomain_thread): Fix unref errors.
14364 (mono_thread_current): Fix THREAD_DEBUG define.
14366 2004-08-29 Zoltan Varga <vargaz@freemail.hu>
14368 * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
14370 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
14372 2004-08-28 Zoltan Varga <vargaz@freemail.hu>
14374 * marshal.c (mono_marshal_get_native_wrapper): Add support for byref
14377 2004-08-28 Martin Baulig <martin@ximian.com>
14380 (mono_metadata_generic_inst_is_valuetype): New public function.
14382 * metadata.h (MONO_TYPE_ISSTRUCT): Call
14383 mono_metadata_generic_inst_is_valuetype() if we're a generic
14384 instance to check whether our underlying type is a valuetype.
14386 2004-08-26 Zoltan Varga <vargaz@freemail.hu>
14388 * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
14391 2004-08-25 Martin Baulig <martin@ximian.com>
14393 * loader.c (mono_get_method_from_token): Abstract methods can also
14394 be generic and thus have type parameters.
14396 * metadata-internals.h
14397 (MonoDynamicImage): Added `GPtrArray *gen_params'.
14399 * reflection.c (mono_image_get_generic_param_info): Don't create a
14400 metadata row, just add an entry to the `gen_params' array.
14401 (build_compressed_metadata): Sort the `gen_params' array and then
14402 actually create the metadata.
14404 2004-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14406 * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
14408 2004-08-25 Zoltan Varga <vargaz@freemail.hu>
14410 * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
14412 2004-08-24 Martin Baulig <martin@ximian.com>
14414 * class.cs (mono_class_is_subclass_of): Like an interface, a
14415 generic instance also derives from System.Object.
14417 2004-08-23 Zoltan Varga <vargaz@freemail.hu>
14419 * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
14420 custom modifiers to be in any order. Fixes #61990.
14422 2004-08-20 Zoltan Varga <vargaz@freemail.hu>
14424 * object.c: Register mono_object_new_fast icall.
14426 * object.c (mono_class_get_allocation_ftn): Return to calling
14427 mono_object_new_fast, since it seems faster to compute the object
14428 size in unmanaged code than passing it as a parameter.
14430 * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
14432 * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
14433 this function with Boehm as the oom handler, so we don't have to check
14434 the result of GC_malloc.
14436 * object.c: Remove checks for oom.
14438 * object.h object.c (mono_class_get_allocation_ftn): New function to
14439 return the icall which can be used to allocate an instance of a given
14442 * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
14444 * class-internals.h: Add 'enabled' field.
14446 2004-08-19 Zoltan Varga <vargaz@freemail.hu>
14448 * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
14450 2004-08-18 Jambunathan K <kjambunathan@novell.com>
14451 * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
14454 2004-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
14456 * appdomain.c: use the Tls function for appdomain too,
14457 at Zoltan's request. Actually return in mono_context_get
14459 * appdomain.c, profiler.c, threads.c: use __thread
14461 2004-08-18 Zoltan Varga <vargaz@freemail.hu>
14463 * appdomain.c threads.c: Call GC_CreateThread on windows.
14465 * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
14466 multiple libraries since this don't work on windows.
14468 2004-08-18 Martin Baulig <martin@ximian.com>
14470 * class-internals.h
14471 (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
14474 * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
14475 MonoMethodNormal since we also need it for abstract and interface
14479 (build_compressed_metadata): Sort the GenericParam table.
14480 (mono_image_create_token): Added `gboolean create_methodspec'
14481 argument; this is false when generating a MethodImpl token.
14482 (reflection_methodbuilder_to_mono_method): Abstract and interface
14483 methods may also have generic parameters.
14485 2004-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
14487 * appdomain.c: thread local alloc
14489 2004-08-17 Martin Baulig <martin@ximian.com>
14491 * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
14494 (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
14497 * class.c (mono_type_get_full_name): New public function.
14498 (mono_type_get_name): Don't include the type arguments.
14500 2004-08-16 Zoltan Varga <vargaz@freemail.hu>
14502 * Makefile.am: Build static versions of libmetadata and libmonoruntime
14503 for inclusion into the mono executable.
14505 2004-08-16 Martin Baulig <martin@ximian.com>
14507 * metadata.c (do_mono_metadata_parse_generic_inst): Store the
14508 MonoGenericInst, not the MonoType in the `generic_inst_cache'.
14510 2004-08-14 Martin Baulig <martin@ximian.com>
14512 * class.c (dup_type): Also copy the `byref' field.
14514 2004-08-15 Zoltan Varga <vargaz@freemail.hu>
14516 * reflection.c (create_dynamic_mono_image): Revert the last change
14517 since it breaks bootstrap.
14519 2004-08-14 Zoltan Varga <vargaz@freemail.hu>
14521 * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
14523 * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
14524 not free them with g_free.
14526 2004-08-11 Martin Baulig <martin@ximian.com>
14528 * reflection.c (mono_reflection_setup_internal_class): Also call
14529 mono_class_setup_mono_type() if we already have a `tb->type.type'.
14531 2004-08-09 Sebastien Pouliot <sebastien@ximian.com>
14533 * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when
14534 called during default (first) AppDomain creation. Keep track of
14535 Evidence when loading assemblies.
14537 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
14539 * opcodes.c, opcodes.h: reduce runtime relocations.
14541 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
14543 * culture-info.h, locales.c: fixes and chages to sue the new
14544 optimized format of the locale data.
14545 * culture-info-tables.h: regenerated.
14547 2004-08-06 Geoff Norton <gnorton@customerdna.com>
14549 * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
14551 2004-08-05 Sebastien Pouliot <sebastien@ximian.com>
14553 * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
14554 ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
14555 * domain-internals.h: icall declaration.
14556 * icall.c: icall registration.
14557 * object-internals.h: New fields in MonoAssembly for CAS.
14559 2004-08-05 Duncan Mak <duncan@ximian.com>
14561 * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
14564 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
14566 * reflection.c: fix to deal with object[] arrays in custom ctors
14569 2004-08-05 Martin Baulig <martin@ximian.com>
14571 * class.c (mono_class_array_element_size): Added support for
14572 generic instances and correctly handle "recursive" types.
14574 2004-08-05 Zoltan Varga <vargaz@freemail.hu>
14576 * assembly.c: Fix warnings.
14578 2004-08-04 Martin Baulig <martin@ximian.com>
14581 (mono_type_get_name_recurse): Added `gboolean include_arity'
14582 argument specifying whether or not we should include the generic
14583 arity in the type name.
14584 (_mono_type_get_name): New static function.
14585 (mono_class_setup_vtable): If we're a generic instance, don't
14586 include the generic arity in the names of explicit method
14589 2004-08-03 Martin Baulig <martin@ximian.com>
14591 * class.c (mono_type_get_name_recurse): Enclose the generic type
14592 arguments in `<', '>'.
14594 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
14596 * gc.c: make GC warning messages use the trace API, they are just
14597 noise to most of the users.
14599 2004-08-03 Martin Baulig <martin@ximian.com>
14601 * debug-mono-symfile.c (read_string): Correctly read the string.
14603 2004-07-30 Zoltan Varga <vargaz@freemail.hu>
14605 * marshal.c (signature_dup_add_this): Fix bug in previous patch.
14607 * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
14609 (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
14611 2004-07-30 Martin Baulig <martin@ximian.com>
14613 * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
14614 Reflect latest symbol writer changes.
14616 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
14618 * object.c: always create an object if null is passed
14619 to Invoke() where a valuetype is expected.
14621 2004-07-29 Bernie Solomon <bernard@ugsolutions.com>
14623 * marshal.c (mono_marshal_init): make managed
14624 signatures match native ones better for 64bits.
14626 2004-07-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14628 * appdomain.c: hack to build correctly the private bin path on windows.
14631 2004-07-28 Lluis Sanchez Gual <lluis@novell.com>
14633 * assembly.c: Load mscorlib from the correct framework directory
14634 (mono/<version>/mscorlib.dll).
14635 * appdomain.h: Added prototypes for new functions.
14636 * internals.h: Added some prototypes.
14637 * domain.c: When initializing the runtime, get from the executable and
14638 the configuration files the runtime version that the app supports.
14639 Added support methods for reading app.exe.config. Added list of versions
14640 supported by the JIT. Added two new methods: mono_init_from_assembly,
14641 which initializes the runtime and determines the required version from
14642 the provided exe file, and mono_init_version, which initializes
14643 the runtime using the provided version.
14644 * icall.c: Get machine.config from version-specific directory.
14645 * reflection.c: When generating an image, embed the version number
14646 of the current runtime.
14648 2004-07-28 Dick Porter <dick@ximian.com>
14651 (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
14652 returned sockaddr size before creating the remote address object.
14653 Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
14656 2004-07-28 Dick Porter <dick@ximian.com>
14658 * locales.c (string_invariant_compare_char): Fix invariant char
14659 compares between upper and lower cases. Fixes bug 61458.
14661 2004-07-27 Ben Maurer <bmaurer@ximain.com>
14663 * marshal.c: actually cache stelem.ref wrappers.
14665 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
14667 * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image
14668 sections and remove the mono_cli_rva_map () function.
14670 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
14672 * debug-mono-symfile.c: fix one more endianess issue, from a patch
14673 by Geoff Norton (<gnorton@customerdna.com>).
14675 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
14677 * class.c: fix class loads for pointer types (typeof(int) !=
14680 2004-07-27 Martin Baulig <martin@ximian.com>
14682 * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
14683 reading the debugging information from an external ".mdb" file.
14685 2004-07-24 Martin Baulig <martin@ximian.com>
14687 * reflection.c (mono_image_get_type_info): Only write a class
14688 layout entry if we actually have a size or a packing size.
14690 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
14692 * reflection.c (type_get_fully_qualified_name):
14693 insert cast to get type checking of ?: with non-gcc compilers
14695 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
14697 * rand.c: use g_getenv for both lookups of
14700 2004-07-17 Martin Baulig <martin@ximian.com>
14702 * reflection.c (mono_reflection_bind_generic_method_parameters):
14703 Set `gmethod->reflection_info'.
14705 2004-07-17 Martin Baulig <martin@ximian.com>
14707 * class.c (mono_class_create_from_typedef): Insert the newly
14708 created class into the hash table before computing the interfaces
14709 since we could be called recursively.
14711 2004-07-16 Ben Maurer <bmaurer@ximain.com>
14713 * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
14714 function to implement stelem.ref in managed code
14715 * class-internals.h, debug-helpers.c: a new wrapper type
14718 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
14720 * gc.c: allow GC handles to work even when no GC is compiled in.
14721 Fix part of bug #61134 (GetAddrOfPinnedObject).
14723 2004-07-13 Peter Williams <peter@newton.cx>
14725 * process.c (complete_path): Make sure we don't attempt to execute
14728 2004-07-12 Geoff Norton <gnorton@customerdna.com>
14730 * DateTime.cs: Patch for bug #61112. Our DateTime wasn't roundtripping over timezone
14731 boundaries properly. This patch checkes ToLocalTime() to see if we're tripping over a boundary
14732 and will add/subtract the hour if needed
14734 2004-07-12 Martin Baulig <martin@ximian.com>
14736 * reflection.c (mono_field_get_object): If we have
14737 `field->generic_info', take the attributes from
14738 `field->generic_info->generic_type'.
14740 2004-07-12 Martin Baulig <martin@ximian.com>
14742 * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
14743 This function must be called before initializing the runtime.
14744 (mono_debug_init_1): New function; call this after initializing
14745 the runtime, but before loading the assembly. It tells the
14746 debugger to load corlib and the builtin types.
14748 * mono-debug-debugger.c: Did some larger changes in the debugging
14749 code; support recursive class declarations, make sure we actually
14752 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14754 * debug-helpers.c: undo my previous patch and fixed the real issue in
14755 ../mini/exceptions-x86.c
14757 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14759 * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
14760 when no HOME env. variable was set and a NullRef was thrown in a .cctor
14761 called from other .cctors.
14763 2004-07-09 Miguel de Icaza <miguel@ximian.com>
14765 * loader.c: Removed the mono_loader_wine_init hack now that we are
14766 doing a managed version of Windows.Forms.
14768 2004-07-09 Ben Maurer <bmaurer@ximian.com>
14770 * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
14771 threadpool.c, threads.c: remove static data from rootset.
14773 2004-07-09 Dick Porter <dick@ximian.com>
14775 * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
14776 Don't do any more processing if the matched length was 0. It was
14777 increasing the size of the string before. Fixes bug 61167.
14779 2004-07-09 Dick Porter <dick@ximian.com>
14783 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
14784 Add support for SO_PEERCRED if its available.
14786 2004-07-09 Peter Bartok <pbartok@novell.com>
14787 * loader.c: winelib.exe.so error message is now only displayed if
14788 MONO_DEBUG is set. To help us avoid questions when people are trying
14789 out the new Managed.Windows.Forms.
14791 2004-07-08 Zoltan Varga <vargaz@freemail.hu>
14793 * class-internals.h debug-helpers.c marshal.c: Add new wrapper types
14794 for isinst and castclass wrappers.
14796 * class-internals.h icall.c: Move registration and lookup of JIT icalls
14797 to libmetadata from the JIT, so they could be used by the marshalling
14798 code and the interpreter.
14800 * marshal.c: Register marshalling related JIT icalls here instead of
14801 in mini.c. Use CEE_MONO_ICALL instead of the family of
14802 CEE_MONO_PROC<x> opcodes to call marshalling functions.
14804 * metadata.h: Remove unneeded marshalling conversions.
14806 * opcodes.c: Update for new opcodes.
14808 2004-07-08 Martin Baulig <martin@ximian.com>
14810 * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
14811 (mono_debug_get_domain_data): Make this function static.
14813 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14815 * gc.c, object.h: add nice GC handle API for embedders.
14817 2004-07-06 Ben Maurer <bmaurer@ximian.com>
14819 * reflection.c: more changes for the new api
14821 * object.c: When we reflect on a field w/ a constant value, it
14822 will not have a memory location, so we must access metadata. Also,
14823 allow easier reading of strings so that we can read them from
14826 * class.c (mono_class_layout_fields): no need for literal fields here.
14828 * class-internals.h: api changes for const fields
14830 * icall.c (ves_icall_get_enum_info): use new apis for const fields
14832 2004-07-06 Martin Baulig <martin@ximian.com>
14834 * mono-debug.h: Increment version number to 44.
14836 * mono-debug.c (mono_debug_add_wrapper): The second argument is
14837 now a gpointer, rewrote this whole method.
14839 * mono-debug-debugger.c (mono_debugger_add_wrapper): New
14840 function. Add information about the wrapper in a new "misc table".
14842 * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
14843 for the new misc table.
14845 2004-07-05 Zoltan Varga <vargaz@freemail.hu>
14847 * metadata-internals.h image.c: Add a cache for helper signatures.
14849 * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
14851 2004-07-03 Zoltan Varga <vargaz@freemail.hu>
14853 * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
14854 delegates from a delegate. Fixes #61033.
14856 * marshal.c: Fix managed->native stringbuilder marshalling. Implement
14857 marshalling of stringbuilder arrays. Fixes #59900.
14859 2004-07-02 Zoltan Varga <vargaz@freemail.hu>
14861 * icall.c: Add EnumBuilder:setup_enum_type icall.
14863 2004-06-30 Ben Maurer <bmaurer@ximian.com>
14865 * icall.c: Added a new icall for the property version of
14866 OffsetOfStringData.
14868 2004-06-30 Zoltan Varga <vargaz@freemail.hu>
14870 * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
14871 it has a constant size across platforms.
14873 * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
14876 2004-06-29 Martin Baulig <martin@ximian.com>
14878 * mono-debug.c (mono_debug_add_method): Protect the whole function
14879 in mono_debugger_lock(), not just parts of it.
14881 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
14883 * reflection.c: make sure padding bytes in heaps are zeroed.
14885 2004-06-24 David Waite <mass@akuma.org>
14887 * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
14888 image.c, loader.c, locales.c, marshal.c, metadata.c,
14889 mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
14890 string-icalls.c, threads.c: change to C90-style comments from C99 /
14893 2004-06-24 Dick Porter <dick@ximian.com>
14896 (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
14897 return createdNew. Fixes bug 60412.
14900 * icall.c: Add createdNew parameter to CreateMutex icall
14902 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14904 * reflection.c, object-internals.h: save default value in params.
14906 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14908 * appdomain.c: for paths in PrivateBinPath that are absolute, there's
14909 no need to build a new path combining that with the application base.
14912 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
14914 * reflection.c: fixed minor standard compliance issues.
14916 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14918 * reflection.c: fixed issue with encoding some custom attributes
14919 (arrays in properties and fields, bug #60411).
14921 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14923 * reflection.c: fix start address when copying the public key token.
14925 2004-06-23 Martin Baulig <martin@ximian.com>
14927 * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
14928 the `exc' object in a static object to put it into the GC's root set.
14930 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
14932 * reflection.c: make mono_reflection_setup_internal_class ()
14933 callable a second time to setup a new parent class.
14935 2004-06-23 Dick Porter <dick@ximian.com>
14937 * threads.c: Check for WAIT_IO_COMPLETION return values.
14939 2004-06-22 Sebastien Pouliot <sebastien@ximian.com>
14941 * appdomain.c: Removed the g_free on the public key token. Now copy
14942 the pk token string into the MonoAssemblyName buffer using g_strlcpy.
14943 * assembly.c: Added public key token string value when loading
14944 assemblies. Fix bug #60439.
14945 * icall.c: Added missing informations (like public key) in
14946 GetReferencedAssemblies. Fix #60519.
14947 * image.h: Changed definition for public key token from const char*
14948 public_tok_value to guchar public_key_token [17];
14949 * reflection.c: Updated for changes to public key token.
14951 2004-06-22 Lluis Sanchez Gual
14953 * icall.c: In ves_icall_InternalExecute, when setting a filed, also look
14954 for the field in base classes.
14956 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14958 * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
14959 mark headers as not supported, they are installed only for use by the
14962 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
14964 * *.c, *.h: avoid namespace pollution in public headers.
14966 2004-06-21 Martin Baulig <martin@ximian.com>
14968 * exception.c (mono_get_exception_security): It's in
14969 "System.Security", not in "System".
14971 * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
14972 the exception classes.
14974 2004-06-21 Martin Baulig <martin@ximian.com>
14976 * mono-debug-debugger.c (mono_debugger_unhandled_exception):
14977 Protect the exception object from being finalized.
14979 2004-06-21 Martin Baulig <martin@ximian.com>
14981 * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
14984 2004-06-21 Sebastien Pouliot <sebastien@ximian.com>
14986 * reflection.c: Load the assembly in mono_reflection_type_from_name,
14987 if it was not loaded before. Fix parts of #60439.
14989 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
14991 * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
14992 code that was broken since Ben's change: wrappers are now
14993 dependent on the method signature only again.
14995 2004-06-21 Martin Baulig <martin@ximian.com>
14997 * mono-debug-debugger.c (write_class): Cleaned this up a bit and
14998 added interface support.
15000 2004-06-21 Martin Baulig <martin@ximian.com>
15002 * class.c (mono_vtable_get_static_field_data): New public method.
15004 2004-06-20 Atsushi Enomoto <atsushi@ximian.com>
15006 * filewatcher.c : Windows build fix to be compliant with API changes.
15008 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
15010 * class.h, class.c: more accessors.
15011 * metadata.h, metadata.c: prepare for hiding MonoType and
15012 MonoMethodSignature: people should use the accessors from now on
15013 outside of the tree.
15015 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
15017 * *.c, *.h: more API cleanups.
15019 2004-06-18 Jackson Harper <jackson@ximian.com>
15021 * assembly.c: Trace loading assemblies.
15022 * loader.c: Trace loading native libraries.
15023 * mono-config.c: Trace loading config files.
15025 2004-06-18 Dick Porter <dick@ximian.com>
15027 * locales.c: Tell ICU the lengths of strings, it can cope with
15028 embedded \0 then. Fixes bug 59274, and doesn't break bug 55822.
15030 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
15032 * image.c: swapped name/filename;
15034 2004-06-18 Martin Baulig <martin@ximian.com>
15036 * mono-debug-debugger.c (write_class): Write the parent class at
15037 the end of the header.
15039 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
15041 * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
15043 2004-06-17 Raja R Harinath <rharinath@novell.com>
15045 * Makefile.am (PLATFORM_LIB): New. Possibly refer to ../os/libmonoos.la.
15046 (bundle_obj): New conditional define.
15047 (BUILT_SOURCES): Remove.
15048 ($(bundle_srcs)): Make parallel-make safe.
15049 (libmonoruntime_la_LIBADD): Make unconditional.
15050 (libmetadata_la_LIBADD): Make unconditional. Refer to $(bundle_obj).
15051 (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
15053 2004-06-17 Atsushi Enomoto <atsushi@ximian.com>
15055 * culture-info-tables.h: It was inconsistent with the latest
15058 2004-06-17 Zoltan Varga <vargaz@freemail.hu>
15060 * assembly.c (mono_assembly_open): Fix crash when the assembly can't
15063 * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
15066 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
15068 * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
15069 cleaned up public header threads.h.
15071 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
15073 * Makefile.am, *.c, *.h: more API cleanups.
15075 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
15077 * Makefile.am: removed monosn from compilation.
15078 * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
15079 debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
15080 image.c, image.h, loader.c, marshal.c, metadata-internals.h,
15081 metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
15082 mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
15083 reflection.c, reflection.h, verify.c: more API cleanups and fixes.
15085 2004-06-15 Jackson Harper <jackson@ximian.com>
15087 * assembly.c: Make locales lower case when searching the GAC for
15088 assemblies. gacutil will always make locales lowercase when
15089 installing so this effectively makes them case insensitive.
15091 2004-06-15 Lluis Sanchez Gual <lluis@ximian.com>
15093 * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
15094 * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
15095 parameter which allows to choose whether the wait can be interrupted or
15096 not. Also added the method mono_monitor_enter(), which locks the monitor
15097 using an infinite wait and without allowing interruption.
15098 In the Monitor.Enter and Wait icalls, retry the lock if the wait is
15100 * object.h: Added new fields in MonoThread. suspend_event holds the event
15101 used to susped/resume the thread. synch_lock is the lock object to use for
15102 modifying the thread state.
15103 * threads.c: Use the new synch_lock object for locking, instead of "this",
15104 which can generate deadlocks.
15105 Moved thread state change in Thread.Sleep and Thread.Join from managed
15106 to unmanaged code. This avoids a deadlock when the thread was suspended
15107 just after acquiring the thread lock.
15108 In general, use mono_monitor_enter instead of mono_monitor_try_enter.
15109 Implemented Thread.Suspend using an event instead of ThreadSuspend,
15110 which is not fully implemented in the io-layer.
15111 * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
15113 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
15115 * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
15116 threads-types.h: more API cleanups.
15118 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
15120 * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
15121 domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
15122 threadpool.c, threads.c: first pass at the exported API cleanup.
15124 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
15126 * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
15128 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15130 * icall.c: added internalGetHome.
15132 2004-06-14 Dick Porter <dick@ximian.com>
15134 * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
15135 possible to return successfully when '.' or '..' were the only
15136 entries in a directory, but were skipped. The MonoIOStat was not
15137 filled in in that case. Now return ERROR_NO_MORE_FILES instead.
15140 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
15142 * reflection.c: make binaries run on .Net 1.1 by default.
15144 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
15146 * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
15148 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
15150 * marshal.c: keep track of struct size with explicit layout
15153 2004-06-12 Martin Baulig <martin@ximian.com>
15155 * mono-debug-debugger.c: Comment out a debugging g_message().
15157 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
15159 * reflection.c, reflection.h: do not free custom attrs that are cached.
15160 * icall.c: use braces to make code clearer.
15162 2004-06-11 Martin Baulig <martin@ximian.com>
15164 * class.h (MonoInflatedField): New type.
15165 (MonoClassField): Replaced `MonoType *generic_type' with
15166 `MonoInflatedField *generic_info'.
15169 (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
15171 2004-06-11 Martin Baulig <martin@ximian.com>
15173 * reflection.c (mono_image_create_method_token): Correctly encode
15176 2004-06-11 Martin Baulig <martin@ximian.com>
15178 * metadata.c (mono_metadata_parse_method_signature): When parsing
15179 a MethodDef which has VarArgs, also set sentinelpos if we don't
15180 have any parameters.
15182 2004-06-11 Martin Baulig <martin@ximian.com>
15184 * verify.c (mono_method_verify): In CEE_CALL, use
15185 mono_method_get_signature() to get the method's signature, unless
15186 we're a PInvoke method.
15188 2004-06-10 Jackson Harper <jackson@ximian.com>
15190 * assembly.c: Use <path>/lib/mono/gac for the extra paths
15191 lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
15192 logical name as the supplied path is just a prefix to the gac not
15193 the direct path to it.
15195 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
15197 * reflection.c: make the token for a created method match
15198 the token of the MethodBuilder it was created from
15199 (IKVM requires this behaviour now).
15201 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
15203 * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
15204 reflection.c, socket-io.c: leak fixes.
15206 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
15208 * icall.c: handle sentinel pos in vararg methods in position different
15211 2004-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15213 * culture-info-tables.h: freshly generated.
15215 2004-06-09 Martin Baulig <martin@ximian.com>
15217 * loader.c (mono_get_method_constrained): Call `mono_class_init
15218 (constrained_class)'.
15220 2004-06-08 Gert Driesen <drieseng@users.sourceforge.net>
15222 * icall.c (ves_icall_MonoType_GetEvent): Handle events without
15223 any methods. Fixes #59629.
15225 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
15227 * culture-info-tables.h: reflecting locale-builder updates.
15229 2004-06-08 Dick Porter <dick@ximian.com>
15232 * locales.c: Fixed compile warnings, including a real bug in
15233 CompareInfo_internal_compare.
15235 2004-06-08 Dick Porter <dick@ximian.com>
15238 (ves_icall_System_Globalization_CompareInfo_internal_index):
15239 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
15240 Double-check the resuls of usearches, because ICU currently
15241 ignores most of the collator settings here. Fixes bug 59720.
15243 2004-06-08 Dick Porter <dick@ximian.com>
15246 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
15247 Fix memory leak and segfault-causing typo. No idea how this one
15248 lasted so long without being noticed.
15250 2004-06-09 Zoltan Varga <vargaz@freemail.hu>
15252 * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
15253 any methods. Fixes #59629.
15255 2004-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15258 (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
15259 own the critical section before). Removed dead code (that's done
15260 in the preload hook).
15262 (mono_assembly_load_with_partial_name): call the preload hook.
15264 2004-06-08 Martin Baulig <martin@ximian.com>
15266 * metadata.c (mono_metadata_signature_alloc): Default
15267 `sentinelpos' to -1.
15269 * reflection.c (mono_image_get_array_token): Likewise.
15271 2004-06-08 Martin Baulig <martin@ximian.com>
15273 * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
15275 * metadata.c (mono_metadata_parse_method_signature): When parsing
15276 a MethodDef which has VarArgs, set sentinelpos.
15278 * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
15279 `gint16' since we're using -1 for non-varargs methods.
15282 (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
15283 (method_encode_signature): Added varargs support.
15284 (method_builder_encode_signature): Likewise.
15285 (mono_image_get_varargs_method_token): New static method.
15286 (mono_image_create_method_token): New public method; this is
15287 called via an icall instead of mono_image_create_token() when
15288 calling a varargs method.
15290 2004-06-08 Lluis Sanchez Gual <lluis@ximian.com>
15292 * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
15294 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
15296 * culture-info-tables.h : Reflecting the latest locale-builder that
15297 fixed empty array representation ({} to {0}).
15299 2004-06-07 Jackson Harper <jackson@ximian.com>
15301 * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
15302 looking up extra gac paths. This allows MONO_GAC_PATH to act
15303 exactly like a prefix.
15305 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
15307 * reflection.c (mono_reflection_type_from_name): Make a copy of the
15308 type name before modifying it. Fixes #59405.
15310 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
15312 * culture-info.h: added fields for "all datetime patterns".
15313 * locales.c: ( ves_icall_System_Globalization_CultureInfo
15314 _construct_datetime_format ()): fill xxx_patterns fields.
15315 * object.h: added fields for "all datetime patterns" to
15316 MonoDateTimeFormatInfo.
15317 * culture-info-tables.h: reflecting locale-builder updates.
15319 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
15321 * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
15322 the event has no add and remove methods. Fixes #59629.
15324 2004-06-05 Sebastien Pouliot <sebastien@ximian.com>
15326 * object.c: Fixed possible integer overflow when allocating large
15329 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
15331 * culture-info-tables.h: reflecting locale-builder updates.
15333 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
15335 * culture-info-tables.h: reflecting locale-builder updates.
15337 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
15339 * culture-info-tables.h: reflecting locale-builder updates.
15341 2004-06-03 Lluis Sanchez Gual <lluis@ximian.com>
15343 * threads.c: Made Thread.Sleep abortable.
15345 2004-06-02 Martin Baulig <martin@ximian.com>
15347 * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
15349 * debug-mono-symfile.h: Bumped symbol file version number to 37.
15351 2004-05-31 Zoltan Varga <vargaz@freemail.hu>
15353 * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
15355 2004-05-30 Jackson Harper <jackson@ximian.com>
15357 * reflection.c: Do not hardcode assembly versions or public key
15358 tokens anymore. All of this except the corlib section was dead
15361 2004-05-29 Zoltan Varga <vargaz@freemail.hu>
15363 * object.c (mono_runtime_invoke_array): Automatically create boxed
15364 objects for byref valuetypes if needed. Fixes #59300.
15366 * object.c (mono_method_return_message_restore): Handle
15367 MONO_TYPE_OBJECT as well.
15369 2004-05-28 Jackson Harper <jackson@ximian.com>
15371 * reflection.c: The modified type encoding was causing build
15372 problems. Reverted for now.
15374 2004-05-28 Jackson Harper <jackson@ximian.com>
15376 * reflection.c/h: Take an assembly ref so that we dont create
15377 fully qualified names when encoding types in the same assembly as
15378 the custom attribute being emitted.
15379 * appdomain.c: Increment version number.
15381 2004-05-26 Duncan Mak <duncan@ximian.com>
15384 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15385 Set the full version number (major, minor, build, revision).
15387 2004-05-28 Vladimir Vukicevic <vladimir@pobox.com>
15389 * marshal.c (emit_struct_conv): increment src/dst after blit
15390 (mono_marshal_get_managed_wrapper,
15391 mono_marshal_get_native_wrapper): make sure we have marshalling
15392 info before marshalling params (info computation affects
15395 * class.c (class_compute_field_layout): correctly deal with
15397 (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
15398 value types (as per what windows dows by default)
15399 (mono_class_setup_mono_type): System.ValueType is blittable
15400 (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
15403 * marshal.c (mono_marshal_load_type_info): flag types as
15404 non-blittable if the native layout doesn't match the managed
15407 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15409 * appdomain.c: don't add stuff in the private search path that is
15410 above the application base. If application base is not set, there's
15411 no private search path.
15413 2004-05-28 Zoltan Varga <vargaz@freemail.hu>
15415 * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
15416 byref struct arguments in native->managed marshalling.
15418 2004-05-28 Patrik Torstensson <totte@hiddenpeaks.com>
15420 * marshal.c (mono_marshal_get_runtime_invoke): correctly
15421 cache methods using signature (special case for methods
15422 that are value type or string class)
15424 * image.c (mono_image_close): clean up allocated GSList's
15425 in runtime_invoke_cache.
15427 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15429 * mono-config.c: set the correct path for mono_cfg_dir on windows when
15430 there's no MONO_CFG_DIR environment variable defined.
15432 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15434 * threads.c: windows version must be >= 0x0500 to include OpenThread.
15436 2004-05-28 Lluis Sanchez Gual <lluis@ximian.com>
15438 * threadpool.c: Really wait for 500ms after the async call, even if the wait
15440 * threads.c: In mono_thread_manage, call OpenThread to ref each handle
15441 before waiting for it, and call CloseHandle after the wait to unref it.
15442 This will make sure that handles are not disposed too early.
15444 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15449 ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
15452 * object.c: se the application_base only for the domain that runs
15453 Main. Fixes bug #59216,
15455 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15458 * object.c: only the domain in which Main is run have
15459 SetupInformation.ConfigurationFile set, so moved a few lines from
15460 appdomain.c to object.c.
15462 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15464 * appdomain.c: we tried to load [name].(dll|exe), but according
15465 to bug #57710, we must also try [culture]/[name].(dll|exe) and
15466 [culture]/[name]/[name](dll|exe). This patch fixes the bug.
15467 There's a test case attached to bug #58922.
15469 2004-05-27 Dick Porter <dick@ximian.com>
15472 * file-io.c: Implemented icalls for locking and unlocking regions
15474 (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
15475 FALSE on error (fixes both compiler warning and real bug.)
15477 2004-05-27 Atsushi Enomoto <atsushi@ximian.com>
15479 * culture-info-tables.h: reflecting locale-builder updates.
15481 (Added missing ChangeLog entry for 05/26)
15483 2004-05-27 Jackson Harper <jackson@ximian.com>
15485 * locales.c: Fix some cut and paste errors.
15487 2004-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15489 * mono-config.c: set the correct path for config. directory on windows.
15491 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
15493 * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
15496 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
15498 * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
15499 from pinvoke functions.
15501 * marshal.c (mono_ftnptr_to_delegate): Implement this.
15503 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
15505 * culture-info-tables.h: reflecting locale-builder updates.
15507 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
15509 * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
15512 2004-05-26 Sebastien Pouliot <sebastien@ximian.com>
15514 * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
15515 * icall.c: Modified icalls for RNG.
15516 * rand.c|h: Changed RNG interface to allow thread-safe usage under
15517 Windows (CryptoAPI).
15519 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
15521 * locales.c: Fix build.
15523 2004-05-25 Atsushi Enomoto <atsushi@ximian.com>
15525 * culture-info-tables.h: reflecting locale-builder updates.
15527 2004-05-25 Jackson Harper <jackson@ximian.com>
15529 * locales.c: When creating the current culture use the $LANGs
15530 specific culture. So DateTimeFormat and NumberFormat entries are created.
15532 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
15534 * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
15535 a char array as parameter.
15537 2004-05-24 Lluis Sanchez Gual <lluis@ximian.com>
15539 * image.c: In mono_image_open(), always use an absolute path name to
15540 look for already loaded images.
15542 2004-05-24 Sebastien Pouliot <sebastien@ximian.com>
15544 * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
15545 missing in the windows build (like older cygwin include files).
15547 2004-05-23 Sebastien Pouliot <sebastien@ximian.com>
15549 * icall.c: Fixed check for possible integer overflow in Buffer_
15550 BlockCopy icall. Replaced comments style // by /* */.
15552 2004-05-22 Zoltan Varga <vargaz@freemail.hu>
15554 * marshal.c (mono_ftnptr_to_delegate): Fix warning.
15556 * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
15557 check after MONO_VTADDR. Fixes pinvoke2.exe.
15559 * marshal.h marshal.c metadata.h: Add beginnings of support for
15560 ftnptr -> delegate marshalling.
15562 2004-05-21 Zoltan Varga <vargaz@freemail.hu>
15564 * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
15565 * threads.c: Fix warnings.
15567 2004-05-20 Lluis Sanchez Gual <lluis@ximian.com>
15569 * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
15570 * icall.c: Registered icalls for Suspend and Resume.
15571 * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
15573 * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
15574 * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
15575 * process.c: Use WaitForSingleObjectEx.
15576 * threadpool.c: Use WaitForSingleObjectEx. Added some interruption
15578 * threads.c, threads.h: Make use of new Ex wait methods. Improved
15579 implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
15580 for Suspend and Resume. Added new mono_thread_stop, used for stoping
15581 background threads. Added basic support for Abort in Windows.
15582 Start new threads using a managed delegate invoke wrapper. This wrapper
15583 has an interruption checkpoint that is needed since an interruption
15584 can be requested before the thread leaves the unmanaged code that starts
15586 * marshal.c: Added interruption checkpoint after every native call, and
15587 also before managed calls for wrappers called from unmanaged code to
15588 go into managed code.
15589 * object.h: Added new field in MonoThread to keep track of interruption
15592 2004-05-20 Zoltan Varga <vargaz@freemail.hu>
15594 * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
15597 2004-05-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15604 * rand.c: getenv -> g_getenv (windows!)
15606 * process.c: complete_path is also used on non-windows platforms.
15608 2004-05-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15610 * icall.c: new signature for Process_Start.
15612 * process.[ch]: new signature for Process_Start. If we're on windows
15613 and UseShellExecute is false, we have to search for the program by
15614 ourselves if we don't get a full path.
15616 2004-05-18 Zoltan Varga <vargaz@freemail.hu>
15618 * marshal.c (mono_marshal_get_native_wrapper): Fix up custom
15619 marshalling and call CleanUpNativeData if needed. Fixes #58646.
15621 2004-05-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15623 * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
15626 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15628 * process.c: use double quotes to quote program name and arguments on
15629 windows. Fixes bug #58575.
15631 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15633 * file-io.c: don't return "." and ".." when using windows Find*File.
15635 2003-05-17 Patrik Torstensson <totte@hiddenpeaks.com>
15637 * marshal.c: Don't pass wrappers to message init because method
15638 addressed used to lookup metadata. part of remoting[2|3] fix.
15640 2004-05-15 Jackson Harper <jackson@ximian.com>
15642 * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
15643 path is essentially the same as MONO_PATH except that it points to
15644 GACs instead of lib directories.
15645 * loader.h: The user gac is gone so we dont need function to
15647 * mono-config.c: user gac option is now gone.
15649 2004-05-15 Jackson Harper <jackson@ximian.com>
15651 * culture-info.h: Make defines more consistent, add calendar data
15652 to the culture info table.
15653 * culture-info-tables.h: Add basic calendar data. Basically
15654 everyone gets default gregorian until all the data is
15656 * locales.c: Use the new consistent defines. Set calendar data for
15657 culture info objects.
15658 * object.h: add a field for calendar data to CultureInfo
15660 2004-05-14 Ben Maurer <bmaurer@users.sourceforge.net>
15662 * image.c: image->runtime_invoke_cache is keyed on signatures now.
15663 * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
15665 (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
15666 (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
15667 an extra param that is the pointer of the method to invoke. The IL for
15668 the invoke method is no longer specific to the method, but to the
15669 signature of the method. Thus, we can share the same code for multiple
15670 methods. This reduces the number of methods that have to be compiled.
15672 2004-05-14 Zoltan Varga <vargaz@freemail.hu>
15674 * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
15676 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15678 * icall.c: Optimize Buffer.BlockCopy.
15680 2004-05-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15682 * culture-info-tables.h: seems like Spanish and Portuguese cultures had
15683 DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
15684 quote). Changed them to "MMMM yyyy".
15686 2004-05-12 Miguel de Icaza <miguel@ximian.com>
15689 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file.
15691 2004-05-13 Zoltan Varga <vargaz@freemail.hu>
15693 * reflection.h: Updated after changes to managed structures.
15695 * appdomain.c: Bump corlib version.
15697 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15699 * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
15702 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15704 * Makefile.am: link to ../os/libmonoos.la on windows.
15707 -If MONO_DEBUG, warn about non-existing directories in
15709 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
15710 compile time variable.
15711 -Removed init_default_path and call mono_set_rootdir from
15712 libmonoos.a instead (windows only).
15714 * assembly.h: declare mono_assembly_getrootdir().
15717 * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
15719 * loader.c: s/getenv/g_getenv/
15721 2004-05-11 Zoltan Varga <vargaz@freemail.hu>
15723 * marshal.{h,c}: Add support for UnmanagedType.AsAny.
15725 * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
15727 * metadata.h: Add new marshalling conversions.
15729 * metadata.h metadata.c (mono_metadata_signature_dup): New helper
15732 * reflection.c (mono_reflection_get_type): Lookup the type in all
15733 modules of a multi-module assembly. Fixes #58291.
15735 2004-05-11 Lluis Sanchez Gual <lluis@ximian.com>
15737 * threads.c: Before aborting a background, set the StopRequested
15738 state. This avoids throwing the Abort exception.
15739 In mono_thread_manage, don't continue with the shutdown until all
15740 aborted threads have actually stopped.
15742 2004-05-10 Jackson Harper <jackson@ximian.com>
15744 * locales.c: Remove the modifier from culture names.
15746 2004-05-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15748 * Makefile.am: monosn is not installed any more. It has been deprecated
15751 2004-05-07 Jackson Harper <jackson@ximian.com>
15754 (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
15755 Fix array construction, add bailout if the length is 0.
15757 2004-05-07 Dick Porter <dick@ximian.com>
15759 * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
15760 machine doesn't have a DNS entry. Patch by Urs Muff
15761 (umuff@quark.com), fixes bug 57928.
15763 2004-05-06 Jackson Harper <jackson@ximian.com>
15765 * reflection.c: Handle null PublicTokens properly. alloc mem for
15766 assembly names culture so we dont crash when freeing it.
15768 2004-05-06 Jackson Harper <jackson@ximian.com>
15770 * assembly.c: Check the usergac when loading with partial names.
15772 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
15774 * rand.c|h: Added new icall for (optionally) seeding the PRNG. This
15775 does nothing for now (not required for Linux/Windows) but the class
15776 library can call it (and a newer or modified runtime could need it).
15777 * icall.c: Registred icall.
15779 2004-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15781 * loader.c: prints a message on module loading error we set MONO_DEBUG
15782 environment variable.
15784 2004-05-05 Jackson Harper <jackson@ximian.com>
15786 * appdomain.c: Handle PublicKeyToken=null properly.
15788 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
15790 * environment.c|h: Added icall ves_icall_System_Environment_
15791 GetOSVersionString to get the current OS version as a string.
15792 * icall.c: Registred icall.
15794 2004-05-05 Lluis Sanchez Gual <lluis@ximian.com>
15796 * object.c: in mono_object_get_virtual_method(), take into account that
15797 non-virtual methods don't have a slot in the vtable. Check needed when
15798 the object is a proxy.
15800 2004-05-05 Zoltan Varga <vargaz@freemail.hu>
15802 * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
15803 (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
15805 * object.c (mono_class_compute_gc_descriptor): Fix warning.
15807 * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
15808 passed when a valuetype is expected.
15810 * object.c (mono_unhandled_exception): Only set the exit code if the
15811 exception happens in the main thread. Fixes thread5.exe.
15813 * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
15814 invalid names. Fixes #58047.
15816 2004-05-03 Jackson Harper <jackson@ximian.com>
15818 * assembly.c: This line was committed accidently and is unneeded.
15820 2004-05-03 Jackson Harper <jackson@ximian.com>
15822 * icall.c: Add new icall for Assembly::LoadWithPartialName
15823 * assembly.c/.h: new function that probes the GAC to load partial
15824 assembly names by Paolo Molaro.
15826 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15828 * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
15829 * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
15830 (type_get_fully_qualified_name): Added PublicKeyToken when building a
15833 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15835 * appdomain.c: fixed check for 'neutral' culture and removed warning.
15836 * reflection.c: fix bug when parsing a full type name and Version is not
15837 the last thing in the string.
15839 2004-05-03 Zoltan Varga <vargaz@freemail.hu>
15841 * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
15842 crashes when it is freed.
15844 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15846 * assembly.c: print the compat warning to stderr.
15848 2004-05-01 Miguel de Icaza <miguel@ximian.com>
15850 * assembly.c (mono_assembly_load_references): Add a compatibility
15851 hack to run old applications that might be still referencing the
15852 3300-based assemblies, only do this for System.xxx.
15854 2004-05-01 Jackson Harper <jackson@ximian.com>
15856 * appdomain.c: If the culture is neutral we set it to "".
15858 2004-04-29 Jackson Harper <jackson@ximian.com>
15860 * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
15862 2004-04-29 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
15864 * string-icalls.c: added low overhead function for copying chars
15865 * icall.c: added needed icall for the above function
15867 2004-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15869 * icall.c: fix return value of get_global_assembly_cache. Implemented
15870 Environment.GetLogicalDrives.
15872 2004-04-28 Bernie Solomon <bernard@ugsolutions.com>
15874 * rand.c: try and talk to egd or prngd
15875 for random bytes if opening devices fail.
15877 2004-04-28 Zoltan Varga <vargaz@freemail.hu>
15879 * marshal.c (mono_marshal_load_type_info): Calculate the minimum
15880 alignment for the type using the native alignment of its members
15881 instead of using klass->min_align.
15883 * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
15885 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15888 * socket-io.c: added check for sys/aio.h.
15890 2004-04-28 Dick Porter <dick@ximian.com>
15892 * threads.c: Don't abort a thread thats already aborting, when
15893 terminating everything.
15895 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15897 * icall.c: added 2 new async calls for Socket.
15899 * socket-io.[ch]: fixed some warnings. Added support for asynchronous
15900 IO on *nix systems.
15902 * threadpool.c: removed unused variable.
15904 2004-04-27 Zoltan Varga <vargaz@freemail.hu>
15906 * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
15908 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15910 * locales.c: put back string_invariant_tolower () and
15911 string_invariant_toupper ().
15913 2004-04-26 David Waite <mass@akuma.org>
15918 * unicode.h: remove comma from end of enumeration declarations
15920 2004-04-26 David Waite <mass@akuma.org>
15922 * debug-mono-symfile.h:
15925 * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
15928 2004-04-26 Jackson Harper <jackson@ximian.com>
15930 * appdomain.c: Increment version number.
15932 2004-04-26 Jackson Harper <jackson@ximian.com>
15934 * appdomain.c: Set assembly references public token value when
15935 PublicKeyToken is specified, not the hash_value. Free public token
15936 values when free assembly name data. Previously the public key
15937 token was hex decoded, however we are using hex encoded public key
15938 tokens, so this is not neccasary.
15939 * assembly.c: Lookup assemblies in the gac if their public token
15940 value is set. Add function to allow enabling user gac
15941 lookups. Specify whether or not the assembly was loaded from the
15942 GAC. Compare full assembly names when checking the cache for
15943 assemblies (Temporarily disabled see comment in code). Remove
15944 mscorlib -> corlib mapping cruft. Add trace-loading. When a user
15945 specifies trace-loader they get extra info to stdout on the
15946 loading of assemblies.
15947 * image.h: Add a field for an assembly references public token
15948 value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
15949 whether an assembly has been loaded from the GAC.
15950 * image.c: Remove a corlib -> mscorlib name mapping.
15951 * loader.h: Add function to enable/disable the user gac.
15952 * mono-config.c: Check if the usergac is enabled in the config
15954 * icall.c: New icall to determine whether or not an assembly has
15955 been loaded from the GAC. Remove some mscorlib -> corlib mappings.
15956 * tabldefs.h: Add constant for assemblyref flag that specifies a
15957 full public key is used instead of a public token.
15958 * reflection.c: Remove mscorlib -> corlib mappings. Set
15959 PublicTokenValue instead of hash value. This value is a hex
15960 string so it does not need to be expanded.
15962 2004-04-26 Martin Baulig <martin@ximian.com>
15964 * mono-debug-debugger.c (mono_debugger_initialize): Set
15965 `mono_debugger_initialized' before calling mono_debug_lock().
15967 2004-04-42 Robert Shade <rshade@dvsconsulting.com>
15969 * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
15970 InternalToUpper/InternalToLower.
15971 * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
15972 removed invariant culture shortcut. This is now done in managed code.
15973 * locales.c: (string_invariant_toupper/tolower) removed.
15975 2004-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15977 * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
15978 Added Poll internal call.
15980 * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
15981 call for Poll. Select was too heavy for polling a single socket.
15983 * threadpool.[ch]: added mono_threadpool_cleanup.
15984 * threads.c: use it. Don't use Thread_Abort on windows.
15986 2004-04-23 Martin Baulig <martin@ximian.com>
15988 * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
15990 2004-04-23 Sebastien Pouliot <sebastien@ximian.com>
15992 * icall.c: Registred new icalls for key pair protection and added an
15993 icall for Environment.GetFolderPath on Windows.
15994 * security.c|h: Added new icalls for key pair protection.
15996 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15998 * socket-io.c: don't display the non-supported family warning for known
15999 families. Now this is not displayed on windows when checking support
16002 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16004 * class.c: don't display the layout warning for static fields.
16006 2004-04-21 Lluis Sanchez Gual <lluis@ximian.com>
16008 * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
16009 * locales.c, locales.h: Added new icalls for culture-specific
16010 Char.ToLower and Char.ToUpper.
16012 2004-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16014 * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
16017 2004-04-20 Martin Baulig <martin@ximian.com>
16019 * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
16020 of the type name before passing it to mono_reflection_type_from_name().
16022 2004-04-19 Zoltan Varga <vargaz@freemail.hu>
16024 * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
16025 encodings here. Fixes #56965.
16027 2004-04-18 Bernie Solomon <bernard@ugsolutions.com>
16029 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
16030 fix test on strstr result not that I can see anything that
16031 relies on the result.
16033 2004-04-18 Zoltan Varga <vargaz@freemail.hu>
16035 * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
16038 * marshal.c (mono_marshal_get_string_encoding): New helper function.
16040 * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
16041 function to determine which marshalling to use for strings. Fixes
16044 * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
16046 * reflection.c (encode_marshal_blob): Add support for LPARRAY.
16048 2004-04-15 Bernie Solomon <bernard@ugsolutions.com>
16050 * icall.c: #include mono-config.h
16052 2004-04-15 Jackson Harper <jackson@ximian.com>
16054 * culture-info-tables.h: Fix date formats for en-US culture.
16056 2004-04-15 Lluis Sanchez Gual <lluis@ximian.com>
16058 * icall.c: Registered icalls for ThreadPool.GetMinThreads and
16059 ThreadPool.SetMinThreads.
16060 * threadpool.c: Implemented ThreadPool.GetMinThreads and
16061 ThreadPool.SetMinThreads.
16063 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
16065 * mono-config.c: also load the .config file in the directory
16066 where the assembly was found.
16068 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
16070 * assembly.c: load per-assembly config files.
16071 * icall.c: decrapified code to get the config dir and moved to
16073 * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
16074 per-assembly config files. When doing a dll map lookup give precedence
16075 to the per-assembly data.
16077 2004-04-14 Martin Baulig <martin@ximian.com>
16079 * mono-debug-debugger.h (MonoDebuggerEvent): Removed
16080 MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
16081 and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
16083 * mono-debugger-debugger.c: While the debugger is locked, remember
16084 whether the symbol tables have changes and send one single
16085 MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
16087 2004-04-14 Zoltan Varga <vargaz@freemail.hu>
16089 * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
16091 * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New
16094 * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
16095 account when marshalling string arrays. Fixes #56965.
16097 2004-04-13 Sebastien Pouliot <sebastien@ximian.com>
16099 * icall.c: Add new icalls mapping for security.
16100 * security.c|h: Add internal calls for WindowsIdentity,
16101 WindowsImpersonationContext and WindowsPrincipal.
16103 2004-04-13 Gert Driesen (drieseng@users.sourceforge.net)
16105 * class.c: Added comment to ensure the System.MonoDummy class
16106 is removed when no longer necessary
16108 2004-04-13 Miguel de Icaza <miguel@ximian.com>
16110 * appdomain.c: Pass arguments to the bootstraping exceptions to
16111 minimize JITed methods at boot
16113 * metadata.c (mono_exception_from_name_two_strings): Allow for the
16114 second string to be null.
16116 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
16117 Change the protocol to minimize the JIT methods at startup. Now
16118 it Returns the internal codepage, if the value of "int_code_page"
16119 is 1 at entry, and we can not compute a suitable code page
16120 number, returns the code page as a string.
16122 2004-04-13 Jackson Harper <jackson@ximian.com>
16124 * culture-info-tables.h: Fix number of decimal digits for all
16127 2004-04-13 Jackson Harper <jackson@ximian.com>
16129 * icall.c: Clairfy out of sync error message. It is not always
16130 your corlib that is out of sync.
16132 2004-04-13 Zoltan Varga <vargaz@freemail.hu>
16134 * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
16135 properties when only the set accessor is overriden. Fixes #55874.
16137 2004-04-09 Zoltan Varga <vargaz@freemail.hu>
16139 * assembly.c (mono_assembly_load_references): Make this thread safe.
16142 2004-04-08 Zoltan Varga <vargaz@freemail.hu>
16144 * monosn.c: Add missing initialization calls.
16146 2004-04-08 Bernie Solomon <bernard@ugsolutions.com>
16149 ves_icall_System_Globalization_CultureInfo_construct_number_format
16150 Fix g_assert so it compiles on fussier compilers re int/ptr
16153 2004-04-08 Dick Porter <dick@ximian.com>
16156 * socket-io.c: Don't set SO_REUSEADDR on windows. Fixes bug
16157 53992. Also rearrange the code so that the internal calls return
16158 an error value and exceptions are thrown from managed code.
16160 * icall.c: Add type info to the socket icalls.
16162 2004-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16164 * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
16167 2004-04-07 Martin Baulig <martin@ximian.com>
16169 * class.c (mono_class_from_generic_parameter): Don't default
16170 `klass->parent' to `mono_defaults.object_type'.
16172 2004-04-07 Martin Baulig <martin@ximian.com>
16174 * reflection.c (mono_reflection_initialize_generic_parameter): Set
16175 `param->pklass->reflection_info'.
16177 2004-04-07 Jackson Harper <jackson@ximian.com>
16179 * culture-info-tables.h: Fix date separator symbol.
16181 2004-04-07 Martin Baulig <martin@ximian.com>
16183 * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
16184 from System.Type to System.MonoType.
16186 2004-04-07 Martin Baulig <martin@ximian.com>
16189 (MonoReflectionGenericParam): Added `has_reference_type' and
16190 `has_value_type' fields.
16192 * reflection.c (mono_image_get_generic_param_info): Encode the
16193 correct flags if we have the `class' or `struct' constraint.
16195 2004-04-07 Martin Baulig <martin@ximian.com>
16198 (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
16200 2004-04-07 Jackson Harper <jackson@ximian.com>
16202 * appdomain.c: Revert extra patches, just wanted to bump the
16205 2004-04-07 Jackson Harper <jackson@ximian.com>
16207 * Makefile.am: Add culture-info private headers.
16208 * icall.c: Add new icalls for contructing locales.
16209 * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
16210 * locales.h: Declare new culture info construction methods.
16211 * object.h: Add new fields used to avoid the CultureMap to
16213 * culture-info.h: Definition of structs used in the culture info
16215 * culture-info-tables.h: Autogenerated tables that contain culture
16216 info data. This file was generated with the locale-builder tool.
16217 * appdomain.c: Incement corlib version number.
16219 2004-04-07 Bernie Solomon <bernard@ugsolutions.com>
16221 * appdomain.c: (mono_runtime_init) move mono_thread_init
16222 to before mono_object_new calls so critical sections
16223 are initialized before use.
16225 2004-04-07 Martin Baulig <martin@ximian.com>
16228 (ves_icall_TypeBuilder_define_generic_parameter): Removed.
16229 (ves_icall_MethodBuilder_define_generic_parameter): Removed.
16230 (ves_icall_MonoGenericParam_initialize): Removed.
16231 (monogenericparam_icalls): Removed.
16232 (generictypeparambuilder_icalls): Added new table for
16233 System.Reflection.Emit.GenericTypeParameterBuilder.
16236 (mono_reflection_define_generic_parameter): Removed.
16237 (mono_reflection_initialize_generic_parameter): This is now called
16238 from GenericTypeParameterBuilder's .ctor.
16240 2004-04-06 Martin Baulig <martin@ximian.com>
16242 * class.c (mono_class_init): Don't inflate nested classes in a
16244 (mono_type_get_name_recurse): Include the generic arguments for
16245 generic instances and generic type declarations.
16246 (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
16247 (_mono_class_get_instantiation_name): Removed.
16248 (mono_class_create_generic): Always use `gklass->name' as our name.
16250 * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
16252 * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
16253 (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
16254 (ves_icall_MonoMethod_GetGenericParameters): Renamed to
16255 ves_icall_MonoMethod_GetGenericArguments() and correctly handle
16256 closed generic methods here.
16259 (mono_reflection_generic_inst_get_nested_types): Removed.
16260 (inflate_mono_method): Copy the generic parameters from the
16261 MonoMethodHeader into out MonoGenericMethod.
16263 2004-04-06 Martin Baulig <martin@ximian.com>
16266 (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
16268 * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
16270 * reflection.c (build_compressed_metadata): If we have any entries
16271 in the GenericParam, MethodSpec or GenericParamConstraint tables,
16272 set the header version to 1.1.
16274 2004-04-06 Martin Baulig <martin@ximian.com>
16276 * class.c (mono_class_init): If we're a generic instance,
16277 initialize our nested classes, too.
16278 (_mono_class_get_instantiation_name): Deal with the new `!%d'
16281 2004-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16283 * process.c: quote the argument passed to the shell on windows.
16285 2004-04-05 Zoltan Varga <vargaz@freemail.hu>
16287 * threads.c (mono_alloc_special_static_data): Allow this to be
16288 called during startup.
16290 2004-04-02 Martin Baulig <martin@ximian.com>
16293 (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
16295 2004-04-02 Zoltan Varga <vargaz@freemail.hu>
16297 * icall.c: Fix build.
16299 2004-04-02 Sebastien Pouliot <sebastien@ximian.com>
16301 * Makefile.am: Added security.c|h.
16302 * icall.c: Added icall for get_UserName;
16303 * security.c: New file for security related icalls. Added function
16304 get_UserName for System.Environment (fix #56144).
16305 * security.h: New. Header file for security.c
16307 2004-04-02 Dick Porter <dick@ximian.com>
16309 * icall.c: Deleted the icalls that were obsoleted some time ago
16310 by the ICU string code, and which were mixed into the icall
16311 rearranging. Fixes bug 55969.
16314 * string-icalls.c: Deleted the code that those icalls reference.
16316 2004-04-01 Martin Baulig <martin@ximian.com>
16318 * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
16320 * class.c (mono_class_from_generic_parameter): Don't set
16321 TYPE_ATTRIBUTE_INTERFACE.
16322 (my_mono_class_from_generic_parameter): Likewise.
16324 2004-04-01 Martin Baulig <martin@ximian.com>
16326 * loader.c (find_method): Added an optional `MonoClass *ic'
16327 argument to search in a specific interface.
16328 (mono_get_method_constrained): New public function.
16330 2004-04-01 Martin Baulig <martin@ximian.com>
16332 * reflection.c (mono_image_get_generic_field_token): Use the
16333 `handleref' cache here.
16335 2004-04-01 Martin Baulig <martin@ximian.com>
16337 * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
16339 * reflection.c (create_generic_typespec): Use the `typespec' hash
16340 here, not the `typeref' one.
16342 2004-04-01 Martin Baulig <martin@ximian.com>
16344 * class.c (mono_class_inflate_generic_type): Moved the
16345 functionality into a new static inflate_generic_type() which
16346 returns NULL if it didn't do anything. Only increment the
16347 `mono_stats.inflated_type_count' if we actually inflated
16349 (mono_class_get_full): Check the classes type to see whether we
16350 need to inflate it; also inflate MONO_TYPE_(M)VAR.
16352 2004-04-01 Jackson Harper <jackson@ximian.com>
16354 * reflection.c: Set culture for assembly references.
16356 2004-04-01 Ben Maurer <bmaurer@users.sourceforge.net>
16358 * reflection.[ch], icall.[ch], Fix support for pinning variables.
16360 2004-04-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16363 (do_mono_assembly_open): the critical section also covers
16364 mono_image_open and mono_image_open_from_data. Fixes bug #56327.
16366 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16369 (mono_manage_threads): abort the background threads when finishing.
16372 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16374 * gc.c: only close the done_event handle if there was no timeout.
16377 2004-03-30 Martin Baulig <martin@ximian.com>
16379 * icall.c (icall_entries): It's called "System.Activator", not
16380 "System.Activation".
16382 2004-03-30 Martin Baulig <martin@ximian.com>
16384 * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
16385 (mono_class_create_from_typespec): Likewise.
16387 2004-03-30 Martin Baulig <martin@ximian.com>
16389 * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
16390 `has_ctor_constraint' and `initialized'.
16392 2004-03-30 Martin Baulig <martin@ximian.com>
16394 * reflection.c (encode_new_constraint): New static function to add
16395 the constructor constraint attribute to a type parameter.
16396 (encode_constraints): Call encode_new_constraint() if necessary.
16399 (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
16401 * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
16403 2004-03-29 Ben Maurer <bmaurer@users.sourceforge.net>
16405 * reflection.c, icall.c: add support for pinning variables.
16407 2004-03-29 Bernie Solomon <bernard@ugsolutions.com>
16409 * marshal.c (mono_marshal_get_managed_wrapper):
16410 init bool local with zero rather than null.
16412 2004-03-29 Martin Baulig <martin@ximian.com>
16414 * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
16415 the "official" behavior here.
16416 (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
16418 2004-03-29 Martin Baulig <martin@ximian.com>
16420 * icall.c: Reflect latest API changes.
16422 2004-03-29 Martin Baulig <martin@ximian.com>
16424 * loader.c (mono_get_method_from_token): Also call
16425 mono_metadata_load_generic_params () for abstract and interface
16426 methods; replace the type arguments in the method signature with
16427 the ones which are loaded from the metadata.
16429 2004-03-29 Lluis Sanchez Gual <lluis@ximian.com>
16431 * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
16432 of the lock is not the current thread. MS.NET don't do it, in spite of
16433 what the documentation says. See bug #56157.
16435 2004-03-28 Martin Baulig <martin@ximian.com>
16437 * class.c (mono_class_init): Don't call init_properties() and
16438 init_events() for generic instances; set `prop->parent' when
16439 inflating properties.
16441 * reflection.c (mono_generic_inst_get_object): Call
16442 `mono_class_init (ginst->klass)'.
16443 (mono_type_get_object): Only create a MonoGenericInst if your
16444 generic type is a TypeBuilder.
16445 (do_mono_reflection_bind_generic_parameters): Only set
16446 `ginst->is_dynamic' if our generic type is a TypeBuilder.
16448 2004-03-28 Zoltan Varga <vargaz@freemail.hu>
16450 * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
16453 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16455 * icall.c: added Kill_internal icall.
16456 * process.[ch]: added Kill_internal icall.
16458 2004-03-25 Martin Baulig <martin@ximian.com>
16460 * class.h (MonoStats): Added `generic_instance_count',
16461 `inflated_method_count', `inflated_type_count' and
16462 `generics_metadata_size'.
16464 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16466 * reflection.c: no warnings now.
16468 2004-03-25 Martin Baulig <martin@ximian.com>
16470 * class.c (mono_class_get_full): New public function; does a
16471 mono_class_get(), but also takes a `MonoGenericContext *'.
16473 * loader.c (mono_field_from_memberref): Renamed to
16474 `field_from_memberref', made static and added `MonoGenericContext *'
16476 (mono_field_from_token): Added `MonoGenericInst *' argument.
16477 (method_from_memberef): Likewise.
16478 (mono_get_method_from_token): Likewise.
16479 (mono_get_method_full): New public function; does a
16480 mono_get_method(), but also takes a `MonoGenericContext *'.
16482 * verify.c (mono_method_verify): Get the method's generic context
16483 and pass it to mono_field_from_token(), mono_get_method_full() and
16484 mono_class_get_full().
16486 2004-03-25 Martin Baulig <martin@ximian.com>
16488 * class.c (mono_class_inflate_generic_type): Take a
16489 `MonoGenericContext *' instead of a `MonoGenericInst *' and a
16490 `MonoGenericMethod *'.
16492 2004-03-25 Martin Baulig <martin@ximian.com>
16494 * loader.h (MonoMethodInflated): Store the MonoGenericContext
16495 instead of the MonoGenericMethod here.
16497 2004-03-25 Martin Baulig <martin@ximian.com>
16499 * class.h (MonoGenericInst): Added `MonoGenericContext *context';
16500 each time we create a new MonoGenericInst, we also create a new
16501 context which points back to us.
16503 * class.c (inflate_method): Use `ginst->context' instead of
16504 creating a new context.
16506 * loader.c (method_from_memberref): Use
16507 `klass->generic_inst->context' instead of creating a new context.
16509 2004-03-25 Martin Baulig <martin@ximian.com>
16511 * class.h (MonoGenericContext): New struct.
16512 (MonoGenericMethod): Removed `generic_inst'.
16514 * class.c (mono_class_inflate_generic_method): Take a
16515 `MonoGenericContext *' instead of a `MonoGenericMethod *'.
16517 2004-03-25 Martin Baulig <martin@ximian.com>
16519 * loader.h (MonoMethodInflated): New typedef.
16521 * metadata.h (MonoMethodSignature): Removed `gen_method', make
16522 `generic_param_count' consume just 30 bits, added `is_inflated'
16523 and `has_type_parameters' flags (one bit each).
16525 * class.c (mono_class_inflate_generic_method): Create a
16526 MonoMethodInflated instead of a MonoMethodNormal and set
16527 `is_inflated' in the method signature.
16529 * class.h (MonoGenericMethod): Removed `generic_method'.
16531 2004-03-25 Lluis Sanchez Gual <lluis@ximian.com>
16533 * image.c: Make sure the name of a MonoImage is always an absolute path.
16534 This fixes bug #54415.
16536 2004-03-24 Martin Baulig <martin@ximian.com>
16538 * class.c (mono_class_setup_vtable): If we're a generic instance,
16539 use our generic type's vtable size.
16541 2004-03-24 Zoltan Varga <vargaz@freemail.hu>
16543 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
16544 MONO_NO_UNLOAD env var as a temporary workaround for unloading
16547 2004-03-23 Martin Baulig <martin@ximian.com>
16549 * class.h (MonoDynamicGenericInst): Added `int count_events' and
16550 `MonoEvent *events'.
16552 * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
16553 (typebuilder_icalls): Added "get_event_info"; calls
16554 mono_reflection_event_builder_get_event_info().
16556 * reflection.c (mono_reflection_generic_inst_initialize): Added
16557 `MonoArray *events'.
16558 (mono_reflection_event_builder_get_event_info): New function.
16560 2004-03-23 Bernie Solomon <bernard@ugsolutions.com>
16562 * object.h: add mono_type_initialization_init
16564 * object.c (mono_runtime_class_init):
16565 implement class constructor synchronization rules
16566 to cope with threading issues.
16567 add mono_type_initialization_init
16569 * appdomain.c (mono_runtime_init): call
16570 mono_type_initialization_init
16572 * class.h: removing initializing field from MonoVTable
16574 2004-03-23 Martin Baulig <martin@ximian.com>
16576 * class.c (my_mono_class_from_generic_parameter): Use
16577 `param->name' if it's not NULL.
16579 2004-03-22 Ben Maurer <bmaurer@users.sourceforge.net>
16581 * class.c: do not insert non-virtual methods in the vtable.
16582 * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
16583 that means the method is non-virtual. This never would have
16586 2004-03-22 Lluis Sanchez Gual <lluis@ximian.com>
16588 * profiler.c: Added lock for accessing coverage_hash.
16590 2004-03-22 Martin Baulig <martin@ximian.com>
16592 * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
16593 `method->method->signature->generic_param_count != 0' to make it
16594 work for interface methods.
16596 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16598 * process.c: quote the string passed to the shell using g_shell_quote.
16600 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16603 (mono_threads_manage): don't remove the finalizer thread and self
16604 from the threads hash table so that mono_thread_manage can be called
16607 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16609 * process.c: quote the arguments when UseShellExecute is true. Fixes
16612 2004-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16614 * threads.c: set mono_thread_detach as a cleanup routine for every
16615 thread. This way it's always executed upon thread termination, either
16616 aborted or finished normally. No more xsp hangs!
16618 2004-03-17 Martin Baulig <martin@ximian.com>
16620 * class.h (MonoGenericInst): Replaced the `GList *nested' with an
16621 `int count_nested' and a `MonoType **nested'.
16623 * reflection.c (mono_reflection_bind_generic_parameters): Moved
16624 most of the functionality into a new static
16625 do_mono_reflection_bind_generic_parameters() and don't take a
16626 `MonoType *nested_in' argument any more. Don't compute nested
16628 (mono_reflection_generic_inst_get_nested_types): New public method
16629 to get nested types.
16631 * class.c (mono_class_create_generic): Set `klass->nested_in' if
16632 we're a nested class.
16634 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
16635 mono_reflection_generic_inst_get_nested_types() to compute the
16638 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
16640 * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
16641 descriptive error message under windows.
16643 2004-03-17 Martin Baulig <martin@ximian.com>
16645 * class.c (dup_type): Added `const MonoType *original' argument;
16646 copy the attrs from the original type.
16648 2004-03-17 Martin Baulig <martin@ximian.com>
16650 * metadata.c (do_mono_metadata_parse_generic_inst): Use the
16651 `m->generic_inst_cache' here.
16653 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
16655 * exception.h exception.c: Add stack_overflow_exception.
16657 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16660 (overlapped_callback): call SetEvent *after* invoking the callback.
16661 No need to call CloseHandle.
16663 2004-03-16 Martin Baulig <martin@ximian.com>
16665 * reflection.c (mono_image_get_fieldref_token): Take a
16666 `MonoReflectionField *' instead of a `MonoClassField *' and a
16667 `MonoClass *'; store the `MonoReflectionField *' in the hash.
16669 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16671 * appdomain.c: don't add the culture to the filename we're looking for
16672 if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
16674 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16676 * locales.c: don't ignore symbols when doing case insensitive compares.
16677 Thanks Dick! Fixes bug #54046.
16679 * threads.c: surround 'threads' usage with enter/leave in
16680 mono_thread_manage.
16682 2004-03-16 Zoltan Varga <vargaz@freemail.hu>
16684 * marshal.c (mono_marshal_get_native_wrapper): Char arrays are
16685 implicitly marshalled as [Out]. Fixes #55450.
16687 (mono_marshal_get_runtime_invoke): Zero out the result if there is
16690 2004-03-16 Martin Baulig <martin@ximian.com>
16692 * class.c (mono_class_from_generic_parameter): Use the actual
16695 2004-03-16 Martin Baulig <martin@ximian.com>
16697 * reflection.c (type_get_signature_size): New static function.
16698 Compues the size of the type in a method signature.
16699 (method_get_signature_size): New static function; calls
16700 type_get_signature_size() to compute the actual size of the
16701 method's signature.
16702 (method_encode_signature): Use method_get_signature_size() to get
16703 the signature's size rather than using `nparams * 10'.
16705 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16707 * file-io.h: define here WapiOverlapped on windows. I don't want the
16708 regular OVERLAPPED one.
16711 * threadpool.c: somehow, BindIoCompletionCallback is not found.
16712 Disabling AIO on windows.
16714 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16716 * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
16719 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16721 * appdomain.c: upgraded corlib version.
16723 * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
16724 and BeginWrite. Allow opening files for asynchrnous operations.
16726 * file-io.h: new struct that maps FileStreamAsyncResult.
16727 * icall.c: added new icalls.
16728 * process.[ch]: support setting child process environment variables
16729 and use the SHELL or COMSPEC when UseShellExecute is true.
16731 * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
16732 callback for async. IO is here and also BindHandle.
16734 * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
16737 2004-03-14 Zoltan Varga <vargaz@freemail.hu>
16739 * reflection.c (create_custom_attr): Allow len == 0.
16741 * object.c (mono_class_compute_gc_descriptor): Fix descriptor
16742 computation on big-endian machines.
16744 2004-03-13 Martin Baulig <martin@ximian.com>
16746 * class.h (MonoGenericInst): Added `int count_ifaces'.
16748 * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
16749 `ginst->count_ifaces' instead `klass->interface_count' since we
16750 may get called before the vtable is created.
16752 * loader.c (mono_method_get_param_names): If we're a generic
16753 instance, return and don't initialize the class.
16755 * reflection.c (mono_reflection_setup_generic_class): Don't call
16756 ensure_runtime_vtable().
16757 (mono_reflection_bind_generic_parameters): Set
16758 `ginst->count_ifaces'.
16760 2004-03-11 Jackson Harper <jackson@ximian.com>
16764 * unicode.h: Remove unused System.Char icalls.
16766 2004-03-11 Miguel de Icaza <miguel@ximian.com>
16768 * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
16769 code when we P/Invoke the first library in Windows.Forms, instead
16770 of when we first open the assembly.
16772 * assembly.c: Drop the lookup from here.
16774 2004-03-10 Martin Baulig <martin@ximian.com>
16776 * reflection.c (mono_reflection_get_custom_attrs): Use the correct
16777 class for properties, fields and events. Finally fixes #54945.
16779 2004-03-10 Martin Baulig <martin@ximian.com>
16781 * metadata.c (mono_metadata_class_equal): New static function;
16782 checks whether two generic instances or two generic parameters are
16784 (mono_metadata_type_equal): Use mono_metadata_class_equal() to
16787 2004-03-10 Martin Baulig <martin@ximian.com>
16789 * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
16791 * reflection.c (inflate_mono_method): Added `MonoObject *obj'
16792 argument and write it into the `reflection_info' field.
16795 (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
16796 (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
16798 2004-03-09 Jackson Harper <jackson@ximian.com>
16800 * char-conversions.h: use 8 bits for numeric data its all we need
16801 * icall.c: numeric data is only 8 bits now.
16803 2004-03-09 Martin Baulig <martin@ximian.com>
16805 * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
16807 * class.c (init_properties, init_events): Initialize the new
16810 * reflection.c (typebuilder_setup_properties): Likewise.
16811 (typebuilder_setup_events): Likewise.
16813 * reflection.h (MonoEventInfo): Replaced `parent with
16814 `declaring_type' and `reflected_type'.
16816 * icall.c (ves_icall_get_property_info): Distinguish between
16817 declaring and reflected type.
16818 (ves_icall_get_event_info): Likewise.
16820 2004-03-09 Martin Baulig <martin@ximian.com>
16822 * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
16823 (ves_icall_Type_GetField): Correctly set field->klass.
16825 2004-03-09 Zoltan Varga <vargaz@freemail.hu>
16827 * loader.h: Fix warning.
16829 2004-03-08 Miguel de Icaza <miguel@ximian.com>
16831 * loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
16832 library routine if present. Notice that it will still continue
16833 executing even if its missing, for those working on the Gtk#
16834 edition of Windows.Forms.
16836 * assembly.c (do_mono_assembly_open): If loading the
16837 System.Windows.Forms call mono_loader_wini_init.
16839 2004-03-04 Lluis Sanchez Gual <lluis@ximian.com>
16841 * class.h: Added MonoRemoteClass struct.
16842 * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
16843 function for MonoStrings.
16844 * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
16845 Added internal call for getting the proxy type.
16846 * marshal.c: Get the type of transparent proxies from its remote_class.
16847 Added methods that generate the IL for type checks and casts:
16848 mono_marshal_get_isinst, mono_marshal_get_castclass,
16849 mono_marshal_get_proxy_cancast.
16850 * marshal.h: Declaration of the previous new methods.
16851 * object.c: Added new moethods for creating and updating MonoRemoteClass
16852 instances: mono_remote_class, mono_upgrade_remote_class,
16853 * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
16854 * verify.c: FIx transparent_proxy_fields layout.
16855 * appdomain.c: Bump corlib version.
16857 2004-03-04 Jackson Harper <jackson@ximian.com>
16859 * icall.c: Add icall to access char conversion tables.
16860 * char-conversions.h: Character conversion tables.
16861 * Makefile.am: Add char-conversions.h private header file.
16863 2004-03-04 Zoltan Varga <vargaz@freemail.hu>
16865 * appdomain.c (unload_thread_main): Increase unloading timeout to
16866 10 sec as a temporary workaround for Nant problems.
16868 2004-02-29 Zoltan Varga <vargaz@freemail.hu>
16870 * gc.c: Add checks for GC_enable and GC_disable.
16872 * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
16873 (jaak@zd.com.pl). Fix memory corruption in String.Replace
16876 2004-02-27 Martin Baulig <martin@ximian.com>
16878 * reflection.c (mono_reflection_bind_generic_parameters): Take a
16879 `MonoReflectionType *' instead of a `MonoType *'.
16881 2004-02-26 Zoltan Varga <vargaz@freemail.hu>
16883 * gc.c (run_finalize): Avoid finalizing the object representing the
16885 (finalizer_thread): Fix warning.
16887 2004-02-25 Martin Baulig <martin@ximian.com>
16889 * class.c (_mono_class_get_instantiation_name): Added `int offset'
16890 argument for nested types.
16891 (mono_class_create_generic): Added support for nested generictypes.
16893 * class.h (MonoGenericInst): Added `MonoType *nested_in' and
16896 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
16898 * reflection.c (method_encode_signature): Increase the minimum
16899 value of `size' from 10 to 11.
16900 (mono_reflection_bind_generic_parameters): Take `int type_argc'
16901 and `MonoType **types' arguments instead of the `MonoArray
16902 *types'; added `MonoType *nested_in'. Recursively instantiate
16905 2004-02-23 Zoltan Varga <vargaz@freemail.hu>
16907 * appdomain.h (MonoDomain): Add preallocated null_reference_ex and
16908 stack_overflow_ex members which are used by exception handling.
16910 * appdomain.c (mono_runtime_init): Initialize the new members.
16912 * gc.c (mono_gc_enable): New helper function.
16913 * gc.c (mono_gc_disable): New helper function.
16915 2004-02-23 Martin Baulig <martin@ximian.com>
16917 * icall.c: I must have been really stupid - make it actually work
16920 2004-02-23 Martin Baulig <martin@ximian.com>
16922 * loader.c (method_from_memberref): Only inflate the method if
16923 it's in another klass.
16925 2004-02-23 Martin Baulig <martin@ximian.com>
16927 * class.c (mono_class_inflate_generic_type): Fixed two bugs.
16928 (mono_class_init): If we're a generic instance and an interface,
16929 compute `class->interface_id'; also create `class->interfaces'
16930 here and inflate them.
16932 * metadata.c (do_mono_metadata_parse_generic_inst): Compute
16934 (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
16936 * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
16938 2004-02-15 Miguel de Icaza <miguel@ximian.com>
16940 * reflection.c (method_encode_code): Improved the error message
16941 generated by the exception.
16943 2004-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16945 * icall.c: Martin did not do what he said in the ChangeLog for
16946 2004-02-18, but put back the changes for properties and events.
16947 Commenting those changes out again and adding comment to bug #54518.
16949 * process.c: removed warning.
16951 2004-02-20 Zoltan Varga <vargaz@freemail.hu>
16953 * marshal.c (emit_struct_conv): Print an error message instead of
16954 asserting when a type does not have the StructLayout attribute.
16956 2004-02-20 Martin Baulig <martin@ximian.com>
16958 * reflection.c (mono_type_get_object): Also use the cache for
16960 (mono_reflection_bind_generic_parameters): Always compute
16963 2004-02-20 Martin Baulig <martin@ximian.com>
16965 * class.h (MonoGenericMethod): Removed `klass'.
16967 * class.c (mono_class_inflate_generic_method): Added `MonoClass
16970 2004-02-20 Martin Baulig <martin@ximian.com>
16972 * reflection.c (method_encode_methodspec): Actually use the
16973 uninflated signature for the memberref.
16975 2004-02-20 Martin Baulig <martin@ximian.com>
16977 * class.h (MonoGenericMethod): Removed `declaring'.
16979 * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
16980 is NULL, compute it here.
16982 2004-02-20 Martin Baulig <martin@ximian.com>
16984 * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
16986 * metadata.c (mono_metadata_generic_inst_hash): New method.
16987 (mono_metadata_generic_inst_equal): New method.
16989 * reflection.c (mono_reflection_bind_generic_parameters): Use the
16990 `klass->image->generic_inst_cache' cache to avoid creating
16991 duplicate MonoGenericInst's.
16993 * class.c (mono_class_inflate_generic_type): Use the cache.
16995 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
16997 * object.c: fixed gc descriptor calculation for embedded valuetypes.
16999 2004-02-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17001 * icall.c: added Socket.WSAIoctl icall.
17003 * socket-io.[ch]: implemented
17004 ves_icall_System_Net_Sockets_Socket_WSAIoctl.
17006 2004-02-19 Atsushi Enomoto <atsushi@ximian.com>
17008 * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
17010 2004-02-18 Urs C Muff <umuff@quark.com>
17012 * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
17013 this work on PPC and other big-endian architectures.
17015 * debug-mono-symfile.h: Prepended the names of all the `guint32'
17016 fields with an underscore to make sure they're only accessed by
17017 the read32() macro.
17019 2004-02-18 Martin Baulig <martin@ximian.com>
17021 * icall.c: Put the klass->refclass changes back for methods and
17022 fields, but not for properties and events. We're currently not
17023 distinguishing between DeclaringType and ReflectedType for
17024 properties and events, that's what caused the regressions.
17026 2004-02-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17029 (mono_async_result_new): the handle can be NULL.
17031 * threadpool.c: Use an event instead of a semaphore, don't initialize
17032 it until needed. This saves quite a few semaphores from being created
17033 when using the threadpool.
17035 2004-02-18 Zoltan Varga <vargaz@freemail.hu>
17037 * object.c (mono_string_is_interned_lookup): Fix interning of long
17038 strings. Fixes #54473.
17040 * domain.c (ldstr_equal): Optimize if the two strings are equal.
17042 * icall.c: Revert the klass->refclass changes since they introduce
17043 regressions (bug #54518).
17045 2004-02-18 Martin Baulig <martin@ximian.com>
17047 * class.c (mono_class_init): If we're a generic instance and don't
17048 come from a TypeBuilder, inflate our members here.
17049 (mono_class_from_generic): Removed; just use `ginst->klass' instead.
17050 (mono_class_create_generic): New public method.
17051 (mono_class_initialize_generic): Removed.
17052 (get_instantiation_name): Renamed to
17053 _mono_class_get_instantiation_name() and made it public.
17055 2004-02-18 Martin Baulig <martin@ximian.com>
17057 * class.c (mono_class_inflate_generic_type): Clear the new
17058 instance's `nginst->klass' when inflating a generic instance.
17059 (mono_class_is_subclass_of): Added (basic) support for generic
17062 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
17064 * appdomain.h, domain.c: use a MonoCodeManager instead of a
17065 MonoMempool to hold compiled native code.
17067 2004-02-17 Martin Baulig <martin@ximian.com>
17069 * class.h (MonoDynamicGenericInst): Added `count_properties' and
17072 * reflection.c (mono_reflection_generic_inst_initialize): Added
17073 `MonoArray *properties' argument.
17075 * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.
17077 2004-02-17 Martin Baulig <martin@ximian.com>
17079 * icall.c (ves_icall_Type_GetFields): Renamed to
17080 ves_icall_Type_GetFields_internal() and added a
17081 `MonoReflectionType *rtype' argument; pass it to
17082 mono_field_get_object() to set the field's "reflected" type.
17083 (ves_icall_Type_GetConstructors): Likewise.
17084 (ves_icall_Type_GetEvents): Likewise.
17085 (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
17086 argument; pass it to mono_method_get_object() to set the method's
17089 2004-02-17 Martin Baulig <martin@ximian.com>
17091 * class.h (MonoDynamicGenericInst): New type.
17092 (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
17094 * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
17095 (ves_icall_MonoGenericInst_GetConstructors): New interncall.
17096 (ves_icall_MonoGenericInst_GetFields): New interncall.
17098 * class.c (mono_class_from_generic): Don't call
17099 mono_class_initialize_generic() if this is a dynamic instance;
17100 ie. it's being created from a TypeBuilder.
17101 Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
17102 `class->byval_arg.type'.
17104 * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
17105 to `inflate_method' and made static.
17106 (mono_reflection_inflate_field): Removed.
17107 (mono_reflection_generic_inst_initialize): New public method.
17109 * reflection.h (MonoReflectionGenericInst): Removed `methods',
17110 `ctors' and `fields'; added `initialized'.
17112 2004-02-14 Zoltan Varga <vargaz@freemail.hu>
17114 * debug-helpers.c (mono_method_full_name): Fix output for empty
17117 2004-02-12 Martin Baulig <martin@ximian.com>
17119 * class.h (MonoClassField): Added `MonoType *generic_type'.
17121 * reflection.c (mono_image_get_fieldref_token): Added support for
17122 instantiated generic types.
17123 (field_encode_inflated_field): Removed.
17124 (mono_image_get_inflated_field_token): Removed.
17125 (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
17127 * reflection.h (MonoReflectionInflatedField): Removed.
17129 2004-02-12 Martin Baulig <martin@ximian.com>
17131 * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
17132 `gen_method' field from MonoMethodHeader to MonoMethodSignature.
17134 * reflection.c (mono_image_get_methodspec_token): Take a
17135 `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
17136 (mono_image_create_token): Check whether we have a
17137 `method->signature->gen_method' and call
17138 mono_image_get_methodspec_token() if appropriate.
17139 (inflated_method_get_object): Removed.
17140 (mono_reflection_bind_generic_method_parameters): Return a
17141 `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
17142 (mono_reflection_inflate_method_or_ctor): Likewise.
17144 * reflection.h (MonoReflectionInflatedMethod): Removed.
17146 2004-02-12 Zoltan Varga <vargaz@freemail.hu>
17148 * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
17149 for custom valuetype marshalling.
17151 * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
17153 2004-02-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17155 * icall.c: fixed WSAGetLastError_internal name.
17157 2004-02-11 Zoltan Varga <vargaz@freemail.hu>
17159 * threads.c (mono_thread_attach): Allow this to be called multiple
17160 times for a thread.
17162 * threads.c (build_wait_tids): Do not wait for ourselves.
17164 * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the
17165 appdomain list is empty.
17167 * marshal.c (mono_marshal_get_native_wrapper): Do not free the
17168 memory returned by mono_string_builder_to_utf16, since it points into
17169 managed memory. Thanks to Bernie Solomon for noticing this.
17171 * icall.c: Add AppDomainSetup icalls.
17173 * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
17175 * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
17178 * reflection.c (reflection_methodbuilder_to_mono_method): Save
17179 custom attributes to the method_aux struct. Also fix array indexes etc.
17181 * loader.c (mono_method_get_param_names): Make dynamic case work again.
17183 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
17185 * icall.c, loader.c: icall cleanup: we save quite a bit of memory
17186 (both static and runtime) and reduce startup time.
17188 2004-02-10 Zoltan Varga <vargaz@freemail.hu>
17190 * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
17191 AsAny marshalling conversion instead of crashing.
17193 * marshal.c: Fix warnings.
17195 2004-02-09 Martin Baulig <martin@ximian.com>
17197 * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
17199 * reflection.h (MonoReflectionInflatedMethod): Removed the
17200 `declaring' field, it's now in the unmanaged MonoGenericMethod.
17202 * reflection.c (method_encode_methodspec): Removed the `method'
17203 argument; we get it from `gmethod->declaring'.
17204 (inflated_method_get_object): Removed the `declaring' argument.
17206 2004-02-09 Martin Baulig <martin@ximian.com>
17208 * class.h (MonoGenericMethod): New type.
17209 (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
17212 * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
17213 a `MonoGenericMethod *gen_method' one.
17215 * class.c (mono_class_inflate_generic_type): Take an additional
17216 `MonoGenericMethod * argument. This is only non-NULL if we're
17217 inflating types for a generic method.
17218 (mono_class_inflate_generic_signature): Renamed to
17219 inflate_generic_signature() and made static; take a
17220 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
17221 (inflate_generic_header): Take a `MonoGenericMethod *' argument
17222 instead of a `MonoGenericInst *' one.
17223 (mono_class_inflate_generic_method): Likewise.
17225 * reflection.c (encode_generic_method_sig): Take a
17226 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
17227 (method_encode_methodspec): Likewise.
17228 (inflated_method_get_object): Likewise.
17230 * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
17231 field with a `MonoGenericMethod *gmethod' one.
17233 2004-02-08 Bernie Solomon <bernard@ugsolutions.com>
17235 * class.h (mono_class_has_parent): add parens to expansion
17238 2004-02-08 Martin Baulig <martin@ximian.com>
17240 * image.h (MonoImage): Removed `generics_cache'.
17242 * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
17243 instead of a `MonoType *' argument; removed the `inflate_methods'
17244 argument. Don't inflate methods here.
17246 * loader.c (find_method): If it's a generic instance, call
17247 mono_class_init() on the `sclass->generic_inst->generic_type'.
17249 * metadata.c (mono_type_size): Make this work on uninitialized
17250 generic instances; call it on the `ginst->generic_type's class.
17252 * reflection.c (mono_reflection_bind_generic_parameters): Call
17253 mono_class_from_generic() to create the `ginst->klass'.
17255 2004-02-08 Martin Baulig <martin@ximian.com>
17257 * class.h (MonoClass): Changed type of `generic_inst' from
17258 `MonoType *' to `MonoGenericInst *'.
17260 2004-02-08 Martin Baulig <martin@ximian.com>
17262 * icall.c (ves_icall_Type_BindGenericParameters): Just call
17263 mono_type_get_object(), this is now creating a `MonoGenericInst'
17264 for MONO_TYPE_GENERICINST.
17265 (ves_icall_MonoGenericInst_GetParentType): Likewise.
17266 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
17268 * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
17269 instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
17270 (inflated_method_get_object): Added `MonoClass *refclass' argument.
17271 (mono_reflection_inflate_method_or_ctor): Correctly set declaring
17272 and reflected type.
17274 * reflection.h (MonoReflectionInflatedMethod): Removed
17275 `declaring_type' and `reflected_type'.
17277 2004-02-08 Martin Baulig <martin@ximian.com>
17279 * class.h (MonoGenericInst): Added `MonoType *parent' and
17280 `MonoType **ifaces'.
17282 * reflection.h (MonoReflectionGenericInst): Removed `klass',
17283 `parent' and `interfaces'.
17285 * reflection.c (mono_reflection_bind_generic_parameters): Take a
17286 `MonoType *' argument and return a `MonoType *'.
17289 (ves_icall_MonoGenericInst_GetParentType): New interncall.
17290 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
17292 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
17294 * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
17295 valuetype marshalling.
17297 2004-02-06 Martin Baulig <martin@ximian.com>
17300 (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
17301 (my_mono_class_from_generic_parameter): Likewise.
17303 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
17305 * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
17306 contents of the symbol files lazily.
17308 * object.h (MonoThread): Add 'name' and 'name_len' fields.
17310 * threads.h threads.c icall.c: New icalls for getting and setting the
17313 2004-02-05 Zoltan Varga <vargaz@freemail.hu>
17315 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID):
17316 Raise an exception when the domain is not found.
17318 2004-02-03 Martin Baulig <martin@ximian.com>
17320 * reflection.c (mono_image_get_methodspec_token): Use the
17321 uninflated signature; fixes gen-33.
17323 2004-02-02 Zoltan Varga <vargaz@freemail.hu>
17325 * gc.c threads.c: Make the finalizer thread a normal managed thread so
17326 the finalizer code can use thread functionality.
17328 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for
17329 the finalizer thread.
17331 * threads.c: Make some functions more robust.
17333 * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
17335 * metadata.h: Add new marshalling conventions.
17337 * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
17338 stringbuilder marshalling. Fixes #53700.
17340 * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
17342 * reflection.c (mono_image_get_type_info): Save declarative security
17345 * reflection.c (mono_image_get_field_info): Handle uninitialized
17346 unmanaged fields as well.
17348 * appdomain.c: Bump corlib version.
17350 2004-02-01 Martin Baulig <martin@ximian.com>
17352 * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
17353 method type arguments.
17355 2004-01-30 Duncan Mak <duncan@ximian.com>
17357 * marshal.h: Add prototype for
17358 "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
17360 "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
17363 2004-01-30 Zoltan Varga <vargaz@freemail.hu>
17365 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
17366 (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
17368 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
17370 * marshal.c (mono_marshal_get_native_wrapper): Add support for
17371 custom marshalling of valuetypes.
17373 * marshal.c: Fix some warnings.
17375 2004-01-29 Martin Baulig <martin@ximian.com>
17377 * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
17378 for generic method parameters.
17380 * reflection.c (method_encode_methodspec): Write the uninflated
17381 signature into the methodspec table.
17382 (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
17383 is always the uninflated method.
17384 (reflection_methodbuilder_to_mono_method): Copy the generic
17385 parameters from the MethodBuilder into `header->gen_params'.
17387 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
17389 * class.c (mono_class_from_generic_parameter): Fix warning.
17391 2004-01-27 Martin Baulig <martin@ximian.com>
17393 * class.c (mono_class_from_generic_parameter): Don't create
17394 `klass->methods' here.
17396 2004-01-26 Zoltan Varga <vargaz@freemail.hu>
17398 * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
17399 extension since it does not work with libraries named lib<FOO>.dll.so.
17401 2004-01-25 Martin Baulig <martin@ximian.com>
17403 * class.c (mono_class_inflate_generic_type): Added support for
17404 MONO_TYPE_GENERICINST.
17406 * reflection.c (mono_reflection_inflate_method_or_ctor): Also
17407 inflate methods on open constructed types.
17409 2004-01-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17411 * object.c: fire ProcessExit event in the root AppDomain after running
17412 Main. Fixes bug #53299.
17414 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
17416 * socket-io.c: include the new socket-wrappers.h header.
17417 Use the wrappers instead of the unix socket functions to make the code
17420 2004-01-23 Zoltan Varga <vargaz@freemail.hu>
17422 * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
17424 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
17427 2004-01-22 Zoltan Varga <vargaz@freemail.hu>
17429 * reflection.c (mono_image_create_pefile): Handle the case when the
17430 entry point is not a MethodBuilder.
17432 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
17433 field to ReflectionMethod since it is not allways a builder.
17435 * reflection.c (type_get_fully_qualified_name): New helper function to
17436 return the fully qualified name of a type.
17438 * reflection.c (encode_marshal_blob): Always emit the fully qualified
17439 type name for custom marshallers.
17441 * reflection.c (mono_marshal_spec_from_builder): Ditto.
17443 * class.c (mono_class_setup_vtable): If a parent class already
17444 implements an interface, use the implementing methods from that class.
17447 2004-01-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17449 * threadpool.c: just return instead of ExitThread to allow for thread
17452 2004-01-21 Zoltan Varga <vargaz@freemail.hu>
17454 * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
17455 when closing resource modules.
17457 * reflection.c (mono_image_create_pefile): Handle the case when the
17458 entry point is not a MethodBuilder.
17460 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
17461 field to ReflectionMethod since it is not allways a builder.
17463 2004-01-20 Bernie Solomon <bernard@ugsolutions.com>
17465 * marshal.c (mono_marshal_get_managed_wrapper):
17466 mono_marshal_alloc takes native int so CONV_I
17467 the arg for 64bits.
17469 2004-01-20 Zoltan Varga <vargaz@freemail.hu>
17471 * reflection.c (fixup_cattrs): New function to fixup the methoddef
17472 tokens in the cattr table. Fixes #53108.
17474 2004-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17476 * loader.c: don't trim ".dll" before looking up in the config file.
17477 Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
17479 2004-01-19 Zoltan Varga <vargaz@freemail.hu>
17481 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
17482 Return the module which contains the resource as well.
17483 (ves_icall_System_Reflection_Module_Close): New icall.
17485 * appdomain.c: Bump corlib version number.
17487 * image.c (mono_image_addref): New public function.
17489 * assembly.c: Call mono_image_addref.
17491 * reflection.c (mono_module_get_object): Increase reference count of
17494 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
17497 * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
17498 Applied patch from Bernie Solomon <bernard@ugsolutions.com>. Throw
17499 proper exceptions on DllImport problems.
17501 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
17503 * class.c, metadata.c: eliminate CSIZE macro.
17505 2004-01-19 Lluis Sanchez Gual <lluis@ximian.com>
17507 * icall.c: Added ves_icall_type_IsInstanceOf internal call.
17508 * object.h: Added async_callback field in MonoAsyncResult.
17509 * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
17510 * verify.c: Added async_callback in MonoAsyncResult layout.
17512 2004-01-17 Zoltan Varga <vargaz@freemail.hu>
17514 * reflection.c (mono_reflection_get_custom_attrs): Add support
17517 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
17519 * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder
17521 (mono_marshal_method_from_wrapper): Add null pointer check.
17523 2004-01-16 Martin Baulig <martin@ximian.com>
17525 * debug-mono-symfile.h: Set version number to 36 and reflect
17526 latest symbol writer changes.
17528 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
17530 * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
17531 multi-dimensional arrays.
17532 (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
17533 (mono_class_from_mono_type): Use bounded_array_class_get.
17535 * class.c (mono_bounded_array_class_get): New function which takes
17536 a 'bounded' bool argument to distinguish vectors from one dimensional
17539 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call
17540 bounded_array_class_get if the array has bounds.
17542 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
17543 Search modules loaded using AssemblyBuilder:AddModule as well.
17545 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17547 * appdomain.c: increased corlib version.
17548 * filewatcher.c: removed g_print.
17550 (get_property_info): only allocate what is actually requested.
17551 (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
17553 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17555 * Makefile.am: added filewatcher.[ch]
17556 * filewatcher.[ch]: FileSystemWatcher runtime support.
17557 * icall.c: added new FSW icalls.
17559 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
17561 * string-icalls.c: fix stringbuilder regression as suggested by
17562 Iain McCoy <iain@mccoy.id.au>.
17564 2004-01-13 Zoltan Varga <vargaz@freemail.hu>
17566 * process.c (process_read_stringtable_block): Recognize '007f' as
17567 a language neutral stringtable block.
17569 2004-01-12 Patrik Torstensson
17571 * object.h (MonoStringBuilder) : Changed layout to support our
17572 new stringbuilder class.
17573 * marshal.c: Change marshalling to support the new layout of
17575 * appdomain.c: increased version number because new layout of
17578 2004-01-12 Zoltan Varga <vargaz@freemail.hu>
17580 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
17581 assembly name as an string instead of an AssemblyName, since it is
17582 easier to extract info from it.
17584 * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
17585 the culture subdirectories too. Fixes #52231.
17587 2004-01-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17589 * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
17590 It takes 2 new parameters with an optional name for the method to look
17591 for and case ignoring info.
17593 * threadpool.c: removed unused variable.
17595 2004-01-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17597 * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
17598 It takes 2 new parameters with an optional name for the property to look
17599 for and case ignoring info.
17602 2004-01-09 Zoltan Varga <vargaz@freemail.hu>
17604 * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
17607 2004-01-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17610 * assembly.c: escape the uri before passing it to g_filename_from_uri.
17613 2004-01-07 Zoltan Varga <vargaz@freemail.hu>
17615 * reflection.c: Add support for more than one unmanaged resource.
17617 * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
17618 in field->def_value, as done in all other cases.
17620 * reflection.c (mono_reflection_get_custom_attrs): Add support for
17623 * reflection.c (mono_reflection_create_runtime_class): Remove
17624 errorneous assignment to klass->element_class, since it is already
17625 done in mono_reflection_setup_internal_class.
17627 2004-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17629 * gc.c: added missing LeaveCriticalSection.
17630 * icall.c: indented a couple of lines.
17631 * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
17632 if we call EndInvoke inside a callback. Fixes bug #52601.
17634 2004-01-07 Martin Baulig <martin@ximian.com>
17636 * mono-debug-debugger.h
17637 (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
17639 2004-01-06 Miguel de Icaza <miguel@ximian.com>
17641 * appdomain.c: Use messages in NotImplementedException.
17643 * exception.c (mono_get_exception_not_implemented): Now this takes
17644 a message argument.
17646 * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
17647 exception instead of g_asserting an aborting when something is not
17650 Add some inline docs.
17652 2004-01-05 Zoltan Varga <vargaz@freemail.hu>
17654 * reflection.h: Update after changes to object layout.
17656 * reflection.c: Implement saving of unmanaged aka win32 resources.
17658 * appdomain.c: Bump version number.
17660 * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID):
17661 Handle missing domains gracefully.
17663 2004-01-05 Atsushi Enomoto <atsushi@ximian.com>
17665 * file-io.c : On Windows, there are much more invalid_path_chars.
17667 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
17669 * class.h, object.c: prepare for GetType () speedup.
17671 2003-12-24 Atsushi Enomoto <atsushi@ximian.com>
17673 * profiler.c: workaround for --profile null reference exception on
17674 cygwin. Patch by Patrik Torstensson.
17676 2003-12-22 Bernie Solomon <bernard@ugsolutions.com>
17678 * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
17679 make work for unaligned access.
17681 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
17683 * class.c: small cleanup (class->fields [i] -> field).
17684 * image.c: check address of metadata is valid.
17686 2003-12-22 Zoltan Varga <vargaz@freemail.hu>
17688 * assembly.h assembly.c (mono_assembly_loaded): New public function to
17689 search the list of loaded assemblies.
17691 * reflection.c (mono_reflection_type_from_name): Use
17692 mono_assembly_loaded instead of mono_image_loaded.
17694 * reflection.c: Fix warnings.
17696 2003-12-20 Zoltan Varga <vargaz@freemail.hu>
17698 * image.h (MonoImage): Add a new 'dynamic' field to denote that the image
17699 is dynamic. This is needed since an assembly can contain both dynamic and
17700 non-dynamic images.
17702 * class.c loader.c metadata.c object.c: Use image->dynamic instead of
17705 * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
17707 * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
17708 to store modules loaded using AddModule.
17710 * reflection.c (mono_image_fill_file_table): Generalize this so it works
17713 * reflection.c (mono_image_fill_export_table_from_class): New helper function.
17715 * reflection.c (mono_image_fill_export_table_from_module): New function to
17716 fill out the EXPORTEDTYPES table from a module.
17718 * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
17719 into a separate function. Also handle loaded non-dynamic modules.
17721 * reflection.c (mono_image_basic_init): Fix memory allocation.
17723 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17725 * assembly.c (mono_assembly_load_references): Make this public.
17727 2003-12-19 Martin Baulig <martin@ximian.com>
17729 * class.c (mono_class_initialize_generic): Made this static, take
17730 a `MonoGenericInst *' instead of a `MonoClass *'.
17731 (mono_class_from_generic): Call mono_class_initialize_generic()
17732 unless we're already initialized or being called from
17733 do_mono_metadata_parse_generic_inst().
17735 * class.h (MonoGenericInst): Added `initialized' and
17736 `init_pending' flags.
17738 * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
17739 `mono_class_init (gklass)' or mono_class_initialize_generic()
17740 here; set `generic_inst->init_pending' while parsing the
17743 2003-12-19 Bernie Solomon <bernard@ugsolutions.com>
17745 * locales.c: include string.h for memxxx prototypes
17747 2003-12-19 Zoltan Varga <vargaz@freemail.hu>
17749 * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
17750 constructor when accessing literal fields.
17752 2003-12-17 Zoltan Varga <vargaz@freemail.hu>
17754 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17756 * reflection.c (assembly_add_resource_manifest): New function to fill
17757 the MANIFESTRESOURCE table.
17759 * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
17761 * reflection.h: Update to changes in class layout.
17763 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted):
17764 Reenable call to mono_runtime_is_shutting_down ().
17766 * appdomain.c (mono_runtime_is_shutting_down): New helper function to
17767 determine if the runtime is shutting down.
17769 2003-12-16 Jackson Harper <jackson@ximian.com>
17771 * icall.c: comment out call to mono_runtime_is_shutting_down to
17774 2003-12-16 Zoltan Varga <vargaz@freemail.hu>
17776 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
17777 (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
17779 2003-12-15 Bernie Solomon <bernard@ugsolutions.com>
17781 * reflection.c: move definition of swap_with_size
17782 to before its first call
17784 2003-12-15 Zoltan Varga <vargaz@freemail.hu>
17786 * appdomain.c (mono_runtime_is_shutting_down): New public function.
17788 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
17791 * object.c: Fix warnings.
17793 * icall.c (ves_icall_Type_Get...): Only consider inherited static
17794 members if FlattenHierarchy is set.
17796 * reflection.c (mono_image_add_decl_security): New function to emit
17797 declarative security.
17799 * reflection.h reflection.c: Add support for declarative security.
17801 * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17803 2003-12-13 Zoltan Varga <vargaz@freemail.hu>
17805 appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17807 * appdomain.c verify.c: Moved corlib version checking into its own
17808 function in appdomain.c since it needs to create vtables etc.
17810 2003-12-13 Patrik Torstensson <p@rxc.se>
17812 * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this
17813 instead of unwrapped server.
17815 2003-12-12 Zoltan Varga <vargaz@freemail.hu>
17817 * verify.c (check_corlib): Fix field index.
17819 2003-12-10 Zoltan Varga <vargaz@freemail.hu>
17821 * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
17824 2003-12-10 Bernie Solomon <bernard@ugsolutions.com>
17826 * process.c: (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
17827 ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
17828 cope with sizeof(size_t) != sizeof(guint32).
17830 2003-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17832 * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
17833 in case of failure.
17835 2003-12-10 Mark Crichton <crichton@gimp.org>
17837 * icall.c: removed the GetNonZeroBytes. We now handle this case
17840 * rand.c, rand.h: Same here. Also cleaned up the clode slightly.
17842 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
17844 * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
17847 2003-12-09 Zoltan Varga <vargaz@freemail.hu>
17849 * verify.c (check_corlib): Handle the case when the version field is
17850 initialized by a static constructor.
17852 2003-12-08 Patrik Torstensson <p@rxc.se>
17854 * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
17856 2003-12-08 Martin Baulig <martin@ximian.com>
17858 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
17859 a MonoReflectionGenericParameter, also take the parameter index
17860 and name as arguments.
17861 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
17862 (ves_icall_MonoGenericParam_initialize): New interncall.
17863 (ves_icall_Type_make_byref_type): New interncall.
17865 * reflection.h (MonoReflectionGenericParam): Derive from
17866 MonoReflectionType, not just from MonoObject. Added `refobj' and
17869 * reflection.c (mono_reflection_define_generic_parameter): Create
17870 and return a new MonoReflectionGenericParam; don't initialize the
17872 (mono_reflection_initialize_generic_parameter): New public method;
17873 initializes the constraints and creates the `param->pklass'.
17875 2003-12-08 Zoltan Varga <vargaz@freemail.hu>
17877 * reflection.h reflection.c: Use the new fields 'num_types',
17878 'num_fields' and 'num_methods' to track the number of types etc.
17880 * verify.c (check_corlib): Check corlib version number.
17882 2003-12-07 Zoltan Varga <vargaz@freemail.hu>
17884 * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
17885 function works on all methods.
17887 2003-12-07 Lluis Sanchez Gual <lluis@ximian.com>
17889 * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
17890 * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
17891 the custom_type_info flag of the transparent proxy.
17892 * object.c: Added method mono_object_isinst_mbyref for casting mbyref
17893 objects that supports IRemotingTypeInfo.
17894 * object.h: Added custom_type_info field in transparent proxy.
17896 2003-12-06 Martin Baulig <martin@ximian.com>
17898 * class.c (mono_class_create_from_generic): Removed.
17899 (mono_class_from_generic): Check `ginst->klass' before doing
17900 anything else. This is important to fully support "recursive"
17903 * metadata.c (do_mono_metadata_parse_generic_inst): Create an
17904 empty `generic_inst->klass' before doing anything else.
17906 2003-12-06 Dick Porter <dick@ximian.com>
17911 * locales.c: Use C structs to access class fields. Don't do a
17912 conversion between MonoString and UChar because both are
17913 platform-endian UTF-16. Compare now takes startindex and count
17914 parameters. Add a char overload for IndexOf. Speed up the
17915 invariant string IndexOf.
17917 2003-12-05 Zoltan Varga <vargaz@freemail.hu>
17919 * Makefile.am (monosn_LDADD): Fix parallel build.
17921 2003-12-04 Martin Baulig <martin@ximian.com>
17924 (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17925 (ves_icall_Type_make_array_type): New interncall.
17927 2003-12-04 Martin Baulig <martin@ximian.com>
17929 * locales.c: also change it in the !HAVE_ICU case.
17931 2003-12-04 Dick Porter <dick@ximian.com>
17934 * locales.c: construct_compareinfo is now in CompareInfo, not
17937 2003-12-04 Zoltan Varga <vargaz@freemail.hu>
17939 * image.c (mono_image_load_file_for_image): Cache loaded images in the
17940 image->files array.
17942 * image.c (load_class_name): Load class names from the EXPORTEDTYPES
17945 * assembly.c (mono_assembly_load_references): Only load references
17948 * class.c (mono_class_from_name): Avoid linear search of the
17949 EXPORTEDTYPE table.
17951 * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
17953 2003-12-03 Zoltan Varga <vargaz@freemail.hu>
17955 * image.h (MonoImage): Add 'field_cache' field.
17957 * loader.c (mono_field_from_token): Cache field lookups.
17959 * reflection.c (mono_module_get_object): Fix name property.
17961 * icall.c (ves_icall_get_enum_info): Update after changes to
17962 mono_metadata_get_constant_index ().
17964 * icall.c: Get rid of get_type_info icall, use a separate icall for
17965 each type property to avoid needless memory allocations. Fixes #51514.
17967 * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
17968 to avoid needless binary searches.
17970 * class.c (class_compute_field_layout): Move the initialization of
17971 field->def_value to mono_class_vtable ().
17973 * class.c (mono_class_layout_fields): Enable GC aware auto layout for
17976 * object.c (mono_object_allocate): Make it inline.
17978 * object.c (mono_object_allocate_spec): Make it inline.
17980 2003-12-02 Dick Porter <dick@ximian.com>
17982 * locales.c (create_NumberFormat): NumberFormatInfo construction.
17983 Patch by Mohammad DAMT (mdamt@cdl2000.com).
17985 2003-12-01 Dick Porter <dick@ximian.com>
17987 * threads.c: Fix signature and call in CreateMutex and
17990 2003-12-01 Dick Porter <dick@ximian.com>
17993 * locales.c: Implement string compares and searching
17995 * object.h: Add extra Thread field
17997 2003-11-30 Zoltan Varga <vargaz@freemail.hu>
17999 * reflection.c (fixup_method): Add support for MonoCMethod.
18001 2003-11-28 Zoltan Varga <vargaz@freemail.hu>
18003 * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
18005 * reflection.c (assembly_name_to_aname): Allow extra characters in
18006 assembly names. Fixes #51468.
18008 2003-11-26 Zoltan Varga <vargaz@freemail.hu>
18010 * exception.c (mono_exception_from_name_domain): New helper function.
18012 * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
18013 exception object in the correct domain.
18015 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix
18016 formatting + make a copy a the input data.
18018 * loader.c (mono_get_method_from_token): Methods which contain
18019 native code do not have entries in the ImplMap.
18021 (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
18022 Thanks to Gonzalo for spotting this.
18024 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
18025 patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
18027 * assembly.h (mono_assembly_load_from): Split the second part of
18028 assembly loading into a new public function.
18030 * exception.h (mono_get_exception_bad_image_format): New function.
18032 2003-11-24 Zoltan Varga <vargaz@freemail.hu>
18034 icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
18035 Enumerate all modules inside a dynamic assembly. Fixes #51293.
18037 * icall.c: Add new icall for creating dynamic methods.
18039 * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
18041 * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
18043 * reflection.c (mono_reflection_create_dynamic_method): New icall to
18044 create a dynamic method.
18046 * reflection.c (resolve_object): New helper function.
18048 * reflection.c: Generalize ReflectionMethodBuilder and the functions
18049 which manipulate it so they can also work on dynamic methods.
18051 * reflection.c (reflection_method_builder_to_mono_method): Avoid
18052 creating the MonoReflectionMethodAux structure if it is not needed.
18054 * reflection.h verify.c: Update after changes to object layout.
18056 * reflection.c (method_builder_encode_signature): Fix compilation on
18059 2003-11-21 Lluis Sanchez Gual <lluis@ximian.com>
18061 * appdomain.h: Added support for context static fields. Added static_data
18062 field to MonoAppContext and renamed thread_static_fields to a more
18063 generic special_static_fields in MonoAppDomain, since it can now contain
18064 context static fields.
18065 * domain.c: Updated hashtable name.
18066 * object.c: Replaced field_is_thread_static() for a more generic
18067 field_is_special_static() which also checks for context static attribute.
18068 In mono_class_vtable(), added support for static context fields.
18069 * threads.c: Changed methods that manage thread static fields to more
18070 generic methods so they can be reused both for thread and context static
18072 * threads.h: Declared some new methods.
18074 2003-11-21 Zoltan Varga <vargaz@freemail.hu>
18076 * reflection.h: Update after changes to the managed types.
18078 * reflection.c (encode_custom_modifiers): New helper function.
18080 * reflection.c (method_encode_signature): Emit custom modifiers.
18082 * reflection.c (field_encode_signature): Emit custom modifiers.
18084 2003-11-18 Zoltan Varga <vargaz@freemail.hu>
18086 * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
18088 * icall.c (ves_icall_System_ValueType_Equals): New optimized
18091 * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New
18094 * object.c (mono_field_get_value_object): New function.
18096 * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
18099 2003-11-17 Zoltan Varga <vargaz@freemail.hu>
18101 * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
18102 return a preallocated out-of-memory exception instance.
18104 * object.c (out_of_memory): Use the new function.
18106 * metadata.c (mono_metadata_parse_type): Handle the case when the byref
18107 flag is before the custom modifiers. Fixes #49802.
18109 2003-11-16 Martin Baulig <martin@ximian.com>
18111 * class.c (mono_class_is_open_constructed_type): Implemented the
18112 MONO_TYPE_GENERICINST case.
18114 2003-11-16 Zoltan Varga <vargaz@freemail.hu>
18116 * assembly.c (mono_assembly_fill_assembly_name): New function to
18117 fill out the MonoAssemblyName structure.
18118 (mono_assembly_open): Use the new function.
18120 * icall.c (fill_reflection_assembly_name): New helper function.
18122 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
18125 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
18127 2003-11-15 Martin Baulig <martin@ximian.com>
18129 * class.c (mono_class_is_open_constructed_type): New public
18130 function; checks whether a type is an open constructed type,
18131 ie. whether it still contains type parameters.
18132 (mono_class_inflate_generic_type): If we're a type parameter and
18133 the inflated type is also a MONO_TYPE_(M)VAR, return the original
18136 * class.h (MonoGenericInst): Added `guint32 is_open'.
18138 * loader.c (method_from_methodspec): Check whether we're an open
18139 or closed constructed type and set `ginst->is_open'.
18141 * reflection.c (mono_reflection_bind_generic_parameters): Check
18142 whether we're an open or closed constructed type and set
18144 (mono_reflection_inflate_method_or_ctor): Don't inflate methods
18145 from open constructed types.
18147 2003-11-15 Martin Baulig <martin@ximian.com>
18149 * reflection.c (mono_reflection_bind_generic_parameters): If we're
18150 a generic instance (instead of a generic type declaration) with
18151 unbound generic parameters, bind them to our actual types.
18153 2003-11-14 Martin Baulig <martin@ximian.com>
18155 * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
18157 * reflection.c (mono_reflection_bind_generic_parameters): If we're
18158 an interface type, populate `res->interfaces' with instantiated
18159 versions of all the interfaces we inherit.
18161 2003-11-13 Aleksey Demakov <avd@openlinksw.com>
18163 * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
18164 when MONO_PATH is set but doesn't contain the install dir.
18166 2003-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18169 (ves_icall_Type_GetInterfaces): don't return an interface twice when
18170 it's also implemented in base classes. Fixes bug #50927.
18172 2003-11-13 Zoltan Varga <vargaz@freemail.hu>
18174 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
18175 if this method is called from a finalizer. Fixes #50913.
18177 2003-11-12 Miguel de Icaza <miguel@ximian.com>
18179 * threads.c: Implement VolatileRead/VolatileWrite
18181 * icall.c: Add new icalls for VolatileRead/VolatileWrite
18183 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
18185 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied
18186 patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
18189 * assembly.c (mono_assembly_open): Fix windows build. Applied patch
18190 from Peter Ross (pro@missioncriticalit.com).
18192 2003-11-12 Lluis Sanchez Gual <lluis@ximian.com>
18194 * icall.c: Added internal call for System.Environment::GetMachineConfigPath
18196 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
18198 * assembly.c (mono_assembly_load_references): Disable check because it
18199 triggers on older corlibs which lots of people have.
18201 2003-11-12 Jackson Harper <jackson@ximian.com>
18203 * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
18204 load corlib.dll if mscorlib.dll is not found.
18205 * assembly.h: Remove corlib name define.
18208 * image.c: Change corlib name to mscorlib.
18210 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
18212 * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
18214 2003-11-11 Miguel de Icaza <miguel@ximian.com>
18216 * appdomain.h: Added loader_optimization here to sync with the C#
18217 code, and add disallow_binding_redirects field.
18219 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
18221 * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
18223 * reflection.c (mono_image_build_metadata): Fix crash on modules
18226 * reflection.h (MonoMethodInfo): Track changes to the managed structure.
18228 * icall.c (ves_icall_get_method_info): Return callingConvention as
18231 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add
18232 namespaces from the EXPORTEDTYPE table as well.
18234 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
18235 from all modules inside the assembly.
18237 2003-11-11 Martin Baulig <martin@ximian.com>
18239 * reflection.c (mono_reflection_bind_generic_parameters): Make
18240 this work for interfaces.
18242 2003-11-11 Martin Baulig <martin@ximian.com>
18244 * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
18246 2003-11-11 Martin Baulig <martin@ximian.com>
18248 * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
18249 "MonoInflatedMethod" and "MonoInflatedCtor".
18251 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
18253 * reflection.c (resolution_scope_from_image): Use the assembly table
18254 from the manifest module, since other modules don't have it.
18256 * debug-helpers.c (mono_type_full_name): New helper function.
18258 * image.h (MonoAssembly): Change 'dynamic' to a boolean.
18260 * image.c (mono_image_load_file_for_image): New public function which
18261 is a replacement for the load_file_for_image in class.c.
18263 * assembly.c (mono_assembly_load_module): A wrapper for the function
18264 above which does assembly association and reference loading too.
18266 * class.c (mono_class_from_name): Call mono_assembly_load_module.
18268 2003-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18270 * appdomain.c: not all of the attributes for the full assembly name
18271 are required and the order doesn't matter. Fixes bug #50787.
18273 2003-11-10 Dick Porter <dick@ximian.com>
18275 * locales.c: Use platform-endian UTF16
18277 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
18279 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
18281 2003-11-10 Martin Baulig <martin@ximian.com>
18284 (mono_metadata_load_generic_params): Make this actually work.
18286 * reflection.c (mono_reflection_bind_generic_parameters): If our
18287 parent is a generic instance, pass all the `types' to it, no
18288 matter whether it has the same number of type parameters or not.
18290 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
18292 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
18294 * assembly.c (mono_assembly_load_references): Move the image<->assembly
18295 assignment code to this function so it gets called recursively for all
18298 * image.c (load_modules): Remove the assembly assignment since it is
18299 now done by mono_assembly_load_references.
18301 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
18302 Add 'module' argument.
18303 (mono_module_get_types): New helper function.
18304 (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
18306 2003-11-08 Martin Baulig <martin@ximian.com>
18308 * class.c (mono_class_inflate_generic_method): Interface method
18309 don't have a header.
18311 * reflection.c (mono_image_get_methodspec_token): Take an
18312 additional `MonoGenericInst *' argument instead of reading it from
18313 the header; this is necessary to support interfaces.
18314 (mono_image_create_token): Pass the `MonoGenericInst *' from the
18315 MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
18316 (inflated_method_get_object): Take an additional `MonoGenericInst *'
18319 * reflection.h (MonoReflectionInflatedMethod): Added
18320 `MonoGenericInst *ginst'.
18322 2003-11-07 Zoltan Varga <vargaz@freemail.hu>
18324 * gc.c (mono_domain_finalize): Fix compilation for no GC case.
18326 2003-11-06 Zoltan Varga <zovarga@ws-zovarga2>
18328 * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
18330 2003-11-06 Zoltan Varga <vargaz@freemail.hu>
18333 (reflection_methodbuilder_from_method_builder):
18334 (reflection_methodbuilder_from_ctor_builder): New helper functions to
18335 initialize a ReflectionMethodBuilder structure.
18336 (mono_image_get_methodbuilder_token):
18337 (mono_image_get_ctorbuilder_token): New functions to emit memberref
18338 tokens which point to types in another module inside the same assembly.
18340 * reflection.c: Use the new helper functions.
18342 * reflection.c (mono_image_basic_init): Initialize basedir and culture.
18344 * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image
18345 instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
18347 * reflection.c (resolution_scope_from_image): Emit a moduleref if
18350 * reflection.c (mono_image_build_metadata): Emit metadata only for the
18351 current module. Emit the manifest only for the main module.
18353 * reflection.c (mono_image_create_token): Add assertion when a
18354 memberref needs to be created.
18356 * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
18358 * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a
18359 larger buffer for the custom attribute blob. Fixes #50637.
18361 2003-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18363 * threadpool.c: notify listener on async processing handles after
18364 invoking the async callback. Thanks to Zoltan.
18366 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
18368 * reflection.c (create_dynamic_mono_image): Call mono_image_init to
18369 avoid code duplication.
18371 * reflection.h (MonoDynamicImage): New type which is currently unused,
18372 but will be used through the ref.emit code in place of
18373 MonoDynamicAssembly.
18375 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
18378 * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
18379 a MonoDynamicImage instead of just a MonoImage.
18381 * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
18382 icalls to ModuleBuilder but keep their semantics, so they will work
18383 with moduleb->assemblyb. This will change later.
18385 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
18387 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
18390 * reflection.c (mono_image_build_metadata): Avoid creation of a default
18391 main module, since it is now done by the managed code.
18393 2003-11-03 Martin Baulig <martin@ximian.com>
18395 * reflection.c (mono_reflection_inflate_method_or_ctor): Set
18396 `ginst->klass' here.
18397 (method_encode_methodspec): Don't use the `ginst->generic_method's
18398 klass if it's a generic instance, use `ginst->klass' in this case.
18400 2003-11-03 Martin Baulig <martin@ximian.com>
18402 * reflection.c (mono_image_get_generic_method_param_info):
18403 Removed, use mono_image_get_generic_param_info() instead.
18404 (mono_image_get_type_info): Write the GenericParam table before
18405 the Method table. This is neccessary because in the GenericParam
18406 table, type parameters of the class (ie. '!0' etc.) must come
18407 before the ones from its generic methods (ie. '!!0' etc).
18409 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
18411 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
18413 2003-11-02 Martin Baulig <martin@ximian.com>
18415 * reflection.c (create_generic_typespec): Take a
18416 `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
18417 the generic parameters from it.
18419 2003-11-02 Martin Baulig <martin@ximian.com>
18421 * reflection.c (fieldref_encode_signature): Take a `MonoType *'
18422 instead of a `MonoClassField *' since we just need the type.
18423 (create_generic_typespec): New static function. Creates a
18424 TypeSpec token for a generic type declaration.
18425 (mono_image_get_generic_field_token): New static function.
18426 (mono_image_create_token): If we're a FieldBuilder in a generic
18427 type declaration, call mono_image_get_generic_field_token() to get
18430 2003-11-02 Martin Baulig <martin@ximian.com>
18433 (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
18434 `MonoReflectionGenericInst *declaring_type' and
18435 `MonoReflectionGenericInst *reflected_type' fields.
18437 * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
18438 `MonoReflectionGenericInst *declaring_type' and a
18439 `MonoReflectionGenericInst *reflected_type' argument instead of a
18440 single `MonoReflectionGenericInst *type' one. Set
18441 `res->declaring_type' and `res->reflected_type' from them.
18442 (mono_reflection_inflate_field): Likewise.
18444 2003-11-02 Martin Baulig <martin@ximian.com>
18446 * class.c (mono_class_setup_vtable): Don't store generic methods
18449 2003-11-02 Martin Baulig <martin@ximian.com>
18451 * reflection.h (MonoReflectionGenericInst): Added
18452 `MonoReflectionType *declaring_type'.
18454 * reflection.c (mono_reflection_bind_generic_parameters): Use
18455 `if (tb->parent)' instead of `klass->parent'.
18457 2003-11-01 Zoltan Varga <vargaz@freemail.hu>
18459 * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
18460 with an empty ASSEMBLY table.
18462 * reflection.c (mono_image_build_metadata): Avoid using the same loop
18463 variable in the inner and outer loops.
18465 2003-10-31 Zoltan Varga <vargaz@freemail.hu>
18467 * metadata.h (mono_metadata_make_token): Put parentheses around macro
18470 * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
18472 * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain
18473 icalls. Instead, do everything in managed code. This is needed since
18474 it is hard to restore the original domain etc. in unmanaged code in the
18475 presence of undeniable exceptions.
18477 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef):
18478 New icalls to push and pop appdomain refs.
18480 2003-10-31 Martin Baulig <martin@ximian.com>
18482 * class.c (inflate_generic_type): Renamed to
18483 mono_class_inflate_generic_type() and made it public.
18485 * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
18488 * loader.c (mono_field_from_memberref): Also set the retklass for
18491 * fielder.c (mono_image_get_inflated_field_token): New static
18492 method; creates a metadata token for an inflated field.
18493 (mono_image_create_token, fixup_method): Added support for
18494 "MonoInflatedField".
18495 (fieldbuilder_to_mono_class_field): New static function.
18496 (mono_reflection_inflate_field): New public function.
18499 (MonoReflectionGenericInst): Added `MonoArray *fields'.
18500 (MonoReflectionInflatedField): New typedef.
18502 2003-10-30 Bernie Solomon <bernard@ugsolutions.com>
18504 * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
18505 for Solaris and other platforms without s6_addr16
18507 2003-10-30 Martin Baulig <martin@ximian.com>
18509 * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
18510 argument instead of two.
18511 (mono_class_inflate_generic_signature): Likewise.
18512 (inflate_generic_header): Likewise.
18513 (mono_class_inflate_generic_method): Likewise. In addition, if
18514 `ginst->klass' is set, it becomes the new `method->klass'.
18516 * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
18519 * reflection.c (encode_generic_method_sig): Write a 0xa as the
18520 first byte. [FIXME]
18521 (method_encode_methodspec): If we have generic parameters, create
18522 a MethodSpec instead of a MethodRef.
18523 (fixup_method): Added support for "MonoInflatedMethod" and
18524 "MonoInflatedCtor".
18525 (mono_image_create_token): Added support for "MonoInflatedMethod"
18526 and "MonoInflatedCtor".
18527 (inflated_method_get_object): New static function; returns a
18528 managed "System.Reflection.MonoInflatedMethod" object.
18529 (mono_reflection_bind_generic_method_parameters): Return a
18530 `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
18531 (mono_reflection_inflate_method_or_ctor): Likewise.
18532 (mono_image_get_generic_method_param_info): Initialize unused
18534 (mono_image_get_generic_param_info): Likewise.
18536 * reflection.h (MonoReflectionInflatedMethod): New public
18537 typedef. Corresponds to the managed "S.R.MonoInflatedMethod" and
18538 "S.R.MonoInflatedCtor" classes.
18540 * loader.c (method_from_memberref): If we're a TypeSpec and it
18541 resolves to a generic instance, inflate the method.
18543 2003-10-28 Dick Porter <dick@ximian.com>
18545 * object.c (mono_runtime_run_main): Convert command-line arguments
18546 into utf8, falling back to the user's locale encoding to do so.
18548 2003-10-27 Zoltan Varga <vargaz@freemail.hu>
18550 * loader.c (mono_get_method_from_token): Avoid looking up the icalls
18553 * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
18555 * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
18556 up icalls at method definition time. Partially fixes #33569.
18558 2003-10-25 Zoltan Varga <vargaz@freemail.hu>
18560 * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
18561 marshalling of arrays. Fixes #50116.
18563 * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
18565 * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
18566 points to a vtable in the dying appdomain.
18568 * appdomain.c (mono_domain_unload): Move the notification of OnUnload
18569 listeners into unmanaged code inside the lock.
18571 * object.c (mono_class_vtable): Turn off typed allocation in non-root
18572 domains and add some comments.
18574 2003-10-25 Martin Baulig <martin@ximian.com>
18576 * class.h (MonoGenericInst): Added `MonoClass *klass' field.
18578 * image.h (MonoImage): Added `GHashTable *typespec_cache'.
18580 * metadata.c (mono_metadata_parse_generic_inst): Renamed to
18581 `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
18582 currently parsing. Create the generic class and store it in
18583 `generic_inst->klass' before parsing the type arguments. This is
18584 required to support "recursive" definitions; see mcs/tests/gen-23.cs
18586 (mono_type_create_from_typespec): Use a new `image->typespec_cache'
18587 to support recursive typespec entries.
18589 * class.c (mono_class_setup_parent): If our parent is a generic
18590 instance, we may get called before it has its name set.
18591 (mono_class_from_generic): Splitted into
18592 mono_class_create_from_generic() and mono_class_initialize_generic().
18594 2003-10-25 Martin Baulig <martin@ximian.com>
18596 * icall.c (ves_icall_Type_BindGenericParameters): Return a
18597 `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
18598 ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
18599 ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
18601 * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
18602 (create_typespec): Likewise.
18603 (mono_reflection_bind_generic_parameters): Return a
18604 `MonoReflectionGenericInst *' instead of a `MonoClass *'.
18605 (mono_reflection_inflate_method_or_ctor): New public function.
18607 * reflection.h (MonoReflectionGenericInst): New typedef.
18609 2003-10-24 Zoltan Varga <vargaz@freemail.hu>
18611 * object.c (mono_class_proxy_vtable): Run the whole vtable construction
18612 inside the domain lock. Fixes #49993.
18614 * object.c (mono_class_vtable): When typed allocation is used,
18615 allocate vtables in the GC heap instead of in the mempool, since the
18616 vtables contain GC descriptors which are used by the collector even
18617 after the domain owning the mempool is unloaded.
18619 * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
18621 * domain.c (mono_domain_unload): Rename to mono_domain_free to better
18622 reflect what it does. Also invalidate mempools instead of freeing
18623 them if a define is set.
18625 * appdomain.h (MonoAppDomainState): New enumeration to hold the state
18628 * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
18629 hold the finalizable objects in this domain.
18631 * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
18634 * appdomain.c (mono_domain_set): New function to set the current
18635 appdomain, but only if it is not being unloaded.
18637 * appdomain.c threads.c threadpool.c object.c: Avoid entering an
18638 appdomain which is being unloaded.
18640 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
18641 unloading of the root appdomain.
18643 * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
18644 icall to execute a method in another appdomain. Intended as a
18645 replacement for InternalSetDomain, which can confuse the code
18646 generation in the JIT.
18648 * appdomain.c (mono_domain_is_unloading): New function to determine
18649 whenever an appdomain is unloading.
18651 * appdomain.c (mono_domain_unload): New function to correctly unload
18654 * assembly.c (mono_assembly_load_references): Check that an assembly
18655 does not references itself.
18657 * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
18658 domain manually, it asks the finalizer thread to do it, then waits for
18659 the result. Also added a timeout.
18661 * icall.c: Register the new icalls.
18663 * threads.h threads.c: Export the mono_gc_stop_world and
18664 mono_gc_start_world functions.
18666 * mempool.h mempool.c (mono_mempool_invalidate): New debugging
18667 function to fill out the mempool with 0x2a.
18669 2003-10-22 Zoltan Varga <vargaz@freemail.hu>
18671 * reflection.h (MonoReflectionMethodAux): New structure to store
18672 information which is rarely used, thus is not in the MonoMethod
18675 * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
18676 store the aux info.
18678 * reflection.c (mono_methodbuilder_to_mono_method): Store param names
18679 and marshalling info into the aux structure.
18681 * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
18682 from the aux structure.
18684 * loader.c (mono_method_get_param_names): Retrieve the param names from
18687 2003-10-21 Zoltan Varga <vargaz@freemail.hu>
18689 * exception.h exception.c: Add AppDomainUnloadedException && fix
18692 2003-10-21 Dick Porter <dick@ximian.com>
18695 (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
18696 patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
18698 2003-10-21 Martin Baulig <martin@ximian.com>
18700 * reflection.c (mono_reflection_bind_generic_parameters):
18701 `klass->parent' is NULL for interfaces.
18703 2003-10-21 Martin Baulig <martin@ximian.com>
18705 * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18707 2003-10-20 Zoltan Varga <vargaz@freemail.hu>
18709 * exception.c (mono_exception_from_name_msg): New helper function for
18710 creating exceptions and initializing their message field.
18712 * exception.c: Simplify functions using the new helper.
18714 * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
18717 * object.h object.c: Remove G_GNUC_NORETURN from the signature of
18718 mono_raise_exception, since otherwise gcc doesn't generate the function
18719 epilog for raise_exception, confusing the stack unwinding in the JIT.
18722 * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
18723 PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
18726 2003-10-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18728 * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
18731 2003-10-18 Lluis Sanchez Gual <lluis@ximian.com>
18733 * icall.c: Removed GetUninitializedObject method because
18734 AllocateUninitializedClassInstance does the same.
18736 2003-10-18 Martin Baulig <martin@ximian.com>
18738 * class.c (inflate_generic_signature): Renamed to
18739 mono_class_inflate_generic_signature() and made it public.
18740 (my_mono_class_from_generic_parameter): New static function; if we
18741 don't already have the generic parameter's MonoClass, create a
18742 very simple one which is just used internally in the runtime and
18743 not passed back to managed code.
18745 * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
18747 * metadata.h (MonoMethodSignature): Moved the
18748 `MonoGenericParam *gen_params' to the MonoMethodHeader.
18749 (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
18751 * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
18752 ves_icall_MonoMethod_GetGenericArguments(); this is now an
18753 interncall on the MonoMethod class, not on MethodInfo.
18754 (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
18755 calling mono_reflection_bind_generic_method_parameters() directly.
18757 * loader.c (mono_method_get_signature): If this is a MethodSpec;
18758 return the already computed `method->signature'.
18759 (method_from_methodspec): New static function to load a method
18760 from a MethodSpec entry.
18761 (mono_get_method_from_token): Call the new method_from_methodspec()
18762 for MethodSpec tokens.
18763 (mono_get_method_from_token): If we're a generic method, load the
18766 * reflection.c (mono_image_get_memberref_token): Allow
18767 MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
18769 (fixup_method): Added support for MONO_TABLE_METHODSPEC.
18770 (mono_image_create_token): First check whether it's a generic
18771 method (so we'd need to create a MethodSpec), then do the other
18773 (mono_reflection_bind_generic_method_parameters): Return a
18774 `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
18775 called directly from the interncall.
18777 2003-10-17 Zoltan Varga <vargaz@freemail.hu>
18779 * reflection.c (load_public_key): Move loading of the public key
18782 * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
18784 * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
18787 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
18788 culture, hash_alg and public_key. Fixes #49555.
18790 2003-10-17 Martin Baulig <martin@ximian.com>
18792 * class.h (MonoGenericInst): Moved this declaration here and added
18793 `MonoMethod *generic_method'.
18796 (ves_icall_MethodInfo_GetGenericArguments): New interncall.
18797 (ves_icall_MethodInfo_BindGenericParameters): New interncall.
18799 * metadata.c (mono_metadata_type_equal): Two types of
18800 MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
18801 index; ie. don't compare the address of the `MonoGenericParam'
18803 (mono_metadata_load_generic_params): Removed the `MonoMethod
18806 * metadata.h (MonoGenericInst): Moved declaration to class.h.
18807 (MonoMethodHeader): Added `MonoGenericInst *geninst'.
18809 * reflection.c (method_encode_signature): Encode the number of
18810 generic parameters.
18811 (encode_generic_method_sig): New static function.
18812 (method_encode_methodspec): New static function; creates an entry
18813 in the MethodSpec table for a generic method.
18814 (mono_image_get_methodspec_token): New static function.
18815 (mono_image_create_token): Call mono_image_get_methodspec_token()
18816 for generic methods.
18817 (mono_reflection_bind_generic_method_parameters): New public
18818 function. Instantiates a generic method.
18820 2003-10-16 Martin Baulig <martin@ximian.com>
18822 * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
18823 *gen_params' here from MonoMethodHeader.
18825 * metadata.c (mono_metadata_parse_method_signature): If we have
18826 generic parameters, initialize `method->gen_params' and then set
18827 the correct `type->data.generic_param' in all the parameters.
18829 2003-10-16 Zoltan Varga <vargaz@freemail.hu>
18831 * threads.c (mono_threads_get_default_stacksize): New function to
18832 return the default stacksize.
18834 * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
18835 termination of the finalizer thread, since the previous method had
18836 race conditions. Fixes #49628.
18838 * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
18839 as for the other managed threads.
18841 2003-10-16 Martin Baulig <martin@ximian.com>
18843 * class.c (inflate_generic_signature): Copy `generic_param_count'
18846 * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
18849 * metadata.c (mono_metadata_parse_method_signature): Actually set
18850 the `method->generic_param_count' here.
18851 (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
18853 2003-10-15 Zoltan Varga <vargaz@freemail.hu>
18855 * object.h: Add a new field to TypedRef to simplify the implementation
18856 of the REFANY opcodes in the JIT.
18858 * icall.c: Make use of the new field.
18860 * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
18863 2003-10-15 Martin Baulig <martin@ximian.com>
18865 * class.c (mono_class_from_gen_param): Renamed to
18866 mono_class_from_generic_parameter() and moved most of the
18867 functionality from mono_reflection_define_generic_parameter()
18868 here; ie. we create a "real" class here.
18869 (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
18870 MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
18871 previously been called.
18873 * class.h (MonoGenericParam): Moved the declaration of this struct
18874 here from metadata.h and added `MonoMethod *method'.
18876 * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
18879 * loader.c (mono_get_method_from_token): If we have any generic
18880 parameters, call mono_metadata_load_generic_params() to read them
18881 from the MONO_TABLE_GENERICPAR.
18883 * metadata.c (mono_metadata_load_generic_params): Added
18884 `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
18886 * metadata.h (MonoMethodSignature): Replaced
18887 `MonoGenericInst *geninst' with `guint16 generic_param_count'.
18888 (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
18890 * reflection.c (mono_reflection_define_generic_parameter): Moved
18891 most of the functionality into the new
18892 mono_class_from_generic_parameter(); set the `method' field if
18893 we're a method parameter.
18895 2003-10-13 Bernie Solomon <bernard@ugsolutions.com>
18897 * marshal.c (emit_struct_conv): if native size is 0
18900 2003-10-14 Martin Baulig <martin@ximian.com>
18902 * icall.c: The generics API has changed in the spec since it was
18903 added to System.Type; these modifications make it match the spec
18905 (ves_icall_Type_GetGenericParameters): Renamed to
18906 `ves_icall_Type_GetGenericArguments'.
18907 (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
18908 (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
18909 `ves_icall_MonoType_get_HasGenericArguments'.
18910 (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
18911 `ves_icall_MonoType_get_IsGenericParameter'.
18912 (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
18913 this is no interncall anymore.
18914 (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
18915 `ves_icall_TypeBuilder_get_IsGenericParameter'.
18917 2003-10-14 Martin Baulig <martin@ximian.com>
18919 * reflection.c (mono_reflection_bind_generic_parameters): Also
18920 inflate generic methods if we're reading the class from IL.
18922 2003-10-13 Martin Baulig <martin@ximian.com>
18924 * reflection.c (mono_reflection_define_generic_parameter): This
18925 method isn't called directly from the icall anymore; take a
18926 `MonoReflectionAssemblyBuilder *' so we can use this for type and
18927 method generic parameters.
18928 (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
18929 (method_builder_encode_signature): Encode generic parameters.
18930 (mono_image_get_method_info): Write generic params to the
18931 MONO_TABLE_GENERICPARAM table.
18933 * reflection.h (MonoReflectionMethodBuilder): Added
18934 `MonoArray *generic_params'.
18936 * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
18938 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
18939 wrapper for mono_reflection_define_generic_parameter().
18940 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
18942 2003-10-13 Zoltan Varga <vargaz@freemail.hu>
18944 * marshal.h: Add missing function to fix build.
18946 * marshal.c (mono_marshal_get_native_wrapper): Add support for
18947 the SetLastError pinvoke attribute.
18949 * marshal.c (mono_marshal_set_last_error): New helper function called
18950 by the generated code.
18952 * marshal.c (mono_mb_emit_branch): New helper function.
18954 * marshal.c (mono_mb_emit_exception): Added exception name parameter.
18956 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
18957 classes as parameters and return values of delegates. Fixes #29256.
18959 2003-10-12 Bernie Solomon <bernard@ugsolutions.com>
18961 * locales.c: use gint32 in non HAVE_ICU case
18963 2003-10-11 Martin Baulig <martin@ximian.com>
18965 * mono-debug.c (mono_debug_add_method): Added a workaround for
18968 2003-10-10 Zoltan Varga <vargaz@freemail.hu>
18970 * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
18971 delegates passed to native code must use the STDCALL calling
18972 convention. Fixes #35987.
18974 2003-10-10 Martin Baulig <martin@ximian.com>
18976 * class.c (inflate_generic_type): If we're inflating for a generic
18977 type instance (and not for a generic method), return
18978 MONO_TYPE_MVAR unchanged.
18980 2003-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18982 * string-icalls.c: Join ignores null strings in the source array.
18983 * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
18984 * threads.c: GetAvailableTheads is slightly more accurate.
18986 2003-10-09 Bernie Solomon <bernard@ugsolutions.com>
18988 * threads.h threads.c : add mono_threads_set_default_stacksize
18989 and pass default to CreateThread calls.
18991 2003-10-09 Dick Porter <dick@ximian.com>
18995 * locales.c: Internal calls for constructing CultureInfo and
18996 related objects from libicu (if its available.)
18998 2003-10-09 Zoltan Varga <vargaz@freemail.hu>
19000 * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
19002 2003-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19004 * threadpool.c: added an argument to async_invoke_thread that is the
19005 item to process, pass the MonoAsyncResult to the thread start function
19006 when creating a new thread. This way we don't need to acquire any lock
19007 when we're creating a new thread. Readded a semaphore for faster
19008 response times (instead of that Sleep i added).
19010 2003-10-08 Bernie Solomon <bernard@ugsolutions.com>
19012 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19013 get daylight change dates better on Windows, fix handling
19014 of platforms without tm_gmtoff.
19016 2003-10-06 Martin Baulig <martin@ximian.com>
19018 * class.c (inflate_generic_method): Renamed to
19019 mono_class_inflate_generic_method() and made public.
19020 (mono_class_init): Don't inflate the generic methods here.
19021 (mono_class_from_generic): Added `gboolean inflate_methods'
19022 argument. Inflate the methods here.
19024 * loader.c (mono_method_get_param_names): Ignore instances of
19025 generic types for the moment.
19027 * reflection.c (fixup_method): Added support for inflated methods.
19028 (mono_image_create_token): Use mono_image_get_methodref_token()
19029 for inflated methods.
19030 (mono_custom_attrs_from_param): Ignore instances of generic types
19032 (mono_reflection_bind_generic_parameters): New public function.
19033 Moved all the functionality from
19034 ves_icall_Type_BindGenericParameters() here and added support for
19036 (mono_reflection_define_generic_parameter): Initialize
19037 `klass->methods' here.
19039 * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
19040 functionality into mono_reflection_define_generic_parameter().
19041 (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
19042 TypeBuilder, return that TypeBuilder.
19044 2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19046 * appdomain.c: removed mono_delegate_semaphore.
19049 (mono_thread_pool_add): moved hash table creation inside and the thread
19050 creation outside of the critical region.
19051 (mono_thread_pool_finish): removed obsolete code.
19052 (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
19053 continue or exit the thread depending on the queue.
19055 2003-10-07 Bernie Solomon <bernard@ugsolutions.com>
19057 * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
19058 marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
19059 handle more bool marshalling options
19061 2003-10-07 Zoltan Varga <vargaz@freemail.hu>
19063 * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
19064 arrays of structs. Also add a more descriptive error message when
19065 a structure member is marshalled as LPArray.
19067 2003-10-06 Zoltan Varga <vargaz@freemail.hu>
19069 * marshal.c (mono_marshal_get_native_wrapper): Add support for
19070 marshalling arrays of complex types. Fixes #29098. Also remove an
19071 usused and incomplete function.
19073 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
19075 * gc.c: report heap_size - free_bytes as total memory allocated
19078 2003-10-05 Zoltan Varga <vargaz@freemail.hu>
19080 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally
19081 fix timezone handling problems on Windows.
19083 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
19084 asserts when the year is outside the range handled by ms the functions.
19086 * class.c (setup_interface_offsets): If the class is an interface,
19087 fill out its interface_offsets slot.
19089 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19091 * threadpool.c: mark threadpool threads as background.
19093 2003-10-03 Bernie Solomon <bernard@ugsolutions.com>
19095 * decimal.c - define DECINLINE to nothing if not using GCC
19097 2003-10-03 Zoltan Varga <vargaz@freemail.hu>
19099 * assembly.c: More refcount fixes.
19101 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19103 * string-icalls.c: if we're not trimming, return the same string.
19104 When not splitting, don't create a new string.
19106 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19109 (mono_image_open): increment the ref_count inside the critical section.
19111 2003-10-02 Zoltan Varga <vargaz@freemail.hu>
19113 * image.c (mono_image_open): Fix reference counting bug.
19115 2003-09-30 Bernie Solomon <bernard@ugsolutions.com>
19117 * marshal.c (mono_marshal_type_size) struct alignment changed for
19118 64bit machines. (emit_ptr_to_str_conv) Fix bool conversions for
19119 64bits. Avoid leak in mono_marshal_get_native_wrapper when
19120 mono_lookup_pinvoke_call throws.
19122 2003-09-30 Zoltan Varga <vargaz@freemail.hu>
19124 * reflection.c (mono_reflection_parse_type): Fix #49114.
19126 * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
19127 temporary workaround for cygwin header problem.
19129 * object.c (mono_object_isinst): Synchronize this with the code
19130 generated by the JIT for casts.
19132 2003-09-29 Zoltan Varga <vargaz@freemail.hu>
19134 * reflection.c (encode_type): Fix #38332.
19136 2003-09-26 Zoltan Varga <vargaz@freemail.hu>
19138 * marshal.c (mono_marshal_method_from_wrapper): New function to return
19139 the original method from the wrapper method.
19141 2003-09-25 Martin Baulig <martin@ximian.com>
19143 * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
19144 interncall since it was identical to `Type.GetGenericTypeDefinition()'.
19145 (ves_icall_Type_get_IsGenericInstance): New interncall.
19147 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
19149 * object.c: fix cast warning in big endian code.
19151 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
19153 * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
19155 2003-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19157 * assembly.c: don't call check_env from mono_assembly_load. It's
19158 already done once in mono_assemblies_init and may cause headaches when
19159 multiple threads are loading assemblies.
19161 2003-09-19 Martin Baulig <martin@ximian.com>
19163 * reflection.c (mono_reflection_define_generic_parameter): Don't
19164 allocate `klass->methods', set `klass->flags' to
19165 TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
19167 2003-09-18 Martin Baulig <martin@ximian.com>
19169 * class.c (mono_class_init): Don't create `class->methods' if it's
19170 already initialized.
19172 * metadata.c (mono_metadata_load_generic_params): Make this
19175 * reflection.c (mono_reflection_define_generic_parameter): Set
19176 parent class and interfaces from the constraints.
19178 * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
19179 to keep this struct in sync with the declaration in TypeBuilder.cs.
19181 2003-09-17 Martin Baulig <martin@ximian.com>
19183 * metadata.h (MonoType): Replaced the data's `int type_param'
19184 field with `MonoGenericParam *generic_param'.
19185 (MonoGenericParam): Added `MonoClass *klass'.
19187 * class.c (mono_class_from_gen_param): Removed the
19188 `MonoImage *image' and `int type_num' arguments.
19190 * metadata.c (mono_metadata_parse_generic_param): New static
19191 method; creates a MonoGenericParam which just contains the index.
19192 (do_mono_metadata_parse_type): Call
19193 mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
19196 * reflection.c (mono_image_typedef_or_ref): Generic type
19197 parameters may be in the same assembly, but never use a typedef
19199 (mono_reflection_define_generic_parameter): We're now creating a
19200 "real" class for the type parameter; it's now safe to call
19201 mono_class_from_mono_type() on the class'es type, it'll do the
19204 2003-09-16 Martin Baulig <martin@ximian.com>
19206 * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
19207 `symfile->range_entry_size' and `symfile->class_entry_size' here;
19208 the `symfile' data structure must be fully initialized before it
19209 gets added to the table.
19211 2003-09-15 Zoltan Varga <vargaz@freemail.hu>
19213 * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
19215 * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
19216 class init trampolines.
19218 2003-09-11 Zoltan Varga <vargaz@freemail.hu>
19220 * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
19221 to the built-in profiler to turn off time and allocation profiling
19224 2003-09-10 Zoltan Varga <vargaz@freemail.hu>
19226 * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
19229 * debug-helpers.c (mono_method_full_name): Print the wrapper type
19230 in human readable form.
19232 2003-09-08 Zoltan Varga <vargaz@freemail.hu>
19234 * reflection.c icall.c: Fixed warnings.
19236 * image.c (load_class_names): Use a temporary hash table to hold the
19237 namespaces in order to avoid doing many string comparisons.
19239 * image.h: Fix typo.
19241 * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
19242 Pass NULL instead of g_direct_equal to the GHashTable constructor
19243 since the NULL case is short-circuited inside g_hash_table_lookup,
19244 leading to better performance.
19246 * metadata.c (mono_metadata_custom_attrs_from_index): New function to
19247 obtain the first custom attribute for a given index. Depends on the
19248 CustomAttribute table being sorted by the parent field.
19250 * reflection.c (mono_custom_attrs_from_index): Use the new function
19251 for better performance.
19253 2003-09-07 Martin Baulig <martin@ximian.com>
19255 * class.c (mono_class_init): If we're a generic instance, inflate
19256 all our methods instead of loading them from the image.
19257 (mono_class_from_generic): Set `class->methods = gklass->methods'.
19259 2003-09-07 Martin Baulig <martin@ximian.com>
19261 * mono-debug-debugger.c: Added support for constructors.
19263 2003-09-06 Martin Baulig <martin@ximian.com>
19265 * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
19268 * reflection.c (mono_reflection_setup_generic_class): Call
19269 ensure_runtime_vtable() to create the vtable.
19271 2003-09-05 Martin Baulig <martin@ximian.com>
19273 * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
19276 2003-09-04 Martin Baulig <martin@ximian.com>
19278 * reflection.c (mono_reflection_define_generic_parameter): Generic
19279 parameters start with zero.
19281 2003-09-04 Martin Baulig <martin@ximian.com>
19283 * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
19285 * reflection.h (MonoReflectionGenericParam): New typedef.
19286 (MonoReflectionTypeBuilder): Added `generic_params' fields to get
19287 the generic parameters from the managed TypeBuilder.
19289 * reflection.c (mono_reflection_define_generic_parameter): New function.
19290 (mono_reflection_create_runtime_class): Encode generic parameters.
19291 (mono_reflection_setup_generic_class): New function; this is
19292 called after adding adding all generic params to the TypeBuilder.
19293 (encode_type): Added MONO_TYPE_VAR.
19295 2003-09-04 Zoltan Varga <vargaz@freemail.hu>
19297 * class.h class.c (mono_class_needs_cctor_run): Moved this method
19300 * assembly.h assembly.c: Moved the AOT loading code into an assembly
19303 2003-09-03 Zoltan Varga <vargaz@freemail.hu>
19305 * reflection.h reflection.c class.h class.c: Delete duplicate
19306 definition of mono_type_get_name () from reflection.c and export the
19309 * class.c: Class loading fixes from Bernie Solomon
19310 (bernard@ugsolutions.com).
19312 * reflection.c: Endianness fixes from Bernie Solomon
19313 (bernard@ugsolutions.com).
19315 2003-09-01 Zoltan Varga <vargaz@freemail.hu>
19317 * assembly.h assembly.c: Define a file format version for AOT
19320 * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
19322 * appdomain.h (MonoJitInfo): New field to determine whenever the
19323 code is domain neutral.
19325 2003-08-31 Miguel de Icaza <miguel@ximian.com>
19327 * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
19329 2003-08-30 Zoltan Varga <vargaz@freemail.hu>
19331 * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir):
19332 (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
19333 Avoid caching the result since strings must be domain specific. Fixes
19336 2003-08-29 Zoltan Varga <vargaz@freemail.hu>
19338 * marshal.c (mono_marshal_init): Make this callable multiple times
19339 since it is hard to find a correct place to call it.
19341 * object.c (mono_runtime_class_init): Execute static constructors in
19342 the correct appdomain.
19344 * image.c (build_guid_table): Handle the case when multiple images have
19347 2003-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19349 * icall.c: added a couple of icalls for System.Web.
19351 2003-08-28 Martin Baulig <martin@ximian.com>
19353 * icall.c (ves_icall_Type_BindGenericParameters): Use
19354 `klass->generic_inst' instead of `&klass->byval_arg' in the
19355 mono_type_get_object() call. The returned type must be
19356 MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
19358 2003-08-27 Zoltan Varga <vargaz@freemail.hu>
19362 * object.c (mono_class_proxy_vtable): Make it thread safe.
19364 * pedump.c: Fix warning.
19366 * object.c appdomain.h: Get rid of metadata_section.
19367 It is no longer needed and it was causing deadlocks with domain->lock.
19369 * appdomain.c (add_assemblies_to_domain): Make it thread safe.
19371 2003-08-26 Martin Baulig <martin@ximian.com>
19373 * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
19375 2003-08-26 Martin Baulig <martin@ximian.com>
19377 * pedump.c (main): Call mono_metadata_init(),
19378 mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
19379 and mono_loader_init().
19381 2003-08-26 Zoltan Varga <vargaz@freemail.hu>
19383 * loader.h: Add missing include to fix build.
19385 * image.h: mono_image_load_references is no more.
19387 * assembly.c: Reworked assembly loading to make it really thread safe.
19388 After these changes, the assembly returned by mono_assembly_open is
19389 fully initialized, i.e. all its references assemblies are loaded.
19391 * assembly.c (mono_image_load_references): Renamed to
19392 mono_assembly_load_references, and made private, since clients no
19393 longer need to call it.
19395 * class.c: Removed calls to mono_assembly_load_references, since it was
19396 a source of deadlocks.
19398 * loader.h loader.c class.h class.c: Protect data structures using a
19399 new lock, the loader lock.
19401 * class.c (mono_class_setup_vtable): Create temporary hash tables and
19402 GPtrArrays only when needed.
19404 * class.c (mono_class_layout_fields): Ignore the dummy field inserted
19405 into empty structures by mcs. Fixes pinvoke7.cs.
19407 * domain.c (mono_init): Call a new initialization function.
19409 * appdomain.c (mono_runtime_init): Call the new initializer function
19410 of the marshal module.
19412 * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
19413 inserted into empty structures by mcs. Fixes pinvoke7.cs.
19415 * marshal.h marshal.c: Added locks around the wrapper caches to make
19416 this module thread safe.
19418 * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
19419 this argument. Fixes pinvoke1.exe.
19421 2003-08-25 Lluis Sanchez <lluis@ximian.com>
19423 * object.h: Added call_type field to MonoMethodMessage and the corresponding
19424 enumeration of values. Removed fields to store remote call output values in
19425 MonoAsyncResult. Not needed any more.
19426 * object.c: Initialize call_type and async_result fields in mono_message_init.
19427 * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
19428 dispatching the message.
19429 mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
19430 async call to finish. To do it use a message with EndInvoke call type.
19432 2003-08-25 Zoltan Varga <vargaz@freemail.hu>
19434 * loader.h loader.c (mono_method_hash_marhal_info): New function which
19435 determines whenever a method has marshalling info.
19437 2003-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19439 * assembly.c: fix the build on windows.
19441 2003-08-22 Lluis Sanchez <lluis@ximian.com>
19443 * object.cs: Fixed bug #47785.
19445 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
19447 * string-icalls.c (StringReplace): If their are no occurances of
19448 the old string found return a reference to the supplied
19449 string. This saves some memory and matches MS behavoir.
19451 2003-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19453 * socket-io.c: fixed compilation for systems that define AF_INET6
19454 and don't define SOL_IP/SOL_IPV6.
19456 2003-08-21 Zoltan Varga <vargaz@freemail.hu>
19458 * object.c (mono_object_isinst): Fix casts to TransparentProxy in
19459 the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
19461 * rawbuffer.c rawbuffer.h: Make this module thread safe.
19463 * domain.c: Make this module thread safe.
19465 * domain.c (mono_init): Call new initialization function.
19467 * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
19468 reference types too. Fixes #38812.
19470 * image.c (mono_image_init): Fixed warnings.
19472 * class.c (mono_class_from_typeref): Handle assembly load failure
19475 * appdomain.c (add_assemblies_to_domain): Handle the case when
19476 the references of an assembly are not yet loaded.
19478 * metadata.c image.c assembly.c: Moved initialization of global
19479 variables to a separate function called at startup since lazy
19480 initialization of these variables is not thread safe.
19482 * image.c assembly.c: Made this module thread safe by adding locks in
19483 the appropriate places.
19485 * domain.c (mono_init): Call the new initialization functions of the
19488 2003-08-20 Lluis Sanchez Gual <lluis@ximian.com>
19490 * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
19491 make a direct call. It is proxy's work to make the call asynchronous.
19492 mono_delegate_end_invoke(): If the targe is a proxy, just collect
19494 * object.cs: mono_method_call_message_new(): read AsyncResult and
19495 state object from parameters list, if this info is requested.
19496 * object.h: Added fields to store remote call output values in
19497 MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
19499 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19501 * object.h: add needed fields to MonoThread.
19502 * threads.c, threads.h: allow registering a function to cleanup data
19503 allocated per thread by the JIT.
19505 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19507 * loader.h: portability fix by Bernie Solomon
19508 * <bernard@ugsolutions.com>.
19510 2003-08-16 Zoltan Varga <vargaz@freemail.hu>
19512 * reflection.h reflection.c (mono_param_get_objects): Changed this to
19513 return a MonoArray. This simplifies the code and also ensures that
19514 the cache allways contains an object reference as a value.
19516 * icall.c (ves_icall_get_parameter_info): Simplified using the new
19519 2003-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19521 * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
19522 fixes a problem with byte ordering when getting the address family for
19525 2003-08-15 Zoltan Varga <vargaz@freemail.hu>
19527 * .cvsignore: Added monosn.
19529 * reflection.h reflection.c loader.c: Added support for parameter
19530 marshalling to dynamically created types. Fixes #47295.
19532 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
19534 * rand.c: remove useless warnings.
19536 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
19538 * class.c: implemented ldtoken for methods and fieldrefs.
19540 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19542 * threadpool.c: when mono_async_invoke was called, no one took care of
19543 monitoring the queue. So if the method invoked took some time and we
19544 got new async invoke requests after 500 ms (the thread created waited
19545 that long in WaitForSingleObject), the new async invoke was not called
19546 until the previous one finished.
19548 This is fixed now. Thanks to Totte for helping with it.
19550 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19552 * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
19554 2003-08-11 Martin Baulig <martin@ximian.com>
19556 * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
19558 2003-08-06 Martin Baulig <martin@ximian.com>
19560 * mono-debug-debugger.c: Added support for static fields,
19561 properties and methods.
19563 2003-08-06 Martin Baulig <martin@ximian.com>
19565 * mono-debug-debugger.c: Don't store the MonoString's vtable to
19566 make this work for applications with multiple application domains.
19568 2003-08-04 Martin Baulig <martin@ximian.com>
19570 * mono-debug-debugger.c: Completely reworked the type support; the
19571 most important thing is that we're now just using one single
19572 `MonoType' instance per type.
19574 Sat Aug 2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
19576 * mono-endian.h, mono-endian.c, icall.c: Added icall
19577 ves_icall_System_Double_AssertEndianity to assert double word endianity
19578 on ARM (FPA). The icall uses a macro defined in mono-endian.h.
19580 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19582 * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
19583 support, icalls and fixes.
19585 2003-07-31 Miguel de Icaza <miguel@ximian.com>
19587 * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
19588 classes that are a punctuation character in .NET is not the same a
19591 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19593 * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
19595 2003-07-29 Miguel de Icaza <miguel@ximian.com>
19597 * icall.c: Add new MemCopy internalcall.
19598 (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
19599 Simplified code; It is not necessary to handle all the cases here,
19600 as the C# code takes care of it. Only handle the case of the name
19601 resource embedded into the assembly.
19603 Changed signature to return the data pointer and the size of the
19606 2003-07-26 Miguel de Icaza <miguel@ximian.com>
19608 * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
19609 encoded. (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
19611 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
19613 * socket-io.c: ignore EINTR error in select.
19615 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
19617 * class.h, class.c: removed unused subclasses field in MonoClass.
19619 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
19621 * icall.c: improve fix of get_base_definition(). If the parent class
19622 doesn't have the mehod, look at the parent of the parent.
19623 * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
19624 to check if a parameter is an in or out parameter
19625 (PARAM_ATTRIBUTE_IN is not set by default).
19626 mono_method_return_message_restore(): Use mono_class_value_size to
19627 get the size of a value type. mono_type_stack_size (parameterType)
19628 does not return the correct value if parameterType is byRef.
19629 mono_load_remote_field(), mono_load_remote_field_new(),
19630 mono_store_remote_field(), mono_store_remote_field_new():
19631 raise exception if the remote call returns an exception.
19633 2003-07-28 Martin Baulig <martin@ximian.com>
19635 * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
19636 method. This is a wrapper around mono_runtime_invoke() which
19637 boxes the instance object if neccessary.
19639 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19641 * class.c, class.h, image.c, image.h, loader.c, metadata.c,
19642 metadata.h, row-indexes.h, verify.c: first cut of generics support.
19644 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19646 * icall.c: disable mcs bug workaround.
19648 2003-07-21 Miguel de Icaza <miguel@ximian.com>
19650 * object.c (mono_runtime_class_init): Take the metadata_section
19651 mutex before obtaining the domain mutex.
19653 * appdomain.h: Added definition of metadata_section mutex here.
19655 * object.c: define metadata_mutex here.
19657 2003-07-24 Ravi Pratap <ravi@ximian.com>
19659 * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
19662 2003-07-24 Lluis Sanchez Gual <lluis@ximian.com>
19664 * reflection.c: Fix bug #46669
19666 2003-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19671 * object.h: fill in the type name for TypeLoadException.
19673 2003-07-23 Ravi Pratap <ravi@ximian.com>
19675 * class.c: Fixes from Paolo in response to bug #45415 (Subclass
19676 relationship between TypeBuilders while compiling corlib) and bug
19677 45993 (Array types returned from the runtime while compiling
19678 corlib were from the loaded corlib).
19680 2003-07-22 Martin Baulig <martin@ximian.com>
19682 * mono-debug-debugger.c: Reworked the type support a bit more;
19683 distinguish between types and classes.
19685 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
19687 * icall.c: add IsArrayImpl icall.
19689 2003-07-22 Zoltan Varga <vargaz@freemail.hu>
19691 * class.c (mono_class_layout_fields): Fix gc aware auto layout by
19692 initializing real_size only once. Also fix bug #46602.
19694 2003-07-21 Jerome Laban <jlaban@wanadoo.fr>
19696 * object.c: Renamed mono_metadata_section to metadata_section.
19698 2003-07-21 Lluis Sanchez Gual <lluis@ximian.com>
19700 * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
19701 empty array if the type is an array. Fixed.
19702 ves_icall_MonoMethod_get_base_definition: if the base method
19703 is abstract, get the MethodInfo from the list of methods of
19705 * reflection.c: ParameterInfo.PositionImpl should be zero-based
19706 and it was 1-based. Fixed in mono_param_get_objects.
19708 2003-07-20 Martin Baulig <martin@ximian.com>
19710 * mono-debug.h: Set version number to 31.
19711 (mono_debug_init): Added `MonoDomain *' argument.
19713 * mono-debug-debugger.c: Reworked the type support; explicitly
19714 tell the debugger about builtin types; pass the `klass' address to
19717 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
19719 * image.c: Allow new metadata tables to be loaded without a
19720 warning. Also update the warning message to give the new constant value.
19722 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
19724 * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
19725 metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c:
19726 array type representation changes.
19728 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19730 * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
19731 on Environment.Exit () call.
19733 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
19735 * icall.c, reflection.h, reflection.c, verify.c: cleanups,
19736 requires a matching corlib.
19738 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
19740 * Changelog: My editor decided to add a CR to each line. Sorry about that.
19741 Committed again without the CRs.
19743 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
19745 * socket-io.c: Get system_assembly using mono_image_loaded(), instead
19746 getting it from the "this" socket instance. Did not work
19747 if the socket is a subclass of Socket.
19748 Also fixed bug #35371.
19750 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19752 * metadata.c: fixed size for TypedByRef.
19753 * loader.c: when searching for a method, consider the vararg amrker.
19754 * unicode.c, decimal.c: constify some arrays.
19756 2003-07-15 Dick Porter <dick@ximian.com>
19758 * socket-io.c: Fixed compilation for gcc < 3.2.
19760 Fixed compilation for machines that don't have AF_INET6 (thanks to
19761 Bernie Solomon <bernard@ugsolutions.com> for that part.)
19763 Fixed compile warnings.
19765 Fixed formatting and line endings.
19767 2003-07-14 Jerome Laban <jlaban@wanadoo.fr>
19770 * socket-io.c: Added IPv6 support.
19772 2003-07-13 Zoltan Varga <vargaz@freemail.hu>
19774 * class.c (mono_class_is_assignable_from): New function to implement
19775 the is_assignable_from logic. Used by mono_object_isinst,
19776 Type::IsAssignableFrom () and the interpreter.
19778 * class.c (mono_class_is_subclass_of): Make all classes a subclass of
19779 Object, even interfaces.
19781 * object.c (mono_object_isinst): Implement in terms of
19782 is_assignable_from.
19784 * icall.c (ves_icall_type_is_assignable_from): New icall.
19786 2003-07-11 Zoltan Varga <vargaz@freemail.hu>
19788 * domain.c (foreach_domain): fix compiler warning.
19790 2003-07-11 Dietmar Maurer <dietmar@ximian.com>
19792 * image.c (load_metadata_ptrs): use g_strndup because strndup is
19793 not available on all plattforms
19795 2003-07-10 Zoltan Varga <vargaz@freemail.hu>
19797 * image.h image.c: Store the metadata version string in MonoImage.
19798 * icall.c: New icall to retrieve the image version.
19799 * reflection.c (create_dynamic_image): Fill in the image version field
19800 * reflection.c (build_compressed_metadata): Use the image version
19801 from the image structure.
19803 2003-07-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19805 * appdomain.c: modified comment.
19806 * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
19807 That will be its last iteration when mono_gc_cleanup is called from
19808 mono_runtime_cleanup and before the domain is unloaded.
19812 2003-07-04 Dietmar Maurer <dietmar@ximian.com>
19814 * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
19817 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19819 * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
19820 rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
19821 Bernie Solomon <bernard@ugsolutions.com>.
19823 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19825 * object.c, object.h: provide mono_object_new_fast() for faster
19826 allocation in some special cases.
19828 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
19830 * object.h, reflection.h, verify.c: fixes for some 64bit issues,
19831 mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
19833 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
19835 * threadpool.c: fix leaks.
19837 2003-07-01 Dick Porter <dick@ximian.com>
19839 * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
19840 using MonoGHashTables. Fixes threadpool bug posted to list.
19842 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
19844 * image.h, image.c: added support to load an assembly from a byte array.
19845 * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added
19846 assembly bundle support.
19848 2003-06-27 Dietmar Maurer <dietmar@ximian.com>
19850 * threadpool.c (mono_thread_pool_add): keep a reference to the
19851 AsyncResult to prevent GC
19853 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19855 * class.c: leak fix.
19857 2003-06-25 Dick Porter <dick@ximian.com>
19859 * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
19860 for the async object, the WaitHandle object will close the handle.
19863 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19865 * class.c: in mono_array_class_get (), lookup from the hash with the
19866 same type we insert: this works around a bug in
19867 mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
19868 lluis. The real fix will have to wait for after the release.
19870 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19872 * icall.c: fix memory leak when getting type members.
19874 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19876 * reflection.c: added more pubtoken special cases.
19878 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
19880 * class.c: handle field offset correctly when class size
19881 is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
19883 2003-06-20 Martin Baulig <martin@ximian.com>
19885 * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
19888 2003-06-20 Martin Baulig <martin@ximian.com>
19890 * image.h, mono-debug-debugger.h: Fixed compiler warnings.
19892 2003-06-20 Martin Baulig <martin@ximian.com>
19894 * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed. We
19895 just distinguish between variables in registers and variables at
19896 an offset relative to a register.
19898 2003-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19900 * icall.c: #ifdef out latest changes until mcs is fixed.
19902 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19904 * icall.c: return members in metadata order.
19906 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19908 * icall.c: avoid infinite loop in GetTimeZoneData.
19910 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
19912 * icall.c: added Marshal.Prelink/All icalls.
19914 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19916 * object.c, object.h: fix warnings and do some overflow checking
19917 when creating arrays.
19919 2003-06-17 Dick Porter <dick@ximian.com>
19922 * file-io.c: File attributes need to be tweaked slightly when
19923 passed from the managed to the w32 world.
19925 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
19926 * profiler.h profiler-private.h profiler.c: Rework last patch
19927 based on suggestion by Paolo.
19929 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
19931 * profiler.h profiler-private.h profiler.c: Added infrastructure for
19932 instruction level coverage data collection.
19933 * profiler.h profiler.c (: Added new callback function which can be
19934 used by the profiler to limit which functions should have coverage
19936 * profiler.c (mono_profiler_load): Call g_module_build_path to
19937 generate the file name of the profiler library.
19939 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19941 * profiler.c, profiler.h, profiler-private.h: added basic block
19942 coverage profiling API.
19944 2003-06-15 Zoltan Varga <vargaz@freemail.hu>
19946 * reflection.c (mono_reflection_create_runtime_class): Add support
19947 for events in dynamically generated code.
19949 * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
19952 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19954 * icall.c: when getting timezone info, return reasonable values if we
19955 can't get the actual data.
19957 2003-06-14 Dick Porter <dick@ximian.com>
19959 * threads.c (start_wrapper): Remove the reference to the thread
19960 object in the TLS data, so the thread object can be finalized.
19961 This won't be reached if the thread threw an uncaught exception,
19962 so those thread handles will stay referenced :-( (This is due to
19963 missing support for scanning thread-specific data in the Boehm GC
19964 - the io-layer keeps a GC-visible hash of pointers to TLS data.)
19966 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
19968 * reflection.c: ensure streams and tables are first allocated with
19969 ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
19971 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19973 * icall.c: fixed GetElementType for byrefs (bug# 44792).
19975 2003-06-13 Zoltan Varga <vargaz@freemail.hu>
19977 * reflection.c (mono_reflection_create_runtime_class): Add support for
19978 properties to dynamically created classes.
19979 * reflection.c: Fix a few places where non-MonoObjects were inserted
19980 into the tokens hashtable.
19982 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19984 * object.c: some support to handle out of memory exceptions.
19986 2003-06-12 Dietmar Maurer <dietmar@ximian.com>
19988 * marshal.c (mono_marshal_get_native_wrapper): support reference
19991 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19993 * object.h, object.c: more portability stuff from Bernie Solomon.
19994 Unexport mono_object_allocate(). Added mono_object_unbox ().
19995 Set exitcode when an unhandled exception is thrown.
19997 2003-06-11 Dietmar Maurer <dietmar@ximian.com>
19999 * marshal.c (mono_marshal_get_native_wrapper): use custom
20000 marshaler for return types.
20002 2003-06-10 Dick Porter <dick@ximian.com>
20004 * socket-io.c: Don't assume that one of struct ip_mreqn or struct
20005 ip_mreq is available
20007 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
20009 * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
20010 mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
20011 by Bernie Solomon <bernard@ugsolutions.com>.
20013 2003-06-10 Zoltan Varga <vargaz@freemail.hu>
20015 * gc.c (mono_gc_init): Avoid error message on shutdown when
20016 GC_DONT_GC=1 is used.
20018 * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal):
20019 New icall to return the GUID of a module.
20021 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
20023 * class.c: ensure instance size always includes the parent's size
20024 even whem class size is set explicitly (fixes bug#44294).
20026 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
20028 * profiler.h, profiler.c: made the simple profiler thread-safe,
20029 get more accurate timing info. Allow the loading of an
20030 externally-developed profiler module.
20032 2003-06-05 Dietmar Maurer <dietmar@ximian.com>
20034 * marshal.c (mono_marshal_get_native_wrapper): improved
20035 class/byref arguments.
20036 (mono_marshal_get_native_wrapper): better string marshaling support.
20038 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
20040 * class.c: ensure .pack and .size are handled correctly and
20041 simplified layout of static fields.
20043 2003-06-04 Dietmar Maurer <dietmar@ximian.com>
20046 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
20048 * loader.c (mono_lookup_pinvoke_call): look for modules in the
20049 current directory (fix bug 44008)
20051 2003-06-03 Dietmar Maurer <dietmar@ximian.com>
20053 * marshal.c (mono_marshal_get_native_wrapper): started support for
20055 (mono_delegate_to_ftnptr): consider marshalling specifications
20057 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
20059 * reflection.c, reflection.h: emit custom marshal info.
20061 2003-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20063 * object.c: free the GError.
20064 * icall.c: added CloseEvent_internal.
20066 (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
20069 2003-06-01 Zoltan Varga <vargaz@freemail.hu>
20071 * loader.c (mono_method_get_signature): Add support for dynamic
20074 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
20076 * reflection.c: fixed bug #43905.
20078 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
20080 * class.c, domain.c, icall.c, metadata.h, object.h: support for
20081 handling TypedReference and ArgIterator.
20082 * loader.c, loader.h: added function to get signature at call site.
20084 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
20086 * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more
20087 data readonly. Buglets and warning fixes. Some MethodSpec support.
20089 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
20091 * class.h, class.c, object.c: remove relative numbering support.
20093 2003-05-26 Miguel de Icaza <miguel@ximian.com>
20095 * marshal.c (mono_marshal_get_native_wrapper): For now, do not
20096 free the string, until we get a chance to fix Gtk#
20098 2003-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20100 * marshal.c: revert last patch.
20102 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
20104 * icall.c: updates for new mono_class_vtable() not calling
20105 the type constructor anymore.
20107 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
20109 * object.h, object.c: separate vtable creation from type
20110 initialization. Make running the .cctor thread safe.
20112 2003-05-26 Dietmar Maurer <dietmar@ximian.com>
20114 * marshal.c (mono_marshal_get_native_wrapper): free string return values.
20116 2003-05-21 Dietmar Maurer <dietmar@ximian.com>
20118 * loader.c (mono_get_method): consider calling convention
20120 2003-05-21 Zoltan Varga <vargaz@freemail.hu>
20122 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
20123 to return the invisible global type for a module.
20125 * reflection.c (mono_image_build_metadata): Emit global fields too.
20127 2003-05-20 Peter Williams <peterw@ximian.com>
20129 * loader.c (mono_lookup_internal_call): Add a few newlines.
20131 2003-05-20 Zoltan Varga <vargaz@freemail.hu>
20133 * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
20136 * appdomain.c (set_domain_search_path): Recalculate search path when
20137 AppDomainSetup.PrivateBinPath changes.
20139 * object.c (mono_class_compute_gc_descriptor): It turns out some
20140 parts of the class libs (like System.Thread) holds pointers to
20141 GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
20142 to treat native int a pointer type here.
20144 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
20146 * appdomain.h, domain.c: add hashtable for jump target resolution.
20148 2003-05-19 Zoltan Varga <vargaz@freemail.hu>
20150 * reflection.h reflection.c icall.c: Added new icalls
20151 GetManifestResourceInfoInternal, GetModulesInternal and support
20154 2003-05-16 Dick Porter <dick@ximian.com>
20158 * file-io.c: Implement System.IO.MonoIO::GetTempPath
20160 2003-05-14 Lluis Sanchez Gual <lluis@ideary.com>
20162 * object.c: mono_store_remote_field: little fix to previous patch.
20164 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
20166 * class.c: add constructors to array classes.
20167 * icall.c: special case array construction for InternalInvoke (),
20169 2003-05-14 Zoltan Varga <vargaz@freemail.hu>
20171 * class.h class.c reflection.c object.c: Added support for field
20172 defaults in dynamically generated classes.
20174 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
20176 * reflection.c: properly encode charset for ddlimport.
20178 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
20180 * threads.c: allow compiling without GC.
20182 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
20184 * appdomain.h, object.c, object.h, threads.c, threads.h: added
20185 handling of thread static data.
20187 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
20189 * reflection.h, reflection.c: added mono_custom_attrs_free ().
20191 2003-05-13 Dietmar Maurer <dietmar@ximian.com>
20193 * class.c (mono_array_class_get): always set the serializable flags
20194 (mono_array_class_get): always set the SEALED attribute for array types
20196 2003-05-12 Dietmar Maurer <dietmar@ximian.com>
20198 * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
20199 attributes (fix for bug 42021).
20201 2003-05-12 Dick Porter <dick@ximian.com>
20203 * gc.c: Don't run finalizers when the finalizer thread is
20204 finishing up, because the default domain has already been
20207 2003-05-11 Miguel de Icaza <miguel@ximian.com>
20209 * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
20210 value is null, we should throw an exception. This is slightly
20211 different than the other conventions used for the constructor.
20213 2003-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20215 * socket-io.c: fixed windows build.
20217 2003-05-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20219 * socket-io.c: patch by Jerome Laban that fixes bug #42393.
20221 2003-05-10 Zoltan Varga <vargaz@freemail.hu>
20223 * object.c (mono_string_new_wrapper): Compatibility fix for MS
20226 2003-05-09 Zoltan Varga <vargaz@freemail.hu>
20228 * class.c (mono_class_layout_fields): Add experimental GC aware
20229 auto layout facility. Requires class library changes to work correctly.
20231 (mono_class_setup_vtable): Avoid overriding explicit interface
20232 method implementations. Fixes iface3.exe test.
20234 * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
20236 (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
20237 (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
20239 * metadata.h: Add new type classification macro which determines
20240 whenever the type holds an object reference.
20242 2003-05-08 Dietmar Maurer <dietmar@ximian.com>
20244 * marshal.c (mono_marshal_get_native_wrapper): cleanups
20246 2003-05-07 Zoltan Varga <vargaz@freemail.hu>
20248 * gc.c (finalizer_thread): Work around a GC bug.
20250 2003-05-07 Dietmar Maurer <dietmar@ximian.com>
20252 * marshal.c (emit_struct_conv): allow unions
20254 * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
20256 2003-05-06 Dietmar Maurer <dietmar@ximian.com>
20258 * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
20260 2003-05-06 Martin Baulig <martin@ximian.com>
20262 * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
20264 2003-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20267 (Select_internal): allow NULLs, don't create arrays if not needed.
20268 Coupled with Socket.cs changes.
20271 (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
20272 register a finalizer for it that will close the semaphore handle. This
20273 fixes the leak and make Lupus' test run with > 4080 loops.
20275 2003-05-05 Dietmar Maurer <dietmar@ximian.com>
20277 * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
20278 Jerome Laban (bug #42287)
20280 2003-05-02 Martin Baulig <martin@ximian.com>
20282 * debug-mono-symfile.h
20283 (MonoSymbolFile): Moved declaration into mono-debug.h.
20284 (MonoDebugMethodJitInfo): Likewise.
20285 (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
20287 (_mono_debug_address_from_il_offset): Take a
20288 MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
20291 (MonoDebugDomainData): New struct.
20292 (mono_debug_get_domain_data): New function.
20293 (mono_debug_add_method): Take an additional `MonoDomain *'
20295 (mono_debug_source_location_from_address): Likewise.
20296 (mono_debug_il_offset_from_address): Likewise.
20297 (mono_debug_address_from_il_offset): Likewise.
20299 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
20301 * reflection.c: one more check for null type in custom attrs.
20303 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20305 * reflection.c: avoid warning (comparison is always false due to limited
20306 range of data type).
20308 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20310 * icall.c: throw an exception in Type.GetField if the argument 'name'
20313 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
20315 * reflection.c: fixed handling of enums in named arguments to custom
20316 attributes (bug #42123).
20318 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
20320 * reflection.c: use the right array element type and handle
20321 a null for a Type argument, too.
20323 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
20325 * reflection.c: handle arrays as arguments to custom attributes.
20327 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
20329 * reflection.c: handle a string value in a custom attr
20330 ctor that takes an object.
20332 2003-04-29 Dietmar Maurer <dietmar@ximian.com>
20334 * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
20337 2003-04-28 Zoltan Varga <vargaz@freemail.hu>
20339 * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
20341 2003-04-27 Martin Baulig <martin@ximian.com>
20343 * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
20344 MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
20345 MONO_DEBUGGER_EVENT_BREAKPOINT.
20346 (mono_breakpoint_trampoline_code): Removed.
20347 (mono_debugger_event_handler): The last argument is now a
20349 (mono_debugger_insert_breakpoint_full): Removed the
20350 `use_trampoline' argument.
20351 (mono_debugger_method_has_breakpoint): Likewise.
20352 (mono_debugger_trampoline_breakpoint_callback): Renamed to
20353 mono_debugger_breakpoint_callback(); take the method and
20354 breakpoint number as arguments.
20356 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
20358 * metadata.c: fix off by one when loading parameters attributes.
20360 2003-04-24 Martin Baulig <martin@ximian.com>
20362 * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
20364 2003-04-24 Martin Baulig <martin@ximian.com>
20366 * mono-debug-debugger.c: Moved all code which interacts with the
20367 Mono Debugger here.
20369 * debug-mono-symfile.c: This code now just deals with the symbol
20370 file itself, the debugger code is now in mono-debug-debugger.c.
20372 2003-04-23 Martin Baulig <martin@ximian.com>
20374 * mono-debug.c (mono_debug_source_location_from_il_offset):
20375 New method; like mono_debug_source_location_from_address(), but
20376 takes an IL offset instead of a machine address.
20378 2003-04-23 Martin Baulig <martin@ximian.com>
20380 * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
20381 `line' field; this is now computed by the debugger.
20383 2003-04-23 Martin Baulig <martin@ximian.com>
20385 * mono-debug.[ch]: New files. This is the new debugging interface.
20387 * mono-debug-debugger.[ch]: New files. Moved all code which
20388 interacts with the Mono Debugger here.
20390 2003-04-22 Dietmar Maurer <dietmar@ximian.com>
20392 * domain.c (mono_init): initialize mono_defaults.monitor_class
20394 2003-04-21 Miguel de Icaza <miguel@ximian.com>
20396 * reflection.c (method_encode_code): Add a spicy exception to help
20397 future compiler authors.
20399 2003-04-21 Martin Baulig <martin@ximian.com>
20402 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
20403 Make this work with relative pathnames; g_filename_to_uri() needs
20404 an absolute filename.
20406 2003-04-18 Zoltan Varga <vargaz@freemail.hu>
20408 * icall.c: Track name changes in Object and ValueType.
20410 2003-04-18 Dietmar Maurer <dietmar@ximian.com>
20412 * metadata.c (mono_type_stack_size): size should be a multiple of
20415 2003-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20418 (internal_domain_finalize): moved into mono_domain_finalize. No need
20419 to create another thread because the finalizers will be run in the
20422 (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
20423 (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
20424 to be run (MS does this too).
20426 2003-04-17 Zoltan Varga <vargaz@freemail.hu>
20428 * object.c (mono_class_compute_gc_descriptor): Update comment.
20430 * loader.h marshal.h marshal.c: Added synchronized method wrappers.
20432 * image.h: Add synchronized wrapper cache.
20434 * image.c (do_mono_image_open): Initialize cache.
20436 * reflection.c (create_dynamic_mono_image): Initialize cache.
20438 2003-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20440 * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
20441 ves_icall_System_Buffer_ByteLengthInternal.
20443 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
20445 * reflection.c: setup klass->nested_in earlier. Allow
20446 a dash in the assembly name.
20448 2003-04-15 Dietmar Maurer <dietmar@ximian.com>
20450 * metadata.c (mono_type_to_unmanaged): dont access
20451 type->data.klass for MONO_TYPE_OBJECT
20452 (mono_type_to_unmanaged): consider System.Delegate class
20454 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
20456 * class.c: just setup supertypes in the proper place instead of
20457 initializing the full element class for arrays.
20459 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
20461 * class.c: ensure the element class of arrays is initialized.
20462 Setup the supertype info for array classes, too.
20464 2003-04-14 Miguel de Icaza <miguel@ximian.com>
20466 * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
20468 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20470 * Makefile.am: re-added -m option when running cygpath. This way,
20471 MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
20473 * mono-config.c: same codepath for locating mono config file for WIN32
20475 * assembly.c: if mono_assembly_setrootdir is called, don't override
20478 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20480 * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
20481 MONO_ASSEMBLIES variable.
20483 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
20485 * icall.c: added Assembly::GetNamespaces() icall.
20487 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20489 * reflection.c: fix from Jaak <jaak@zd.com.pl>.
20491 2003-04-10 Lluis Sanchez Gual <lluis@ideary.com>
20493 * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
20494 * object.c: fixed bug in the construction of vtable for proxies
20496 2003-04-10 Zoltan Varga <vargaz@freemail.hu>
20498 * object.c (mono_array_new): Mark mono_array_new as an icall.
20500 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20502 * class.c: fixed test for public method when overriding interfaces.
20505 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
20507 * appdomain.h, domain.c: added mono_domain_foreach() to
20508 be able to access the currently loaded appdomains.
20509 * object.c: make string interning work across sppdomains.
20510 Mark some functions for use as icalls.
20512 2003-04-09 Zoltan Varga <vargaz@freemail.hu>
20514 * class.c reflection.c: Fix memory leaks reported by ccmalloc.
20516 * reflection.h reflection.c: Allocate long living data using
20517 GC_MALLOC_ATOMIC so the collector does not need to scan it.
20519 * reflection.c: Double the allocation size in streams instead of
20520 increasing it, to prevent unneccesary copying on large assemblies.
20522 * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
20523 creation if the assembly does not have the Run flag set.
20525 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
20527 * class.h: avoid the C++ keywords in header files (Jerome Laban
20528 spotted and fixed this).
20530 2003-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20533 (mono_unhandled_exception): fill in the arguments for the
20534 UnhandledException event. Only trigger that event for the default
20535 domain (as MS does).
20537 2003-04-04 Zoltan Varga <vargaz@freemail.hu>
20539 * object.c: Improve typed allocation stuff based on suggestions from
20540 Paolo. Also turn it on if the GC library supports it.
20542 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
20544 * object.c object.h class.h: Added experimental typed allocation
20545 facility using the interfaces in gc_gcj.h.
20547 * os/gc_wrapper.h: Added new include files.
20549 2003-04-03 Martin Baulig <martin@ximian.com>
20551 All the following changes are conditional to `WITH_INCLUDED_LIBGC'
20552 which is not yet enabled by default.
20554 * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
20556 (mono_gc_lock, mono_gc_unlock): New static functions.
20558 * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
20559 functions; stop/start the world for the garbage collector. This
20560 is using the windows API; we need to complete the SuspendThread()/
20561 ResumeThread() implementation in the io-layer to make this work on Unix.
20562 (mono_gc_push_all_stacks): New public function; tells the garbage
20563 collector about the stack pointers from all managed threads.
20565 2003-04-03 Martin Baulig <martin@ximian.com>
20567 * object.h (MonoThread): Added `gpointer stack_ptr'.
20569 * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
20571 2003-04-03 Martin Baulig <martin@ximian.com>
20573 * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
20575 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
20577 * reflection.c (typebuilder_setup_fields): Initialize field.first and
20580 2003-04-02 Miguel de Icaza <miguel@ximian.com>
20582 * loader.c (mono_lookup_internal_call): Report the corlib that is
20585 2003-03-05 Aleksey Demakov <avd@openlinksw.com>
20587 * icall.c (ves_icall_type_GetTypeCode): fixed check for
20588 System.DBNull (it's class not valuetype).
20590 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
20592 * reflection.c: set table_idx in MonoReflectionArrayMethod object even
20593 if the array method was already assigned a token (fixes bug#40646).
20595 2003-04-02 Zoltan Varga <vargaz@freemail.hu>
20597 * reflection.c (mono_reflection_get_type): Attempt type resolve even
20598 if no assembly is given.
20600 2003-04-01 Miguel de Icaza <miguel@ximian.com>
20602 * metadata.h: Added the new tables.
20604 * row-indexes.h: Added definitions for new tables.
20606 * metadata.c: Add schemas for new tables, and add support for
20607 computing the sizes of them.
20609 * class.c: Update for handling the new type cases.
20611 2003-04-01 Dietmar Maurer <dietmar@ximian.com>
20613 * metadata.h (MONO_TYPE_IS_VOID): new macro
20615 2003-03-31 Martin Baulig <martin@ximian.com>
20617 * threads.h (MonoThreadCallbacks): Added `thread_created'.
20619 * threads.c (mono_thread_new_init): Call `thread_created' in the
20620 mono_thread_callbacks.
20622 2003-03-31 Lluis Sanchez Gual <lluis@ideary.com>
20624 * loader.h: added marshalbyrefobject_class to mono_defaults
20625 * domain.c: added initialization of mono_defaults.marshalbyrefobject_class
20626 * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
20627 generation of output parameters.
20628 ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
20629 * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
20630 contextbound and the target object belongs to the context of the caller.
20631 * object.h: added context and unwrapped_server variables in MonoRealProxy.
20632 * object.c: Implemented support for interfaces and abstract classes
20633 in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
20634 proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
20636 2003-03-30 Zoltan Varga <vargaz@freemail.hu>
20638 * class.h class.c (mono_class_is_subclass_of): New function.
20640 * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
20641 routines for most common case (calls from ArrayList::ToArray).
20643 * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown
20644 routine so programs which call Environment::Exit() can be profiled.
20646 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
20647 Added MONO_ARCH_SAVE_REGS.
20649 * icall.c (ves_icall_type_is_subtype_of): Use new function.
20651 2003-03-29 Miguel de Icaza <miguel@ximian.com>
20653 * blob.h: Add a couple of new MonoType types definitions.
20655 * tabledefs.h: Add a couple of new call convs.
20657 2003-03-27 Zoltan Varga <vargaz@freemail.h>
20659 * reflection.h (MonoReflectionDynamicAssembly): track changes in
20660 the layout of the class.
20662 * reflection.c (alloc_table): double the size on overflow to avoid
20663 unnecessary copying.
20665 * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
20666 avoid filling out metadata tables and blobs. Also set mb->ilgen to
20667 null so it can be garbage collected.
20669 2003-03-27 Zoltan Varga <vargaz@freemail.hu>
20671 * reflection.c (mono_reflection_get_type): Return the resolved type
20672 only if it is in the assembly we searched.
20674 * reflection.c (ensure_runtime_vtable): Initialize method slots.
20676 * class.c (mono_class_setup_vtable): Set the slot of the overriding
20679 2003-03-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20682 (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
20683 the right one is 'file:///blah', but MS allows it.
20685 (mono_assembly_open): allow 'file://blah'
20687 Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
20689 2003-03-26 Aleksey Demakov <avd@openlinksw.com>
20691 * socket-io.c: fixes bug #40310.
20693 2003-03-25 Zoltan Varga <vargaz@freemail.hu>
20695 * reflection.c (mono_reflection_parse_type): handle deeply nested
20698 * reflection.c (mono_image_create_token): Use unique token values
20699 since they will be put into a hash table.
20701 * class.c (mono_class_setup_vtable): If a method occurs in more than
20702 one place in the vtable, and it gets overriden, then change the
20703 other occurances too.
20705 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
20706 object as return type.
20708 2003-03-22 Pedro Mart?nez Juli? <yoros@wanadoo.es>
20710 * icall.c: Deleted "ToString" implementation for double and float
20711 because they are full implemented in managed code.
20713 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20715 * reflection.c, reflection.h: implemented and exported functions
20716 to retrieve info about custom attributes.
20718 2003-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20720 * appdomain.c: moved Uri handling to assembly.c
20721 * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
20722 work when using a file Uri in *nix and windows.
20724 * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
20725 GetReferencedAssemblies.
20727 2003-03-18 Dick Porter <dick@ximian.com>
20729 * icall.c: Rename a couple of internal calls
20731 * threads.c: Set the thread state to Stopped when a thread exits.
20734 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
20736 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
20739 * object.c (mono_class_vtable): fix warning.
20741 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
20743 * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
20745 * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
20747 (method_encode_clauses): Create exception info structures in the right
20749 (mono_reflection_setup_internal_class): Initialize supertypes field.
20751 * class.c object.c: Handle interfaces which implement other interfaces
20754 * class.h class.c: Move the supertypes array initialization code into
20755 a separate function so it can be used for dynamic types too. Also call
20756 it earlier, in mono_class_init(), since it can be used before the
20757 type is initialized.
20759 2003-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20763 * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
20768 * object.c: remove warnings.
20770 2003-03-13 Martin Baulig <martin@ximian.com>
20772 * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
20773 (MonoDebugLexicalBlockEntry): New types.
20775 * debug-mono-symfile.c
20776 (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
20778 2003-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20780 * process.c: ret can be any non-zero value accroding to MS doc.
20782 2003-03-07 Miguel de Icaza <miguel@ximian.com>
20784 * class.c (mono_marshal_load_type_info): Fix buglet: Noticed when
20785 fixing a warning for a miss-used prototype, would have cause
20786 random memory corruption.
20788 2003-03-07 Martin Baulig <martin@ximian.com>
20790 * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
20791 getting really annoying ....
20793 2003-03-07 Zoltan Varga <vargaz@freemail.hu>
20795 * reflection.c (fixup_method): added support for array methods.
20797 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
20799 * socket-io.c: handle case when AF_INET6 and AF_IPX are not defined
20800 (pointed out by Michael Adams).
20802 2003-03-04 Dick Porter <dick@ximian.com>
20804 * icall.c: Temporarily reverted the Double and Single ToString()
20805 change, because it broke nunit.
20807 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
20809 * object.h, threads.h: make include files compatible with C++
20810 (patch by Jerome Laban <jlaban@wanadoo.fr>).
20812 2003-03-04 Pedro Mart?nez Juli? <yoros@wanadoo.es>
20814 * icall.c: Erased ToString helper functions for Double and Single.
20815 Now, that implementations ar all in managed code (Double and Single
20818 2003-03-03 Lluis Sanchez Gual <lluis@ideary.com>
20820 * appdomain.c: Added method for initializing the default context of
20821 a domain. Added internal call for getting the default context.
20822 * appdomain.h: Added context variable in MonoDomain struct.
20823 * domain.c: mono_domain_set also sets the default context of the domain
20824 * icall.c: Mapped internal method InternalGetDefaultContext.
20825 * object.c: mono_object_get_virtual_method returns always a remoting
20826 wrapper if the object is a transparent proxy.
20827 mono_runtime_invoke_array: when creating an object by calling the
20828 constructor, if the created object is a proxy, then the constructor should
20829 be called using the a remoting wrapper.
20831 2003-03-03 Dick Porter <dick@ximian.com>
20833 * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
20834 variable so it compiles on solaris. Problem spotted by
20835 Christopher Taylor <ct@cs.clemson.edu>
20837 2003-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20840 (get_info_from_assembly_name): don't leak value.
20843 (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
20846 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
20848 * assembly.c: export mono_image_load_references ().
20849 * class.c: handle function pointers. mono_class_from_name() now
20850 supports nested type names directly.
20852 2003-02-28 Zoltan Varga <vargaz@freemail.hu>
20854 * reflection.h reflection.c: Encode already created dynamic methods
20855 and fields correctly as a DEF instead of a REF.
20857 * reflection.c: Get rid of the force_ref argument to
20858 mono_image_typedef_or_ref since it was wrong in the first place.
20860 * string-icalls.c: add error checking to string constructors according
20863 * reflection.c: Emit types in the order their TypeBuilders were
20864 created. Previously, a new table index was assigned to each type before
20865 the tables were emitted. This was wrong because the signature blob
20866 might already refer to a type by its original table index.
20868 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
20870 * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
20873 2003-02-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20875 * Makefile.am: make assemblies dir have \ instead of / on windows.
20877 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
20879 * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
20880 iterate over the NESTEDCLASS table using a linear search since the
20881 table is not guaranteed to be sorted by the secondary key.
20883 * class.c (mono_class_create_from_typedef): fixed up call to
20884 mono_metadata_nesting_typedef.
20886 2003-02-27 Dietmar Maurer <dietmar@ximian.com>
20888 * marshal.c (mono_string_to_byvalstr): clear the memory as
20889 suggested by Jerome Laban <jlaban@wanadoo.fr>
20891 2003-02-26 Dick Porter <dick@ximian.com>
20893 * process.c: Cope with padding in .rsrc blocks
20895 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
20897 * metadata.h: reverted the filter_len change, it breaks reflection
20899 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
20901 * metadata.h: added a new field to store the filter_len
20904 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
20906 * reflection.c: handle custom attributes for types and members
20907 created with Reflection.Emit (bug#38422).
20909 2003-02-22 Zoltan Varga <vargaz@freemail.hu>
20911 * reflection.c: define RTSpecialName automatically for constructors for
20912 compatibility with MS.NET.
20914 * reflection.c (mono_reflection_create_runtime_class): initialize
20915 nested_in field of dynamically created classes.
20917 2003-02-22 Martin Baulig <martin@ximian.com>
20919 * debug-mono-symfile.h: Incremented version number.
20921 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
20923 * object.h icall.c process.c: fix warnings.
20925 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
20927 * appdomain.h appdomain.c:
20928 (mono_domain_try_type_resolve): split the
20929 name_or_tb argument into a name and a tb argument.
20930 (mono_domain_has_type_resolve): new function to check whenever the
20931 application has registered a TypeResolve event handler.
20933 * icall.c reflection.h reflection.c: move the type resolve logic into
20934 mono_reflection_get_type () so it will be invoked when
20935 Assembly::GetType () is called.
20938 (mono_reflection_get_type): renamed to get_type_internal.
20939 (mono_reflection_get_type): fixed type name generation so it works
20940 for nested types too.
20941 (mono_reflection_get_type): call has_type_resolve () to avoid the
20942 costly type name generation if there is no resolve event handler.
20944 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20946 * class.c, image.c: load exported types from file references.
20948 2003-02-19 Lluis Sanchez Gual <lluis@ideary.com>
20950 * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
20951 used to cache the managed methods used to create proxies and make
20952 remote invocation of methods.
20953 * class.h: Added in MonoVTable a flag to indicate that a class needs
20954 to be remotely created.
20955 * object.c: Modified the method mono_class_vtable(). It now initializes
20956 the remote flag of the vtable. Modified mono_object_new_specific(),
20957 so now it checks the remote flag.
20958 * icall.c: Added a couple of internal methods, one for enabling instance
20959 creation interception for a type, and one for creating objects bypassing
20962 2003-02-18 Martin Baulig <martin@ximian.com>
20964 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
20965 New interncall to get a method's metadata token.
20967 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
20968 New interncall for the debugger.
20970 2003-02-18 Dietmar Maurer <dietmar@ximian.com>
20972 * class.c (mono_class_setup_vtable): allocate supertype array
20974 2003-02-18 Martin Baulig <martin@ximian.com>
20976 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
20978 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20981 (assembly_name_to_aname): jump over unknown properties (i've found
20982 something like: 'type, assembly, version=xxx, custom=null, public...',
20983 so now will ignore custom=null and still get the rest of the values).
20985 2003-02-17 Dick Porter <dick@ximian.com>
20987 * threads.c: Have Thread.Start() wait for a semaphore to signal
20988 that the thread has set up all its local data. This fixes bug
20989 34323, where Abort() raced the new thread's TLS data.
20991 Also removes the handle_store() call from start_wrapper, because
20992 threads are now always created suspended and there is no longer a
20993 race between the parent and child threads to store the info.
20995 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
20997 * image.c: explain the #- heap issue in a message, hopefully
20998 avoiding FAQs on mono-list.
21000 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21003 (GetEntryAssembly): if the domain has not invoked
21004 AppDomain.ExecuteAssembly yet, return the assembly of the default
21007 2003-02-16 Zoltan Varga <vargaz@freemail.hu>
21009 * class.c (mono_ldtoken): make it work in dynamic assemblies.
21011 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
21013 * metadata.c, reflection.c: simple speedup to type hash
21016 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
21018 * image.c, image.h, class.c, assembly.c: move module loading
21019 to MonoImage. When loading metadata, consider alignemnet from
21020 the start of metadata, not from the metadata address in memory.
21022 2003-02-13 Zoltan Varga <vargaz@freemail.hu>
21024 * reflection.c (mono_reflection_get_custom_attrs): Added support for
21025 AssemblyBuilder objects. Factored out custom attribute creation into
21026 a separate function.
21027 (create_custom_attr): new function to create custom attributes.
21029 2003-02-12 Miguel de Icaza <miguel@ximian.com>
21031 * Makefile.am: Got tired of typing the full pathname to pedump.
21032 Until there is another option, am installing this.
21034 2003-02-12 Dietmar Maurer <dietmar@ximian.com>
21036 * class.c (class_compute_field_layout): always set field->parent
21037 (mono_ldtoken): use mono_defaults.fieldhandle_class;
21039 2003-02-11 Dick Porter <dick@ximian.com>
21042 * monitor.c: Rewrote Monitor, making lock much faster and
21043 Pulse/Wait work as specified. Also uses much fewer handles, and only
21044 creates them as needed.
21046 * exception.c: Added SynchronizationLockException
21048 * threads.c: Deleted old Monitor implementation. The new one is
21051 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
21053 * class.c: handled TypedReference type code. Set the correct size for
21054 class data. Setup interface_offsets for interface classes, too.
21056 2003-02-09 Martin Baulig <martin@ximian.com>
21058 * debug-mono-symfile.h: Reflect latest symbol writer changes.
21060 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
21062 * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
21063 * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
21064 * object.c: fixed mono_object_get_virtual_method () for interfaces.
21065 * verify.c: check for code that runs after the end of the method.
21067 2003-02-08 Pedro Mart?nez Juli? <yoros@wanadoo.es>
21069 * icall.c: Added "System.Math::Floor", "System.Math::Round" and
21070 "System.Math::Round2".
21071 * sysmath.h: Added Floor, Round and Round2 definitions.
21072 * sysmath.c: Modified certain functions that were not 100% compliant
21073 with MS.NET (math precision) and added the implementation of Floor,
21076 2003-02-07 Martin Baulig <martin@ximian.com>
21078 * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
21080 2003-02-07 Martin Baulig <martin@ximian.com>
21082 * debug-mono-symfile.c: Reflected latest symwriter changes.
21083 (mono_debug_create_mono_symbol_file): Removed.
21084 (mono_debug_open_mono_symbol_file): Take an argument which
21085 specifies whether to create a dynamic symbol file.
21087 2003-02-07 Dietmar Maurer <dietmar@ximian.com>
21089 * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
21091 2003-02-05 Martin Baulig <martin@ximian.com>
21093 * reflection.c (mono_image_build_metadata): Make this public,
21094 protect it against being called multiple times, don't create
21095 resources and don't build the compressed metadata here.
21096 (mono_image_create_pefile): Do this here.
21099 ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
21101 2003-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21103 * socket-io.c: fixed bug #36322.
21105 2003-02-06 Piers Haken <piersh@friskit.com>
21109 * debug-mono-symfile.c:
21115 * socket-io.c: warning cleanups
21117 2003-02-06 Dietmar Maurer <dietmar@ximian.com>
21119 * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
21120 function. works like remoting invoke, but does a check for the Proxy first.
21122 2003-02-05 Miguel de Icaza <miguel@ximian.com>
21124 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
21126 2003-02-05 Dietmar Maurer <dietmar@ximian.com>
21128 * marshal.c (mono_marshal_get_native_wrapper): only allocate an
21130 (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
21131 (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
21133 * object.c (mono_store_remote_field_new): used by the new jit
21134 instead of mono_store_remote_field
21135 (mono_load_remote_field_new): used by the new jit
21136 instead of mono_load_remote_field
21138 2003-02-05 Patrik Torstensson
21140 * appdomain.c: changed unload to take the domain id instead
21143 * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
21146 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21148 * appdomain.c: don't look for assemblies in ApplicationBase if
21149 PrivateBinPathProbe is set.
21151 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21153 * object.c: make the first argument in main_args contain the absolute
21154 path to the assembly. Fixes bug #37511.
21156 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21158 * icall.c: get correct UTC offset for countries not using daylight
21159 time saving. Fixes bug #30030.
21161 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21163 * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
21164 and 1 are the family).
21166 2003-02-04 Dietmar Maurer <dietmar@ximian.com>
21168 * icall.c (ves_icall_InternalExecute): removed wrong assertion
21170 * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
21172 2003-02-04 Zoltan Varga <vargaz@freemail.hu>
21174 * reflection.c: added support for SignatureHelper tokens, which is
21175 needed by the Calli opcode.
21177 * reflection.h: track changes to SignatureHelper class.
21179 * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
21181 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21183 * appdomain.c: fixed loading assemblies from PrivateBinPath.
21185 2003-02-03 Patrik Torstensson
21186 * appdomain.[c|h], domain.c :
21187 - Added support for getting a domain via domain id
21188 - Support for setting and getting domain from System.AppDomain
21189 (used in cross appdomain channel)
21190 - Added support for get/set for a MonoAppContext on a thread
21191 (Context class in System.Runtime.Remoting.Contexts),
21192 - Removed hack in Get/SetData and ExecuteAssembly.
21194 * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
21195 the managed world to get control when a proxy is created.
21197 * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
21199 2003-02-03 Miguel de Icaza <miguel@ximian.com>
21202 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
21203 Populate the codebase field as well.
21205 2003-02-02 Martin Baulig <martin@ximian.com>
21207 * debug-mono-symfile.c
21208 (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
21209 (mono_debug_symfile_add_method): Allow interncalls.
21211 2003-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21213 * icall.c: throw parse exception if strtod fails or the string is empty.
21215 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
21217 * marshal.c: handle object type separately from defined
21220 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
21222 * marshal.c: handle NATIVE_LPSTR for strings when it's
21223 explicitly specified.
21225 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
21227 * reflection.c, reflection.h, icall.c: setup the reflection
21228 handle cache for ModuleBuilders and AssemblyBuilders.
21230 2003-01-30 Dietmar Maurer <dietmar@ximian.com>
21232 * reflection.c (reflection_methodbuilder_to_mono_method): set
21235 2003-01-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21237 * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
21239 2003-01-29 Dick Porter <dick@ximian.com>
21241 * threads.c: No need for the fake_thread kludge now that Thread
21242 doesn't run a class constructor
21244 2003-01-29 Dick Porter <dick@ximian.com>
21246 * threads.c: Use g_direct_hash instead of the rather bogus
21249 2003-01-29 Dietmar Maurer <dietmar@ximian.com>
21251 * marshal.c (mono_marshal_get_native_wrapper): add check for null
21252 (fix pinvoke12.exe)
21253 (mono_marshal_get_struct_to_ptr): generate valid IL code
21254 (mono_marshal_get_ptr_to_struct): generate valid IL code
21255 (*): correctly set sig->pinvoke, we need to memdup the signature
21258 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
21260 * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
21261 to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
21263 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
21265 * profiler.c: provide more callers information.
21267 2003-01-28 Dietmar Maurer <dietmar@ximian.com>
21269 * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
21271 * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
21273 * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
21275 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
21277 * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
21278 exception instead of going into an infinite loop on dates which it
21281 * string-icalls.c (ves_icall_System_String_get_Chars): raise
21282 out-of-range exception if needed.
21284 * class.c (mono_class_setup_vtable): allow a virtual method to provide
21285 an implementation for an interface method and to override an inherited
21286 method at the same time.
21287 Imagine a scenario when a virtual method is used to override a
21288 virtual abstract method in a parent class, and this same method
21289 provides an implementation for an method inherited from an interface.
21290 In this case, the interface resolution code will set im->slot, which
21291 means that the virtual method override pass will skip this method
21292 which means a pointer to the abstract method inherited from the parent
21293 will remain in the vtable of this non-abstract class.
21295 * class.c: (mono_class_setup_vtable): continue search for a real
21296 method if only an abstract method is found.
21298 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
21300 * reflection.c: add size to encoding for ByValStr and ByValArray
21301 marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
21303 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
21305 * class.c (mono_class_setup_vtable): pass the override info as an
21308 * class.c (mono_class_setup_vtable): set the slot of overriding methods
21311 * reflection.c (ensure_runtime_vtable); add support for method
21314 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
21316 * reflection.c (resolution_scope_from_image): Hack to work to work with
21317 dynamic assemblies.
21319 * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and
21320 added a 'force_ref' argument to force this function to allways return
21321 a TypeRef. This is needed by mono_image_get_memberref_token ().
21323 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
21325 * reflection.c (mono_image_get_type_info): interfaces really don't have
21328 * reflection.c (mono_image_basic_init): fill out missing fields of
21331 * reflection.c (mono_image_basic_init): Invoke assembly load hooks for
21332 dynamic assemblies. This is required so dynamic assemblies show up in
21333 AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
21334 Type::GetType() etc. This is consistent with MS behaviour.
21336 * image.c image.h reflection.c: add newly created classes to the name
21337 cache so mono_class_get () will find them.
21339 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
21341 First part of changes to get IKVM.NET running under mono.
21343 * appdomain.h, appdomain.c: added new function
21344 mono_domain_try_type_resolve() which will emit TypeResolve events.
21345 This function will call AppDomain::DoTypeResolve to do the actual work.
21347 * class.h, class.c, loader.c, object.c, reflection.h, reflection.c:
21348 moved existing code dealing with dynamic tokens to a new function
21349 called mono_reflection_lookup_dynamic_token (). This function will
21350 raise TypeResolve events when appropriate. Since reflection.c is not
21351 part of libmetadata, a new hook function called
21352 mono_lookup_dynamic_token() is added to class.c which will call this.
21354 * assembly.h assembly.c: make the invoke_load_hook function public,
21355 so it can be called for dynamic assemblies.
21357 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
21359 * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the
21362 * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a
21363 MonoGHashTable, since it contains pointers to objects which the GC
21366 * assembly.c (search_loaded): remove unused variable.
21368 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
21370 * object.c: fixed issue exposed by gcc-generated IL programs
21371 that use RVA data for pointers.
21373 2003-01-25 Martin Baulig <martin@ximian.com>
21375 * threads.c (start_wrapper): Moved the initialization of
21376 `start_func' above the mono_new_thread_init() call to which we
21377 pass it as argument.
21379 2003-01-24 Martin Baulig <martin@ximian.com>
21381 * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
21382 the MonoThread pointer.
21384 2003-01-21 Miguel de Icaza <miguel@ximian.com>
21386 * icall.c: Rename `PowImpl' to Pow.
21388 2003-01-23 Dick Porter <dick@ximian.com>
21390 * threads.c (start_wrapper): Create a Thread object if needed, so
21391 the Main() thread can do the class initialisation in a subthread
21392 that has been set up to allow managed code execution.
21394 Pass the thread ID instead of the MonoThread pointer to the thread
21395 start and attach callbacks. This change is required, because the
21396 jit thread start callback must be called _before_ the Thread
21397 object can be created.
21399 (mono_thread_init): Removed much object creation code that is no
21400 longer needed. No managed code is called from here now.
21402 * object.c (mono_runtime_exec_managed_code): Create a subthread
21403 for Main, and call back to the runtime to use it.
21404 Set the exit code when Main exits.
21406 * gc.c: Make sure domain finalisation happens in a subthread.
21407 Re-enable threaded GC, fixing bug 31333 (again).
21409 * environment.c: System.Environment internall calls (so far just
21410 ExitCode is here, the others are still in icall.c)
21412 * appdomain.c (mono_runtime_cleanup): All threads running managed
21413 code should have finished before mono_runtime_cleanup() is
21414 reached, so no need to clean up threads.
21416 2003-01-22 Martin Baulig <martin@ximian.com>
21418 * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
21419 `gpointer func' arguments.
21420 (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
21421 but added `MonoThread *thread' argument.
21422 (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
21424 * threads.c (mono_new_thread_init): Added `gpointer func' argument
21425 and pass it to the mono_thread_start_cb callback.
21426 (mono_install_thread_callbacks): New public function to install a
21427 set of callbacks which are set by the debugger.
21428 (mono_thread_init): The last argument is now a MonoThreadAttachCB.
21430 2003-01-22 Martin Baulig <martin@ximian.com>
21432 * Makefile.am: Install debug-mono-symfile.h.
21434 2003-01-21 Aleksey Demakov <avd@openlinksw.com>
21436 * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
21438 2003-01-21 Dietmar Maurer <dietmar@ximian.com>
21440 * added the following fix from Jackson Harper <jackson@latitudegeo.com>
21441 * class.c (mono_ptr_class_get): correctly set access levels of pointers
21442 (mono_array_class_get): correctly set access levels of arrays
21444 2003-01-20 Patrik Torstensson
21445 * image.h (MonoAssemblyName): changed major, minor, build, revision
21446 from signed to unsigned.
21448 2003-01-20 sean kasun <skasun@azstarnet.com>
21450 * reflection.c (load_cattr_value): Now this handles
21451 MONO_TYPE_SZARRAY. Fixes bug #35629
21453 2003-01-20 Miguel de Icaza <miguel@ximian.com>
21455 * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
21458 2003-01-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21460 * decimal.c: fixed bug #26056.
21462 2003-01-17 Martin Baulig <martin@ximian.com>
21464 * gc.c: Raise an ExecutionEngineException instead of using g_error().
21466 2003-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21469 (mono_get_exception_type_initialization): new function.
21471 * object.c: throw a TypeInitializationException when an exception is
21472 thrown invoking the class constructor.
21474 2003-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21476 * reflection.c: fixed attribute reading.
21478 2003-01-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21481 (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
21482 provided, look for the type in the calling assembly and then in
21483 mscorlib; if the assembly name is provided, only try that one.
21485 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
21487 * object.c: register the vtable before there is a chance it's
21488 queried again recursively.
21490 2003-01-13 Duncan Mak <duncan@ximian.com>
21492 * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
21495 2003-01-12 Patrik Torstensson <totte@race-x-change.com>
21497 * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
21499 2003-01-11 Martin Baulig <martin@ximian.com>
21501 * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
21502 this to 20 for the release.
21504 2003-01-10 Dietmar Maurer <dietmar@ximian.com>
21506 * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
21508 * loader.c (mono_method_get_marshal_info): bug fix
21510 * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
21511 structures with explicit layout
21513 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
21515 * profiler.c: made the output more readable (and sorted).
21516 Added caller information for the allocation profiler.
21518 2003-01-09 Sebastien Pouliot <spouliot@videotron.ca>
21520 * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
21522 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21524 * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
21525 to get value types.
21527 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
21529 * object.c, profiler.h, profiler.c, profiler-private.h:
21530 Added object allocation profiler.
21532 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
21534 * reflection.h, reflection.c: handle global methods.
21535 Compress blob entries.
21537 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
21539 * marshal.c: fix compilation.
21541 2003-01-09 Dietmar Maurer <dietmar@ximian.com>
21543 * loader.c (mono_method_get_marshal_info): impl.
21545 * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
21547 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21549 * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
21550 for reference types.
21552 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
21554 * loader.c: fixed off by one error in loaded parameter names.
21556 2003-01-08 Dietmar Maurer <dietmar@ximian.com>
21558 * marshal.c (mono_marshal_get_icall_wrapper): like
21559 mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
21560 instead of a MonoMethod.
21562 2003-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21564 * decimal.c: fixed bug #36537.
21566 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
21568 * marshal.c: throw a missing method exception if a
21569 P/Invoke method is not found.
21571 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
21573 * icall.c: allow a null this for constructors.
21575 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
21577 * icall.c: raise the proper exceptions if the arguments to the
21578 internal Invoke are incorrect.
21580 2003-01-03 Dietmar Maurer <dietmar@ximian.com>
21582 * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
21584 2003-01-03 Martin Baulig <martin@ximian.com>
21586 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
21588 2002-12-31 Martin Baulig <martin@ximian.com>
21590 * debug-mono-symfile.c: Completely rewrote the type section.
21591 Instead of using individual malloc()ed fields, we use one big
21592 continuous memory area and offsets into this area.
21593 See the comments in the source code for details.
21595 2002-12-30 Martin Baulig <martin@ximian.com>
21597 * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
21599 2002-12-30 Martin Baulig <martin@ximian.com>
21601 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
21602 line number table in this data blob instead of using an external
21605 2002-12-28 Martin Baulig <martin@ximian.com>
21607 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
21609 2002-12-22 Rachel Hestilow <hestilow@ximian.com>
21611 * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
21612 as a boxed return type.
21614 2002-12-21 Miguel de Icaza <miguel@ximian.com>
21617 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
21618 g_build_filename to properly get separators on the filename created.
21620 * object.h: Small change, introduce MonoMarshalByRefObject to
21621 track the layout of that structure in the C# universe as we make
21624 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
21626 * object.c: removed assert to allow static fields on interfaces.
21627 * loader.c: a TypeSpec may be used for any type, not just arrays.
21629 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21631 * class.c, class.h: added mono_class_array_element_size ().
21632 Ignore static methods in interfaces.
21634 2002-12-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21636 * threads.c: fixed the build under cygwin.
21638 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21640 * reflection.c: handle nullref constants. Allocate keys for
21641 reflection handles with the GC.
21643 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21645 * threads.c, threads.h: added mono_thread_get_abort_signal()
21646 to get a suitable signal for thread abort.
21648 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21650 * metadata.c: fix handling of ExportedType table.
21652 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21654 * icall.c: added WriteWindowsDebugString internal call.
21656 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21658 * reflection.h: added fields to match C# implementation.
21660 2002-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21662 * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
21664 2002-12-12 Juli Mallett <jmallett@FreeBSD.org>
21666 * gc.h, gc-internal.h: Rename header for GC internal calls to
21667 gc-internal.h from gc.h as to not clash with Boehm GC having its
21668 header installed as <gc.h> in outside include paths.
21669 * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
21670 * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
21672 2002-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21674 * icall.c: assign minor, build and revision in FillName.
21676 2002-12-11 Zoltan Varga <vargaz@freemail.hu>
21678 * image.h reflection.h reflection.c class.h class.c loader.c object.c:
21679 Added support for running code generated by Reflection.Emit.
21681 2002-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21683 * appdomain.c: check for NULL argument in LoadFrom.
21685 2002-12-10 Dick Porter <dick@ximian.com>
21687 * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
21689 2002-12-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21691 * appdomain.c: fix buglet when building exe file name. Handle full
21692 assembly name (needed after latest changes to AssemblyName).
21694 (mono_image_close): free some hashtables.
21696 2002-12-05 Dietmar Maurer <dietmar@ximian.com>
21698 * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN
21699 instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation
21700 on some systems (redhat 7.3)
21702 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
21704 * threads.c: delete the critical section of a sync block,
21705 spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
21707 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
21709 * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
21711 2002-12-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21713 * appdomain.[ch]: handle the assembly preload event to try loading the
21714 assemblies using the paths we have in the current domain.
21716 * assembly.[ch]: created an assembly preload hook that is called to try
21717 loading the assembly by other means that the ones provided here.
21719 * domain.c: initialize the domain search path.
21721 From now on, assemblies (TODO: except corlib and System) are loaded
21722 according to these rules when using mono_assembly_load ():
21724 1. It tries to load the assembly from the ApplicationBase
21725 of the current domain appending .dll and .exe (TODO: have to
21726 try loading from name/name.dll and name/name.exe).
21728 2. It tries the search path specified in PrivateBinPath for the
21729 current domain (if any).
21731 3. Previous behavior.
21733 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
21735 * icall.c: implemented GetInterfaceMap() related icall.
21736 * domain.c, loader.h: load MethodInfo in mono_defaults.
21738 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21740 * gc.c: disable the finalizer thread for now, untill all the issues
21741 with it are resolved.
21743 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21745 * string-icalls.c: handle embedded nulls in string ctor when the
21746 length is specified.
21748 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21750 * class.c: look for explicit interface implementation in parent
21753 2002-12-03 Dietmar Maurer <dietmar@ximian.com>
21755 * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3)
21757 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21759 * gc.c: protect handles with a critical section.
21761 2002-12-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21764 (ves_icall_type_from_name): it now has throwOnError and ignoreCase
21765 parameters. If no assembly specified, try getting the type from all
21766 the assemblies in the current domain, else, load the assembly and get
21769 2002-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21771 * marshal.c: applied patch from Aleksey Demakov that fixes
21772 ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
21774 2002-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21776 * icall.c: fixed get_location.
21778 2002-11-28 Dietmar Maurer <dietmar@ximian.com>
21780 * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
21781 declarations to make it work with older gcc.
21783 * loader.c (mono_get_method): set signature->pinvoke for native calls
21785 2002-11-20 Dick Porter <dick@ximian.com>
21787 * threads.c (mono_thread_init): Set the main thread's handle
21789 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21791 * gc.c: allow compilation without GC support. Changed to match the
21794 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21796 * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
21798 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
21800 * reflection.c: set a public key token on the core assemblies.
21802 2002-11-18 Dick Porter <dick@ximian.com>
21804 * threads.c: Split out some thread initialisation so that other
21805 files can set the start callback function.
21807 * gc.c: Run finalisers in a separate thread, to avoid stack
21808 overflow. Fixes bug 31333.
21810 * appdomain.c: Set up GC finalisation thread.
21814 * domain.c: Use gc.h macros for GC_malloc
21816 2002-11-15 Dick Porter <dick@ximian.com>
21820 * appdomain.c: Removed mono_runtime_init_with_attach(),
21821 mono_thread_create_arg(), and mono_thread_init_with_attach(), by
21822 merging the extra parameter with the existing function. Removed
21823 unneeded code in mono_thread_attach().
21825 2002-11-14 Dietmar Maurer <dietmar@ximian.com>
21827 * image.c (mono_image_loaded_by_guid): a method to get loaded
21829 (load_metadata_ptrs): we store the guid as string.
21831 2002-11-11 Dietmar Maurer <dietmar@ximian.com>
21833 * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
21835 * metadata.c (mono_guid_to_string): imported method form Zoltan
21836 Varga (slightly modified)
21838 * assembly.c (mono_assembly_open): load precompiled code
21840 * loader.h (MonoMethod): we store the method token for use in the
21843 2002-11-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21845 * appdomain.c: insert the loaded assemblies in the domain->assemblies in
21846 the hook function called when an assembly is loaded.
21848 * domain.c: Modified file.
21849 (mono_domain_assembly_load): removed hash table insertion of assemblies.
21853 2002-11-07 Miguel de Icaza <miguel@ximian.com>
21855 * reflection.c: Map PEFileKind to the value expected by the WinNT
21858 2002-11-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21860 * rand.c: use /dev/urandom. If it fails to open, use the previous one.
21861 Read until the buffer is filled completely.
21863 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21865 * icall.c: implemented MonoType.InternalGetEvent ().
21867 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21869 * appdomain.c: implemented InitAppDomainSetup. Delayed
21870 AppDomain.SetupInformation until mono_runtime_exec_main, where we get
21871 the entry_assembly.
21873 * assembly.c: base_dir is now an absolute path ending with
21876 * icall.c: modified get_location according to the above changes.
21878 * object.c: init AppDomain.SetupInformation for the default domain after
21879 we have the entry assembly.
21881 * domain.c: when unloading a domain, setup = NULL.
21883 2002-11-04 Dietmar Maurer <dietmar@ximian.com>
21885 * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
21887 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
21889 * object.h, object.c: introduced mono_object_get_virtual_method ()
21890 to lookup the method invoked on an object when a callvirt is done on
21892 * icall.c: make MethodInfo::Invoke() always do a virtual call.
21894 2002-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21896 * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
21897 current domain when loaded an assembly and failed to load it.
21899 * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
21901 2002-10-31 Dick Porter <dick@ximian.com>
21905 * file-io.c: Return the error status in a parameter, as the
21906 GetLastError() value has long since been blown away if we try and
21907 look it up in a subsequent internal call invocation. Delete the
21908 GetLastError() internal call, because it's useless.
21910 2002-10-31 Dietmar Maurer <dietmar@ximian.com>
21912 * class.[ch]: added cast_class to fix bug 29517
21914 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
21916 * marshal.c: create valid IL code in the filter clause:
21917 the new JIT is less forgiving:-)
21919 2002-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21921 * icall.c: removed get_property internal call.
21923 2002-10-25 Zoltan Varga <vargaz@freemail.hu>
21925 * appdomain.h domain.c: Added an ID to appdomains.
21927 * threads.c threads.h icall.c: Implement icall
21928 Thread:GetDomainID(), and remove unused icall
21929 CurrentThreadDomain_internal.
21931 2002-10-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21933 * icall.c: Don't recurse through the base types in GetConstructor.
21936 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
21938 * mempool.h, mempool.c: added mono_mempool_empty() and
21939 mono_mempool_stats().
21941 2002-10-23 Dick Porter <dick@ximian.com>
21945 * icall.c: Added MonoIO.GetFileType internal call
21947 2002-10-17 Dick Porter <dick@ximian.com>
21949 * appdomain.c (mono_runtime_cleanup): Don't signal the async
21950 delegate semaphore before waiting for all threads to finish,
21951 because new threads can also call async delegates. Fixes bug
21954 * threadpool.c (async_invoke_thread): Only wait for 500ms instead
21955 of 3 seconds, in case another async job is queued. (This part is
21956 needed because the bug fix reintroduced the 3s exit lag.) This
21957 makes the mono_runtime_shutdown flag superfluous.
21959 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
21961 * reflection.c: include ehader size in method section headers.
21962 Really check for suplicated modules entries.
21964 2002-10-17 Martin Baulig <martin@gnome.org>
21966 * debug-mono-symfile.c: Added back support for locals.
21968 2002-10-14 Martin Baulig <martin@gnome.org>
21970 * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
21973 2002-10-14 Martin Baulig <martin@gnome.org>
21975 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
21976 mono_class_get() instead of looking in the class cache.
21978 2002-10-13 Martin Baulig <martin@gnome.org>
21980 * debug-mono-symfile.c: Set version number to 28, include the
21981 signature in method names.
21983 2002-10-13 Martin Baulig <martin@gnome.org>
21985 * debug-mono-symfile.h: Set version number to 27.
21987 2002-10-11 Martin Baulig <martin@gnome.org>
21989 * gc.c: Don't register/unregister NULL pointers as disappearing links.
21991 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21993 * metadata.c, metadata.h: added helper function to allocate signatures.
21995 2002-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21997 * icall.c: added internal call to get the location of machine.config.
21999 2002-10-08 Martin Baulig <martin@gnome.org>
22001 * debug-mono-symfile.c: Ignore classes with a pending init for the
22004 2002-10-03 Dick Porter <dick@ximian.com>
22006 * threads.c: Freebsd pthread_t is a pointer
22008 2002-10-03 Dick Porter <dick@ximian.com>
22010 * socket-io.c: Implemented GetHostName_internal
22012 2002-10-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22015 (mono_config_parse_file): don't leak the text.
22017 2002-10-02 Martin Baulig <martin@gnome.org>
22019 * debug-mono-symfile.c: Added support for methods.
22021 2002-10-01 Martin Baulig <martin@gnome.org>
22023 * debug-mono-symfile.c: Don't emit methods and line numbers for
22024 the dynamic symbol file, just write the type table. We can easily
22025 have an external helper program which creates a symbol file for an
22028 2002-10-01 Dick Porter <dick@ximian.com>
22030 * threads.c (ves_icall_System_Threading_Thread_Start_internal):
22031 Only add the handle to the cleanup array when we're about to
22032 launch the thread. Bug 31425 deadlocked when the test was run on
22035 2002-10-01 Martin Baulig <martin@gnome.org>
22037 * debug-mono-symfile.c: Added support for properties.
22039 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22041 * reflection.c: unaligned store fix from Mark Crichton
22042 <crichton@gimp.org>.
22044 2002-09-27 Martin Baulig <martin@gnome.org>
22046 * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
22049 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
22051 * assembly.h, assembly.c: use a sane API to hook into the assembly
22052 loading process instead of a useless special-purpouse hack
22053 (ngen needs a hook, too, for example).
22055 2002-09-27 Dick Porter <dick@ximian.com>
22057 * threads.c (mono_thread_init): Call GetCurrentProcess() so
22058 io-layer can set up some process handle info. Not needed on w32,
22059 but doesn't hurt either.
22061 * process.c: Pass the program name in the second parameter to
22062 CreateProcess, so the path is searched. Include the working
22063 directory. Implemented process name, process enumeration, and some
22064 process detail internal calls.
22066 * icall.c: Added internal calls for process lookup, and some
22069 2002-09-26 Martin Baulig <martin@gnome.org>
22071 * assembly.c (mono_install_open_assembly_hook): New global
22072 function to install a function to be invoked each time a new
22073 assembly is loaded.
22074 (mono_assembly_open): Run this callback function if set.
22076 * debug-mono-symfile.c: Put back line numbers for the dynamic
22077 symbol file and also record the .il file as source file. This
22078 allows us to install the temporary symbol file as `file.dbg' just
22079 like a compiler-generated one.
22081 2002-09-26 Nick Zigarovich <nick@chemlab.org>
22083 * Corrected typo in gc.c (BOHEM vs BOEHM).
22085 2002-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22087 * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
22088 GetProperties. Also avoid calling g_slist_length in GetProperties and
22091 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22093 * reflection.c: avoid unaligned stores (bug spotted by
22094 Mark Crichton <crichton@gimp.org>).
22096 2002-09-25 Martin Baulig <martin@gnome.org>
22098 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
22099 instead of guint64 for addresses and added prologue/epilogue info.
22101 2002-09-25 Martin Baulig <martin@gnome.org>
22103 * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
22104 store line number info. For the dynamic symbol file, we only need
22105 to provide the JIT generated dynamic line number info for the dynamic
22108 2002-09-25 Martin Baulig <martin@gnome.org>
22110 * debug-mono-symfile.h: Incremented version number.
22112 2002-09-24 Martin Baulig <martin@gnome.org>
22114 * class.c (mono_debugger_class_init_func): New global function
22116 (mono_class_init): If mono_debugger_class_init_func is non-NULL,
22119 * debug-mono-symfile.c (mono_debug_symfile_add_type): New
22120 function. This is called via the mono_debugger_class_init_func
22121 hook to add all types to the dynamic type table.
22122 (ves_icall_MonoDebugger_GetType): New interncall to get a class
22123 from its metadata token.
22125 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
22126 New interncall for the debugger.
22128 2002-09-24 Nick Drochak <ndrochak@gol.com>
22130 * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
22131 before using it in case it is null.
22133 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22135 * metadata.c: allow custom modifiers in local var signatures
22136 (bug spotted by Zoltan Varga).
22138 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
22140 * class.c: deal with the <Module> class that may have a NULL vtable.
22141 Eliminate warnings.
22143 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22145 * image.c, image.h: more strong name helpers.
22146 * monosn.c: more work: convert pem keys to cryptoapi format.
22148 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22150 * string-icalls.c: speedup IndexOf.
22152 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22154 * icall.c: updates from Zoltan.2.Varga@nokia.com.
22156 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
22158 * icall.c: cleanup: use mono_object_domain ().
22160 2002-09-23 Martin Baulig <martin@gnome.org>
22162 * debug-mono-symfile.c: Improved type support.
22164 2002-09-22 Martin Baulig <martin@gnome.org>
22166 * debug-mono-symfile.c: Added support for reference types and strings.
22168 2002-09-22 Martin Baulig <martin@gnome.org>
22170 * debug-mono-symfile.c: Started to work on the type table.
22172 2002-09-21 Martin Baulig <martin@gnome.org>
22174 * debug-mono-symfile.c: Largely reworked the symbol table format.
22175 The symbol table is now incrementally updated each time a new
22176 method is added. We're now also using our own magic and version
22177 so that you don't need to recompile all your classes if the
22178 dynamic table changes.
22179 (mono_debug_update_mono_symbol_file): Removed.
22180 (mono_debug_symfile_add_method): New function to add a method.
22182 2002-09-21 Martin Baulig <martin@gnome.org>
22185 ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
22188 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
22189 New interncall to get a method from its metadata token.
22191 2002-09-21 Martin Baulig <martin@gnome.org>
22193 * debug-mono-symfile.c: Create type table.
22195 2002-09-20 Martin Baulig <martin@gnome.org>
22197 * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
22199 2002-09-20 Martin Baulig <martin@gnome.org>
22201 * debug-mono-symfile.c: Provide information about params and locals.
22203 2002-09-20 Martin Baulig <martin@gnome.org>
22205 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
22208 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
22209 interncall to get a method from its metadata token.
22211 2002-09-20 Martin Baulig <martin@gnome.org>
22213 * debug-mono-symfile.c: Added a few checks for method->header
22214 being non-NULL. This should never happen, but for the moment
22215 let's use a g_warning() rather than a g_assert().
22217 2002-09-19 Mark Crichton <crichton@gimp.org>
22219 * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
22220 even if support for it isn't present. Added an #ifdef to fix this.
22222 * socket-io.c: Added checks back for Solaris support.
22224 2002-09-19 Martin Baulig <martin@gnome.org>
22226 * debug-mono-symfile.c (read_string, write_string): Reflect latest
22227 changes in the symbol file format.
22229 2002-09-18 Martin Baulig <martin@gnome.org>
22231 * debug-mono-symfile.c: Set version number to 21.
22233 2002-09-18 Dick Porter <dick@ximian.com>
22235 * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
22236 on netbsd. Fixes bug 30051.
22238 2002-09-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22241 (set_version_from_string): little fix.
22243 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22245 * monosn.c, Makefile.am: added strong name utility.
22246 * reflection.h, reflection.c: implemented delayed signing,
22247 locale, version and hash id assembly attributes.
22249 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22251 * loader.c, metadata.c: load param attributes in signatures.
22253 2002-09-16 Martin Baulig <martin@gnome.org>
22255 * debug-mono-symfile.c: Added string table with all method names.
22257 2002-09-14 Martin Baulig <martin@gnome.org>
22259 * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
22260 fast method lookup.
22262 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22264 * reflection.c: record the public key token of referenced assemblies.
22266 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22268 * image.c, image.h: added functions to get the strong name and the
22269 public key of an assembly.
22270 * pedump.c: use them.
22272 2002-09-12 Dietmar Maurer <dietmar@ximian.com>
22274 * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
22276 2002-09-12 Miguel de Icaza <miguel@ximian.com>
22278 * marshal.c (mono_marshal_get_managed_wrapper): Added
22281 2002-09-11 Martin Baulig <martin@gnome.org>
22283 * gc.c: Call GC_unregister_disappearing_link() on all links when
22284 finalizing them, this is necessary to aviod a crash in boehm's
22287 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22289 * gc.c: handle GetTarget for finalized objects spotted and fixed by
22292 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
22294 * icall.c: implemented MonoType::Module.
22295 * reflection.c, reflection.h: mono_module_get_object () from
22296 Tomi Pakarinen <tomi.pakarinen@welho.com>.
22298 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22300 * icall.c: ignore overridden methods in GetMethods ().
22301 Fix for FieldInfo::SetValue().
22302 * object.c: handle float/double in runtime invoke.
22304 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22306 * object.c: allow a constructor to be called again on an object.
22308 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22310 * class.h, class.c: move field layout code to it's own function and
22311 export it. Get an interface id earlier. Move fields in MonoClass
22312 so they are more cache friendly and align the bitfields.
22313 * loader.c: temporary handle get_param_names() for a runtime method.
22314 * reflection.c, reflection.h: more code to handle runtime creation of
22317 2002-09-09 Martin Baulig <martin@gnome.org>
22319 * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
22320 signature with the pinvoke field being set for the actual call.
22322 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22324 * icall.c: removed some unused icalls. Start of map of glib charsets
22325 to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
22327 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22329 * debug-helpers.c: break infinite loop (found and fixed by
22330 Holger Arnold <harnold@gmx.de>).
22332 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22334 * icall.c: target may be null in create_delegate.
22336 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22338 * marshal.c: handle a boolean return type.
22340 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22342 * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
22344 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
22346 * gc.c: fix weakreferences.
22348 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
22350 * icall.c: added icall to get default codepage.
22352 2002-09-03 Dick Porter <dick@ximian.com>
22355 * threads.c: Use MonoThread instead of MonoObject where
22358 Store running thread objects in a hash table, so that we have all
22359 the info to hand when waiting for them to finish
22360 (means we don't need OpenThread() any more, so mingw builds should
22361 be fully functional again.)
22364 * object.h: Added thread ID to MonoThread
22366 2002-09-03 Martin Baulig <martin@gnome.org>
22368 * icall.c (System.Reflection.Assembly::get_location): New interncall.
22370 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22372 * icall.c: fixed leak in get_temp_path. Thanks lupus.
22374 2002-09-03 Martin Baulig <martin@gnome.org>
22376 * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
22377 argument to store the end address of the disassembled instruction.
22379 * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
22380 here from debug-symfile.h.
22381 (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
22382 JIT into this struct.
22383 (MonoSymbolFile): Added `char *image_file' field.
22384 (MonoDebugGetMethodFunc): Removed.
22385 (mono_debug_update_mono_symbol_file): Removed the hash table argument.
22386 (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
22387 (mono_debug_find_method): New method.
22389 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
22390 create a full symbol file.
22391 (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
22392 and static symbol files.
22393 (mono_debug_find_method): The symbol file keeps an internal method hash,
22394 call this to get a MonoDebugMethodInfo from a MonoMethod.
22396 * debug-symfile.[ch]: Removed.
22398 2002-08-29 Miguel de Icaza <miguel@ximian.com>
22400 * image.c (do_mono_image_open): Remove linker version check.
22402 2002-08-29 Dietmar Maurer <dietmar@ximian.com>
22404 * marshal.c (mono_marshal_get_managed_wrapper): don't cache
22405 wrappers for instance methods.
22407 2002-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22409 * icall.c: added ves_icall_System_IO_Path_get_temp_path.
22411 2002-08-28 Dick Porter <dick@ximian.com>
22413 * Makefile.am: Export HOST_CC for w32 builds
22415 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22417 * file-io.c process.c: MonoString are null terminated, no
22418 need for mono_string_to_utf16() anymore.
22420 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22422 * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
22424 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
22426 * icall.c, reflection.h: speedup System.MonoType.
22428 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22430 * reflection.c: allow null as the value of a string argument in
22431 custom attributes constructors.
22433 2002-08-27 Martin Baulig <martin@gnome.org>
22435 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
22436 `trampoline_address' field.
22438 2002-08-27 Dietmar Maurer <dietmar@ximian.com>
22440 * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
22441 check (fixes bug #29486)
22443 2002-08-27 Martin Baulig <martin@gnome.org>
22445 * debug-mono-symfile.c: Changed the file format in a way that allows us
22446 open it read-only and to use a specially malloced area for all the
22447 dynamic data. We can now also generate a symbol file on-the-fly if we're
22448 debugging IL code and there is no MCS generated symbol file for it.
22450 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22452 * object.c: added a define for a good string and array
22453 creation speedup (not enabled by default because we need to deal with
22456 2002-08-26 Martin Baulig <martin@gnome.org>
22458 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
22459 function to create a dynamic symbol file. This is used by the
22460 debugger to create a symbol file for IL code on-the-fly.
22462 2002-08-26 Martin Baulig <martin@gnome.org>
22464 * loader.c (mono_lookup_pinvoke_call): Include the error message
22465 from g_module_error() in the error message.
22467 2002-08-24 Martin Baulig <martin@gnome.org>
22469 * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
22470 function to update the symbol file. The symbol file is mmap()ed
22471 writable, but private. This allows us to install the symbol file
22472 together with the assembly.
22474 2002-08-24 Martin Baulig <martin@gnome.org>
22476 * debug-mono-symfile.[ch]: New files. Similar to debug-symfile.[ch]
22477 but they can read the new symbol file format which mcs is now creating.
22479 * debug-symfile.c (mono_debug_find_source_location): Moved to
22480 debug-mono-symfile.c; this is now operating on the new symbol file.
22482 2002-08-23 Martin Baulig <martin@gnome.org>
22484 * debug-helpers.c (mono_method_desc_from_method): New function to get
22485 a MonoMethodDesc from a MonoMethod.
22487 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
22489 * object.c: fixes assertion failure caused by multiple ExecuteAssembly
22490 calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
22492 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
22494 * string-icalls.[ch]: make helper methods static.
22496 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22498 * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
22499 types to it and to SetValueInternal.
22501 * object.c: Moved handle_enum label to its proper place. This was the
22504 This time i compiled mcs and gtk-sharp and they both work.
22506 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22508 * icall.c: reverted partially my previous patch until
22509 object.c:set_value handles enums correcly.
22511 2002-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22514 (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
22515 (ves_icall_System_Environment_get_MachineName): removed warning when
22516 compiling under cygwin.
22518 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22520 * object.c: fixed field_get_value() for reference types.
22522 2002-08-22 Dick Porter <dick@ximian.com>
22524 * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
22525 Don't free a buffer while it's still needed. Patch from Jonathan
22526 Liger <Jonathan.liger@wanadoo.fr>
22528 2002-08-21 Miguel de Icaza <miguel@ximian.com>
22530 * icall.c (ves_icall_System_Environment_get_Platform): Add new
22533 2002-08-21 Dietmar Maurer <dietmar@ximian.com>
22535 * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
22536 (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
22538 * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
22539 we call unmanaged code which throws exceptions.
22541 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22543 * appdomain.h: added per-domain entry_assembly.
22544 * appdomain.c: ensure mono_runtime_exec_main () gets non-null
22546 * icall.c: Assembly::GetEntryAssembly icall.
22547 * object.c: set domain->entry_assembly in mono_runtime_exec_main().
22548 Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
22550 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
22552 * appdomain.h, gc.c: added mono_domain_finalize ().
22554 2002-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22557 (mono_print_unhandled_exception): changed g_warning by g_printerr
22558 because g_log has a 1024 characters limit (yeah, i got a big stack
22559 trace). Don't print exception name, that should be in ToString
22562 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22564 * icall.c: added ves_icall_FieldInfo_SetValueInternal.
22565 * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
22567 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22570 (mono_print_unhandled_exception): after previous commit, i realized
22571 that MS calls ToString on the exception. I changed this function to
22572 do that. This way we get stack_trace for free.
22574 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22577 (mono_print_unhandled_exception): invoke Message property instead of
22578 getting 'message' field from Exception. Don't allocate memory for
22579 'trace' and 'message' if not needed.
22581 2002-08-18 Dick Porter <dick@ximian.com>
22583 * unicode.c: Fix asserts to match Encoder.cs checks
22585 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22587 * marshal.c: fix unaligned store issue and a few wrong
22588 opcode argument types.
22590 2002-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22592 * icall.c: added GetUninitializedObjectInternal internal call.
22594 2002-08-16 Dietmar Maurer <dietmar@ximian.com>
22596 * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
22597 to the right domain.
22599 2002-08-14 Dietmar Maurer <dietmar@ximian.com>
22601 * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
22603 * class.c (class_compute_field_layout): set blittable to false for Strings
22605 * appdomain.c (mono_domain_transfer_object): added support for ISerializable
22607 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22609 * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
22610 first chunk of code to create types at runtime. Code to
22611 handle ReflectedType/DeclaringType. Make reflection handles
22614 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
22616 * class.c: set correct name in arrays.
22618 2002-08-13 Dietmar Maurer <dietmar@ximian.com>
22620 * appdomain.c (mono_domain_transfer_object): make it work with
22621 valuetypes. bug fixes.
22623 2002-08-12 Dick Porter <dick@ximian.com>
22625 * object.h: Rename some parameters to avoid c++ keywords (Patch
22626 from Joseph Wenninger <kde@jowenn.at>)
22628 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
22630 * icall.c: added icall to implement Assembly.GetFile*.
22632 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
22634 * reflection.h, reflection.c: code to embed managed resources.
22636 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22638 * class.c: move all the type size stuff into
22639 class_compute_field_layout().
22641 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22643 * class.c: ensure enums have always the correct instance size.
22644 * unicode.c: remove wrong assert.
22646 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22648 * assembly.c: fix mem corruption issue.
22649 * image.h, image.c: added mono_image_get_resource () to access
22651 * icall.c: implemented Assembly.EntryPoint property and some
22652 Managed Resources related internalcalls.
22655 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22657 * image.c, image.h: impemented mono_image_get_entry_point ().
22658 * appdomain.c: use mono_image_get_entry_point.
22660 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
22662 * reflection.c: support the object type argument when loading
22665 2002-08-05 Dietmar Maurer <dietmar@ximian.com>
22667 * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
22668 String as return type.
22670 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
22672 * reflection.c: fix encoding of named args for custom attrs to match
22673 the ms implementation. Read them back when instantiating custom
22676 2002-08-02 Radek Doulik <rodo@ximian.com>
22678 * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
22679 by Dietmar as quick fix
22680 (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
22681 16 as stack size, used on more places as quick fix before Dietmar
22682 will fix it properly
22684 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
22686 * object.h, object.c: added accessors for fields and properties.
22688 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
22690 * class.c, class.h: made mono_class_get_field_from_name ()
22691 loop on parent types.
22692 Added mono_class_get_property_from_name ().
22694 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22696 * class.c, class.h: move the code to setup the type vtable in its own
22697 function so that it can be reused also for types created at runtime.
22698 Eliminate the "class" identifier from the header file.
22699 * reflection.c: setup the vtable for enums so that we can create
22700 objects for use in SetConstant ().
22702 2002-08-02 Dietmar Maurer <dietmar@ximian.com>
22704 * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
22705 instead of the delegate itself as this pointer (bug #28383)
22707 2002-08-01 Dietmar Maurer <dietmar@ximian.com>
22709 * marshal.c (mono_marshal_get_managed_wrapper): added return type
22712 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22714 * loader.c: don't set the pinvoke bit on icalls.
22716 2002-07-31 Dietmar Maurer <dietmar@ximian.com>
22718 * debug-helpers.c (mono_method_full_name): only print a number to
22719 indicate wrapper type (so that the output is more readable in traces).
22721 2002-07-30 Dietmar Maurer <dietmar@ximian.com>
22723 * class.c (mono_class_init): include method override patch from Paolo
22725 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
22727 * icall.c: fixed GetTypeCode().
22729 2002-07-29 Dietmar Maurer <dietmar@ximian.com>
22731 * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
22732 use real delegate invoke function to make it work with multicast
22733 delegates (fix bug# 28291).
22735 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22737 * object.c: load constant strings.
22739 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22741 * reflection.c: no magic numbers.
22742 * tabledefs.h: security action enum.
22744 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22746 * assembly.c: fix possible memory corruption.
22748 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22750 * reflection.h, reflection.c: added support for linking resources.
22751 * verify.c: check we have an updated corlib.
22753 2002-07-25 Dietmar Maurer <dietmar@ximian.com>
22755 * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
22757 (mono_marshal_string_array): null terminate unmanaged string arrays.
22758 (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
22760 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22762 * icall.c: Type.GetType () can now return also types from the
22765 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22767 * loader.h, loader.c: stack walking support.
22768 * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
22769 GetCallingAssembly.
22771 2002-07-24 Dietmar Maurer <dietmar@ximian.com>
22773 * marshal.c: added optimisations for blittable types
22775 * class.c (mono_array_class_get): do not set blittable attribute on arrays
22776 (mono_class_setup_mono_type): set blittable attribute for single
22779 * marshal.c (mono_string_utf8_to_builder): impl.
22780 (mono_string_builder_to_utf8): impl.
22781 (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
22783 2002-07-23 Dietmar Maurer <dietmar@ximian.com>
22785 * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
22786 (mono_marshal_get_managed_wrapper): impl. byref types
22788 2002-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22791 (search_method): don't display debug message.
22793 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
22795 * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
22797 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22799 * appdomain.c: set the missing filename when throwing exception.
22801 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
22803 * metadata.c (mono_type_size): code cleanup
22804 (mono_type_stack_size): removed some test code
22806 2002-07-21 Miguel de Icaza <miguel@ximian.com>
22808 * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
22809 mono_get_exception_file_not_found now.
22811 * exception.c (mono_exception_from_name_two_strings): New version
22812 that will call a constructor with two string arguments.
22813 (mono_get_exception_file_not_found): New helper routine, used to
22814 report file-not-found errors.
22816 2002-07-20 Dick Porter <dick@ximian.com>
22819 * process.c: Pass file handles to CreateProcess
22823 * file-io.c: Implemented CreatePipe
22825 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
22827 * metadata.c (mono_get_param_info): set alignment for value types
22829 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22831 * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
22832 Constify mono_domain_assembly_open().
22833 * loader.c: handle null namespace in icalls.
22835 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
22837 * marshal.c (emit_ptr_to_str_conv): marshal object as structs
22838 (emit_str_to_ptr_conv): marshal object as structs
22840 * metadata.c (mono_type_to_unmanaged): marshal object as structs
22842 * marshal.c (mono_marshal_get_runtime_invoke): support value types
22844 2002-07-18 Dietmar Maurer <dietmar@ximian.com>
22846 * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
22847 (mono_marshal_get_native_wrapper): we an now return value types
22849 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22851 * verify.c: more checks implemented.
22853 2002-07-17 Dietmar Maurer <dietmar@ximian.com>
22855 * marshal.c (mono_delegate_to_ftnptr): invoke the right method
22857 (mono_marshal_get_native_wrapper): allow byref arguments
22858 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
22859 impl. PtrToStringXXX methods
22860 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
22861 (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
22862 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
22863 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
22864 (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
22866 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22868 * reflection.c: fix buglet in parsing an assembly name.
22870 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
22872 * marshal.c (emit_ptr_to_str_conv): first impl.
22874 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22876 * object.c, class.h: cache the vtable in the class as suggested by
22877 vargaz@freemail.hu (Zoltan Varga).
22879 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22881 * class.h, loader.c: added mono_field_from_token().
22882 * verify.c: first cut of type checking code.
22884 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
22886 * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
22888 2002-07-15 Dietmar Maurer <dietmar@ximian.com>
22890 * marshal.c (mono_marshal_get_native_wrapper): handle enum types
22892 (mono_marshal_get_remoting_invoke): impl.
22893 (mono_delegate_begin_invoke): impl.
22894 (mono_mb_emit_save_args): impl.
22895 (mono_delegate_end_invoke): impl.
22896 (mono_marshal_get_delegate_begin_invoke):
22897 (mono_marshal_get_delegate_end_invoke):
22898 (mono_marshal_get_delegate_invoke): generate a special name for
22899 those methods (including the signature) and associate them whith
22900 the delegate class.
22902 2002-07-13 Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
22905 (mono_reflection_type_from_name): now it has a MonoImage parameter
22906 which is used as the default image to search the type in. If the image
22907 is NULL or getting the type from it fails, it defaults to corlib.
22909 * icall.c: changed 1 call to mono_reflection_type_from_name to match
22912 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22914 * reflection.c: update the parameter table index.
22916 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22918 * domain.c: don't include the mark byte in the string hash.
22920 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22922 * icall.cs: icall for Type.GetTypeCode ().
22923 * verify: a couple of fixes and disabled local initialization checks.
22925 2002-07-12 Dietmar Maurer <dietmar@ximian.com>
22927 * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
22929 * debug-helpers.c (mono_method_full_name): print the type of the
22932 * metadata.c (mono_signature_hash): a hash function for signatures
22933 (mono_signature_hash): better hash algorithm
22935 * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
22937 * debug-helpers.c (mono_method_full_name): this can now generate
22938 method names with signatures
22940 * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
22941 method dont have this pointers.
22943 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22945 * reflection.c: fixup typebuilder tokens.
22946 * image.c: fix buglet.
22947 * marshal.h: remove whitespace.
22948 * metadata.h, metadata.c: reinstate code that was removed.
22949 * verify.c: handle catch directives and fix another couple of bugs.
22951 2002-07-11 Dietmar Maurer <dietmar@ximian.com>
22953 * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
22954 (mono_marshal_get_native_wrapper): make it comp. with the old code
22955 (mono_marshal_get_native_wrapper): support boolean
22956 (mono_marshal_get_managed_wrapper): support more types
22958 2002-06-25 Dietmar Maurer <dietmar@ximian.com>
22960 * class.c (class_compute_field_layout): compute class->blittable attribute.
22962 2002-07-09 Dick Porter <dick@ximian.com>
22964 * threads.c: Make the thread cleaning up cope with threads that
22967 2002-07-08 Radek Doulik <rodo@ximian.com>
22969 * reflection.c (method_encode_code): use non-translated values to
22970 compute finally_start, this fixes exception handling on ppc, yay!
22972 * decimal.h (struct signscale): fix endianess
22974 2002-07-07 Radek Doulik <rodo@ximian.com>
22976 * reflection.c: swap box_val and not val
22978 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22980 * reflection.c, reflection.h: handle full assembly info in type name.
22981 Handle Type arguments when loading custom attributes.
22982 * icall.c: updated to use new mono_reflection_type_from_name () method.
22984 2002-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22987 (method_from_memberref): also print assembly name when method not found.
22989 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22992 (ves_icall_TypeGetProperties): fixed bug #27473.
22994 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22996 * reflection.c: display image name and token when cannot find the
22997 .ctor for an attribute.
22999 2002-07-05 Martin Baulig <martin@gnome.org>
23001 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
23003 2002-07-04 Dick Porter <dick@ximian.com>
23005 * threads.c (mono_thread_cleanup): Nasty kludge to get this to
23006 compile on mingw. This will cause mingw builds to not wait for
23007 subthreads to terminate after the main thread does. I've lodged a
23008 bug with the mingw developers for them to wrap OpenThread().
23010 2002-07-03 Dick Porter <dick@ximian.com>
23012 * threads.c: Store thread IDs instead of handles, because
23013 GetCurrentThread() returns a pseudohandle and therefore stores
23014 useless values. mono_thread_cleanup() continues checking the
23015 array of threads until it is empty, to cope with subthreads
23016 spawning new threads after the main thread has finished.
23020 * profiler-private.h: Pass the thread ID to thread profiler
23021 functions, instead of a handle
23023 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23025 * verify.c: fixes to make it more usable.
23026 * pedump.c: added --verify code to verify IL code in an assembly.
23028 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23030 * reflection.c: turn errors into warnings to allow compiling corlib.
23032 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
23034 * reflection.c: add special cases to compile corlib.
23036 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
23038 * reflection.c: handle properties with only a set method.
23040 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23042 * opcodes.h: add enum with opcodes in opval order.
23044 2002-07-01 Dick Porter <dick@ximian.com>
23047 * object.c (mono_runtime_run_main): Removed unneeded argument
23049 2002-06-28 Martin Baulig <martin@gnome.org>
23051 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
23053 2002-06-27 Dick Porter <dick@ximian.com>
23055 * threads.c: Store the handle in both the parent thread and in the
23056 subthread, to minimise the time between starting a new thread and
23059 2002-06-26 Dick Porter <dick@ximian.com>
23061 * appdomain.c (mono_runtime_cleanup): Close the socket library
23062 after all the threads have finished, not before
23064 2002-06-26 Martin Baulig <martin@gnome.org>
23066 * debug-symfile.c (mono_debug_find_source_location): Added
23067 `guint32 *line_number' argument. If it's not NULL, store the line number
23068 there and return the file name without the line number.
23070 2002-06-25 Dick Porter <dick@ximian.com>
23074 * process.c: Process forking and other support functions
23076 2002-06-25 Dick Porter <dick@ximian.com>
23078 * image.c (do_mono_image_open): Set ref_count to 1, so that bad
23079 things dont happen when the image is closed.
23080 (mono_image_lookup_resource): Walk the resource section looking
23081 for a particular entry
23083 * cil-coff.h: PE resource section decoding
23085 2002-06-25 Dick Porter <dick@ximian.com>
23089 (mono_assembly_foreach): Accessor functions to walk the list of
23091 (mono_assembly_set_main):
23092 (mono_assembly_get_main): Process methods need to know which
23093 assembly is the "main" one
23095 * object.c (mono_runtime_run_main): Record the main assembly
23097 * debug-helpers.c: Fix typo
23099 2002-06-24 Dietmar Maurer <dietmar@ximian.com>
23101 * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
23102 (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
23104 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
23106 * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
23108 2002-06-21 Miguel de Icaza <miguel@ximian.com>
23110 * image.c (do_mono_image_open): Initialize reference count,
23111 otherwise we leak the MonoImage.
23113 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
23115 * reflection.c: small tweak to handle self-hosting.
23117 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
23119 * reflection.c: fix type name parse code.
23121 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23123 * reflection.c: break out of the loop.
23124 * image.c: special case corlib.
23126 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23128 * reflection.c: add all the custom attrs at the end to ensure the
23129 ctors have been properly initialized when the attributes are defined
23130 in the current assembly.
23132 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
23134 * reflection.c: handle correctly multiple-nested types.
23136 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
23138 * row-indexes.h: fix typos.
23139 * reflection.c: adjust for typos and fix method_def_or_ref
23140 encoding in MethodImpl table.
23142 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23144 * reflection.c: fix entry point patching (thanks Serge!).
23146 2002-06-18 Dietmar Maurer <dietmar@ximian.com>
23148 * verify.c: add check for System.Exception
23150 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
23152 * image.c, class.c: minifix for code just c&p'ed.
23153 * reflection.c: warning fix.
23154 * object.h, loader.h, domain.c: load also StringBuilder.
23156 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
23158 * marshal.h, marshal.c: some support code to handle complex marshaling.
23160 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23162 * class.h, class.c, reflection.c: handle ignorecase in GetType ().
23163 Better signatures with vtable error dump.
23165 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
23167 * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
23169 2002-06-17 Dietmar Maurer <dietmar@ximian.com>
23171 * icall.c (ves_icall_Type_GetField): impl.
23173 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23175 * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
23176 to retrieve a marshal description blob for a field or param.
23178 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
23180 * reflection.h, reflection.c: change order of nested type emission
23181 to avoid table corruption. The NestedTypes table is sorted.
23182 * icall.c: change order of GetConstructor results to workaround mcs bug.
23184 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23186 * reflection.h, reflection.c: handle field and param marshal
23189 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
23191 * icall.c, marshal.c marshal.h: more Marshal class implementation.
23193 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
23195 * reflection.c: fix call convention.
23197 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
23199 * reflection.h, reflection.c: mono_image_get_memberref_token()
23200 takes a type instead of a class, now. Added
23201 mono_image_get_array_token() to create tokens for the special
23202 multi-dim array methods.
23204 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
23206 * assembly.c: handle modules (no assembly table). Split
23207 loading references in its own function.
23208 * class.c: handle moduleref resolution scope.
23209 * image.c, image.h: cache module name in image.
23211 2002-06-07 Martin Baulig <martin@gnome.org>
23213 * reflection.c (mono_image_get_type_info): Only add a class layout entry
23214 if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
23216 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
23218 * icall.c: more signature fixes that used uint instead of int.
23220 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23222 * reflection.c: fixed signature of field refs.
23224 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23226 * class.c, reflection.c: handle typerefs of nested types
23227 (both on read and when writing files).
23229 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
23231 * icall.c: fix method signatures that tried to workaround the previous
23234 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
23236 * debug-helpers.c: fix typo.
23238 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23240 * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
23241 rewrote the PE/COFF writing code (our programs are understood by the
23244 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
23246 * gc.c, gc.h, icall.c: weakreference support.
23248 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
23250 * Makefile.am, mono-config.c: use $(sysconfdir).
23252 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23254 * icall.c: changed default precision of Double.ToString() to 15.
23255 Fixed memory leak. Unified with Single.ToString.
23257 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
23259 * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
23261 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
23263 * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
23264 gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
23265 warnings and compilation fixes from Dennis Haney (davh@davh.dk)
23268 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23270 * debug-symfile.c, sysmath.c: yet more compilation fixes.
23272 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23274 * reflection.c, socket-io.c: more compilation fixes.
23276 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23278 * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
23279 domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
23280 unicode.c: warning and compiler compatibility fixes.
23282 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23284 * class.h, metadata.c: fixed warnings/compilation errors.
23286 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
23288 * Makefile.am, mono-config.c, mono-config.h: configuration file
23290 * loader.c, loader.h: make Dll mapping configurable at runtime in the
23291 config file. Export methods to insert and lookup mappings.
23293 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
23295 * reflection.c: handle types and boxed objects in custom attr
23298 2002-05-30 Martin Baulig <martin@gnome.org>
23301 (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
23303 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
23305 * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
23306 to lookup the implmap row for a P/Invoke method.
23307 * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
23308 P/Invoke method from the runtime on an as needed basis.
23310 2002-05-28 Dietmar Maurer <dietmar@ximian.com>
23312 * metadata.c (mono_metadata_parse_signature): impl.
23314 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23316 * class.c: handle .pack directive.
23318 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
23320 * object.c: initialize static fields with RVA data.
23322 2002-05-25 Martin Baulig <martin@gnome.org>
23325 (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
23327 2002-05-24 Martin Baulig <martin@gnome.org>
23330 (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
23331 (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
23332 `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
23334 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23336 * object.c: special case string ctros in invoke.
23337 * gc.c: silly whitespace changes.
23339 2002-05-23 Dietmar Maurer <dietmar@ximian.com>
23341 * threadpool.[ch]: impl. a threadpool that can
23342 be used by mint and mono.
23344 2002-05-22 Martin Baulig <martin@gnome.org>
23346 * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
23347 The first argument is now a `MonoReflectionModuleBuilder *', the return
23348 value is a `MonoReflectionModuleBuilder *'. Use the AssemblyBuilder's
23349 `methods' field to get the method builder. The `token' argument is the
23352 * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
23353 invalid characters instead of g_assert_not_reached()ing. This seems
23354 to be the behaviour of mscorlib.
23356 2002-05-22 Dietmar Maurer <dietmar@ximian.com>
23358 * object.c (mono_runtime_invoke_array): applied patch from Rachel
23359 Hestilow to fix bug #25104
23361 2002-05-21 Martin Baulig <martin@gnome.org>
23363 * debug-symfile.c (mono_debug_find_source_location): New function.
23364 Looks up an IL offset in the line number table and returns the source
23365 location as a string.
23367 2002-05-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23370 (mono_double_ToStringImpl): changed %f by %g until we have something
23373 2002-05-21 Nick Drochak <ndrochak@gol.com>
23375 * icall.c : Use different name for Math.Pow's icall. Needed to check
23376 parameters first in C#.
23378 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23380 * icall.c, reflection.h: added icall to get info about an event.
23382 2002-05-20 Radek Doulik <rodo@ximian.com>
23384 * object.c (mono_value_box): don't use memcpy for boxing on BIG
23386 (mono_value_box): don't use memcpy for small sizes on
23387 architectures with unaligned access
23389 2002-05-20 Martin Baulig <martin@gnome.org>
23391 * reflection.c (mono_reflection_setup_internal_class): Don't crash
23392 if `tb->parent == NULL'.
23393 (mono_reflection_create_internal_class): New function. This is
23394 called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
23397 * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
23400 2002-05-19 Martin Baulig <martin@gnome.org>
23402 * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
23403 argument to get the length, don't default to the array length.
23405 2002-05-18 Miguel de Icaza <miguel@ximian.com>
23407 * assembly.c (mono_assembly_setrootdir): New function used to
23408 override the MONO_ASSEMBLIES directory.
23410 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23412 * icall.c: ValueType_GetHashCode() initialize local var.
23414 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23416 * reflection.c: sort custom attributes table.
23418 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
23420 * reflection.c: support named args in custom attributes (write support).
23422 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
23424 * reflection.c: fix finally position calculation.
23426 2002-05-15 Radek Doulik <rodo@ximian.com>
23428 * reflection.c: fixed endianess at many places
23430 * icall.c (ves_icall_InitializeArray): comment out debug msg
23432 2002-05-15 Dietmar Maurer <dietmar@ximian.com>
23434 * object.c (mono_unhandled_exception): new function to handle
23435 unhandled exceptions.
23436 (mono_unhandled_exception): call the UnhandledException event.
23437 (mono_runtime_delegate_invoke): impl.
23439 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
23441 * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
23442 returns the RVA, not the direct pointer to the data. Handle the case
23443 when the class size is fixed.
23445 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
23447 * reflection.c: fix some endianess issues.
23449 2002-05-14 Dietmar Maurer <dietmar@ximian.com>
23451 * object.c (mono_runtime_invoke): is now able to catch exceptions.
23453 * threads.c (mono_thread_init): added a callback which is invoked
23456 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
23458 * icall.c: make GetHashCode return non-negative values.
23460 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
23462 * object.c, icall.c, gc.c: revert to address-based hashcode.
23464 2002-05-13 Miguel de Icaza <miguel@ximian.com>
23466 * icall.c (mono_double_ParseImpl): Added ParseImpl method.
23468 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23470 * icall.c, class.c: special case <Module>.
23472 2002-05-13 Dan Lewis <dihlewis@yahoo.co.uk>
23474 * icall.c: fix bug in GetNow().
23476 2002-05-11 Dietmar Maurer <dietmar@ximian.com>
23478 * object.c (mono_runtime_class_init): make sure that we call all
23479 static class constructors.
23481 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
23483 * reflection.c: sort methodsemantics table.
23485 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23487 * reflection.h, reflection.c: honour init locals setting.
23489 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
23491 * icall.c: copied Double ToStringImpl for Single ToStringImpl
23493 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23495 * reflection.c: support ContructorBuilders in attribute blob creation.
23497 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23499 * reflection.c: some changes to build a binary that can be run
23500 directly in windows.
23502 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
23504 * loader.c: print a big message when an icall can't be found.
23506 2002-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23508 * string-icalls.c: fix bug 24248.
23510 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
23512 * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
23513 icall.c, reflection.h: separate assembly loading by pathname and by
23514 assembly name. Use the MONO_PATH env var to search for assemblies.
23516 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23518 * assembly.c, image.h: add some support for assemblies
23519 with multiple modules.
23520 * class.c, class.h: export mono_class_from_typeref().
23521 * loader.c: remove duplicated code and use mono_class_from_typeref(),
23524 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23526 * unicode.c: Char.IsNumber doesn't include hex digits as the ms
23527 documentation says (the ECMA one is correct).
23529 2002-05-02 Dick Porter <dick@ximian.com>
23531 * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
23532 Don't name the synchronisation mutex.
23534 2002-04-30 Jeffrey Stedfast <fejj@ximian.com>
23537 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
23538 Make the prototypes match.
23539 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
23543 (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
23544 systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
23545 all systems have tm.tm_zone, so use strftime() with %Z to print
23546 the timezone abreviation into a temp string.
23548 * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
23549 rather than mono_array_addr() on a MonoString on Big Endian
23552 2002-04-30 Dietmar Maurer <dietmar@ximian.com>
23554 * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
23557 2002-04-30 Dick Porter <dick@ximian.com>
23559 * socket-io.c: Cope with SOCKET being an integer rather than a
23562 * threads.c: Added Thread_free_internal, to deal with thread
23563 handle cleanup. Moved calls to handle_store() and handle_remove()
23564 to start_wrapper(), so each can only be called once. Allocate
23565 synchronisation blocks with GC_malloc(), and use GC finalisation
23566 to close the handles.
23568 * icall.c: added System.Threading.Thread::Thread_free_internal
23570 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23572 * icall.c: support Environment.Exit, CommandLineArgs().
23574 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
23576 * object.c, object.h: added mono_runtime_run_main () and
23577 mono_runtime_get_main_args () for use in System.Environment.
23579 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23581 * gc.c: fix thinko, enable actual finalization since the jit is now
23584 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23586 * gc.c, object.c: take into account that an object may be offset wrt the address
23587 returned by GC_malloc().
23589 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
23591 * image.c: handle files without entries in the assembly table (modules).
23593 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
23595 * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow
23596 mcs selfhosting again (build breaker) and did move the check to class instead. parent is
23597 allowed to be null when it's System.Object class setup.
23599 2002-04-27 Martin Baulig <martin@gnome.org>
23601 * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
23602 if `tb->parent == NULL' rather than crashing.
23604 2002-04-28 Nick Drochak <ndrochak@gol.com>
23606 * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error. Was
23607 calling acos() where asin() should have been called.
23609 2002-04-26 Martin Baulig <martin@gnome.org>
23611 * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
23612 instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
23613 there's a subdirectory called `System', but we don't want to read that
23614 subdirectory as an assembly.
23616 2002-04-25 Martin Baulig <martin@gnome.org>
23618 * debug-symfile.c: Reflect latest MonoString changes.
23620 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
23622 * rand.c, rand.h: instance method icalls need to have an explicit
23623 this pointer as first argument in the C implementation.
23625 2002-04-25 Nick Drochak <ndrochak@gol.com>
23627 * icall.c: Fix typo in map for GetNonZeroBytes
23629 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
23631 * string-icalls.c : String does now passes unit tests without any
23632 errors, the following changes has been made:
23634 Implemented replace methods.
23635 Renaming of methods to (try) follow the standard.
23636 Fixed compare ordinal
23637 Made all memory allocated directly to function instead of via icall function.
23638 Small performance fix in is_in_array function
23640 (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
23642 c (mono_string_Internal_ctor_charp_int_int):
23643 (mono_string_Internal_ctor_sbytep_int_int): Removed check for
23644 sindex < 0, throw ArgumentOutOfRangeException instead of
23645 ArgumentNullException.
23647 Added new check for length == 0, however
23648 I need to make it return String.Empty from the C code.
23650 (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
23651 that calculate the length for us here.
23653 (mono_string_Internal_ctor_sbytep_int_int): Replaced
23654 mono_string_new_utf16 with mono_string_new, since value is utf8.
23656 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23658 * object.c: register the object for finalization if needed.
23659 Allocate one more char in the string for the terminating 0 char.
23661 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23663 * class.c, class.h, image.c: check if a type implemenst a destructor.
23664 Use the proper key for array class lookups.
23665 * icall.c: register the icalls in the System.GC class.
23666 * gc.c, gc.h: GC-related functions and icalls.
23668 2002-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23672 * unicode.c: free some strings gotten from mono_string_to_utf8 and
23673 changed a couple of free () by g_free ().
23675 * decimal.c: one-liner in the comments for decimal2string ().
23677 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
23679 * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
23681 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
23683 * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
23684 * object.c (mono_runtime_invoke_array) : handle null in params
23686 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
23688 * string-icalls.c: fixed bug in split (one off bug)
23690 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
23692 * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
23693 * icalls.c: added String::Equals as internal method
23695 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
23697 * threads.c: fixed bug in the double interlocked functions
23699 2002-04-22 Patrik Torstensson <patrik.torstensson@labs2.com>
23701 * threads.c: implemented all of the new interlocked icalls.
23702 * string-icalls.c: fix a bug in insert.
23703 * icalls.c: added the icalls for interlocked, removed old string functions.
23705 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23707 * loader.c: fix off-by-one error when reading argument names.
23709 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23711 * profiler.c: win32 counter implementation (untested).
23712 * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
23713 (the latter needs testing and more complete impl. from win32 folks).
23715 2002-04-21 Dan Lewis <dihlewis@yahoo.co.uk>
23717 * object.c: mono_array_new_full workaround mono_array_class_get
23720 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
23722 * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
23723 * object.h (mono_string_chars): Changed casting type.
23725 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
23727 * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
23728 method signatures to use gunichar2 instead of gint16.
23730 2002-04-20 Dan Lewis <dihlewis@yahoo.co.uk>
23732 * object.h, object.c: domain-specific versions of mono_object_new and
23735 2002-04-20 Dietmar Maurer <dietmar@ximian.com>
23737 * object.c: changed String layout
23739 * string-icalls.c (mono_string_Internal_ctor_chara): added
23740 internal string constructors.
23742 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
23744 * threads.c: pass 'this' to the thread start routine.
23746 2002-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23748 * string-icalls.c: fix IndexOf and LastIndexOf. Now
23749 InternalCompareStr don't call twice mono_string_cmp_char for the last
23750 character. Improved performance in mono_string_cmp_char.
23752 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23754 * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
23755 code into its own library: libmonoruntime.
23757 2002-04-19 Dan Lewis <dihlewis@yahoo.co.uk>
23759 * object.h, object.c: changed array format so that szarrays do not
23760 require a bounds structure.
23761 * icall.c, appdomain.c: support for new szarray format.
23763 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
23765 * metadata.c: compare also the retuns type when comparing signatures:
23766 we didn't do this as an optimization since really overloaded methods
23767 must differ also in the arguments, but this doesn't work with
23768 low-level IL code (or when using explicit conversion operators: see
23769 bug#23498 for an example).
23771 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23773 * loader.c: SZARRAY types can be saved as TYPESPEC, too.
23775 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23777 * icall.c: make MonoType::GetElementType its own icall.
23779 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23781 * icall.c: remove MonoMethod_get_Name().
23782 * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
23785 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
23787 * string-icalls.c: optimized a few methods.
23789 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
23791 * icall.c: added all new string internal calls
23792 * string-icalls.c: added, new string internal call implementation.
23793 * object.c: added mono_string_new_size for allocating a string a size
23795 2002-04-17 Dietmar Maurer <dietmar@ximian.com>
23797 * object.c (mono_object_isinst): use the same code as in the
23798 optimized x86 version.
23800 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23802 * profiler.c: TSC-based timer code (faster and more accurate).
23803 Not hooked up in configure, yet (set USE_X86TSC to 1).
23805 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
23807 * profiler.c, profiler.h: track time spent compiling methods.
23808 * threads.c: track thread creation/destruction.
23810 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
23812 * profiler.c, profiler.h, profiler-private.h: profiling interface
23813 and sample implementation. Moved here so that it can be used also by
23816 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
23818 * reflection.c, reflection.h: keep types and other handles separate in
23819 the hash tables for referred tokens. Add guid for modules.
23821 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
23823 * assembly.c: fix bugs found with valgrind.
23824 * metadata.h, metadata.c: added mono_metadata_guid_heap().
23826 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
23828 * threads: added icall support for getting current domain for
23831 2002-04-13 Martin Baulig <martin@gnome.org>
23833 * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
23834 (MonoDebugVarInfo): Added `index' field for register based addresses.
23835 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
23836 (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
23837 `MonoDebugVarInfo *params' and `guint32 this_offset' with
23838 `MonoDebugVarInfo *this_var'.
23840 * debug-symfile.c (relocate_variable): New static function to write
23841 a location description for a local variable or method parameter.
23843 2002-04-12 Martin Baulig <martin@gnome.org>
23845 * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
23846 stack offset and begin/end scope address of a local variable.
23847 (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
23848 'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
23849 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
23851 * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
23852 Added new relocation types for start/end scope of a local variable.
23854 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23856 * object.h: add mono_object_domain() macro.
23857 * reflection.c: handle typespecs.
23858 * icall.c: MonoMethod::get_Name() implementation.
23860 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23862 * icall.c: String::GetHashCode() icall implementation.
23864 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23866 * icall.c: String::IndexOfAny icall.
23867 * object.c, object.h: make array->max_length more useful.
23868 Intrduced mono_object_class() and mono_string_length() macros.
23870 2002-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23872 * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
23873 instead of g_unichar_isdigit.
23875 2002-04-11 Nick Drochak <ndrochak@gol.com>
23877 * icall.c: Implement a simple Double.ToString().
23879 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23881 * appdomain.h: only io-layer.h is supposed to be included.
23882 * icall.c: explicitly import environ. Fix warning.
23884 2002-04-10 Nick Drochak <ndrochak@gol.com>
23886 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
23887 return true even if it's not Daylight Savings time.
23888 Only return false for the case where the function isn't
23889 implemented for a plaform (read Windows).
23891 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23893 * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
23896 2002-04-09 Dietmar Maurer <dietmar@ximian.com>
23898 * mempool.c (mono_mempool_alloc): only use g_malloc when
23899 absolutely necessary.
23901 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
23903 * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
23905 * class.c (mono_class_vtable): use domain mempool to allocate vtable
23906 (mono_class_proxy_vtable): use domain mempool
23908 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23910 * appdomain.h, appdomain.c: split initialization that requires the
23911 execution engine support into mono_runtime_init().
23913 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
23915 * class.c (mono_class_init): don't include vtable inside MonoClass
23916 to save some memory, gather some statistics.
23917 (mono_class_vtable): use g_malloc instead of GC_malloc when possible
23919 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23921 * icall.c: internalcall implementation for ValueType.Equals().
23923 2002-04-06 Dietmar Maurer <dietmar@ximian.com>
23925 * object.c (mono_message_init): moved
23926 (mono_runtime_exec_main): new arch. independent impl.
23927 (mono_runtime_invoke_array): new method - like
23928 mono_runtime_invoke, but you can pass an array of objects.
23929 (mono_remoting_invoke): new arch. independent impl.
23930 (mono_message_invoke): new arch. independent impl.
23931 (mono_runtime_class_init): new arch. independent impl.
23932 (mono_runtime_object_init): new arch. independent impl.
23934 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23936 * metadata.c, object.c, reflection.c: documented the exported
23939 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
23941 * icall.c: simpler code to pass the assembly builder data to corlib.
23942 Implement GetNestedTypes() internalcall.
23944 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23946 * class.c: warn if a type can't be loaded.
23948 2002-04-04 Dietmar Maurer <dietmar@ximian.com>
23950 * image.h: typedef MonoImageOpenStatus
23951 * types.h: removed unused file
23953 2002-04-04 Dan Lewis <dihlewis@yahoo.co.uk>
23955 * icall.c: Enum_ToObject accepts enum value arguments.
23957 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23959 * class.c: move initialization of properties, events and nested
23960 classes, so that they happen for interfaces, too.
23962 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23964 * icall.c: cleanup some ugly casts in Array_SetValue*.
23966 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23968 * icall.c: the values array fro enums is of the correct type, now.
23969 Implement (correctly) getFullName instead of assQualifiedName for
23971 * reflection.h, reflection.c: added mono_type_get_name ().
23973 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23975 * assembly.c, image.h: for each MonoImage, record from wich assembly
23977 * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
23978 Make Type.Assembly work.
23980 2002-04-03 Dietmar Maurer <dietmar@ximian.com>
23982 * debug-symfile.h: use char* instead of gpointer to avoid
23985 * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
23987 * icall.c (ves_icall_InternalExecute): impl. FielSetter
23988 (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
23990 2002-03-30 Dietmar Maurer <dietmar@ximian.com>
23992 * icall.c (mono_message_init): impl. (code cleanup)
23993 (ves_icall_InternalExecute): impl. FieldGetter
23995 * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
23996 defined we call all (non-static)methods through the vtable.
23998 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
24000 * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
24001 finalizer even though the memory is still referenced (and the chunk of
24002 memory is not freed).
24004 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
24006 * assembly.c: fix brokeness.
24008 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
24010 * class.c: kill some warnings. Check explicit interface method
24011 implementation also without considering the namespace.
24012 Load also literal strings in static class data.
24014 2002-03-29 Miguel de Icaza <miguel@ximian.com>
24016 * assembly.c (default_assembly_name_resolver): Kill memory leak.
24017 (default_assembly_name_resolver): Make the resolver take the
24018 "base" directory where the assembly was originally defined, so we
24019 can load DLLs that are in the same directory as the assembly that
24020 is being referenced.
24022 2002-03-28 Dick Porter <dick@ximian.com>
24028 * unicode.c: Warning cleanups
24030 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
24032 * object.h, reflection.h: use the correct type instead of MonoObject.
24034 2002-03-28 Martin Baulig <martin@gnome.org>
24036 * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
24037 (mono_debug_update_symbol_file): Initialize classes if necessary.
24039 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
24041 * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
24042 rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
24044 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
24046 * assembly.h: fix function prototype.
24047 * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
24048 * mono-endian.h: use const cast.
24050 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
24052 * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
24054 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
24056 * loader.c: don't assert when a typeref can't be loaded, give
24057 a chance to the runtime to trow an exception instead.
24058 * loader.h: fix warning.
24060 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
24062 * class.c (mono_class_proxy_vtable): added proxy support
24064 2002-03-27 Dan Lewis <dihlewis@yahoo.co.uk>
24066 * icall.c: removed last of PAL calls, added System.Environment
24067 * file-io.h, file-io.c: MonoIO implementation
24068 * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
24070 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
24072 * appdomain.c: do not use the byte marker in ldstr table lookup.
24073 * debug-helpers.c: allow two ':' to separate class and method name.
24074 * object.c: allocate arrays bounds with the GC, too.
24075 * verify: add a few more checks.
24077 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
24079 * reflection.c: output also literal strings. Allocate parameter data
24080 with GC_malloc() (thanks, Martin, for catching this!).
24082 2002-03-26 Martin Baulig <martin@gnome.org>
24084 * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
24085 include the `this' offset in the `param_offsets'.
24087 2002-03-25 Martin Baulig <martin@gnome.org>
24089 * debug-symfile.c (mono_debug_update_symbol_file): Use a new
24090 mono_debug_get_class() function to get the classes. Added new
24091 relocation types for arrays and strings.
24092 (mono_debug_get_class): New static function to search in all
24093 referenced assemblies for a metadata token.
24095 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
24097 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
24099 * reflection.h, reflection.c: use a gc-safe hash for hash tables that
24100 hold gc-allocated objects. Make the string heap a stream like the
24101 others. Removed duplicated code when writing stream info.
24102 Added asserts to catch possible buffer overflows. Set the sorted map
24103 for tables that need sorting. Added some documentation.
24105 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
24107 * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table
24108 for interned strings and vtables.
24110 2002-03-24 Martin Baulig <martin@gnome.org>
24112 * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
24113 it in the array since it was created with g_slist_prepend().
24115 2002-03-24 Martin Baulig <martin@gnome.org>
24117 * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
24118 to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
24119 (mono_debug_method_from_token): Renamed to
24120 ves_icall_Debugger_MonoSymbolWriter_method_from_token().
24121 (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
24123 * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
24126 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
24128 2002-03-24 Martin Baulig <martin@gnome.org>
24130 * debug-symfile.c (mono_debug_local_type_from_signature): New func.
24131 (mono_debug_method_from_token): New func.
24133 * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
24134 New interncall, calls mono_debug_local_type_from_signature().
24135 (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
24136 calls mono_debug_method_from_token().
24138 2002-03-23 Martin Baulig <martin@gnome.org>
24140 * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
24141 specifies the number of bytes to be converted, not the array size.
24142 Return the number of chars, not the number of bytes.
24143 (ves_icall_iconv_get_chars): The `byteCount' argument
24144 specifies the number of bytes to be converted, not the array size.
24146 2002-03-23 Martin Baulig <martin@gnome.org>
24148 * reflection.h (MonoReflectionSigHelper): New type.
24150 * reflection.c (mono_reflection_sighelper_get_signature_local),
24151 (mono_reflection_sighelper_get_signature_local): New functions.
24153 * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
24154 (System.Reflection.Emit.SignatureHelper::get_signature_field): New
24157 2002-03-23 Martin Baulig <martin@gnome.org>
24159 * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
24160 is_writeable is set.
24161 (mono_raw_buffer_update): New function to write the modified map
24164 * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
24166 * debug-symfile.c (mono_debug_update_symbol_file): Call
24167 mono_raw_buffer_update() when done writing.
24169 2002-03-23 Martin Baulig <martin@gnome.org>
24171 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
24173 * debug-symfile.c: Added support for arguments and local variables.
24175 2002-03-23 Dick Porter <dick@ximian.com>
24177 * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
24178 protected by ifdefs, hence breaking the w32 build.
24180 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24182 * object.c: implement is_interned() the right way.
24184 2002-03-21 Martin Baulig <martin@gnome.org>
24186 * debug-symfile.[ch]: New files to handle debugging information
24187 files. There's also support to dynamically update these symbol
24188 files to include machine dependent information.
24190 2002-03-20 Dietmar Maurer <dietmar@ximian.com>
24192 * threads.c (mono_thread_create): new function to create thread
24195 2002-03-20 Martin Baulig <martin@gnome.org>
24197 * icall.c (ves_icall_InternalInvoke): Create a new object if the
24198 method is a constructor.
24199 (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
24200 points to ves_icall_InternalInvoke().
24202 2002-03-20 Dan Lewis <dihlewis@yahoo.co.uk>
24204 * file-io.c: Flush shouldn't throw exceptions.
24206 2002-03-19 Dan Lewis <dihlewis@yahoo.co.uk>
24208 * file-io.c: FileStream flush support; FileSetLength now
24209 restores file pointer.
24211 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
24213 * class.c: set image for pointer classes.
24215 2002/03/19 Nick Drochak <ndrochak@gol.com>
24217 * sysmath.c: Forgot one.
24219 2002-03-18 Miguel de Icaza <miguel@ximian.com>
24221 * sysmath.c: Avoid redefining existing names.
24223 2002-03-18 Dan Lewis <dihlewis@yahoo.co.uk>
24225 * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
24226 handled by runtime as icall rather than dllimport from libm.so
24227 * file-io.c, file-io.h: fixed handle argument type.
24229 2002-03-18 Dick Porter <dick@ximian.com>
24231 * reflection.c (mono_image_get_type_info): rename interface to
24232 iface, because of "#define interface struct" on windows.
24234 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
24236 * class.c, class.h: rename and export mono_ptr_class_get().
24237 * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
24238 * reflection.c, reflection.h, icall.c: better/saner type name
24239 parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
24242 2002-03-14 Dietmar Maurer <dietmar@ximian.com>
24244 * class.c (mono_class_init): removed hardcoded GHC_SLOT
24246 * icall.c (ves_icall_InternalInvoke): impl.
24248 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
24250 * reflection.c: output the interface map table, too.
24252 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
24254 * class.c (class_compute_field_layout): separate computation of
24255 static field layout
24257 2002-03-12 Dan Lewis <dihlewis@yahoo.co.uk>
24259 * icall.c: added System.Buffer support.
24260 * file-io.c: moved file icalls from PAL to FileStream.
24262 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
24264 * icall.c (ves_icall_System_Object_GetHashCode): impl.
24266 2002-03-11 Dietmar Maurer <dietmar@ximian.com>
24268 * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
24270 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24272 * verify.c, verify.h: moved here the corlib/runtime consistency checks.
24274 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
24276 * debug-helpers.{c,h}: moved here from monograph some useful functions
24277 to locate a method by name/signature in a class or image. Included
24278 also a small and flexible IL disassembler.
24280 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
24282 * reflection.c: fixup tokens in methods with small header size, too.
24284 2002-03-08 Dietmar Maurer <dietmar@ximian.com>
24286 * object.c (mono_string_to_utf8): remove assert(!error), instead
24289 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
24291 * icall.c: update to the new mono_Array_class_get interface.
24293 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
24295 * appdomain.c, object.c: Boehm-GC enable.
24296 * icall.c: make get_data_chunk() support split data requests.
24297 Ensure a class is initialized in more cases. Return only the first
24298 property found in GetProperties() or the compiler gets confused.
24299 Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
24300 * reflection.h, reflection.c: add fixup mechanism for field and method
24301 tokens. Initialize assembly->typeref in a single place. Output
24302 properties after events. Support custom attributes for events, too.
24303 Typo fix for paramter custom attrs.
24305 2002-03-07 Martin Baulig <martin@gnome.org>
24307 * icall.c (ves_icall_System_Array_FastCopy): Small fix.
24309 2002-03-07 Dietmar Maurer <dietmar@ximian.com>
24311 * class.c (mono_array_class_get): fix. for multi. dim. arrays
24313 2002-03-06 Martin Baulig <martin@gnome.org>
24315 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
24316 non-zero lower bounds. See testcases #F10-#F13.
24318 2002-03-05 Martin Baulig <martin@gnome.org>
24320 * exception.c (mono_get_exception_argument_out_of_range): New exception.
24322 * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
24323 ves_icall_System_Array_GetValue(), only calculate the absolute array position
24325 (ves_icall_System_Array_SetValue): Likewise.
24326 (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
24327 as argument and does the actual work. This function is used when copying a
24328 multi-dimensional array.
24329 (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
24330 now do all the widening conversions of value types.
24331 (ves_icall_System_Array_CreateInstanceImpl): Implemented.
24333 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24335 * class.c: remove some magic numbers and use the smbolic names,
24336 instead. Added init_events() to load event info at class init time.
24337 * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
24338 and mono_metadata_methods_from_event().
24339 * reflection.h, reflection.c: added support for writing out the evnets
24340 related information.
24342 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
24344 * reflection.h, icall.c: use a different method (GetInterfaces)
24345 to gather interface info and add isbyref, isprimitive and
24346 ispointer to the ves_icall_get_type_info() return value.
24348 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
24350 * class.h: stared adding support for events.
24351 * icall.c: split find_members implementation. Added debug icall to get
24352 the address of an object.
24353 * reflection.c: handle TypeBuilders in mono_type_get_object().
24355 2002-03-01 Martin Baulig <martin@gnome.org>
24357 * icall.c (ves_icall_System_Array_GetLength): This must throw an
24358 ArgumentOutOfRangeException(), not an ArgumentException().
24359 (ves_icall_System_Array_GetLowerBound): Likewise.
24360 (ves_icall_System_Array_GetValue): Improved argument checking.
24361 (ves_icall_System_Array_SetValue): Improved argument checking.
24363 2002-03-01 Martin Baulig <martin@gnome.org>
24365 * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
24366 called with invalid arguments rather than just dying with g_assert().
24367 (ves_icall_System_Array_SetValue): Likewise.
24368 (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
24369 raise a NotImplementedException instead.
24370 (ves_icall_System_Array_GetLength): Added argument checking.
24371 (ves_icall_System_Array_GetLowerBound): Added argument checking.
24373 2002-03-01 Dietmar Maurer <dietmar@ximian.com>
24375 * object.h (mono_assert): new macros mono_assert and
24376 mono_assert_not_reached
24378 2002-02-28 Martin Baulig <martin@gnome.org>
24380 * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
24381 and "System::String::IsInterned" to "System::String::_IsInterned".
24383 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
24385 * icall.c: remove hacks for typebuilder. Added icall to create a
24386 modified type from a tybebuilder.
24387 * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
24388 in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
24389 to create a backing MonoClass for a TypeBuilder.
24391 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24393 * class.c, class.h: more refactoring of class init.
24394 Export mono_class_setup_mono_type() and mono_class_setup_parent().
24396 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
24398 * marshal.c, marshal.h: start of marshaling interface.
24400 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
24402 * icall.c: fix order in assembly qualified name icall.
24404 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
24406 * class.c: do not free str, since we store it in the hash table.
24407 * reflection.h: add label field to MonoILExceptionInfo.
24408 * reflection.c: handle references to more than one assembly. Handle
24409 case when there isn't a module created in the assembly.
24411 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
24413 * class.c: Fix typo. Start refactoring of class init code.
24415 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
24417 * appdomain.c: exit with 1 on error.
24418 * class.c: we already have the name in MonoClassField.
24419 * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
24420 MonoStreamHeader instead of an offset of image->raw_metadata.
24422 2002-02-26 Miguel de Icaza <miguel@ximian.com>
24424 * appdomain.c (mono_init): Be even more descriptive about the error.
24426 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
24428 * appdomain.c: give the user an informative message when corlib can't
24431 2002-02-26 Martin Baulig <martin@gnome.org>
24433 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
24434 New icall to get the time zone data.
24436 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24438 * reflection.c: set virtual and raw size of section correctly.
24439 * threads.c: transfer domain information to newly created threads.
24441 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
24443 * class.c: when instancing a class in a domain, load the default
24444 vaules for static fields from the constant table. Fix System.Enum to
24446 * icall.c: implement Object::GetType() internalcall. Implemented
24447 MonoField::GetValue() internalcall. Avoid SEGV in search_method().
24448 Fixed checking of binding flags in find_members().
24449 * metadata.c, metadata.h: introduce mono_metadata_type_hash().
24450 * reflection.c: handle enumerations when writing to the constant
24451 table. Use a different object cache for types.
24454 2002-02-22 Dietmar Maurer <dietmar@ximian.com>
24456 * object.c (mono_object_isinst): fix for arrays
24458 * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
24460 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
24462 * object.c: don't use mprotect () and fix intern pool hash table
24463 lookup for big endian systems.
24465 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
24467 * icall.c: change type_is_subtype_of () signature.
24469 2002-02-21 Mark Crichton <crichton@gimp.org>
24471 * rand.c, rand.h: Added random number generator for
24472 System.Security.Cryptography classes.
24474 * exception.c, exception.h: Added mono_get_exception_not_implemeted.
24476 * icall.c: Added System.Security.Cryptography calls.
24478 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
24480 * class.c, icall.c, metadata.c: better support for pointer types.
24481 Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
24482 * reflection.c: Add support for getting custom attrs for properties
24483 and simplify some code.
24485 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
24487 * icall.c: change getToken () and add custom attribute GetBlob()helper
24489 * reflection.h: add custom attrs array to the reflection builder structures.
24490 * reflection.c: encode and emit custom attributes for all the relevant
24491 reflection objects. Cache fieldref and methodref tokens. Change
24492 mono_image_create_token() interface to take a MonoDynamicAssembly.
24493 More complete custom attributes decoder. Load custom attributes for
24494 Assembly, Field, Method and Constructor objects, too. Make the
24495 returned array an Attribute[] one, not object[]. Added
24496 mono_reflection_get_custom_attrs_blob() to encode the arguments of a
24497 custom attribute constructor.
24499 2002-02-20 Dick Porter <dick@ximian.com>
24503 * socket-io.c: Windows portability fixes (sometimes just ifdeffing
24504 problem code out for now).
24506 2002-02-19 Radek Doulik <rodo@ximian.com>
24508 * object.c (mono_ldstr): use hash table to avoid multiple swapping
24510 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
24512 * icall.c: register the GetCustomAttributes method.
24513 * object.c, object.h: add mono_string_new_len ().
24514 * reflection.h, reflection.c: added mono_runtime_invoke(),
24515 mono_install_runtime_invoke(). Added
24516 mono_reflection_get_custom_attrs () to load custom attributes and
24517 create the attribute objects.
24519 2002-02-19 Dick Porter <dick@ximian.com>
24520 * threads-dummy-types.c:
24521 * threads-dummy-types.h:
24524 * threads-pthread-types.c:
24525 * threads-pthread-types.h:
24526 * threads-pthread.c:
24527 * threads-pthread.h: Deleted obsolete files
24529 2002-02-19 Dietmar Maurer <dietmar@ximian.com>
24531 * class.c (mono_class_vtable): runtime init the class when we
24532 allocate static class data.
24534 * icall.c (ves_icall_System_Array_SetValue): check for null values.
24536 * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
24537 and String - but we will need generic marshalling support in the
24539 (mono_init): set the domain name in a ms compatible way
24541 * object.c (mono_string_new_utf16): bug fix: use char[] instead of
24544 2002-02-18 Dietmar Maurer <dietmar@ximian.com>
24546 * object.c (mono_array_clone): use alloca() instead of g_malloc
24549 * appdomain.c (mono_domain_unload): impl.
24551 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24553 * appdomain.c, object.c: fix intern pool implementation.
24554 * class.c: fix alignment code.
24556 2002-02-16 Radek Doulik <rodo@ximian.com>
24558 * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
24559 and s2 > s1, just copy lower bytes to be compatible with little
24560 endian (i.e. 64bit value & 0xffffffff --> 32bit value)
24561 (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
24563 * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
24564 force big_endian to be 1 for big endian machines
24565 (ves_icall_iconv_new_decoder): ditto
24567 2002-02-16 Jeffrey Stedfast <fejj@ximian.com>
24569 * socket-io.c (convert_sockopt_level_and_name): If the system
24570 doesn't define SOL_IP or SOL_TCP, get them by hand using
24571 getprotobyname() and caching the values (because this could be a
24573 (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
24574 Use the appropriate struct when the system does support it. Ie,
24575 not all systems have struct ip_mreqn so use struct ip_mreq when
24578 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
24580 * reflection.c: handle finally clauses.
24582 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
24584 * socket-io.c: use g_snprintf() instead of snprintf.
24586 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
24588 * reflection.c (mono_param_get_objects): Cast second argument to
24589 mono_method_get_param_names to a const char** to silence the
24592 * appdomain.c (mono_domain_assembly_open): Put parens around the
24593 truth statement in the for-loop.
24595 * unicode.c (iconv_convert): Got rid of a compiler warning about
24596 int i being unused when the system has a new iconv.
24597 (iconv_get_length): Same.
24599 * image.c (load_class_names): Cast the second argument to
24600 g_hash_table_insert() to char* to hush compiler warnings about the
24602 (mono_image_open): Same here.
24604 * socket-io.c: Don't conditionally include sys/filio.h or
24605 sys/sockio.h here anymore since we now get them from
24606 io-layer/io-layer.h
24607 (inet_pton): If the system doesn't support inet_aton, implement
24608 using inet_addr and also #define INADDR_NONE if it isn't defined
24611 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
24613 * metadata.c, metadata.h: added function to get packing and size info
24615 * reflection.h, reflection.c: handle field RVA data. Save info about
24616 the table layout if needed. Assign typedef indexes to all the types
24617 before dumping the info about them to avoid forward reference problems.
24619 2002-02-14 Dietmar Maurer <dietmar@ximian.com>
24621 * socket-io.c (convert_sockopt_level_and_name): ifdef
24622 SO_ACCEPTCONN because it is not defined on my system (old debian)
24624 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
24626 * opcode.c: use stddef.h to get NULL.
24628 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
24630 * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
24631 for FIONBIO, FIONREAD and SIOCATMARK.
24632 (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
24633 define INADDR_NONE and besides, inet_addr() is deprecated and
24634 should not be used. Use inet_pton() instead - it also has the
24635 added bonus that it can easily handle IPv6 addresses as well.
24636 (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
24638 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
24640 * decimal.c: remove _MSC_VER conditional.
24642 2002-02-13 Dick Porter <dick@ximian.com>
24645 * icall.c: Internal calls for Blocking, Select, Shutdown,
24646 GetSocketOption and SetSocketOption
24648 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24650 * assembly.cs: better resolver: use it instead of some kludgy
24653 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
24655 * reflection.c: the best way to speed-up the compiler is to avoid
24658 2002-02-13 Dietmar Maurer <dietmar@ximian.com>
24660 * class.c (mono_class_vtable): changed the object layout
24661 (obj->vtable->class).
24662 (mono_class_create_from_typespec): consider MONO_TYPE_PTR
24664 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24666 * assembly.c: look for assemblies in the assembly dir, too.
24668 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24670 * class.c: fix thinko in mono_class_from_type().
24672 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24674 * exception.h, exception.c: added TypeLoadException.
24675 * object.h, object.c: added mono_array_clone ().
24676 * icall.c: handle throwOnError in AssemblyGetType().
24677 Added Array.Clone().
24678 * opcode.h, opcode.c: use a single value for the opcode val.
24679 Compile fix for non-gcc compilers.
24681 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
24683 * opcodes.c, opcodes.h: export interesting info about opcodes.
24685 2002-02-05 Dietmar Maurer <dietmar@ximian.com>
24687 * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
24690 * class.c (class_compute_field_layout): set element_class for enums
24691 (mono_class_create_from_typedef): set element_class for normal classes
24693 * icall.c (ves_icall_System_Enum_get_value): impl.
24695 * class.c (mono_class_create_from_typedef): do not set valuetype
24696 flag for System.ValueType and System.Enum
24698 2002-02-04 Dietmar Maurer <dietmar@ximian.com>
24700 * unicode.c (iconv_convert): fix big endian problem.
24702 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24704 * class.c: add asserts if we are ever going to scribble over memory.
24705 * socket-io.c: not all systems have AF_IRDA defined.
24707 2002-01-31 Dietmar Maurer <dietmar@ximian.com>
24709 * class.c (class_compute_field_layout): do not consider static
24710 fields to compute alignment
24712 2002-01-25 Dietmar Maurer <dietmar@ximian.com>
24714 * appdomain.c (mono_appdomain_get): impl.
24715 (ves_icall_System_AppDomain_ExecuteAssembly): impl.
24717 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
24719 * icall.c: ignore "file://" prefix when loading an assembly.
24721 2002-01-23 Dick Porter <dick@ximian.com>
24725 * Makefile.am: Added socket support
24727 2002-01-23 Miguel de Icaza <miguel@ximian.com>
24729 * icall.c (ves_icall_appdomain_get_default_assemblies): put this
24730 code back. This should return the assemblies that are loaded by
24731 the runtime on behalf of an application domain.
24733 The current implementation is still broken, it just returns every
24734 assembly loaded, but until we get real applications domain this
24737 2002-01-23 Dietmar Maurer <dietmar@ximian.com>
24739 * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
24742 2002-01-23 Miguel de Icaza <miguel@ximian.com>
24744 * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
24745 the mono_class_from_name lookup.
24746 (ves_icall_get_parameter_info): ditto.
24747 (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
24749 (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
24751 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
24753 * class.c: load also nested classes on class init.
24754 System.ValueType instance methods gets passed boxed
24755 values, unless methods in derived classed that get a pointer to the
24757 * icall.c: use better name parsing code in GetType().
24758 * image.c, image.h: add mono_image_loaded ().
24759 * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
24760 * reflection.c, reflection.h: added mono_reflection_parse_type().
24762 2002-01-22 Veronica De Santis <veron78@interfree.it>
24764 * icall.c : Added mapping of internal calls for Manual and Auto reset events
24765 * threads.c : Added the implementation of internal calls for events
24766 * threads.h : Added prototypes of internal calls for events
24768 2002-01-21 Radek Doulik <rodo@ximian.com>
24770 * icall.c (ves_icall_InitializeArray): swap bytes on big endians
24772 2002-01-21 Dietmar Maurer <dietmar@ximian.com>
24774 * class.c (mono_class_init): set min_align to 1 (instead of 0)
24775 (mono_class_value_size): use min_align
24777 2002-01-20 Dick Porter <dick@ximian.com>
24780 * threads.c: Replaced all instances of WapiHandle * with HANDLE,
24781 so it compiles on w32.
24783 2002-01-17 Dietmar Maurer <dietmar@ximian.com>
24785 * metadata.c (mono_type_stack_size): impl.
24787 * class.c (mono_class_get_field): impl. memberref token
24789 2002-01-16 Veronica De Santis <veron78@@interfree.it>
24791 * icall.h : Added the internal calls mapping for CreateMutex_internal
24792 and ReleaseMutex_internal.
24793 * threads.h : Added the prototype of mutexes internal calls.
24794 * threads.c : Added the implementations of mutexes internal calls.
24796 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
24798 * metaparse.h: removed unused file.
24799 * reflection.c, reflection.h: added stream_data_align () function
24800 to align data in streams and keep stream aligned. Add support for
24801 exception support in method headers.
24803 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
24805 * unicode.c: make iconv_convert () return the number of bytess written
24806 in the output buffer.
24808 2002-01-15 Dick Porter <dick@ximian.com>
24809 * threads.c: Make the runtime's idea of infinite timeouts coincide
24810 with the class library's
24812 Fix a particularly egregious bug in mono_thread_cleanup(). That
24813 code was so utterly bogus it must have been written on a Monday.
24815 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
24817 * reflection.h: add subtypes field to TypeBuilder.
24818 * reflection.c: encode constants for literal fields.
24819 Handle subtypes. Fix user string token (and add a zero byte)
24822 2002-01-14 Dietmar Maurer <dietmar@ximian.com>
24824 * class.c (mono_class_init): bug fix: assign slot numbers for
24827 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24829 * reflection.c: don't try to output a code RVA for abstract methods.
24830 Small fixes for method header format. Output parameter info to the
24831 ParamDef table. Save method overriding info to MethodImpl table.
24832 Fix property support. Allow typedef.extends to be a type in the
24834 * verify.c: fix off-by-one error.
24836 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
24838 * class.c: fix mono_class_from_mono_type () for szarray types.
24839 Remove unused cache check in mono_class_from_type_spec().
24840 * icall.c: *type_from_name () functions handle simple arrays and byref.
24841 * reflection.c: handle byref and szarray types. Handle methods without
24842 body (gets P/Invoke compilation working). Handle types and fields in
24844 * reflection.h: add rank to MonoTypeInfo.
24846 2002-01-10 Dick Porter <dick@ximian.com>
24848 * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
24851 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
24853 * icall.c: initialize class in type_from_handle ().
24854 Loop also in parent classes for get_method ().
24855 * reflection.c: properly encode class and valuetype types.
24856 Start on encoding TypeBuilder types. Handle fieldrefs.
24857 Use correct length when registering a user string.
24858 Handle ConstructorBuilder and MonoMethod in get_token ().
24859 Make mono_type_get_object () aware of cached types.
24860 * object.c: back out change to mono_string_new ().
24862 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
24863 * object.c: mono_string_new should return a NULL when the string
24864 passed in is NULL -- not try to deference it.
24866 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
24868 * icall.c: hack to make IsSubType work for TypeBuilders.
24869 * reflection.c: emit constructors before methods.
24870 Retrieve param names in mono_param_get_objects().
24872 2002/01/05 Nick Drochak <ndrochak@gol.com>
24874 * Makefile.am: fix list of headers and sources so automake 1.5
24875 doesn't complain. Removed \# at end of list.
24877 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
24879 * reflection.c: get token for a method ref. Set return type of
24880 constructor to void.
24881 * loader.c: debug message.
24882 * class.c: typo fix.
24884 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
24886 * icall.c: fix array init with rank > 1. FindMembers
24887 loops in parent class as well.
24888 * image.c: do not insert nested types in name cache.
24889 * reflection.c: warning fix.
24890 * reflection.h: add override method (for interface impl).
24892 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
24894 * metadata.c: fix customattr decoding.
24896 2001-12-21 Miguel de Icaza <miguel@ximian.com>
24898 * rawbuffer.cs: Added native Win32 implementation, avoids using
24899 mmap on Cygwin. This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
24901 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
24903 * class.c: make the low-level routines handle the cache.
24905 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
24907 * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
24909 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
24911 * class.c: fix mono_array_element_size() for objects.
24912 * class.h, class.c: add properties to MonoClass and load them
24914 * icall.c: check with isinst() when assigning a value to an array
24915 instead of requiring the classes to match exactly.
24916 Implemented icall for System.Type::GetType().
24917 Implemented icalls to get ParameterInfo, ProprtyInfo and info about
24918 enums. Handle bindingflags when looking for methods and fields.
24919 * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
24920 and mono_metadata_methods_from_property().
24921 * reflection.h, reflection.c: added structures for propreties,
24922 parameters and enums. Implemented mono_property_get_object() and
24923 mono_param_get_objects().
24925 2001-12-18 Dick Porter <dick@ximian.com>
24927 * file-io.c: Use mono_string_to_utf16() instead of
24928 mono_string_chars()
24930 * object.c: Added mono_string_to_utf16(), which copies the non
24931 NULL-terminated MonoString into a new double-null-terminated
24934 2001-12-17 Dietmar Maurer <dietmar@ximian.com>
24936 * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
24938 2001-12-16 Dietmar Maurer <dietmar@ximian.com>
24940 * file-io.c: raise exceptions if handle is invalid.
24942 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
24944 * assembly.c: yet another check for mscorlib.
24945 * class.c, class.h: load nesting info for classes.
24946 * icall.c: many new functions to support the Reflection classes.
24947 * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
24948 * reflection.h, reflection.c: mono_image_create_token(),
24949 mono_assembly_get_object(), mono_type_get_object(),
24950 mono_method_get_object(), mono_field_get_object(): methods to return
24951 objects that parallel the C representation of assemblies, types,
24954 2001-12-11 Dick Porter <dick@ximian.com>
24957 * file-io.c: Internal calls for file IO.
24959 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
24961 * tabledefs.h: missing FileAttributes.
24962 * verify.h, verify.c: use is_valid_string () to simplify and check for
24963 valid strings more correctly. Fix warnings and speeling.
24964 Check more tables: Filed, File, ModuleRef, StandAloneSig.
24965 Check code: branches, maxstack, method calls.
24967 2001-12-04 Dietmar Maurer <dietmar@ximian.com>
24969 * object.c (mono_object_allocate): removed static, so that the jit
24970 can allocate value types.
24972 * icall.c (ves_icall_System_DateTime_GetNow): impl.
24974 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24976 * class.c: init enum types right away and register the
24977 token->MonoClass map in mono_class_create_from_typedef ().
24978 * verify.h, verify.c: first cut of the verifier.
24979 * pedump.c: add --verify switch to verify metadata tables.
24980 * tabledefs.h: add some missing enums.
24982 2001-11-30 Dietmar Maurer <dietmar@ximian.com>
24984 * class.c (mono_install_runtime_class_init): impl.
24985 (mono_class_init): renamed mono_class_metadata_init to
24986 mono_class_init, also removed the metadata_inited flag
24988 * object.c (mono_object_isinst): use faster algorithm
24990 2001-11-30 Radek Doulik <rodo@ximian.com>
24992 * mono-endian.h: reverted last change
24993 added function prototypes
24995 * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
24996 add mono-endian.c back
24998 * mono-endian.c: returned back, as Paolo pointed out, it's needed
24999 for unaligned access, I've mistaked it with endianess. I am
25001 (mono_read16): fix reverted endianess
25002 (mono_read64): ditto
25003 (mono_read32): ditto
25005 2001-11-30 Dick Porter <dick@ximian.com>
25007 * exception.c: Implement mono_exception_from_name()
25009 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
25011 * metadata.h, metadata.c: remove params_size and locals_size and their
25012 calculation from the metadata code: they are only usefult to the
25015 2001-11-29 Radek Doulik <rodo@ximian.com>
25017 * object.c (mono_ldstr): swap bytes here, it's probably not the
25018 best place, but works for me now, I'll redo it once I know mono
25019 better, also note that I add PROT_WRITE and don't reset back, also
25020 note that it's only affects big endians, so x86 should be OK
25022 * mono-endian.h (read16): use just glib macros for both endians
25024 * mono-endian.c: removed as glib macros are used in in
25025 mono-endian.h so we don't need to care about endianess for read
25026 macros as glib does that for us already
25028 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
25030 * class.h, class.h: take minimum alignment into consideration so
25031 that the fields of a class remain aligned also when in an array.
25033 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
25035 * loader.h, loader.c: add mono_method_get_param_names().
25036 * class.c: 0-init class fields.
25038 2001-11-26 Dick Porter <dick@ximian.com>
25042 * threads.c: New file that handles System.Threading on all platforms
25045 * object.h: Remove the synchronisation struct from MonoObject,
25046 replace it with a pointer that gets initialised on demand
25048 * Makefile.am: Replace all the system-specific threading code with
25049 a single file that uses the new wrapper library
25051 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
25053 * class.c, class.h: add mono_install_trampoline() so that the runtime
25054 can register a function to create a trampoline: removes the ugly
25055 requirement that a runtime needed to export arch_create_jit_trampoline.
25056 * object.h, object.c: added mono_install_handler() so that the runtime
25057 can install an handler for exceptions generated in C code (with
25058 mono_raise_exception()). Added C struct for System.Delegate.
25059 * pedump.c: removed arch_create_jit_trampoline.
25060 * reflection.c: some cleanups to allow registering user strings and
25061 later getting a token for methodrefs and fieldrefs before the assembly
25063 * row-indexes.h: updates and fixes from the new ECMA specs.
25065 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
25067 * class.h, class.c: add enum_basetype field to MonoClass.
25068 * metadata.h, metadata.c: add mono_metadata_get_constant_index()
25069 to get index in the constant table reated to a field, param or
25071 * reflection.h, reflection.c: handle constructors. Set public-key and
25072 version number of the built assembly to 0.
25073 * row-indexes.h: update from new ECMA spec.
25075 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
25077 * class.h, class.c: add a max_interface_id to MonoClass.
25078 * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
25079 since it's used to do that. Added mono_type_type_from_obj().
25080 Make GetType() return NULL instead of segfaulting if the type was not
25081 found. Handle simple arrays in assQualifiedName.
25082 * object.h: add a struct to represent an Exception.
25083 * reflection.c: output call convention in method signature.
25084 Add code to support P/Invoke methods and fixed offsets for fields.
25086 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
25088 * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
25090 * icall.c: use mono_array_addr instead of array->vector: fixes the
25091 reflection image writing.
25092 * reflection.c: init call convention byte to 0 in method signature.
25093 Encode the property signature. Don't output property-related methods
25094 twice. Really process the properties for a type (don't cast a field to
25095 a property, my mom always told me that).
25096 Fix 64 bit issues in pointer alignment in a different and more
25099 2001-11-10 Sean MacIsaac <macisaac@ximian.com>
25101 * loader.h: Removed type class from MonoDefaults, added monotype
25103 * loader.c: Loaded MonoType, removed loading of Type
25105 * icall.c (my_mono_new_object): Now returns a System.MonoType,
25106 and fills in System.Type._impl with a RuntimeTypeHandle rather
25107 than the actual MonoClass *
25109 (ves_icall_type_from_handle): change from type_class to
25112 (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
25115 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
25118 (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
25120 (ves_icall_System_Reflection_Assembly_GetType): implemented
25122 (ves_icall_System_MonoType_assQualifiedName): implemented
25124 (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
25126 2001-11-09 Miguel de Icaza <miguel@ximian.com>
25128 * assembly.c (mono_assembly_open): Implement a cache for the
25131 (mono_assembly_close): only destroy the assembly when the last
25134 2001-11-09 Dick Porter <dick@ximian.com>
25136 * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
25138 2001-11-09 Dietmar Maurer <dietmar@ximian.com>
25140 * class.c (mono_class_metadata_init): bug fix: compute the right slot
25142 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
25144 * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
25145 from Martin Weindel.
25146 * object.h: add mono_string_chars ().
25148 2001-11-07 Miguel de Icaza <miguel@ximian.com>
25150 * reflection.c (build_compressed_metadata): Eliminates warnings
25151 and uses 64-bit clean code.
25153 * metadata.c (mono_type_hash): Change signature to eliminate warnings.
25154 (mono_type_equal): Change signature to eliminate warnings.
25156 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
25158 * icall.c, loader.c: remove the internalcall array constructors.
25159 Changes to match the new MonoArray structure.
25160 * object.h, object.c: an array object doesn't allocate an extra
25161 vector. Add mono_array_new_full () to create jagged arrays easily.
25163 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
25165 * metadata.h, metadata.c: add mono_metadata_field_info () to
25166 retreive all the info about a field from vairous tables.
25167 * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
25168 * class.h, class.c: augment MonoClassField with more info.
25169 Implemented mono_ldtoken for fields. Implemented ExplicitLayout
25170 policy and load a field's RVA if needed.
25172 2001-11-05 Dietmar Maurer <dietmar@ximian.com>
25174 * class.c (mono_class_metadata_init): create a trampoline for all
25175 virtual functions instead of actually compiling them.
25177 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
25179 * class.h, class.c: include name in MonoClassField.
25180 * class.c: fix fundamental type of System.Object and System.String.
25181 Set the right fundamental type for SZARRAY, too. Handle TypeSpec
25183 * icall.c: remove internalcalls for the Reflection stuff that is now
25185 * loader.c: mono_field_from_memberref () implementation.
25186 * mono-endian.c: thinko (s/struct/union/g).
25187 * object.c, object.h: make the mono_string_* prototypes actually use
25188 MonoString instead of MonoObject.
25189 * reflection.c, reflection.h: updates for changes in the reflection
25190 code in corlib: we use C structures that map to the actual C# classes.
25191 Handle SZARRAYs when encoding types. Handle locals in methods. Use a
25192 fat method header if needed and use the info from the ILGenerator for
25193 methods. Handle fields in types. Misc fixes.
25195 2001-10-17 Dietmar Maurer <dietmar@ximian.com>
25197 * class.c (mono_class_metadata_init): bug fix: always allocate
25198 space for static class data
25200 2001-10-25 Dietmar Maurer <dietmar@ximian.com>
25202 * class.c (mono_compute_relative_numbering): use relative
25203 numbering to support fast runtime type checks.
25205 2001-10-17 Sean MacIsaac <macisaac@ximian.com>
25207 * class.c (mono_class_create_from_typeref): added debugging output
25208 to print class name when MonoDummy is returned instead of real class
25210 2001-10-15 Dietmar Maurer <dietmar@ximian.com>
25212 * class.c (mono_class_metadata_init): interface offset table now
25213 contains pointers into the vtable - this is more efficient for the jit
25215 2001-10-12 Dietmar Maurer <dietmar@ximian.com>
25217 * class.c (mono_class_metadata_init): use a temporary vtable (the
25218 old algorithm only worked for the interpreter, but not for the jit)
25220 2001-10-11 Dietmar Maurer <dietmar@ximian.com>
25222 * loader.c (method_from_memberref): use mono_class_get to get the
25223 class of an array instead of using System.Array directly.
25224 (mono_get_method): also add MEMBERREF methods to the method cache
25225 which usefull for arrays.
25227 2001-10-10 Dietmar Maurer <dietmar@ximian.com>
25229 * pedump.c (arch_compile_method): added to compute vtable entry
25231 * metadata.c (mono_metadata_interfaces_from_typedef): also return the
25232 number of interfaces.
25234 * class.h: merged MonoArrayClass into MonoClass
25236 * class.c (mono_class_create_from_typedef): compute the vtable size and
25237 allocate space to include the vtable inside MonoClass
25238 (mono_class_metadata_init): initialize the vtable
25240 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
25242 * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
25243 Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
25244 * image.c: endian fixes by Laurent Rioux.
25245 * object.h, object.c: rename MonoStringObject to MonoString and
25246 MonoArrayObject to MonoArray. Change some function names to conform to
25247 the style mono_<object>_<action>. mono_string_new_utf16 () takes a
25248 guint16* as first argument, so don't use char*.
25249 Provide macros to do the interesting things on arrays in a portable way.
25250 * threads-pthread.c: updates for the API changes and #include <sched.h>
25251 (required for sched_yield()).
25252 * icall.c: updates for the API changes above.
25253 * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
25254 platforms that need them.
25256 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
25258 * class.c: set the correct type for all the fundamental
25259 type when loading the class.
25261 2001-10-05 Dick Porter <dick@ximian.com>
25263 * threads-pthread.c (pthread_mutex_timedlock): Simple
25264 compatibility version for C libraries that lack this call.
25266 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
25268 * class.c: MonoTypes stored in MonoClass are stored as
25269 fundamental MonoTypes when the class represents a
25270 fundamental type (System.Int32, ...).
25271 The TypeHandle return by ldtoken is a MonoType*.
25272 * icall.c: ves_icall_get_data_chunk () write out all the
25273 PE/COFF stuff. Implement ves_icall_define_method (),
25274 ves_icall_set_method_body (), ves_icall_type_from_handle ().
25275 * image.c: properly skip unknown streams.
25276 * loader.h, loader.c: add type_class to mono_defaults.
25277 * metadata.c, metadata.h: export compute_size () as
25278 mono_metadata_compute_size () with a better interface.
25279 Typo and C&P fixes.
25280 * pedump.c: don't try to print the entry point RVA if there is no entry point.
25281 * reflection.c, reflection.h: many cleanups, fixes, output method
25282 signatures and headers, typedef and typeref info, compress the metadata
25283 tables, output all the heap streams, cli header etc.
25284 * row-indexes.h: typo fixes.
25286 2001-10-04 Dick Porter <dick@ximian.com>
25288 * object.h: Add a synchronisation mutex struct to MonoObject
25290 * object.c (mono_new_object): Initialise the object
25291 synchronisation mutexes
25293 * icall.c: System.Threading.Monitor internal calls
25295 * threads-pthread.h:
25296 * threads-pthread.c: System.Threading.Monitor internal calls
25298 * threads-types.h: New file, includes the system-specific thread
25301 * threads-pthread-types.h:
25302 * threads-pthread-types.c: New files, handle pthread-specific
25303 synchronisation types
25305 * threads-dummy-types.h:
25306 * threads-dummy-types.c: New files of dummy support for
25307 thread-specific types
25311 * pedump.c: include mono-endian.h not endian.h
25313 * Makefile.am: More threads files.
25314 Name mono-endian.h not endian.h
25316 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
25318 * Makefile.am, reflection.h, reflection.c: move here the reflection related
25319 stuff and implement a few more bits.
25320 * icall.c: a field needs to be dereferenced twice. Do not use the same
25321 name for two variables in the same scope.
25322 * image.c, image.h: cleanups.
25324 2001-10-02 Dietmar Maurer <dietmar@ximian.com>
25326 * class.c (mono_class_metadata_init): bug fix: compute the right size
25328 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
25330 * icall.c: implemented some of the Reflection internalcalls.
25331 * image.c, image.h: start writing out the PE/COFF image.
25332 * metadata.h, metadata.c: implement mono_metadata_encode_value ()
25333 that does the reverse than decode_blob_size ().
25334 * object.c: use mono_metadata_encode_value (). Move here
25335 temporary implementation of mono_string_to_utf8 ().
25336 * rawbuffer.c: make malloc_map static.
25338 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
25340 * metadata.c: fix type comparison for arrays.
25341 * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
25342 Added a couple of new classes to monodefaults.
25343 * icall.c: added a couple of Reflection-related internalcalls.
25344 * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
25345 Added a byval_arg MonoType to MonoClass.
25347 2001-09-28 Dick Porter <dick@ximian.com>
25350 * threads-pthread.h:
25351 * threads-pthread.c: Implemented internal calls for
25352 LocalDataStoreSlot operations. Applied mutexes around all shared
25353 data. Reworked the thread creation and Start() operations to
25354 avoid a race condition.
25357 * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
25359 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
25361 * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
25363 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
25365 * class.c, loader.c: warn and return NULL instead of erroring out.
25366 * icall.c: added System.AppDomain::getCurDomain().
25367 * loader.c: we don't need to lookup the typedef again for p/invoke calls.
25369 2001-09-25 Dick Porter <dick@ximian.com>
25371 * threads-pthread.h:
25372 * threads-pthread.c: Implemented timed thread joining and added
25373 System.Threading.Thread::Join_internal internal call
25375 * icall.c: Added System.Threading.Thread::Join_internal internal call
25378 * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
25380 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
25382 * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
25383 mono_string_intern () to implement the semantics of the ldstr opcode
25384 and the interning of System.Strings.
25385 * icall.c: provide hooks to make String::IsIntern and String::Intern
25388 2001-09-23 Dick Porter <dick@ximian.com>
25391 * threads-dummy.h: New files of dummy threading routines
25393 * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
25394 support code based on system specifics
25396 Rename PTHREAD_LIBS to THREAD_LIBS
25398 2001-09-23 Dick Porter <dick@ximian.com>
25400 * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
25401 Schedule (called when asked to Sleep for 0 ms) and CurrentThread
25403 (mono_thread_init): Set up a Thread object instance to return when
25404 the main thread calls Thread.CurrentThread
25405 (mono_thread_cleanup): Wait for all subthreads to exit
25407 * icall.c: New internal calls for System.Threading.Thread::Sleep
25408 (including Schedule) and CurrentThread
25410 * threads.h: New file, to insulate thread-specific stuff from the
25413 2001-09-21 Dick Porter <dick@ximian.com>
25415 * threads-pthread.h:
25416 * threads-pthread.c: New file, for handling pthreads-style
25417 threading support. Start() now starts a new thread and executes
25418 the ThreadStart delegate instance.
25420 * icall.c: Added the internalcall for
25421 System.Threading.Thread::Start_internal
25423 * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
25425 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
25427 * loader.c: work around the different signatures for delegates
25428 constructors csc generates in compiled code vs the ones compiled in mscorlib.
25430 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
25432 * class.h, class.c: add mono_class_get_field_from_name ().
25433 * *: Fix C comments and other ANSI C issues.
25435 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
25437 * endian.h, assembly.c: fix some endianness issues.
25439 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
25441 * loader.h, load.c: add delegate_class to mono_defaults.
25442 Handle runtime provided methods in mono_get_method ().
25444 2001-08-29 Dietmar Maurer <dietmar@ximian.com>
25446 * loader.c (mono_get_method): use pinvoke for internal call
25448 * icall.c: use pinvoke for internal call
25450 * loader.c (method_from_memberref): set the method name
25452 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
25454 * metadata.c: help the compiler generate better code for
25455 mono_class_from_mono_type ().
25457 2001-08-28 Dietmar Maurer <dietmar@ximian.com>
25459 * class.c (mono_class_metadata_init): delayed computing of the
25460 class size to mono_class_metadata_init ()
25462 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
25464 * class.c, class.h: add an interfaces member to MonoClass.
25465 * image.c, image.h: add assembly_name field to MonoImage
25466 from the assembly table.
25467 * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
25469 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
25471 * class.c: Handle Array in mono_class_from_mono_type ().
25472 * metadata.c, pedump.c: some endian fixes.
25474 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
25476 * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
25477 * metadata.c: fix small problem introduced with the latest commit.
25479 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
25481 * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
25482 We don't need a MonoMetadata pointer anymore to compare signatures in
25483 mono_metadata_signature_equal (), update callers.
25484 Reduced memory usage an number of allocations for MonoMethodHeader and
25485 MonoMethodSignature.
25487 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
25489 * metadata.c: added compare for szarray.
25491 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
25493 * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
25494 and add a couple more types to it and mono_defaults. Give an hint on
25495 classes that need implementing in our corlib and are referenced
25498 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
25500 * class.h, class.c: keep track if a class is also an Enum.
25501 * loader.c: Implement a couple more types for use in libffi
25502 marshalling. Gives better diagnostics when failing to dlopen
25503 a library. Set method->klass for P/Invoke methods, too.
25505 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
25507 * class.c, class.h: add a MonoType this_arg to MonoClass that
25508 represents a pointer to an object of the class' type that
25509 can be used by the interpreter and later the type cache.
25510 Add best guess alignment info for valuetype objects.
25512 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
25514 * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
25515 into MonoType: one less level of indirection and allocation and
25516 simplifies quite a bit of code. Added cache for MonoTypes that are
25517 used frequently, so that we don't need to allocate them all the time.
25519 2001-08-24 Dietmar Maurer <dietmar@ximian.com>
25521 * class.c (mono_class_create_from_typedef): System.Enum is also a
25522 value type, although it does not derive from System.ValueType
25523 (maybe a bug in the ms compiler?)
25525 * metadata.c (mono_type_size): return the right size for value types
25527 * loader.c (mono_get_method): only initialize method header if not abstract
25529 * class.c (mono_class_from_mono_type): use mono_default values.
25531 2001-08-23 Dietmar Maurer <dietmar@ximian.com>
25533 * *: use MonoClass pointers instead of <type_tokens>
25535 * class.h: new flag: metadata_inited.
25537 * class.c (mono_class_metadata_init): impl.
25538 (mono_class_instance_size): impl.
25539 (mono_class_data_size): impl.
25541 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
25543 * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
25544 MonoClass now has the name and name_space fields.
25545 MonoMethod has a pointer to its MonoClass, instead of MonoImage.
25546 mono_get_method () takes and optional MonoClass as argument.
25547 Removed mono_typedef_from_name() and added mono_class_token_from_name()
25548 instead that takes advantage of a map from class names to typedef
25549 tokens in MonoImage.
25551 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
25553 * metadata.c: zero is not a valid alignment boundary.
25554 Merge MONO_TYPE_VOID in default decoding code.
25556 2001-08-21 Dietmar Maurer <dietmar@ximian.com>
25558 * image.h: merged MonoMetadata into MonoImage
25560 * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
25561 identify the type of elements.
25563 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
25565 * blob.h: fix MONO_TYPE_TYPEDBYREF value.
25566 * cil-coff.h: split MonoMSDOSHeader and add size info.
25567 * image.c: add some consistency checks.
25568 * metadata.c: fix row size computation: one programmer
25569 error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
25570 add explanation for the locator routine.
25571 Fix decoding of size in method header.
25573 2001-08-20 Miguel de Icaza <miguel@ximian.com>
25575 * assembly.c (g_concat_dir_and_file): Use _S for string concat.
25576 (g_concat_dir_and_file): Bring g_concat_dir_and_file
25577 function from gnome-libs. This uses the right path separator
25578 based on the OS, and also works around a bug in some systems where
25579 a double slash is not allowed.
25580 (default_assembly_name_resolver): Use g_concat_dir_and_file
25581 (mono_assembly_open): ditto.
25583 2001-08-20 Dietmar Maurer <dietmar@ximian.com>
25585 * metadata.c (mono_metadata_signature_equal): impl.
25587 * *: void is now a realy MonoType (instead of using NULL)
25589 * metadata.c (do_mono_metadata_parse_type): use
25590 mono_metadata_parse_type to parse void value.
25592 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
25594 * metadata.c, metadata.h: in the signature and method header store
25595 only the space required for holding the loca vars and incoming arguments.
25597 2001-08-15 Dietmar Maurer <dietmar@ximian.com>
25599 * metadata.c (do_mono_metadata_parse_type): treat void like any
25600 other type (instead of assigning NULL);
25602 2001-08-14 Dietmar Maurer <dietmar@ximian.com>
25604 * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
25606 2001-08-09 Dietmar Maurer <dietmar@ximian.com>
25608 * image.c (do_mono_image_open): added a cache for arrays.
25610 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
25612 * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
25613 decode a single column from a row in a metadata table and changes
25614 to take advantage of it in the typedef locator (gives a nice speed up).
25615 Store offset info for function params.
25617 2001-08-02 Dietmar Maurer <dietmar@ximian.com>
25619 * image.h (MONO_IMAGE_IS_CORLIB): removed
25621 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
25623 * assembly.c: how could mono_assembly_close () had ever worked?
25624 * metadata.c, metadata.h: provide offset info for local vars.
25625 Implement mono_type_size () to take care of alignment as well
25626 as size (it was mono_field_type_size in cli/class.c before).
25628 2001-08-01 Dietmar Maurer <dietmar@ximian.com>
25630 * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
25632 * assembly.h (CORLIB_NAME): set to corlib.dll
25634 * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
25636 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
25638 * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
25639 cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
25640 tokentype.h: massive namespace cleanup.
25642 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
25644 * metadata.h, metadata.c: decode exception clauses when parsing method header.
25646 2001-07-27 Dietmar Maurer <dietmar@ximian.com>
25648 * metadata.c (mono_metadata_free_type): added check for type !=
25649 NULL (void) before calling mono_metadata_free_type()
25651 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
25653 * metadata.h, row_indexes.h: added header with enumerations to use
25654 to index in the columns from tables in metadata and to decode coded
25655 tokens: we should start using this instead of embedding magic numbers
25658 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
25660 * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
25661 Move metadata_t info from cli_image_info_t to MonoImage, where
25662 it's easily accessible. Changed all the uses accordingly.
25663 Added the method and class caches to MonoImage.
25664 * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
25665 and mono_metadata_decode_value () signature to be more consistent
25666 with the other parse functions (and simplify code). Taken advantage
25667 of zero-length array allocation with GCC. Removed reduntant (and
25668 wrong) MonoFieldType struct and use MonoParam instead. Changed
25669 mono_metadata_parse_field_type () to use common code for parsing.
25670 Added mono_metadata_typedef_from_field () and
25671 mono_metadata_typedef_from_method () to lookup a typedef index from a
25672 field or method token.
25673 Pack the MonoRetType structure more tightly (fits in 8 bytes now).
25675 2001-07-23 Miguel de Icaza <miguel@ximian.com>
25677 * metadata.c (mono_metadata_parse_field_type): Implement.
25678 (do_mono_metadata_parse_type): Split engine from
25679 mono_metadata_parse_type, so that we can create smaller structures
25680 for things that just have one pointer to the MonoType (look at
25683 2001-07-20 Miguel de Icaza <miguel@ximian.com>
25685 * metadata.c (mono_metadata_parse_mh): Correct the implementation,
25686 as Jan Gray found out, it is incorrect.
25688 2001-07-18 Miguel de Icaza <miguel@ximian.com>
25690 * assembly.c: Implement asssembly loading. This loads an image
25691 and loads all the referenced assemblies. Come to think of it, we
25692 could always do lazy loading of the assemblies.
25694 * image.c (mono_image_open): Keep loaded images in a hashtable.
25696 * image.h (MonoImage): Add reference count.
25698 2001-07-17 Miguel de Icaza <miguel@ximian.com>
25700 * assembly.c (mono_assembly_open): Keep track of the file name in
25701 case the assembly has no ASSEMBLY table.
25703 * metadata.h: Fixed Paolo's quick hack. Put the documnentation
25706 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
25708 * metadata.c, metadata.h: decode local vars in method header
25709 parse function. Change callers accordingly.
25711 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
25713 * metadata.h, cil-coff.h: protect against multiple inclusion.
25714 Added some new structures to hold information decoded from metadata:
25715 MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
25716 and relevant decoding/free functions.
25717 * metadata.c: implement decoding functions. Add warning for out of bounds
25718 index in mono_metadata_locate(). Implement mono_get_method () to retreive
25719 all the info about a method signature and invocation. Remove check on
25720 uninitialized local var in parse_mh() and fix memory leak.
25722 2001-07-12 Miguel de Icaza <miguel@ximian.com>
25724 * metadata.h: More macros.
25726 * tokentype.h: New file.
25728 Fri Jul 6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
25730 * assembly.c: added a consistency check and initialize
25731 some structures with g_new0().
25732 * metadata.c: fixed a couple more bugs in table size computation
25733 and add other checks for out-of bound access to metadata.
25735 Thu Jul 5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
25737 * metatada.c: fix bugs computing table sizes. Spew a
25738 warning when index in string heap is out of bounds.
25740 2001-07-04 Miguel de Icaza <miguel@ximian.com>
25742 * metadata.h: Add a couple of macros to manipulate tokens.
25744 Tue Jul 3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
25746 * assembly.c: g_free(ii->cli_sections) (and avoid double free of
25747 cli_section_tables).
25749 2001-07-01 Miguel de Icaza <miguel@ximian.com>
25751 * metadata.c (mono_metadata_user_string): New function, provides
25752 access to the UserString heap.
25754 2001-06-27 Miguel de Icaza <miguel@ximian.com>
25756 * metadata.c: Add inline documentation.
25758 2001-06-26 Miguel de Icaza <miguel@ximian.com>
25760 * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
25763 2001-06-22 Miguel de Icaza <miguel@ximian.com>
25765 * typeattr.h: New file, TypeAttribute flags.
25767 2001-06-21 Miguel de Icaza <miguel@ximian.com>
25769 * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
25770 mono_assembly_ensure_section): Section loading code.
25771 (load_section_tables): Load the sections.
25773 * mono/metadata/metadata.c (mono_metadata_locate_token,
25774 mono_metadata_locate): Functions to locate the information
25775 definition given a token or a table and an index.
25776 (mono_metadata_compute_table_bases): New.
25777 (compute_size): New function to compute the sizes of the various
25780 * mono/metadata/metadata.h: Finish listing the different index
25783 * mono/metadata/pedump.c: Improve to dump new information.
25785 2001-06-19 Miguel de Icaza <miguel@ximian.com>
25787 * mono/metadata/metadata.c: Entered all the tables matching
25790 * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2